From 1dc094bad957df7adbc2cfff2d33da74cfba77e6 Mon Sep 17 00:00:00 2001 From: John Keller Date: Tue, 13 Aug 2024 11:29:46 -0400 Subject: [PATCH 01/50] added missing AscentAeroSystemsSITLPackage --- .../spawn_prims/AscentAeroSystems/.gitignore | 0 .../AscentAeroSystemsSITLPackage/.gitignore | 3 + .../AscentAeroSystemsSITLPackage/Makefile | 2 + .../AscentAeroSystemsSITLPackage/README | 5 + .../ascent_sitl.yaml | 17 + .../AscentAeroSystemsSITLPackage/eeprom.bin | Bin 0 -> 16384 bytes .../AscentAeroSystemsSITLPackage/inject.cpp | 108 ++ .../AscentAeroSystemsSITLPackage/inject.so | Bin 0 -> 23024 bytes .../AscentAeroSystemsSITLPackage/mav.parm | 1392 +++++++++++++++++ .../AscentAeroSystemsSITLPackage/mav.tlog | Bin 0 -> 1165021 bytes .../AscentAeroSystemsSITLPackage/mav.tlog.raw | Bin 0 -> 933236 bytes .../AscentAeroSystemsSITLPackage/mav_0_1.parm | 1392 +++++++++++++++++ .../persistent.dat | Bin 0 -> 76 bytes .../server_test.py | 55 + .../AscentAeroSystemsSITLPackage/spirit_sitl | Bin 0 -> 5035696 bytes .../terrain/N00E000.DAT | Bin 0 -> 2048 bytes .../terrain/N42W072.DAT | Bin 0 -> 1894400 bytes .../terrain/S36E149.DAT | Bin 0 -> 2103296 bytes .../AscentAeroSystemsSITLPackage/test.gdb | 12 + 19 files changed, 2986 insertions(+) create mode 100644 simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/.gitignore create mode 100644 simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/.gitignore create mode 100644 simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/Makefile create mode 100644 simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/README create mode 100644 simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/ascent_sitl.yaml create mode 100644 simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/eeprom.bin create mode 100644 simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/inject.cpp create mode 100755 simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/inject.so create mode 100644 simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/mav.parm create mode 100644 simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/mav.tlog create mode 100644 simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/mav.tlog.raw create mode 100644 simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/mav_0_1.parm create mode 100644 simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/persistent.dat create mode 100644 simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/server_test.py create mode 100755 simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/spirit_sitl create mode 100644 simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain/N00E000.DAT create mode 100644 simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain/N42W072.DAT create mode 100644 simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain/S36E149.DAT create mode 100644 simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/test.gdb diff --git a/simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/.gitignore b/simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/.gitignore new file mode 100644 index 000000000..e69de29bb diff --git a/simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/.gitignore b/simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/.gitignore new file mode 100644 index 000000000..fecc32a81 --- /dev/null +++ b/simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/.gitignore @@ -0,0 +1,3 @@ +AscentQLinux/ +logs/*.BIN +logs/*.TXT \ No newline at end of file diff --git a/simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/Makefile b/simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/Makefile new file mode 100644 index 000000000..bcb26a80b --- /dev/null +++ b/simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/Makefile @@ -0,0 +1,2 @@ +all: + g++ inject.cpp -fPIC -shared -o inject.so diff --git a/simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/README b/simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/README new file mode 100644 index 000000000..d40407d23 --- /dev/null +++ b/simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/README @@ -0,0 +1,5 @@ +install mavproxy +Unzip package +In terminal window, run sudo chmod +x spirit_sitl +run ./spirit_sitl -S --model coaxial -I0 & mavproxy.py --master tcp:127.0.0.1:5760 --out udp:127.0.0.1:14552 +Open AscentQLinux folder and launch the AscentQ file diff --git a/simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/ascent_sitl.yaml b/simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/ascent_sitl.yaml new file mode 100644 index 000000000..149520f04 --- /dev/null +++ b/simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/ascent_sitl.yaml @@ -0,0 +1,17 @@ +session_name: Ascent Spirit +windows: + - window_name: SITL + layout: tiled + panes: + - shell_command: + - echo hi#python3 server_test.py + - shell_command: + - gdb ./spirit_sitl --command=test.gdb -ex "r -S --model coaxial -I0 --base-port $BASE_PORT" + - shell_command: + - echo $ASCENT_SITL_PORT + - echo $ISAAC_SIM_PORT + - echo $AUTONOMY_STACK_PORT + - mavproxy.py --streamrate=100 --master tcp:127.0.0.1:$BASE_PORT --out udp:127.0.0.1:$ASCENT_SITL_PORT --out udp:127.0.0.1:$ISAAC_SIM_PORT --out udp:127.0.0.1:$AUTONOMY_STACK_PORT + - shell_command: + - sleep 5 + - ros2 launch mavros apm.launch fcu_url:="udp://127.0.0.1:$AUTONOMY_STACK_PORT@$MAVROS_LAUNCH_PORT" diff --git a/simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/eeprom.bin b/simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/eeprom.bin new file mode 100644 index 0000000000000000000000000000000000000000..16bd8f46e84980ab25da286f217daf11cfe46b86 GIT binary patch literal 16384 zcmeHLe^6A{6+U~Qm?}zQ219T&=Q!6KPpoIFc&#c^<10lvxhl#wW ze-1#d&bPp90&H*FzbsexK>_Cbw9f(1)&MZF0BAA@%!hd(0AY?>gAnF;5McDsN3mB{ zPQ=POF2`sl7fKe7XmpUk;QDK^L7$nwfK4x8*we#|=ueM%Z)q*s?VHrk$$+I>U&0yR$mYCa(ij zW3DDgj~uB=o5iqv>|{mS+>5IlwY1r3=k0bbfPJTDBX5${En8KU)@{CS^L3lA+kD;T z>oz~bd7WB1!~3{@W+lA1b7xhW72`aUi8L#)^OrF9B+@1(fViU1=e(tgb_e(reKCCZ zc3Sb+7Jzg9$20(vt5KL6?Vk-Se?Yu7$R7|ZAwNM;ARq4^fadBTnFSEkFsv1YzM8c< z-vG2WGr)7A4R5G>iXX3PYYD>KHq8&P28DtF7Jxmw^ooFX8w3I^JZM1-{o8<$u2LMK zdp$0n>?hqxNT=^ilCDC4xA_c17<_N>a0r9{Fb3ra4@Y@W`YGfnBoE*kLf@Mh$bS4A zdzBXW`H0r*=#dq#ALo7Aq5z?0E;Qafq)`^O@*qV+TEBYphYsNV$?x+TmR+xz!6P{k zpalP@X~w?OTSB;pb{FoU&A~8;J^S_IPPK~qg-N0!a7{K=5(?~Pqd5Kpa1P@TRHFMg zHu&J<1VAyY%kZTg$#o3h3*4VvXJ6iR{5Ec`(AS~)(A=ljGxQyruQ80l3BQu)4j;x! zH><@;caX;(QRxwt9#M&kwNbG)D%M8D+Hz4T7nO2R(FIc%bzRhTQ8z^05OqV;4N-3j z|0V@cfU{TTL!746Z=KySjF3E62))+~H+*JRN#E<3GoXEq_WZ+8OT*5-C4bL?KYSmZEOfflA6n3Rs;L6> z`4)LoBn!SAN~y2UaipRF3wlePx@x$|wO1^NWd8b;H)y}3FI+Ozjn~9gzz@WkH~%9` zQle{<&sSu@zJ)3EDdr5h_+AT&eLo@f^&5tpd~C{4pTxDFX~>d;hC1iEbLZ?H$bzR4 zHc)4bhmp*ow^#H}S>zx6ISbakYpA^;N9x3=1-+%V<3=uWUdB*+Zmrc3`fhim4kDRD zZ>i2RS>)1lS@6cA7BNurb$8f=-K|@{qMMvr-By;F3HG0xem)s&hif*{z zy*Tr;UvZ><^^OHUMG7}^k-vdsxZqC^zO&SkDtOC+-csK`kwyOZsVq2zGZ)u5Qu=WV zdP^e6~$VFcC zW)@tFFu2B%nm{s#-cr9kl0_~B=Pc_qxF9*JUI7j<3Kbx~g(%t7XAwih*5hu`%pJ|lPnD~8}S z1rOoxO>6=cn!@L?Yl^PPKE!d%0upN3OlT+*r&H_m4umof(gzmIPKGjn;b$4Z%ugif z&TNb^e9P#RejEPY98Za3(EZ7j&KVuaR13CK{MdnKp;X2$nmkV>L*i`ooEE~9567hI zGKFYn5W$^^Xy!f41&IaXBtg2Kzzu03)ZN2#5-wE`%&UO>JP$%z5uSn2b4teW0HTns z02}&owL%{95i*9y*R@;lyo$t&1g59s*pe^lfOJ4Q@EIH^dNqL`KJq0UkPb)(qyy3c z>40=VIv^d84oC;21JVKMfOJ4QARUknNC%_?(gEp!bU->F9gq%42c!ei0qKBrKsq2D VkPb)(qyy3c>40=VI`F@A;6L>e+pz!u literal 0 HcmV?d00001 diff --git a/simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/inject.cpp b/simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/inject.cpp new file mode 100644 index 000000000..532885df4 --- /dev/null +++ b/simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/inject.cpp @@ -0,0 +1,108 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +int sockfd = -1; +struct sockaddr_in servaddr; + +static __attribute__((constructor)) void init(void){ + /* + // Create socket + std::cout << "1" << std::endl; + if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) { + std::cerr << "Socket creation failed" << std::endl; + exit(1); + } + + std::cout << "2" << std::endl; + memset(&servaddr, 0, sizeof(servaddr)); + + // Server information + std::cout << "3" << std::endl; + servaddr.sin_family = AF_INET; + servaddr.sin_port = htons(65432); + if (inet_pton(AF_INET, "127.0.0.1", &servaddr.sin_addr) <= 0) { + std::cerr << "Invalid address/ Address not supported" << std::endl; + exit(1); + } + + // Connect to server + std::cout << "4" << std::endl; + if (connect(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr)) < 0) { + std::cerr << "Connection Failed" << std::endl; + exit(1); + } + //*/ +} + +void injected_function(unsigned long i){ + static auto start = std::chrono::high_resolution_clock::now(); + auto elapsed = std::chrono::high_resolution_clock::now() - start; + long long microseconds = std::chrono::duration_cast(elapsed).count(); + static long long prev_microseconds = microseconds; + static long long prev_i = i; + std::cout << "injected function " << microseconds << " " << (microseconds - prev_microseconds) << " " << i << " " << (i - prev_i) << " " << (i - microseconds) << std::endl; + std::cout << "size: " << sizeof(unsigned long) << std::endl; + prev_i = i; + prev_microseconds = microseconds; + + + if (sockfd == -1){ + // Create socket + std::cout << "1" << std::endl; + if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) { + std::cerr << "Socket creation failed" << std::endl; + exit(1); + } + + std::cout << "2" << std::endl; + memset(&servaddr, 0, sizeof(servaddr)); + + // Server information + std::cout << "3" << std::endl; + servaddr.sin_family = AF_INET; + servaddr.sin_port = htons(65432); + if (inet_pton(AF_INET, "127.0.0.1", &servaddr.sin_addr) <= 0) { + std::cerr << "Invalid address/ Address not supported" << std::endl; + exit(1); + } + + // Connect to server + std::cout << "4" << std::endl; + if (connect(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr)) < 0) { + std::cerr << "Connection Failed" << std::endl; + exit(1); + } + } + + // Send message + //* + char message_type = 't'; + uint8_t message[16];//sizeof(message_type) + sizeof(i)]; + std::memcpy(&message[0], &message_type, sizeof(message_type)); + std::memcpy(&message[sizeof(i)], &i, sizeof(i)); + send(sockfd, message, sizeof(message), 0); + //send(sockfd, &i, sizeof(i), 0); + + // Receive response + char buffer[1024] = {0}; + int time_to_sleep; + //int valread = read(sockfd, buffer, 1024); + int valread = read(sockfd, &time_to_sleep, sizeof(time_to_sleep)); + //std::cout << "Server: " << buffer << std::endl; + std::cout << "Server: " << time_to_sleep << std::endl; + if(time_to_sleep > 0) + usleep(time_to_sleep); + //*/ +} + + +static __attribute__((destructor)) void end(void){ + close(sockfd); +} diff --git a/simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/inject.so b/simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/inject.so new file mode 100755 index 0000000000000000000000000000000000000000..89008f3a7943bc6c73d5a7495be256cdf8d52b6e GIT binary patch literal 23024 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 Ux-{35&%Sw;(irbDaIxZl0b}+dX8-^I literal 0 HcmV?d00001 diff --git a/simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/mav.parm b/simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/mav.parm new file mode 100644 index 000000000..c5418a818 --- /dev/null +++ b/simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/mav.parm @@ -0,0 +1,1392 @@ +AA_ANG_KP_HI 5.250000 +AA_ANG_KP_IN 7.000000 +AA_ANG_KP_LO 4.000000 +AA_ANG_KP_SL -0.230000 +AA_AUTO_CONF 1.000000 +AA_BATT_CAP 6000.000000 +AA_BATT_NUM 1.000000 +AA_BATT_P 2.000000 +AA_BATT_R_HI 0.021000 +AA_BATT_S 12.000000 +AA_BLD_HUNG 3.000000 +AA_CAM_TYPE 0.000000 +AA_FTC_EN 1.000000 +AA_FTC_ON_RBT 1.000000 +AA_GCS_TYPE 4.000000 +AA_KS_MS 200.000000 +AA_NTRL_ANGL 20.000000 +AA_PAYLD_WT 0.000000 +AA_RAT_KD_HI 0.018000 +AA_RAT_KD_IN 0.004217 +AA_RAT_KD_LO 0.005000 +AA_RAT_KD_SL 0.000273 +AA_RAT_KI_HI 0.290000 +AA_RAT_KI_IN -0.038900 +AA_RAT_KI_LO 0.120000 +AA_RAT_KI_SL 0.022500 +AA_RAT_KP_HI 0.350000 +AA_RAT_KP_IN 0.021100 +AA_RAT_KP_LO 0.180000 +AA_RAT_KP_SL 0.022500 +AA_RPMH_SL 156.000000 +AA_RPMH_SL_HI 4000.000000 +AA_RPMH_SL_IN 1553.000000 +AA_RPMH_SL_LO 2700.000000 +AA_RPM_HOVER 2837.238770 +AA_STW_LND 1.000000 +AA_STW_LND_H 200.000000 +AA_TOP_MNT 0.000000 +AA_TOTAL_WT 8.232301 +AA_TPLE_EN 1.000000 +AA_VEHICLE 1.000000 +AA_VIS_SRC 0.000000 +ACRO_BAL_PITCH 1.000000 +ACRO_BAL_ROLL 1.000000 +ACRO_OPTIONS 0.000000 +ACRO_RP_EXPO 0.300000 +ACRO_RP_RATE 360.000000 +ACRO_RP_RATE_TC 0.000000 +ACRO_THR_MID 0.000000 +ACRO_TRAINER 2.000000 +ACRO_Y_EXPO 0.000000 +ACRO_Y_RATE 202.500000 +ACRO_Y_RATE_TC 0.000000 +ADSB_TYPE 0.000000 +AHRS_COMP_BETA 0.100000 +AHRS_EKF_TYPE 3.000000 +AHRS_GPS_GAIN 1.000000 +AHRS_GPS_MINSATS 6.000000 +AHRS_GPS_USE 1.000000 +AHRS_ORIENTATION 0.000000 +AHRS_RP_P 0.250000 +AHRS_TRIM_X 0.000107 +AHRS_TRIM_Y -0.000116 +AHRS_TRIM_Z 0.000000 +AHRS_WIND_MAX 0.000000 +AHRS_YAW_P 0.200000 +ANGLE_MAX 3000.000000 +ARMING_ACCTHRESH 0.750000 +ARMING_CHECK 1.000000 +ARMING_MIS_ITEMS 0.000000 +ARMING_OPTIONS 0.000000 +ARMING_RUDDER 2.000000 +ARSPD_TYPE 0.000000 +ATC_ACCEL_P_MAX 105909.296875 +ATC_ACCEL_R_MAX 105909.296875 +ATC_ACCEL_Y_MAX 36000.000000 +ATC_ANGLE_BOOST 1.000000 +ATC_ANG_LIM_TC 5.000000 +ATC_ANG_PIT_P 5.106571 +ATC_ANG_RLL_P 5.106571 +ATC_ANG_YAW_P 3.000000 +ATC_INPUT_TC 0.400000 +ATC_PIRO_COMP 1.000000 +ATC_RATE_FF_ENAB 1.000000 +ATC_RATE_P_MAX 120.000000 +ATC_RATE_R_MAX 120.000000 +ATC_RATE_Y_MAX 90.000000 +ATC_RAT_PIT_D 0.006466 +ATC_RAT_PIT_FF 0.000000 +ATC_RAT_PIT_FLTD 15.000000 +ATC_RAT_PIT_FLTE 15.000000 +ATC_RAT_PIT_FLTT 15.000000 +ATC_RAT_PIT_I 0.146327 +ATC_RAT_PIT_IMAX 0.600000 +ATC_RAT_PIT_P 0.206327 +ATC_RAT_PIT_SMAX 0.000000 +ATC_RAT_RLL_D 0.006466 +ATC_RAT_RLL_FF 0.000000 +ATC_RAT_RLL_FLTD 15.000000 +ATC_RAT_RLL_FLTE 15.000000 +ATC_RAT_RLL_FLTT 15.000000 +ATC_RAT_RLL_I 0.146327 +ATC_RAT_RLL_IMAX 0.600000 +ATC_RAT_RLL_P 0.206327 +ATC_RAT_RLL_SMAX 0.000000 +ATC_RAT_YAW_D 0.000000 +ATC_RAT_YAW_FF 0.000000 +ATC_RAT_YAW_FLTD 20.000000 +ATC_RAT_YAW_FLTE 2.500000 +ATC_RAT_YAW_FLTT 5.000000 +ATC_RAT_YAW_I 0.018000 +ATC_RAT_YAW_IMAX 0.300000 +ATC_RAT_YAW_P 0.180000 +ATC_RAT_YAW_SMAX 0.000000 +ATC_SLEW_YAW 6000.000000 +ATC_THR_MIX_MAN 0.500000 +ATC_THR_MIX_MAX 0.500000 +ATC_THR_MIX_MIN 0.100000 +AUTOTUNE_AGGR 0.075000 +AUTOTUNE_AXES 2.000000 +AUTOTUNE_MIN_D 0.002000 +AUTO_OPTIONS 0.000000 +AVD_ENABLE 0.000000 +AVOID_ACCEL_MAX 3.000000 +AVOID_ALT_MIN 0.000000 +AVOID_ANGLE_MAX 1500.000000 +AVOID_BACKUP_DZ 0.100000 +AVOID_BACKUP_SPD 0.750000 +AVOID_BEHAVE 0.000000 +AVOID_DIST_MAX 5.000000 +AVOID_ENABLE 1.000000 +AVOID_MARGIN 2.000000 +BARO1_DEVID 65540.000000 +BARO1_GND_PRESS 94503.125000 +BARO1_WCF_ENABLE 0.000000 +BARO2_DEVID 65796.000000 +BARO2_GND_PRESS 94502.125000 +BARO2_WCF_ENABLE 0.000000 +BARO3_DEVID 0.000000 +BARO3_GND_PRESS 0.000000 +BARO3_WCF_ENABLE 0.000000 +BARO_ALTERR_MAX 2000.000000 +BARO_ALT_OFFSET 0.000000 +BARO_EXT_BUS -1.000000 +BARO_FIELD_ELV 0.000000 +BARO_FLTR_RNG 30.000000 +BARO_GND_TEMP 0.000000 +BARO_OPTIONS 0.000000 +BARO_PRIMARY 0.000000 +BARO_PROBE_EXT 0.000000 +BATT2_MONITOR 0.000000 +BATT3_MONITOR 0.000000 +BATT4_MONITOR 0.000000 +BATT5_MONITOR 0.000000 +BATT6_MONITOR 0.000000 +BATT7_MONITOR 0.000000 +BATT8_MONITOR 0.000000 +BATT9_MONITOR 0.000000 +BATT_AMP_OFFSET 0.000000 +BATT_AMP_PERVLT 17.000000 +BATT_ARM_MAH 0.000000 +BATT_ARM_VOLT 0.000000 +BATT_CAPACITY 6000.000000 +BATT_CRT_MAH 0.000000 +BATT_CRT_VOLT 36.000000 +BATT_CURR_PIN 12.000000 +BATT_FS_CRT_ACT 0.000000 +BATT_FS_LOW_ACT 0.000000 +BATT_FS_VOLTSRC 0.000000 +BATT_LOW_MAH 0.000000 +BATT_LOW_TIMER 10.000000 +BATT_LOW_VOLT 38.000000 +BATT_MONITOR 4.000000 +BATT_OPTIONS 0.000000 +BATT_SERIAL_NUM -1.000000 +BATT_VLT_OFFSET 0.000000 +BATT_VOLT_MULT 10.100000 +BATT_VOLT_PIN 13.000000 +BCN_TYPE 0.000000 +BRD_BOOT_DELAY 0.000000 +BRD_OPTIONS 1.000000 +BRD_RTC_TYPES 1.000000 +BRD_RTC_TZ_MIN 0.000000 +BRD_SAFETYENABLE 0.000000 +BRD_SAFETYOPTION 0.000000 +BRD_SAFETY_MASK 0.000000 +BRD_SERIAL_NUM 0.000000 +BRD_VBUS_MIN 4.300000 +BRD_VSERVO_MIN 4.000000 +BTN_ENABLE 0.000000 +CAM_AUTO_ONLY 0.000000 +CAM_DURATION 10.000000 +CAM_FEEDBACK_PIN -1.000000 +CAM_FEEDBACK_POL 1.000000 +CAM_MAX_ROLL 0.000000 +CAM_MIN_INTERVAL 0.000000 +CAM_RC_TYPE 0.000000 +CAM_RELAY_ON 1.000000 +CAM_SERVO_OFF 1100.000000 +CAM_SERVO_ON 1300.000000 +CAM_TRIGG_DIST 0.000000 +CAM_TRIGG_TYPE 0.000000 +CAM_TYPE 0.000000 +CAN_D1_PROTOCOL 0.000000 +CAN_D2_PROTOCOL 0.000000 +CAN_LOGLEVEL 0.000000 +CAN_P1_DRIVER 0.000000 +CAN_P2_DRIVER 0.000000 +CAN_SLCAN_CPORT 0.000000 +CAN_SLCAN_SDELAY 1.000000 +CAN_SLCAN_SERNUM -1.000000 +CAN_SLCAN_TIMOUT 0.000000 +CC_TYPE 0.000000 +CHUTE_ENABLED 0.000000 +CIRCLE_OPTIONS 5.000000 +CIRCLE_RADIUS 6000.000000 +CIRCLE_RATE 8.000000 +COMPASS_AUTODEC 1.000000 +COMPASS_AUTO_ROT 2.000000 +COMPASS_CAL_FIT 32.000000 +COMPASS_DEC 0.220826 +COMPASS_DEV_ID 97539.000000 +COMPASS_DEV_ID2 131874.000000 +COMPASS_DEV_ID3 263178.000000 +COMPASS_DEV_ID4 97283.000000 +COMPASS_DEV_ID5 97795.000000 +COMPASS_DEV_ID6 98051.000000 +COMPASS_DEV_ID7 0.000000 +COMPASS_DEV_ID8 0.000000 +COMPASS_DIA2_X 1.000000 +COMPASS_DIA2_Y 1.000000 +COMPASS_DIA2_Z 1.000000 +COMPASS_DIA3_X 1.000000 +COMPASS_DIA3_Y 1.000000 +COMPASS_DIA3_Z 1.000000 +COMPASS_DIA_X 1.000000 +COMPASS_DIA_Y 1.000000 +COMPASS_DIA_Z 1.000000 +COMPASS_ENABLE 1.000000 +COMPASS_EXTERN2 0.000000 +COMPASS_EXTERN3 0.000000 +COMPASS_EXTERNAL 1.000000 +COMPASS_FLTR_RNG 30.000000 +COMPASS_LEARN 0.000000 +COMPASS_MOT2_X 0.000000 +COMPASS_MOT2_Y 0.000000 +COMPASS_MOT2_Z 0.000000 +COMPASS_MOT3_X 0.000000 +COMPASS_MOT3_Y 0.000000 +COMPASS_MOT3_Z 0.000000 +COMPASS_MOTCT 0.000000 +COMPASS_MOT_X 0.000000 +COMPASS_MOT_Y 0.000000 +COMPASS_MOT_Z 0.000000 +COMPASS_ODI2_X 0.000000 +COMPASS_ODI2_Y 0.000000 +COMPASS_ODI2_Z 0.000000 +COMPASS_ODI3_X 0.000000 +COMPASS_ODI3_Y 0.000000 +COMPASS_ODI3_Z 0.000000 +COMPASS_ODI_X 0.000000 +COMPASS_ODI_Y 0.000000 +COMPASS_ODI_Z 0.000000 +COMPASS_OFFS_MAX 1800.000000 +COMPASS_OFS2_X 5.000000 +COMPASS_OFS2_Y 13.000000 +COMPASS_OFS2_Z -18.000000 +COMPASS_OFS3_X 5.000000 +COMPASS_OFS3_Y 13.000000 +COMPASS_OFS3_Z -18.000000 +COMPASS_OFS_X 5.000000 +COMPASS_OFS_Y 13.000000 +COMPASS_OFS_Z -18.000000 +COMPASS_OPTIONS 0.000000 +COMPASS_ORIENT 0.000000 +COMPASS_ORIENT2 0.000000 +COMPASS_ORIENT3 0.000000 +COMPASS_PMOT_EN 0.000000 +COMPASS_PRIO1_ID 97539.000000 +COMPASS_PRIO2_ID 131874.000000 +COMPASS_PRIO3_ID 263178.000000 +COMPASS_SCALE 1.000000 +COMPASS_SCALE2 1.000000 +COMPASS_SCALE3 1.000000 +COMPASS_TYPEMASK 0.000000 +COMPASS_USE 1.000000 +COMPASS_USE2 1.000000 +COMPASS_USE3 0.000000 +CUST_ROT_ENABLE 0.000000 +DEV_OPTIONS 0.000000 +DID_ENABLE 0.000000 +DISARM_DELAY 8.000000 +EAHRS_TYPE 0.000000 +EFI_TYPE 0.000000 +EK2_ENABLE 0.000000 +EK3_ABIAS_P_NSE 0.003000 +EK3_ACC_BIAS_LIM 1.000000 +EK3_ACC_P_NSE 0.350000 +EK3_AFFINITY 0.000000 +EK3_ALT_M_NSE 2.000000 +EK3_BCN_DELAY 50.000000 +EK3_BCN_I_GTE 500.000000 +EK3_BCN_M_NSE 1.000000 +EK3_BETA_MASK 0.000000 +EK3_CHECK_SCALE 100.000000 +EK3_DRAG_BCOEF_X 0.000000 +EK3_DRAG_BCOEF_Y 0.000000 +EK3_DRAG_MCOEF 0.000000 +EK3_DRAG_M_NSE 0.500000 +EK3_EAS_I_GATE 400.000000 +EK3_EAS_M_NSE 1.400000 +EK3_ENABLE 1.000000 +EK3_ERR_THRESH 0.200000 +EK3_FLOW_DELAY 10.000000 +EK3_FLOW_I_GATE 300.000000 +EK3_FLOW_M_NSE 0.250000 +EK3_FLOW_USE 1.000000 +EK3_GBIAS_P_NSE 0.001000 +EK3_GLITCH_RAD 25.000000 +EK3_GND_EFF_DZ 4.000000 +EK3_GPS_CHECK 31.000000 +EK3_GPS_VACC_MAX 0.000000 +EK3_GSF_RST_MAX 2.000000 +EK3_GSF_RUN_MASK 7.000000 +EK3_GSF_USE_MASK 7.000000 +EK3_GYRO_P_NSE 0.015000 +EK3_HGT_DELAY 60.000000 +EK3_HGT_I_GATE 500.000000 +EK3_HRT_FILT 2.000000 +EK3_IMU_MASK 7.000000 +EK3_LOG_LEVEL 0.000000 +EK3_MAGB_P_NSE 0.000100 +EK3_MAGE_P_NSE 0.001000 +EK3_MAG_CAL 3.000000 +EK3_MAG_EF_LIM 50.000000 +EK3_MAG_I_GATE 300.000000 +EK3_MAG_MASK 0.000000 +EK3_MAG_M_NSE 0.050000 +EK3_MAX_FLOW 2.500000 +EK3_NOAID_M_NSE 10.000000 +EK3_OGNM_TEST_SF 2.000000 +EK3_OGN_HGT_MASK 0.000000 +EK3_POSNE_M_NSE 0.500000 +EK3_POS_I_GATE 500.000000 +EK3_PRIMARY 1.000000 +EK3_RNG_I_GATE 500.000000 +EK3_RNG_M_NSE 0.500000 +EK3_RNG_USE_HGT -1.000000 +EK3_RNG_USE_SPD 2.000000 +EK3_SRC1_POSXY 3.000000 +EK3_SRC1_POSZ 1.000000 +EK3_SRC1_VELXY 3.000000 +EK3_SRC1_VELZ 3.000000 +EK3_SRC1_YAW 1.000000 +EK3_SRC2_POSXY 0.000000 +EK3_SRC2_POSZ 1.000000 +EK3_SRC2_VELXY 0.000000 +EK3_SRC2_VELZ 0.000000 +EK3_SRC2_YAW 0.000000 +EK3_SRC3_POSXY 0.000000 +EK3_SRC3_POSZ 1.000000 +EK3_SRC3_VELXY 0.000000 +EK3_SRC3_VELZ 0.000000 +EK3_SRC3_YAW 0.000000 +EK3_SRC_OPTIONS 1.000000 +EK3_TAU_OUTPUT 25.000000 +EK3_TERR_GRAD 0.100000 +EK3_VELD_M_NSE 0.500000 +EK3_VELNE_M_NSE 0.300000 +EK3_VEL_I_GATE 500.000000 +EK3_VIS_VERR_MAX 0.900000 +EK3_VIS_VERR_MIN 0.100000 +EK3_WENC_VERR 0.100000 +EK3_WIND_PSCALE 1.000000 +EK3_WIND_P_NSE 0.200000 +EK3_YAW_I_GATE 300.000000 +EK3_YAW_M_NSE 0.500000 +ESC_CALIBRATION 0.000000 +ESC_TLM_MAV_OFS 0.000000 +FENCE_ACTION 0.000000 +FENCE_ALT_MAX 100.000000 +FENCE_ALT_MIN -30.000000 +FENCE_ENABLE 0.000000 +FENCE_MARGIN 2.000000 +FENCE_RADIUS 152.399994 +FENCE_TOTAL 0.000000 +FENCE_TYPE 0.000000 +FFT_ENABLE 0.000000 +FHLD_BRAKE_RATE 8.000000 +FHLD_FILT_HZ 5.000000 +FHLD_FLOW_MAX 0.600000 +FHLD_QUAL_MIN 10.000000 +FHLD_XY_FILT_HZ 5.000000 +FHLD_XY_I 0.300000 +FHLD_XY_IMAX 3000.000000 +FHLD_XY_P 0.200000 +FLIGHT_OPTIONS 0.000000 +FLOW_TYPE 0.000000 +FLTMODE1 2.000000 +FLTMODE2 2.000000 +FLTMODE3 5.000000 +FLTMODE4 6.000000 +FLTMODE5 6.000000 +FLTMODE6 6.000000 +FLTMODE_CH 0.000000 +FOLL_ENABLE 0.000000 +FORMAT_VERSION 120.000000 +FRAME_CLASS 9.000000 +FRAME_TYPE 1.000000 +FRSKY_DNLINK1_ID 20.000000 +FRSKY_DNLINK2_ID 7.000000 +FRSKY_DNLINK_ID 27.000000 +FRSKY_OPTIONS 0.000000 +FRSKY_UPLINK_ID 13.000000 +FS_CRASH_CHECK 1.000000 +FS_DR_ENABLE 0.000000 +FS_DR_TIMEOUT 30.000000 +FS_EKF_ACTION 2.000000 +FS_EKF_THRESH 0.800000 +FS_GCS_ENABLE 1.000000 +FS_GCS_TIMEOUT 5.000000 +FS_OPTIONS 8.000000 +FS_THR_ENABLE 1.000000 +FS_THR_VALUE 950.000000 +FS_VIBE_ENABLE 1.000000 +GCS_PID_MASK 0.000000 +GEN_TYPE 0.000000 +GND_EFFECT_COMP 1.000000 +GPS1_CAN_OVRIDE 0.000000 +GPS2_CAN_OVRIDE 0.000000 +GPS_AUTO_CONFIG 1.000000 +GPS_AUTO_SWITCH 1.000000 +GPS_BLEND_MASK 5.000000 +GPS_BLEND_TC 10.000000 +GPS_CAN_NODEID1 0.000000 +GPS_CAN_NODEID2 0.000000 +GPS_COM_PORT 1.000000 +GPS_COM_PORT2 1.000000 +GPS_DELAY_MS 0.000000 +GPS_DELAY_MS2 0.000000 +GPS_DRV_OPTIONS 0.000000 +GPS_GNSS_MODE 0.000000 +GPS_GNSS_MODE2 0.000000 +GPS_HDOP_GOOD 140.000000 +GPS_INJECT_TO 127.000000 +GPS_MB1_TYPE 0.000000 +GPS_MB2_TYPE 0.000000 +GPS_MIN_DGPS 100.000000 +GPS_MIN_ELEV -100.000000 +GPS_NAVFILTER 8.000000 +GPS_POS1_X 0.000000 +GPS_POS1_Y 0.000000 +GPS_POS1_Z -0.200000 +GPS_POS2_X 0.000000 +GPS_POS2_Y 0.000000 +GPS_POS2_Z 0.000000 +GPS_PRIMARY 0.000000 +GPS_RATE_MS 200.000000 +GPS_RATE_MS2 200.000000 +GPS_RAW_DATA 0.000000 +GPS_SAVE_CFG 2.000000 +GPS_SBAS_MODE 2.000000 +GPS_SBP_LOGMASK -256.000000 +GPS_TYPE 1.000000 +GPS_TYPE2 0.000000 +GRIP_ENABLE 0.000000 +GUID_OPTIONS 0.000000 +GUID_TIMEOUT 3.000000 +INITIAL_MODE 2.000000 +INS_ACC1_CALTEMP 25.018280 +INS_ACC2OFFS_X 0.001000 +INS_ACC2OFFS_Y 0.001000 +INS_ACC2OFFS_Z 0.001000 +INS_ACC2SCAL_X 1.000000 +INS_ACC2SCAL_Y 1.000000 +INS_ACC2SCAL_Z 1.000000 +INS_ACC2_CALTEMP 25.018280 +INS_ACC2_ID 2753036.000000 +INS_ACC3OFFS_X 0.001000 +INS_ACC3OFFS_Y 0.001000 +INS_ACC3OFFS_Z 0.001000 +INS_ACC3SCAL_X 1.000000 +INS_ACC3SCAL_Y 1.000000 +INS_ACC3SCAL_Z 1.000000 +INS_ACC3_CALTEMP -300.000000 +INS_ACC3_ID 2753044.000000 +INS_ACCEL_FILTER 20.000000 +INS_ACCOFFS_X 0.001000 +INS_ACCOFFS_Y 0.001000 +INS_ACCOFFS_Z 0.001000 +INS_ACCSCAL_X 1.000000 +INS_ACCSCAL_Y 1.000000 +INS_ACCSCAL_Z 1.000000 +INS_ACC_BODYFIX 1.000000 +INS_ACC_ID 2753028.000000 +INS_ENABLE_MASK 127.000000 +INS_FAST_SAMPLE 7.000000 +INS_GYR1_CALTEMP 26.901920 +INS_GYR2OFFS_X 0.000474 +INS_GYR2OFFS_Y 0.000467 +INS_GYR2OFFS_Z 0.000444 +INS_GYR2_CALTEMP 26.901920 +INS_GYR2_ID 2752780.000000 +INS_GYR3OFFS_X 0.000471 +INS_GYR3OFFS_Y 0.000466 +INS_GYR3OFFS_Z 0.000460 +INS_GYR3_CALTEMP 26.901920 +INS_GYR3_ID 2752788.000000 +INS_GYROFFS_X 0.000471 +INS_GYROFFS_Y 0.000449 +INS_GYROFFS_Z 0.000465 +INS_GYRO_FILTER 20.000000 +INS_GYRO_RATE 2.000000 +INS_GYR_CAL 0.000000 +INS_GYR_ID 2752772.000000 +INS_HNTC2_ATT 40.000000 +INS_HNTC2_BW 40.000000 +INS_HNTC2_ENABLE 1.000000 +INS_HNTC2_FM_RAT 1.000000 +INS_HNTC2_FREQ 80.000000 +INS_HNTC2_HMNCS 3.000000 +INS_HNTC2_MODE 1.000000 +INS_HNTC2_OPTS 0.000000 +INS_HNTC2_REF 0.000000 +INS_HNTCH_ATT 40.000000 +INS_HNTCH_BW 40.000000 +INS_HNTCH_ENABLE 1.000000 +INS_HNTCH_FM_RAT 1.000000 +INS_HNTCH_FREQ 80.000000 +INS_HNTCH_HMNCS 3.000000 +INS_HNTCH_MODE 1.000000 +INS_HNTCH_OPTS 0.000000 +INS_HNTCH_REF 0.000000 +INS_LOG_BAT_CNT 1024.000000 +INS_LOG_BAT_LGCT 32.000000 +INS_LOG_BAT_LGIN 20.000000 +INS_LOG_BAT_MASK 0.000000 +INS_LOG_BAT_OPT 0.000000 +INS_POS1_X 0.000000 +INS_POS1_Y 0.000000 +INS_POS1_Z 0.150000 +INS_POS2_X 0.000000 +INS_POS2_Y 0.000000 +INS_POS2_Z 0.150000 +INS_POS3_X 0.000000 +INS_POS3_Y 0.000000 +INS_POS3_Z 0.150000 +INS_STILL_THRESH 2.500000 +INS_TCAL1_ENABLE 0.000000 +INS_TCAL2_ENABLE 0.000000 +INS_TCAL3_ENABLE 0.000000 +INS_TCAL_OPTIONS 0.000000 +INS_TRIM_OPTION 1.000000 +INS_USE 1.000000 +INS_USE2 1.000000 +INS_USE3 1.000000 +LAND_ALT_LOW 1200.000000 +LAND_REPOSITION 1.000000 +LAND_SPEED 75.000000 +LAND_SPEED_HIGH 200.000000 +LGR_ENABLE 0.000000 +LOG_BACKEND_TYPE 1.000000 +LOG_BITMASK 161790.000000 +LOG_BLK_RATEMAX 0.000000 +LOG_DISARMED 0.000000 +LOG_FILE_BUFSIZE 32.000000 +LOG_FILE_DSRMROT 0.000000 +LOG_FILE_MB_FREE 500.000000 +LOG_FILE_RATEMAX 0.000000 +LOG_FILE_TIMEOUT 5.000000 +LOG_FORCE_NOLOG 0.000000 +LOG_MAV_BUFSIZE 8.000000 +LOG_MAV_RATEMAX 0.000000 +LOG_REPLAY 0.000000 +LOIT_ACC_MAX 300.000000 +LOIT_ANG_MAX 0.000000 +LOIT_BRK_ACCEL 200.000000 +LOIT_BRK_DELAY 0.500000 +LOIT_BRK_JERK 750.000000 +LOIT_SPEED 1500.000000 +MIS_OPTIONS 0.000000 +MIS_RESTART 0.000000 +MIS_TOTAL 0.000000 +MNT1_TYPE 0.000000 +MNT2_TYPE 0.000000 +MOT_BAT_CURR_MAX 0.000000 +MOT_BAT_CURR_TC 1.000000 +MOT_BAT_IDX 0.000000 +MOT_BAT_VOLT_MAX 0.000000 +MOT_BAT_VOLT_MIN 0.000000 +MOT_BOOST_SCALE 0.000000 +MOT_EN_RPM_COMP 1.000000 +MOT_HOVER_LEARN 1.000000 +MOT_PWM_MAX 1900.000000 +MOT_PWM_MIN 1090.000000 +MOT_PWM_TYPE 0.000000 +MOT_RPM_DEADBAND 400.000000 +MOT_RPM_SCALE 0.400000 +MOT_RP_LAG 0.000000 +MOT_SAFE_DISARM 0.000000 +MOT_SAFE_TIME 1.000000 +MOT_SLEW_DN_TIME 0.250000 +MOT_SLEW_UP_TIME 0.500000 +MOT_SPIN_ARM 0.200000 +MOT_SPIN_MAX 0.990000 +MOT_SPIN_MIN 0.200000 +MOT_SPOOL_TIME 1.000000 +MOT_THST_EXPO 0.500000 +MOT_THST_HOVER 0.400000 +MOT_YAW_HEADROOM 50.000000 +MSP_OPTIONS 0.000000 +MSP_OSD_NCELLS 0.000000 +NTF_BUZZ_ON_LVL 1.000000 +NTF_BUZZ_PIN -1.000000 +NTF_BUZZ_TYPES 0.000000 +NTF_BUZZ_VOLUME 100.000000 +NTF_DISPLAY_TYPE 0.000000 +NTF_LED_BRIGHT 3.000000 +NTF_LED_LEN 1.000000 +NTF_LED_OVERRIDE 0.000000 +NTF_LED_TYPES 8.000000 +OA_TYPE 0.000000 +OSD_TYPE 0.000000 +PHLD_BRAKE_ANGLE 3000.000000 +PHLD_BRAKE_RATE 12.000000 +PILOT_ACCEL_Z 250.000000 +PILOT_SPEED_DN 250.000000 +PILOT_SPEED_UP 400.000000 +PILOT_THR_BHV 3.000000 +PILOT_THR_FILT 3.000000 +PILOT_TKOFF_ALT 500.000000 +PILOT_Y_EXPO 0.000000 +PILOT_Y_RATE 202.500000 +PILOT_Y_RATE_TC 0.000000 +PLND_ENABLED 0.000000 +PRX1_TYPE 0.000000 +PRX2_TYPE 0.000000 +PRX3_TYPE 0.000000 +PRX_FILT 0.250000 +PRX_IGN_GND 0.000000 +PRX_LOG_RAW 0.000000 +PSC_ACCZ_D 0.000000 +PSC_ACCZ_FF 0.000000 +PSC_ACCZ_FLTD 15.000000 +PSC_ACCZ_FLTE 15.000000 +PSC_ACCZ_FLTT 10.000000 +PSC_ACCZ_I 1.000000 +PSC_ACCZ_IMAX 500.000000 +PSC_ACCZ_P 0.500000 +PSC_ACCZ_SMAX 0.000000 +PSC_ANGLE_MAX 0.000000 +PSC_JERK_XY 5.000000 +PSC_JERK_Z 5.000000 +PSC_POSXY_P 0.500000 +PSC_POSZ_P 1.000000 +PSC_VELXY_D 0.300000 +PSC_VELXY_FF 0.000000 +PSC_VELXY_FLTD 10.000000 +PSC_VELXY_FLTE 10.000000 +PSC_VELXY_I 0.400000 +PSC_VELXY_IMAX 500.000000 +PSC_VELXY_P 1.000000 +PSC_VELZ_D 0.000000 +PSC_VELZ_FF 0.000000 +PSC_VELZ_FLTD 5.000000 +PSC_VELZ_FLTE 5.000000 +PSC_VELZ_I 0.000000 +PSC_VELZ_IMAX 1000.000000 +PSC_VELZ_P 2.500000 +RALLY_INCL_HOME 1.000000 +RALLY_LIMIT_KM 0.300000 +RALLY_TOTAL 0.000000 +RC10_DZ 0.000000 +RC10_MAX 1995.000000 +RC10_MIN 1105.000000 +RC10_OPTION 0.000000 +RC10_REVERSED 0.000000 +RC10_TRIM 1105.000000 +RC11_DZ 0.000000 +RC11_MAX 1995.000000 +RC11_MIN 1105.000000 +RC11_OPTION 0.000000 +RC11_REVERSED 0.000000 +RC11_TRIM 1105.000000 +RC12_DZ 0.000000 +RC12_MAX 1900.000000 +RC12_MIN 1100.000000 +RC12_OPTION 0.000000 +RC12_REVERSED 0.000000 +RC12_TRIM 1500.000000 +RC13_DZ 0.000000 +RC13_MAX 1900.000000 +RC13_MIN 1100.000000 +RC13_OPTION 0.000000 +RC13_REVERSED 0.000000 +RC13_TRIM 1500.000000 +RC14_DZ 0.000000 +RC14_MAX 1900.000000 +RC14_MIN 1100.000000 +RC14_OPTION 0.000000 +RC14_REVERSED 0.000000 +RC14_TRIM 1500.000000 +RC15_DZ 0.000000 +RC15_MAX 1900.000000 +RC15_MIN 1100.000000 +RC15_OPTION 0.000000 +RC15_REVERSED 0.000000 +RC15_TRIM 1500.000000 +RC16_DZ 0.000000 +RC16_MAX 1900.000000 +RC16_MIN 1100.000000 +RC16_OPTION 0.000000 +RC16_REVERSED 0.000000 +RC16_TRIM 1500.000000 +RC1_DZ 30.000000 +RC1_MAX 1927.000000 +RC1_MIN 1102.000000 +RC1_OPTION 0.000000 +RC1_REVERSED 0.000000 +RC1_TRIM 1515.000000 +RC2_DZ 30.000000 +RC2_MAX 1927.000000 +RC2_MIN 1102.000000 +RC2_OPTION 0.000000 +RC2_REVERSED 0.000000 +RC2_TRIM 1515.000000 +RC3_DZ 30.000000 +RC3_MAX 1927.000000 +RC3_MIN 1102.000000 +RC3_OPTION 0.000000 +RC3_REVERSED 0.000000 +RC3_TRIM 1515.000000 +RC4_DZ 30.000000 +RC4_MAX 1927.000000 +RC4_MIN 1102.000000 +RC4_OPTION 0.000000 +RC4_REVERSED 0.000000 +RC4_TRIM 1515.000000 +RC5_DZ 0.000000 +RC5_MAX 1900.000000 +RC5_MIN 1100.000000 +RC5_OPTION 0.000000 +RC5_REVERSED 0.000000 +RC5_TRIM 1500.000000 +RC6_DZ 30.000000 +RC6_MAX 1927.000000 +RC6_MIN 1102.000000 +RC6_OPTION 0.000000 +RC6_REVERSED 0.000000 +RC6_TRIM 1515.000000 +RC7_DZ 0.000000 +RC7_MAX 1995.000000 +RC7_MIN 1105.000000 +RC7_OPTION 0.000000 +RC7_REVERSED 0.000000 +RC7_TRIM 1105.000000 +RC8_DZ 0.000000 +RC8_MAX 1995.000000 +RC8_MIN 1105.000000 +RC8_OPTION 0.000000 +RC8_REVERSED 0.000000 +RC8_TRIM 1105.000000 +RC9_DZ 10.000000 +RC9_MAX 1995.000000 +RC9_MIN 1105.000000 +RC9_OPTION 0.000000 +RC9_REVERSED 0.000000 +RC9_TRIM 1105.000000 +RCMAP_PITCH 2.000000 +RCMAP_ROLL 1.000000 +RCMAP_THROTTLE 3.000000 +RCMAP_YAW 4.000000 +RC_OPTIONS 0.000000 +RC_OVERRIDE_TIME 3.000000 +RC_PROTOCOLS 1.000000 +RC_SPEED 490.000000 +RELAY_DEFAULT 0.000000 +RELAY_PIN -1.000000 +RELAY_PIN2 -1.000000 +RELAY_PIN3 -1.000000 +RELAY_PIN4 -1.000000 +RELAY_PIN5 -1.000000 +RELAY_PIN6 -1.000000 +RNGFND1_TYPE 0.000000 +RNGFND2_TYPE 0.000000 +RNGFND3_TYPE 0.000000 +RNGFND4_TYPE 0.000000 +RNGFND5_TYPE 0.000000 +RNGFND6_TYPE 0.000000 +RNGFND7_TYPE 0.000000 +RNGFND8_TYPE 0.000000 +RNGFND9_TYPE 0.000000 +RNGFNDA_TYPE 0.000000 +RNGFND_FILT 0.500000 +RPM1_ESC_MASK 0.000000 +RPM1_MAX 100000.000000 +RPM1_MIN 10.000000 +RPM1_MIN_QUAL 0.500000 +RPM1_PIN -1.000000 +RPM1_SCALING 1.000000 +RPM1_TYPE 10.000000 +RPM2_ESC_MASK 0.000000 +RPM2_MAX 100000.000000 +RPM2_MIN 10.000000 +RPM2_MIN_QUAL 0.500000 +RPM2_PIN -1.000000 +RPM2_SCALING 1.000000 +RPM2_TYPE 10.000000 +RSSI_TYPE 0.000000 +RTL_ALT 1500.000000 +RTL_ALT_FINAL 0.000000 +RTL_ALT_TYPE 0.000000 +RTL_CLIMB_MIN 0.000000 +RTL_CONE_SLOPE 3.000000 +RTL_LOIT_TIME 2000.000000 +RTL_OPTIONS 0.000000 +RTL_SPEED 1500.000000 +SCHED_DEBUG 0.000000 +SCHED_LOOP_RATE 400.000000 +SCHED_OPTIONS 0.000000 +SCR_ENABLE 0.000000 +SERIAL0_BAUD 115.000000 +SERIAL0_PROTOCOL 2.000000 +SERIAL1_BAUD 57.000000 +SERIAL1_OPTIONS 0.000000 +SERIAL1_PROTOCOL 2.000000 +SERIAL2_BAUD 0.000000 +SERIAL2_OPTIONS 0.000000 +SERIAL2_PROTOCOL 0.000000 +SERIAL3_BAUD 38.000000 +SERIAL3_OPTIONS 0.000000 +SERIAL3_PROTOCOL 5.000000 +SERIAL4_BAUD 38.000000 +SERIAL4_OPTIONS 0.000000 +SERIAL4_PROTOCOL 5.000000 +SERIAL5_BAUD 57.000000 +SERIAL5_OPTIONS 0.000000 +SERIAL5_PROTOCOL -1.000000 +SERIAL6_BAUD 57.000000 +SERIAL6_OPTIONS 0.000000 +SERIAL6_PROTOCOL -1.000000 +SERIAL7_BAUD 57.000000 +SERIAL7_OPTIONS 0.000000 +SERIAL7_PROTOCOL -1.000000 +SERIAL_PASS1 0.000000 +SERIAL_PASS2 -1.000000 +SERIAL_PASSTIMO 15.000000 +SERVO10_FUNCTION 0.000000 +SERVO10_MAX 1900.000000 +SERVO10_MIN 1100.000000 +SERVO10_REVERSED 0.000000 +SERVO10_TRIM 1500.000000 +SERVO11_FUNCTION 0.000000 +SERVO11_MAX 1900.000000 +SERVO11_MIN 1100.000000 +SERVO11_REVERSED 0.000000 +SERVO11_TRIM 1100.000000 +SERVO12_FUNCTION 0.000000 +SERVO12_MAX 1900.000000 +SERVO12_MIN 1100.000000 +SERVO12_REVERSED 0.000000 +SERVO12_TRIM 1500.000000 +SERVO13_FUNCTION 0.000000 +SERVO13_MAX 1900.000000 +SERVO13_MIN 1100.000000 +SERVO13_REVERSED 0.000000 +SERVO13_TRIM 0.000000 +SERVO14_FUNCTION 0.000000 +SERVO14_MAX 1900.000000 +SERVO14_MIN 1100.000000 +SERVO14_REVERSED 0.000000 +SERVO14_TRIM 1500.000000 +SERVO15_FUNCTION 0.000000 +SERVO15_MAX 1900.000000 +SERVO15_MIN 1100.000000 +SERVO15_REVERSED 0.000000 +SERVO15_TRIM 1500.000000 +SERVO16_FUNCTION 0.000000 +SERVO16_MAX 1900.000000 +SERVO16_MIN 1100.000000 +SERVO16_REVERSED 0.000000 +SERVO16_TRIM 1500.000000 +SERVO1_FUNCTION 34.000000 +SERVO1_MAX 2100.000000 +SERVO1_MIN 900.000000 +SERVO1_REVERSED 1.000000 +SERVO1_TRIM 1500.000000 +SERVO2_FUNCTION 33.000000 +SERVO2_MAX 2100.000000 +SERVO2_MIN 900.000000 +SERVO2_REVERSED 0.000000 +SERVO2_TRIM 1500.000000 +SERVO3_FUNCTION 35.000000 +SERVO3_MAX 2000.000000 +SERVO3_MIN 1000.000000 +SERVO3_REVERSED 0.000000 +SERVO3_TRIM 1000.000000 +SERVO4_FUNCTION 36.000000 +SERVO4_MAX 2000.000000 +SERVO4_MIN 1000.000000 +SERVO4_REVERSED 0.000000 +SERVO4_TRIM 1000.000000 +SERVO5_FUNCTION 0.000000 +SERVO5_MAX 1801.000000 +SERVO5_MIN 1200.000000 +SERVO5_REVERSED 0.000000 +SERVO5_TRIM 1501.000000 +SERVO6_FUNCTION 0.000000 +SERVO6_MAX 2001.000000 +SERVO6_MIN 1000.000000 +SERVO6_REVERSED 0.000000 +SERVO6_TRIM 1500.000000 +SERVO7_FUNCTION 0.000000 +SERVO7_MAX 1994.000000 +SERVO7_MIN 1003.000000 +SERVO7_REVERSED 0.000000 +SERVO7_TRIM 1504.000000 +SERVO8_FUNCTION 0.000000 +SERVO8_MAX 2001.000000 +SERVO8_MIN 1005.000000 +SERVO8_REVERSED 1.000000 +SERVO8_TRIM 1500.000000 +SERVO9_FUNCTION 0.000000 +SERVO9_MAX 1900.000000 +SERVO9_MIN 1100.000000 +SERVO9_REVERSED 0.000000 +SERVO9_TRIM 1500.000000 +SERVO_32_ENABLE 0.000000 +SERVO_DSHOT_ESC 0.000000 +SERVO_DSHOT_RATE 0.000000 +SERVO_FTW_MASK 0.000000 +SERVO_FTW_POLES 14.000000 +SERVO_FTW_RVMASK 0.000000 +SERVO_GPIO_MASK 32512.000000 +SERVO_RATE 200.000000 +SERVO_ROB_POSMAX 4095.000000 +SERVO_ROB_POSMIN 0.000000 +SERVO_SBUS_RATE 200.000000 +SERVO_VOLZ_MASK 0.000000 +SID_AXIS 0.000000 +SIMPLE 0.000000 +SIM_ACC1_BIAS_X 0.000000 +SIM_ACC1_BIAS_Y 0.000000 +SIM_ACC1_BIAS_Z 0.000000 +SIM_ACC1_RND 0.000000 +SIM_ACC1_SCAL_X 0.000000 +SIM_ACC1_SCAL_Y 0.000000 +SIM_ACC1_SCAL_Z 0.000000 +SIM_ACC2_BIAS_X 0.000000 +SIM_ACC2_BIAS_Y 0.000000 +SIM_ACC2_BIAS_Z 0.000000 +SIM_ACC2_RND 0.000000 +SIM_ACC2_SCAL_X 0.000000 +SIM_ACC2_SCAL_Y 0.000000 +SIM_ACC2_SCAL_Z 0.000000 +SIM_ACC3_BIAS_X 0.000000 +SIM_ACC3_BIAS_Y 0.000000 +SIM_ACC3_BIAS_Z 0.000000 +SIM_ACC3_RND 0.000000 +SIM_ACC3_SCAL_X 0.000000 +SIM_ACC3_SCAL_Y 0.000000 +SIM_ACC3_SCAL_Z 0.000000 +SIM_ACCEL1_FAIL 0.000000 +SIM_ACCEL2_FAIL 0.000000 +SIM_ACCEL3_FAIL 0.000000 +SIM_ACC_FAIL_MSK 0.000000 +SIM_ACC_TRIM_X 0.000000 +SIM_ACC_TRIM_Y 0.000000 +SIM_ACC_TRIM_Z 0.000000 +SIM_ADSB_ALT 1000.000000 +SIM_ADSB_COUNT -1.000000 +SIM_ADSB_RADIUS 10000.000000 +SIM_ADSB_TX 0.000000 +SIM_ARSPD2_FAIL 0.000000 +SIM_ARSPD2_FAILP 0.000000 +SIM_ARSPD2_OFS 2013.000000 +SIM_ARSPD2_PITOT 0.000000 +SIM_ARSPD2_RATIO 1.990000 +SIM_ARSPD2_RND 2.000000 +SIM_ARSPD2_SIGN 0.000000 +SIM_ARSPD_FAIL 0.000000 +SIM_ARSPD_FAILP 0.000000 +SIM_ARSPD_OFS 2013.000000 +SIM_ARSPD_PITOT 0.000000 +SIM_ARSPD_RATIO 1.990000 +SIM_ARSPD_RND 2.000000 +SIM_ARSPD_SIGN 0.000000 +SIM_BAR2_DELAY 0.000000 +SIM_BAR2_DISABLE 0.000000 +SIM_BAR2_DRIFT 0.000000 +SIM_BAR2_FREEZE 0.000000 +SIM_BAR2_GLITCH 0.000000 +SIM_BAR2_RND 0.200000 +SIM_BAR2_WCF_BAK 0.000000 +SIM_BAR2_WCF_FWD 0.000000 +SIM_BAR2_WCF_LFT 0.000000 +SIM_BAR2_WCF_RGT 0.000000 +SIM_BAR3_DELAY 0.000000 +SIM_BAR3_DISABLE 0.000000 +SIM_BAR3_DRIFT 0.000000 +SIM_BAR3_FREEZE 0.000000 +SIM_BAR3_GLITCH 0.000000 +SIM_BAR3_RND 0.200000 +SIM_BAR3_WCF_BAK 0.000000 +SIM_BAR3_WCF_FWD 0.000000 +SIM_BAR3_WCF_LFT 0.000000 +SIM_BAR3_WCF_RGT 0.000000 +SIM_BARO_COUNT 2.000000 +SIM_BARO_DELAY 0.000000 +SIM_BARO_DISABLE 0.000000 +SIM_BARO_DRIFT 0.000000 +SIM_BARO_FREEZE 0.000000 +SIM_BARO_GLITCH 0.000000 +SIM_BARO_RND 0.200000 +SIM_BARO_WCF_BAK 0.000000 +SIM_BARO_WCF_FWD 0.000000 +SIM_BARO_WCF_LFT 0.000000 +SIM_BARO_WCF_RGT 0.000000 +SIM_BATT_CAP_AH 17.000000 +SIM_BATT_NUM 1.000000 +SIM_BATT_RES_OHM 0.070000 +SIM_BATT_VOLTAGE 500.000000 +SIM_BAUDLIMIT_EN 0.000000 +SIM_CORE_KG 2.330000 +SIM_DRIFT_SPEED 0.050000 +SIM_DRIFT_TIME 5.000000 +SIM_EFI_TYPE 0.000000 +SIM_ENGINE_FAIL 0.000000 +SIM_ENGINE_MUL 1.000000 +SIM_ESC_ARM_RPM 0.000000 +SIM_ESC_TELEM 1.000000 +SIM_FLOAT_EXCEPT 1.000000 +SIM_FLOW_DELAY 0.000000 +SIM_FLOW_ENABLE 0.000000 +SIM_FLOW_POS_X 0.000000 +SIM_FLOW_POS_Y 0.000000 +SIM_FLOW_POS_Z 0.000000 +SIM_FLOW_RATE 10.000000 +SIM_FLOW_RND 0.050000 +SIM_FTOWESC_ENA 0.000000 +SIM_FTOWESC_POW 4095.000000 +SIM_GND_BEHAV -1.000000 +SIM_GPS2_ACC 0.300000 +SIM_GPS2_ALT_OFS 0.000000 +SIM_GPS2_BYTELOS 0.000000 +SIM_GPS2_DISABLE 0.000000 +SIM_GPS2_DRFTALT 0.000000 +SIM_GPS2_GLTCH_X 0.000000 +SIM_GPS2_GLTCH_Y 0.000000 +SIM_GPS2_GLTCH_Z 0.000000 +SIM_GPS2_HDG 0.000000 +SIM_GPS2_HZ 5.000000 +SIM_GPS2_LAG_MS 100.000000 +SIM_GPS2_LCKTIME 0.000000 +SIM_GPS2_NOISE 0.000000 +SIM_GPS2_NUMSATS 10.000000 +SIM_GPS2_POS_X 0.000000 +SIM_GPS2_POS_Y 0.000000 +SIM_GPS2_POS_Z 0.000000 +SIM_GPS2_TYPE 1.000000 +SIM_GPS2_VERR_X 0.000000 +SIM_GPS2_VERR_Y 0.000000 +SIM_GPS2_VERR_Z 0.000000 +SIM_GPS_ACC 0.300000 +SIM_GPS_ALT_OFS 0.000000 +SIM_GPS_BYTELOSS 0.000000 +SIM_GPS_DISABLE 0.000000 +SIM_GPS_DRIFTALT 0.000000 +SIM_GPS_GLITCH_X 0.000000 +SIM_GPS_GLITCH_Y 0.000000 +SIM_GPS_GLITCH_Z 0.000000 +SIM_GPS_HDG 0.000000 +SIM_GPS_HZ 5.000000 +SIM_GPS_LAG_MS 100.000000 +SIM_GPS_LOCKTIME 0.000000 +SIM_GPS_NOISE 0.000000 +SIM_GPS_NUMSATS 10.000000 +SIM_GPS_POS_X 0.000000 +SIM_GPS_POS_Y 0.000000 +SIM_GPS_POS_Z 0.000000 +SIM_GPS_TYPE 1.000000 +SIM_GPS_VERR_X 0.000000 +SIM_GPS_VERR_Y 0.000000 +SIM_GPS_VERR_Z 0.000000 +SIM_GRPE_ENABLE 0.000000 +SIM_GRPE_PIN -1.000000 +SIM_GRPS_ENABLE 0.000000 +SIM_GRPS_GRAB 2000.000000 +SIM_GRPS_PIN -1.000000 +SIM_GRPS_RELEASE 1000.000000 +SIM_GRPS_REVERSE 0.000000 +SIM_GYR1_RND 0.000000 +SIM_GYR1_SCALE_X 0.000000 +SIM_GYR1_SCALE_Y 0.000000 +SIM_GYR1_SCALE_Z 0.000000 +SIM_GYR2_RND 0.000000 +SIM_GYR2_SCALE_X 0.000000 +SIM_GYR2_SCALE_Y 0.000000 +SIM_GYR2_SCALE_Z 0.000000 +SIM_GYR3_RND 0.000000 +SIM_GYR3_SCALE_X 0.000000 +SIM_GYR3_SCALE_Y 0.000000 +SIM_GYR3_SCALE_Z 0.000000 +SIM_GYR_FAIL_MSK 0.000000 +SIM_IE24_ENABLE 0.000000 +SIM_IE24_ERROR 0.000000 +SIM_IE24_STATE -1.000000 +SIM_IMUT1_ENABLE 0.000000 +SIM_IMUT2_ENABLE 0.000000 +SIM_IMUT3_ENABLE 0.000000 +SIM_IMUT_END 45.000000 +SIM_IMUT_FIXED 0.000000 +SIM_IMUT_START 25.000000 +SIM_IMUT_TCONST 300.000000 +SIM_IMU_COUNT 3.000000 +SIM_IMU_POS_X 0.000000 +SIM_IMU_POS_Y 0.000000 +SIM_IMU_POS_Z 0.000000 +SIM_INIT_ALT_OFS 0.000000 +SIM_INIT_LAT_OFS 0.000000 +SIM_INIT_LON_OFS 0.000000 +SIM_INS_THR_MIN 0.100000 +SIM_JSON_MASTER 0.000000 +SIM_LED_LAYOUT 0.000000 +SIM_LOOP_DELAY 0.000000 +SIM_MAG1_DEVID 97539.000000 +SIM_MAG1_FAIL 0.000000 +SIM_MAG1_SCALING 1.000000 +SIM_MAG2_DEVID 131874.000000 +SIM_MAG2_DIA_X 0.000000 +SIM_MAG2_DIA_Y 0.000000 +SIM_MAG2_DIA_Z 0.000000 +SIM_MAG2_FAIL 0.000000 +SIM_MAG2_ODI_X 0.000000 +SIM_MAG2_ODI_Y 0.000000 +SIM_MAG2_ODI_Z 0.000000 +SIM_MAG2_OFS_X 5.000000 +SIM_MAG2_OFS_Y 13.000000 +SIM_MAG2_OFS_Z -18.000000 +SIM_MAG2_ORIENT 0.000000 +SIM_MAG2_SCALING 1.000000 +SIM_MAG3_DEVID 263178.000000 +SIM_MAG3_DIA_X 0.000000 +SIM_MAG3_DIA_Y 0.000000 +SIM_MAG3_DIA_Z 0.000000 +SIM_MAG3_FAIL 0.000000 +SIM_MAG3_ODI_X 0.000000 +SIM_MAG3_ODI_Y 0.000000 +SIM_MAG3_ODI_Z 0.000000 +SIM_MAG3_OFS_X 5.000000 +SIM_MAG3_OFS_Y 13.000000 +SIM_MAG3_OFS_Z -18.000000 +SIM_MAG3_ORIENT 0.000000 +SIM_MAG3_SCALING 1.000000 +SIM_MAG4_DEVID 97283.000000 +SIM_MAG5_DEVID 97795.000000 +SIM_MAG6_DEVID 98051.000000 +SIM_MAG7_DEVID 0.000000 +SIM_MAG8_DEVID 0.000000 +SIM_MAG_ALY_HGT 1.000000 +SIM_MAG_ALY_X 0.000000 +SIM_MAG_ALY_Y 0.000000 +SIM_MAG_ALY_Z 0.000000 +SIM_MAG_DELAY 0.000000 +SIM_MAG_DIA_X 0.000000 +SIM_MAG_DIA_Y 0.000000 +SIM_MAG_DIA_Z 0.000000 +SIM_MAG_MOT_X 0.000000 +SIM_MAG_MOT_Y 0.000000 +SIM_MAG_MOT_Z 0.000000 +SIM_MAG_ODI_X 0.000000 +SIM_MAG_ODI_Y 0.000000 +SIM_MAG_ODI_Z 0.000000 +SIM_MAG_OFS_X 5.000000 +SIM_MAG_OFS_Y 13.000000 +SIM_MAG_OFS_Z -18.000000 +SIM_MAG_ORIENT 0.000000 +SIM_MAG_RND 0.000000 +SIM_ODOM_ENABLE 0.000000 +SIM_OH_MASK 0.000000 +SIM_OPOS_ALT 584.000000 +SIM_OPOS_HDG 353.000000 +SIM_OPOS_LAT -35.363258 +SIM_OPOS_LNG 149.165207 +SIM_PARA_ENABLE 0.000000 +SIM_PARA_PIN -1.000000 +SIM_PAYLOAD_KG 0.000000 +SIM_PIN_MASK 0.000000 +SIM_PLD_ALT_LMT 15.000000 +SIM_PLD_DIST_LMT 10.000000 +SIM_PLD_ENABLE 0.000000 +SIM_PLD_HEIGHT 0.000000 +SIM_PLD_LAT 0.000000 +SIM_PLD_LON 0.000000 +SIM_PLD_OPTIONS 0.000000 +SIM_PLD_ORIENT 24.000000 +SIM_PLD_RATE 100.000000 +SIM_PLD_TYPE 0.000000 +SIM_PLD_YAW 0.000000 +SIM_RATE_HZ 1200.000000 +SIM_RC_CHANCOUNT 16.000000 +SIM_RC_FAIL 0.000000 +SIM_RICH_CTRL -1.000000 +SIM_RICH_ENABLE 0.000000 +SIM_SAFETY_STATE 2.000000 +SIM_SAIL_TYPE 0.000000 +SIM_SERVO_SPEED 0.140000 +SIM_SHIP_DSIZE 10.000000 +SIM_SHIP_ENABLE 0.000000 +SIM_SHIP_OFS_X 0.000000 +SIM_SHIP_OFS_Y 0.000000 +SIM_SHIP_OFS_Z 0.000000 +SIM_SHIP_PSIZE 1000.000000 +SIM_SHIP_SPEED 3.000000 +SIM_SHIP_SYSID 17.000000 +SIM_SHOVE_TIME 0.000000 +SIM_SHOVE_X 0.000000 +SIM_SHOVE_Y 0.000000 +SIM_SHOVE_Z 0.000000 +SIM_SONAR_GLITCH 0.000000 +SIM_SONAR_POS_X 0.000000 +SIM_SONAR_POS_Y 0.000000 +SIM_SONAR_POS_Z 0.000000 +SIM_SONAR_RND 0.000000 +SIM_SONAR_ROT 25.000000 +SIM_SONAR_SCALE 12.121200 +SIM_SPEEDUP -1.000000 +SIM_SPR_ENABLE 0.000000 +SIM_SPR_PUMP -1.000000 +SIM_SPR_SPIN -1.000000 +SIM_TA_ENABLE 1.000000 +SIM_TEMP_BFACTOR 0.000000 +SIM_TEMP_BRD_OFF 20.000000 +SIM_TEMP_START 25.000000 +SIM_TEMP_TCONST 30.000000 +SIM_TERRAIN 1.000000 +SIM_THML_SCENARI 0.000000 +SIM_TIDE_DIR 0.000000 +SIM_TIDE_SPEED 0.000000 +SIM_TWIST_TIME 0.000000 +SIM_TWIST_X 0.000000 +SIM_TWIST_Y 0.000000 +SIM_TWIST_Z 0.000000 +SIM_VIB_FREQ_X 0.000000 +SIM_VIB_FREQ_Y 0.000000 +SIM_VIB_FREQ_Z 0.000000 +SIM_VIB_MOT_HMNC 1.000000 +SIM_VIB_MOT_MASK 0.000000 +SIM_VIB_MOT_MAX 0.000000 +SIM_VIB_MOT_MULT 1.000000 +SIM_VICON_FAIL 0.000000 +SIM_VICON_GLIT_X 0.000000 +SIM_VICON_GLIT_Y 0.000000 +SIM_VICON_GLIT_Z 0.000000 +SIM_VICON_POS_X 0.000000 +SIM_VICON_POS_Y 0.000000 +SIM_VICON_POS_Z 0.000000 +SIM_VICON_TMASK 3.000000 +SIM_VICON_VGLI_X 0.000000 +SIM_VICON_VGLI_Y 0.000000 +SIM_VICON_VGLI_Z 0.000000 +SIM_VICON_YAW 0.000000 +SIM_VICON_YAWERR 0.000000 +SIM_WAVE_AMP 0.500000 +SIM_WAVE_DIR 0.000000 +SIM_WAVE_ENABLE 0.000000 +SIM_WAVE_LENGTH 10.000000 +SIM_WAVE_SPEED 0.500000 +SIM_WIND_DIR 180.000000 +SIM_WIND_DIR_Z 0.000000 +SIM_WIND_SPD 0.000000 +SIM_WIND_T 0.000000 +SIM_WIND_TURB 0.000000 +SIM_WIND_T_ALT 60.000000 +SIM_WIND_T_COEF 0.010000 +SIM_WOW_PIN -1.000000 +SPRAY_ENABLE 0.000000 +SR0_ADSB 120.000000 +SR0_EXTRA1 120.000000 +SR0_EXTRA2 120.000000 +SR0_EXTRA3 120.000000 +SR0_EXT_STAT 120.000000 +SR0_PARAMS 0.000000 +SR0_POSITION 120.000000 +SR0_RAW_CTRL 120.000000 +SR0_RAW_SENS 120.000000 +SR0_RC_CHAN 120.000000 +SR1_ADSB 0.000000 +SR1_EXTRA1 0.000000 +SR1_EXTRA2 0.000000 +SR1_EXTRA3 0.000000 +SR1_EXT_STAT 0.000000 +SR1_PARAMS 0.000000 +SR1_POSITION 0.000000 +SR1_RAW_CTRL 0.000000 +SR1_RAW_SENS 0.000000 +SR1_RC_CHAN 0.000000 +SR2_ADSB 0.000000 +SR2_EXTRA1 0.000000 +SR2_EXTRA2 0.000000 +SR2_EXTRA3 0.000000 +SR2_EXT_STAT 0.000000 +SR2_PARAMS 0.000000 +SR2_POSITION 0.000000 +SR2_RAW_CTRL 0.000000 +SR2_RAW_SENS 0.000000 +SR2_RC_CHAN 0.000000 +SR3_ADSB 0.000000 +SR3_EXTRA1 0.000000 +SR3_EXTRA2 0.000000 +SR3_EXTRA3 0.000000 +SR3_EXT_STAT 0.000000 +SR3_PARAMS 0.000000 +SR3_POSITION 0.000000 +SR3_RAW_CTRL 0.000000 +SR3_RAW_SENS 0.000000 +SR3_RC_CHAN 0.000000 +SR4_ADSB 0.000000 +SR4_EXTRA1 0.000000 +SR4_EXTRA2 0.000000 +SR4_EXTRA3 0.000000 +SR4_EXT_STAT 0.000000 +SR4_PARAMS 0.000000 +SR4_POSITION 0.000000 +SR4_RAW_CTRL 0.000000 +SR4_RAW_SENS 0.000000 +SR4_RC_CHAN 0.000000 +SR5_ADSB 0.000000 +SR5_EXTRA1 0.000000 +SR5_EXTRA2 0.000000 +SR5_EXTRA3 0.000000 +SR5_EXT_STAT 0.000000 +SR5_PARAMS 0.000000 +SR5_POSITION 0.000000 +SR5_RAW_CTRL 0.000000 +SR5_RAW_SENS 0.000000 +SR5_RC_CHAN 0.000000 +SR6_ADSB 0.000000 +SR6_EXTRA1 0.000000 +SR6_EXTRA2 0.000000 +SR6_EXTRA3 0.000000 +SR6_EXT_STAT 0.000000 +SR6_PARAMS 0.000000 +SR6_POSITION 0.000000 +SR6_RAW_CTRL 0.000000 +SR6_RAW_SENS 0.000000 +SR6_RC_CHAN 0.000000 +SRTL_ACCURACY 2.000000 +SRTL_OPTIONS 0.000000 +SRTL_POINTS 0.000000 +STAT_BOOTCNT 194.000000 +STAT_FLTTIME 10581.000000 +STAT_RESET 255623488.000000 +STAT_RMFLTTIME1 80881.000000 +STAT_RMFLTTIME2 890881.000000 +STAT_RUNTIME 431602.000000 +SUPER_SIMPLE 0.000000 +SURFTRAK_MODE 1.000000 +SYSID_ENFORCE 0.000000 +SYSID_MYGCS 255.000000 +SYSID_THISMAV 1.000000 +TCAL_ENABLED 0.000000 +TELEM_DELAY 0.000000 +TERRAIN_ENABLE 1.000000 +TERRAIN_MARGIN 0.050000 +TERRAIN_OFS_MAX 15.000000 +TERRAIN_OPTIONS 0.000000 +TERRAIN_SPACING 100.000000 +THROW_MOT_START 0.000000 +THROW_NEXTMODE 18.000000 +THROW_TYPE 0.000000 +THR_DZ 10.000000 +TKOFF_RPM_MIN 0.000000 +TKOFF_SLEW_TIME 1.000000 +TUNE 0.000000 +TUNE_MAX 0.000000 +TUNE_MIN 0.000000 +VISO_TYPE 0.000000 +VTX_ENABLE 0.000000 +WINCH_TYPE 0.000000 +WPNAV_ACCEL 250.000000 +WPNAV_ACCEL_Z 200.000000 +WPNAV_JERK 1.000000 +WPNAV_RADIUS 300.000000 +WPNAV_RFND_USE 0.000000 +WPNAV_SPEED 1500.000000 +WPNAV_SPEED_DN 300.000000 +WPNAV_SPEED_UP 500.000000 +WPNAV_TER_MARGIN 10.000000 +WP_NAVALT_MIN 0.000000 +WP_YAW_BEHAVIOR 2.000000 +ZIGZ_AUTO_ENABLE 0.000000 diff --git a/simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/mav.tlog b/simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/mav.tlog new file mode 100644 index 0000000000000000000000000000000000000000..7d7512d965ab915dcc43af0b284b7479b2961828 GIT binary patch literal 1165021 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

!__dlKPQDZWdw#*M)l5?- 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

YWHIof{bBcXC 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

k_(NWr^5XB^fb!k&ng7N5;NP8YgLrn! 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
>Um!g>mS+LH$ zvdqj?+V$);nQ;_S;C|C!t`8nrA9`pca-jEr@Nkw7iSsj>p zYmS*5<6!2U!Ax$tpX|M{nbs#^<^!2&S?@J-d*iI_`3W8VD4Gcyi&T6vn5l5UkIW2z z_x8wqx|aEw%=9e84A*A{(rdFXWCr~(&rH$%F!Pnnpf#x|IS6JPX$|>CW~5lv35ohkW*qkp=gZ!X!W6O=&Dd3jnXHzXv8GGE*~m-< zAqC~i{?VPfdD83R@BX^?_s{W>`(ya}x$(TYAIxMYGl-Ll!p!PbFq6X^GXpoljK*N* ztp=~nY>dr#_kfw4WM=<^XKd5{irVhE(cxU8nU9o;+y*nvC-osSYG>%71UNU1UX8tP3 z$VX-nBbzzB1vUA}3~FREnzd-RfU21p@i0?RVWxsza$l@7g)%g=>

iw%APm_b^k0 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 z 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

h$~P0VJ$ck0;vohmL70 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

!5GNO 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 literal 0 HcmV?d00001 diff --git a/simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/server_test.py b/simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/server_test.py new file mode 100644 index 000000000..6460795d9 --- /dev/null +++ b/simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/server_test.py @@ -0,0 +1,55 @@ +import socket +import threading +import time +import struct + +sim_start_time = time.time() + + +def get_sim_time(): + return (time.time() - sim_start_time)/2. + +def handle_client(conn, addr): + print(f'Connected by {addr}') + + initial_sitl_time = -1. + initial_sim_time = -1. + + with conn: + while True: + data = conn.recv(8) + print('data', data) + if not data: + break + + t = struct.unpack('Q', data)[0] + s = get_sim_time() + + if initial_sitl_time < 0: + print('initial') + initial_sitl_time = t + initial_sim_time = s + + sitl_time = t - initial_sitl_time + sim_time = (s - initial_sim_time)*1000000 + time_to_sleep = int(sitl_time - sim_time) + print('time to sleep', time_to_sleep, sitl_time, sim_time) + + #print(f'Received {data.decode()} from {addr}') + #time.sleep(0.01) + #conn.sendall(b'Hello from server') + conn.sendall(struct.pack('i', time_to_sleep)) + +def start_server(host='127.0.0.1', port=65432): + with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: + s.bind((host, port)) + s.listen() + print(f'Server listening on {host}:{port}') + while True: + conn, addr = s.accept() + client_thread = threading.Thread(target=handle_client, args=(conn, addr)) + client_thread.start() + print(f'Active connections: {threading.active_count() - 1}') + +if __name__ == "__main__": + start_server() diff --git a/simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/spirit_sitl b/simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/spirit_sitl new file mode 100755 index 0000000000000000000000000000000000000000..510705375d29e7612b5a410011d30b5234e4edfd GIT binary patch literal 5035696 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

57cf0{-25u;rGhh@IT8t@W0Eu@JQ`O@a-OJ z#=i%*{T;w}QT!0TyL<#6sogRBV8u`1Pm{Wc>(S|#q`UC+w->wx94ve zeyZ|U;4hc^@U!Gq_*!`lzDeGIZ?gH`Hz) z{wc)|;GdU|;a`zY;C=ZN{!O{_>-0RiLHlnG{$Gb{KEUr(o+A7%xd-p6za{wZ6<>xw zAg{vr(0*Nm?<23n50D4&qvQ>^ozE@!v5IfQZGSs(+uttS_BVpt{`TP|wL5@6O+JL5 zCLh6{Cm+LWa%Y^L59{SQxb1HqKGN|mz-@nBxb1HV{*E2Y^=BD=iR!7qx5$0Cz0Rq^ z?R8E7e}(ci;MdASxO==gFPiY{72krtL*9k|BR2hw;9bS{;8nF7!#}0?KKv{45&Zk| zG5p8!3B0X#r|@4W-uX>>{`^i}fKTNv{D0*|_)zV7@Le8n#=ivLPwvAXFR#Lj@*2GG zRFl6BKSA*U{2B5l{Kfa1JT3V172k&YYPSPlr}!>>vpj~sc{ek!`tZvXKY%yY?hyV8 z#gE|sA)mtEDtGQp&j;IX4sP4c!)?0-xNX;izf0|w;O~)_;eGYD0=L(7KHOf{)!`ph z{s8_Fc>_LHyCMA3if_WdChx$bPndbth5tbD5!@@8_#WK$H-_8(4&iqy{|J7Ud<+lN z?gW0H;-~Px%JaWX&!3&1VCpZxca^*FNbMHk`zhXoKTckOA0_wU$H=SjiQ28fPgQ&! zet|rMUo3CJ*UMXQ?*ubGZTPC-|BBp$_vIycTkV$NKURDN{wsM6{wH}I{#SVbAE@01 ze1}8LaS!2p$lLG(is+6}3Bpzg_WT_>FSs_v!g? zi#!LvRi1}`L0*9WRPMs>mY3l7%FFQI%Pa7v`s>60uJ|f^XT6>i!1tCn;I`cmZrg3b zZM!YFZMO?AsND!|+wH+^yD{9h+lSkBNAO3h-7(y@JAvDFr*PY@GfB@M+in5=IJN7- zZM#LdZP$a_c1v*Et`9$4?N;Ho-5T7sTZh|r1GsIs34gNMZNY83ZMbc>1GnvV;kMlv zzDDi#;m6Ad@Se`2A^Z%*kKh-{r|`Fb&Rjn`|DB!>YZae^Pt|T7{vyQ};Frohctc)- z+jh%v_i1K*uE1ZSJU-mETZg|=@d5l=c>`WiyCM7r#W&$M$~*8|j zuH1(oDzCze@*3R!e4!4vKVJyp$0$z|-Z;k8--16?@oo4WyPNZ|li@x1Y04ABEAl>k ztm8X?U!?dUye6N(H_4~)w{5TWS*N&v55+rwO3xF!PUbS)h3}?1i}1bV9=sqg!M`al!|nUN zs_-W(z6Q7bt;2191Gw#PBg0$pHEOpFKVIH}pD6Fbza@|0U()+e`tb7=KY%~y2s0ms z@Cy|`f*-8oKF)CG&*}NFL3wiUP4YZ^RbGI9UGBnPt@&JnU$6Kw+#cTw{07DQaC>~K z86LoIRGtR>*YXe^==^QM`-*SD|6TparWU8#aH2flGoscrX6!{Qt_rXzyPvI5i zai;0{aGpE|f37?ax8q#Ma1Xvsc}nmrsMjQS- z#dqK@lK0?O%47J;GBS|BJaWrrS{t+{%Bnnwc(GGci>Nwcj30(2yWZ$!%tP7 z0o<;WL%3ZhM{v7Nj^TElbpDZ^4`-^~9NeyxdAMCC3vjzmx^TNrmf+7&yJh$@58zwm4fv`>xU`HQ}#Rd<$;h2i1jNulNXV+wH-JYBz@4cKdMK?g)N^ z+8x7fyAycfRCB&e;cr(S=l=Bk`LMhI|BT#)e^Fk9SJbWt|CZuQ@H^x_{8#cS-1fHy zxBacdZGQu}?QawQTeaJQ+y1uUw!a;??Qa)u`y0b2YPS!!?~@t8?fYbgaQi-)5!}8{ zW(xn4+I1dC&j@ zs&*&vS1NuAzfPWaPMW{($^L!RcgYLzCHwPVxObXauZnQ{zFZH!Re37#_o-bU{y}*a z?yKDz{F92W!@ndC;op`w;op)$RcP2gMKJ z_V=D9@T>Jc)hXPr8_pxr^I<#t`+D%b<$1VWH;VB674N|hmY3kU)6Kjp!w*$_1%8yg z27ju&4nI*Iz)Nbk0Y6RgA^aS98-Ag@1Fy=v@CA7Uzf#_Vzg#|mZ}82y4dG42kKk4H zcMQKy@e}x4<+<(B^W?qqJiIF}z(cj`!f#Q05&k)O8U8hS1^!LB5AUhnD*O(`*WkaF zH{gGghw#72n{ek0b6i^R9rV6}Hhgz^1kdUBae8q3JSB#EYPSzBDE|O%-!D3bAENjP z{0Z_YysCDc?bGw*Ns7X;onue5!|-hg9mCihTC@gaNF((e!JQo!|#w!;3N4I zZvXCwvtxSx*xw&4!0%Tc7rwpz-cAvolY4Oceu+|s`|u|yPZj<|c@2KFybibLZva0> z@lE)%TePLWW{@M`}%VQe$WTa@%7=hzg75g%3p)q{?_5Pzajh- z1J5d<|~*g$Ddy#fR|U%bV~>?Y7{5ReT$6e;+o2 zZ?C_D*MsNeF?^_Y`|y43-_wIXPCkYoEuX;c@0CyCxwFkW>Fk=GC&wvI4*qnx2fzJ1 zlcxe7$!qZ6$s6#$$y@N9&o}wI@O|Vl{BiOj{Al?E{&acnk?C=GhTMfeTV8_K3L-^J5HvGYHfQQdB|6WoAuU%#SUUv`fzRY+Guf4?h7#_aBjDP-7>G64uyaa!f zyas=lya~Ti9>H&t58;|5)CD|6JaI-zV?G|16)tofn#ME9{=G z^O5p0d>?roevrHcKTO_(uaS@7C&_brr0Y3L?!hmRSK%*^hw!?*3*Raqz^{@|;r}jo z^XWR@D6hcZB@f^qlDFZXl*jN`K8Al&p5HTF&+YOOd?c^I?~^y-`&G?6iQrSk58*p3 zn0RNebUnMti*Q%@eRx6f4Y>XL#vQo#LbJ|v;m**k8xh>Q-FP2<*NUls0{^AFuy?v& z6L}f_zw$bK=dC7x3%-}U2R}eQg4=P(?USzOP1{U<5B_d>75+ha2){+%g?~;yfPYOs zh1)ud`=;xB(KY7xC4KmtKV!TB|JRq8es$mr@;>3VkZ>6gUQ&D&eyTi#pC|9a57E!%2k@%mr|=ib-9oy~4e|v@m71n+2G)!=r1HsQUi%zTUBUy={u(K#mGIWS$% z*A-ucpP)K@`2T)d^B=zcQsW)?ca*;mAIc~2ufEdcDIAop(~d(K-g&uMS1a)RKFL1{ zoqYIkS6+pC@)~^f*W{mTPCn}Ji9CQie>3q7_-JoaPZQo#{VjNSpo#Co@6z}T;4iJ4 z_mfQF-qq%~y9cMo^8|SXe!4t>pD%C2576~?3_n~xhX1Sb3_&AeSQpov*PoQ zP1kegOH7?5xUI7e53V)!wBVP?d+?XaNARoVxyPmJvF%pi2kJUAfS2^TaU1@NWm9Ji zKQ(XqJBDAl&a4ml$EWML^xGy+32y7G!4K`3_&U5K58!Qi1O8cg2>*e+3BOO?f^Yt; zsizIUO5TC@NSN3K4_(agglynMfz=N{abm*6#d8Qzjt;L+1}o3E2TJWzZU9?EO*nq%@b;XnF>**7D2 z@$Y6{4dD-7Hy)lIA3JVE_~|#B{674(519N7_<#Mc@ecfN@;-dWf0+0QJTEU4({&y! zFT)R)*Wq7Poh|q=itoWsl8@kL$#YLk*Yhm72Yx8Xf`48Ki2hJQz%KO$YvP+o%HBd@`KFK@#CE|1_l-LLr%-%IX1 zIbF}e@*@0Dxes3>Z@@3ob#Dj$G{yJf75M~yp}cTpy3QBM%kYizI((bF1%H{m2mg2Z z2>u3n?x=JMb=>%;B(Hi6sqt#E9*PP@L9;dXti z!|giOg4=bh2e<3k2yWN0+;Qo8>^kPb?K)P4+jT62zs)iGeiv@nw*lO)Z&SEk-`uC9 z>$K}z1#Z{30B+Z}Hr%dnG2E_iW4K-4^2ev^vFlq2Zr8UO{QVlACfu%j5!|kOL%Q-f zPfgeJMR^haEx8Z3>t_RQ*U1jtuB&~xT|XyqyM7i*={oKDS%&{eb=KiOm$%?{z3srA zo6L244{qbf@Y{DW^EQ7%y3V`gCHTGa8vHNvCVYoob-fMWO+JM0FL(YWUC-m?MflNj zA8z~GfcGOaJ|R5##Gdo#9Zh&BZ^2vgHoW{vlcxjs6yJrHZv^#*0 z)ZZc8z175z;GTR8AAG^YPvDMx3b*}rPD~$1+ut1A_BRi={Vl+4e~a+k&F1)e@JVdy zFTsN^885>lc?IsteR!<=Rk)-08a%kov>U)()!%@3zG~t_xcfEZO?XY-f{&D^4G-iU zcqH$_oxW+e2lqc^#y^JV|6$_$@X`Io2XOxZ<3o6~-CpzabOg8aZ48gq?gZ}2r*J#p zoRiY?*3LHwQpUA85 zj=ToXA8qo~;jJT$2k?$Ogx7nf&L%v6s>#!W*W_(@ST^xpcwYG<_}~;1--A!&F+5QI zKHNRiYTvK=bHRecunq<)AJ!X+r;PKp*&AN$HW)lw$37aqB=cz z?U^P|2_DMJ@R91Tz$bDaZpX6{$<#B22Xg0>^!yC94&>nF zMUy8Fw{;faw$38lSDhZbRX6!d@JL>Uw^V-x9?N~Wt+NWZb=KkTiJG7A=x3(RCj7yl z1j1!~du}b@(lcZ^0eC&#DLiyy8djzC3q&x}NXKJ@}pSD*Wg25PqM$3;&~h0KZ>8 zh41K_adXc|*SUwh0zW_=z#lJf!;h55@Tbbh@KfaZGt>1{ze8Sye@I?~-zu-eZ<7b`@5meQAIn4d zFXc`6ALK2#^Bi-$+VDrpJMg{bUAQZc;77@O@Dt@Rydv+zFOU!5&zBG3OY#wXSw4ne zCC{Cmp3mM}_MY!Y1^B3Kya@N@75JVDW}E}~A@Vl-NO=r@s(cK8x;+1kbp7YaOYrB( zYw)_f3BODp!LODN;n&HXbJF#^Q(lDI^`xHR4fuzZrwKpnnQP|9s||n22J?Kg3%_n? z-gnf4+kYRb5C6FBFZ|Q;G5o9YDg4{=+_~xT`GLFuze8Sx-y<)<$MOpNK6w>>=!Iq+ z>hNpz`vML4|0qur{x^9W{^b3%zrY_*d=I|)Vsjk(@b0%vokRGpHIsh~-(5b1A0*G6 zmmdG&7fk*F{1C+#;g6G-;D^a8@FV0^_}=<=Z|m?Y4m9J?fFG?qO?daK<~qCuclOxF zoEPxUKE^xn=(~H*KRs{G(+>QXUozf@zhk}0 zGlAQEr{JgSZ1v4~&$U4!S|I{;D^bp@MGn5_=)lcydrPHpCfO>Yw|99tGow)mAnsc%ZKpy$;a?p z-LZ1m8~A6&3h?_Id-p%V*4SY{BjCllI{2@@AbG!H>Aw zti!pB(*1h5WAc0OJFYf)s&KnLH{teu@)7*idY}9dZtHZOovz3Bw+OGj(bVa~uiw@5 zs{!Ar_zv9G--qW1W`7yLM?q9*6v$CVvjzQG5Yj zR(==mD^C#~%RP8aUWQkdzXBg9-iOCOG4)sBBgNO@f$|4%=cgu510KplcwXLx+xaH4F4G_T;XJP#kp3-G+!b>Sn$7vU4R2X}sH>M6nV@-p0&SKyx9hnMA5xG%54Yw|ig zkO%Nk-hj8{A-p4R!XtSL9?RSCfxH7B$-D50Jc2vFGUMNa=jAcnmG|MEd;l-Yhj3p$ zg4g6@cp#s^L-`cmk~{yJp8p+r4j#$#@K|1e59BU#m58)ko6CTN1@L1l459A&ANZy4{BM;UjqwK9PHH=Qo=F z@VvYXcjXnhC->oHc@^%MTAHw6Kj5pzS|82pYLrr`eZuj2~ zJW{(|xZQsvxZQty@bY1%-5Bnxo<7{wJ~DuN@*%t|AHjY37+#Z4;DLM!59QAD)API~ z&%rzLJUo&Y;IZ6=59CGoNbbQW@)F$9zEFne`B*W>{_kT>9= zJcPI8O?XG%f=BW;JeGIh19=xdl1K1~ya#u*FU0V?ybpKf1Gpz2!prgz+?S8xHTeV{ z$fxj7?))3(zdQ%;$n)?>UVz7P7e0^|;Ul>RpU6vaNBcq2Kk~iTUc?%xN+wfT4fe++e_(&eXC-NTL?!PhI?!SGw-G2vgyZ;X1 zcK;p0?fyH4545jM;eGAD&I{7>++Ab#uN*x8Z^rX*yZ;v8gJVp*3wNJlya@Nyt_QdK zZwYSq-!i5a4R|0A;i0?Km+C`>cZMgef z;~n}*#=G$RamFKft7^OlpQxS~?r2}=!}Ib1+?5aEo_qu^%g1nEK7rTdQ+ObEUYMT$ zp*#m~$@B1zya12nEFDZ?G@3l(_$Y!mOpUBy@7p1cMx%j8nz20W05@KD}_kDh7jZ^6BDjJM(LxyC#2{CUQ^@aQz-5xjG{@gBT&hVd94o@u-f z56&_^fY&O!Q)enm*LI@#w+lNZ`_CHFEn0-PqZJ^;Gw(@xBG8ES9}N` zY5#4)y_cAJTJXt>jJM%-|Lwr->(52kvQn zy6{-}Be=K8#QvL$GBX{AEyavQhn^!&HK7wo~G|7P>^>neQmHsc|DXT^8n`^pFK$IGYi zW907Ibe*TjEAaE>0sInq8{Uw|@N48__#5Q;b?JKS&(llrsjg?r@Zc)5o>bt2(6|q` z*E3bPy`HJT2l_d99UiLP0B)~m8gP3(6TnDPw^eNy`Jg9eZ@y` zdp*;G2a1p3p}Y@o$p`R`dMMd*Ex7zo`<{g0^F0k z@UpxJx7RZsyr%dP++NR=;i2Ly@Rr<%cjQ%gB(K3^c^y8G2k?=+0iVc2xTAfx3D3)0 za97@jd-4vvEbqd7c?7S?d+zOXxUe84Ej`p<}p1<9^pREs%UupK)0lfTb<3qUJ ze@Ae;|Bm5y|DC`)YIh2^`>(ShJV$MOI^kT>8Xc?h4#n{Y?_LJOXkx8bh51NY=zcv&97eR&UF zlgIEt-iL?s0lXz2!aMR2Jd%&$v3vp_$fxj;+^J*!%X4r?`$8U`mlxo!+=YAcBD^g3 z;J&;BugS~sKwg1|av$E3SK%Fb4Iats@K_$e2l57dBoE;ec@yqvUuePe@;2O+ci^79 z3opwfxG(R)Yw{Q#$oue6K7hC6LwH9%f=BW(JeE)31Njs_k~zZcK8OH13r+4@R7U;pU7KqNBcq>o|kvvuDlEPr3 zB_F{%@-aM;PvEh93LnUwOECZCIrv1LhdbIA3h=z#g}d@1+>?9ovb+TM_L>hwzcS37^PYaJ&Du;dcM+!0rCqh1>l%g4_MK2e;C3sn0hWqjgye9YIfxHS2G0%4_=nXa9`es*W?3uARod*`3T;U zkKrBp1Rlw!@L29FWB$u?@R2+ZpU4YvyZ^dyyZ;v9cK`L@cK+OUV-~P<37ChY2#IRq<+=l`I}9A z9UjO7cM4&3>K@h<&q#v^$CQ^tF6Py0&@ zFU$MzPLZ7`|sEBZKUge zuDk?)p}YoPk~iU-{%oUj3@V-N5v#2KVH3xb0T}4=y)(8t_ngLb&Z$6P|yu$`jP;eOlH(}CCIUAU|BH-dNGYV!2p6Xl8Fp}Y_8$OmxSuQ7Z-?Q8iL zr{~)t@)G=s@*4bDc@u8e;Xd5{-oylM{~ff#OVagRb*|Y5%kYm}A|Jsol;>WWuE+MvgO4;%N^tjPb9~G2No2eNk9x*^cuje#a7SK)=jC;He2dB7 zfH#L`e+=Ql4@`U$9?Dzrmb?uw%R6vi-i6oX5!{od3as@D!`-d3iInU7aq%t@Yb#--lHqN1nX!H+8n*19=BNl6T={c?9?6 zJ$N9G;dZ|mz^AHz2#=32^^f2K`55jTW#T9BK=D&}D0g0woRZyjUeOYlhXWq2&F!0r0!(>1TEa67N+@S^$^!1KqNIva3T9>Pb*oA@St zqW-qvj`FnOwqG5(`qhQoe)Zw@_0U2GJee>YHj#mjjInj)N8SbBCyaJCE@52Z3YKGU~k@DB!BY6W}SN$P8 zI9c-t?mXRi3tm%v8}7rFQ%9{H|u6OyJw!WV~?A!ym^A+|JJceu46| z;r}L&;p^mM__93zs*HNz57q;>=Sv%YB~L%KwgCpfWH-LBK4R|CE;l9S92`|e#@E^R;tb1Mf zn?Gwjf`3Z!J@{?%7=EL?55Gq~fOpjH5dIPQ2>x057~W9+34F%|)301BJ#Xzk;=!HI zoA@ex7kLQZSKfs`T0VduE}z2J$ldGGb)F=zz|WEg@Mp=}@Txq9ua%GCo8T^^L+iW;x8q!g+y1uTw!b~N zt$zf+eA(2WdsDg|+inGJU!M%%kNc82zuNF8%44`EAH!|C`8TKQaqlwossML}W}dik zS6+nYil1-1&)#_u;<03J>ly@pX7f`2%=O@eOz+58=MN3Ag=f!@DCh zo*j7YK2v8G9?K)RFYmzvc^@9D-2r@{_#u2GAHgT`FbEa7ji}2fRJ@Apd0k?H_ z;1i8!7aksV;QTr>f_LP7xP87efnWJ`Gj4^qr27@h%kWpp>+tL4E%-a-J@|*@Blsuf zxwoe4`MlhNe^p+Ee_I~Her?ygc~eTH_^n z*fd^-w|-&XH(r5ziud7@YfPRhd?c^IgX>Iu9UgwtcmQ|bXuJux*M||@Ugr$qc06-$ zPmkv%1I-RMKX%YUK7n}331YcF23j9iW6+XP%9LE~Ge22ydK9L7-U*4eKWAcP> z=T40$Jo=9D7Cct|HheTR@g2CM_%7U)M{xhACQl!}!}rZ`nZS4Qb-dn@K92VIR^Sg_ z=fMB?Hj}3fw|QdtU&RiQI(`)x_tnD zs$Q>d!+-sNS>Ix~%|FiY;=9xJ*yG~EgP)mxHQ)_-2X4o?4}XQ?CvaP5@jdB!?EBJv z_~JRHzYX{k?lN_D;5L6B-ua_Bj|TLk51y|BL%L^t47cxx&%ZZazunhL@DJ+e1vU7` zu#nm;Z# z|Liz+d`j@MwO-ZWhdtBG&nEmdy$%z>>(4UrL->JroB88()AbaUrwD(%;(fS1E)94| z$0dZ1K4-?K3HLv5yaf;BZTLjqfyc_Z^7I09{j!X5&R~3 z?xX2?Zk2oRugI(L@5w{>Pvl+rujK>y|H!9sI}eK=OV??yuY9<@zG}eV`e!q5J8*m5 z)rY@V@e}xm<%OHl_1HQqaCm=NVH>{FUre1bd=L2;zP~&lrRzDtH|uQ)eu(00 z@WbRyxF?U`{~{m4Pm?=0r|UUaUWD6mtHUpynsI2suax)TcE29MZT{RX>3Zz*P!HZ! z{wn+yc?f^G-fz=|pR$jse*m}jOySW3=K8_;c)HHcw;pZwX?S?M@dCWBJTBb-v57Cj zM|T=8(UqqRul>x#SKz_OcojZXo*LZ$xrwjC19=0Ucg*_`LU^$MW9H-2gtrbb-hw-i zG~R}{9$~x#_y5b(*@e5mHy*)9zcSu~dw(<@!~NeG@6+!!KA_)Yd^Vf&(xxJ~s z0Y6CIf!q9jxU2a#pg-EolOeqJ1mh#PD<8x2$}@q-k1=_s@Ur4_pGuEIE_d>L{^#N0 zlF3tm*L>qHJdpeF_$HIT4i7(UJcPSl<8Atl#v^$60poqRBOk%b^4zWIaX7GQ_B#*0 z*T0+jP=&kl5PqwkM|a`3*y|Sf=M+DM+uyTrd+9pu?^#sfUs9d`Zs&O$Zs%Ro;f*FOT8&xQyZ9{^qz$;FDbrnID%aytbS1+-K6`{QLt=ogUn_ zTZNYnFzwdhoij}SIy^elcmSUq>dxy7;VtEF!hPj$!2{)Q!(02B{9X81`6IZa{5`m* z{4snYAHd58n(-OJqtneejNlWsJBCMln);{kmhwBFO&>?^aXP;6@}b7_aQ`sl1-L7B z;lX1~ya#s+{;%Q&x`#(5(eL`w%#NvqH} zww1#~vU2*}e&5&g{k`4xasA`k`|a6lUhnt3-!rrO+0W-|`3BzJY`%immzb~VnosZC z&2`u`mhZr;KbrgW+Pn+*?`IyslZ(tlcysOQR_pQzKR;&LGyjA}`JX8GuK2!Z3JX8G;o~r*oJW~Aue4*=h z4A0K8`5D5!eauJnd)Yjs@Z|TFAH%D)c}Bm~d;-s&Y@WmY3(X6-r+#L1)hXfCudU7; zUfg27fV=uNJpZlbm+U80SJb;Jt5Z>Fv>i6O853GI!FD@`2!2R>hV|Xo3;DwGm zf_s-(ofMwQ$MEl(+CmzJ|wg?|Yl;Fp+oQsk{sK)qenwceD8n z;ptww9>SBJ)*-xkp!opqe|^U->o$hh|G488AHw5@Z@a}u@S*xi;r{M++%Y_oXYf{i zPT;=AmBW)gt^O3=+{3(pxAGa>)4D3*zFVL0Q2kW!LgQM%Bjsy&p!!RAC~x4Ad<9SB zEj*R4;rX-gyyZN4=WniCPknaasmA5Q1LXtwRO_J!uXVmccq#A0TX_UeAFTBZujDa2 z*~{`ncski-%RD6TOg@5F>L-Qg%8%hyVt+?&Lf8D{@N6HgXLv3z;Dvk!FXbh?me1j> zyn@G}^|OE{@)};fw6kSCm++{xd2Zmf@+){FZ|M)Ue%A0%?tOoAJqHi5dsxeR!fe5j@pA58#dZjNzH`LwGJv;DvkyFXbt`l8@oF zJcBp#3A~l(@TO}&-=D(6(N0^|RRK>mZ!>r%FX5hB|8U=}e|R8Y!1MEMJ=gG7{V(C6 z>NN1yt$%o=d4%hJX;kG`#A8fAw%B_ERtolAYk$2&#ya)I9vFDHwo*ZWV^x@^9 z<`KM-58$?0&+&ypPaQD11g}djC0`8tS zX7E=1lt_znm9OCLd1C>0&l@$|J#Q@G?s=nuyXTD++&yo!aPLR<{JDnj@s8Ws z^T`F9>p9c7I`Bf?g?Aoe>m-0zFSmK?!83UXFD}_`OFw;hq2hE z@)i7&XWI7?7jT!a;a6+COSsE7@Lwyxg1dYR|Gn~SxXXKs&2{_Gm)LkaaF_St_fx(L zcliK*gZk;gT|R{0qD@jduih`4ql`@?*HmXYgH> zpTJ!{ho7qPPT?+Jz~AWBKiuU@`0naw4tMzqzL)X~xXah@=~r#NE#aQ_Zv%gX>aXA~ z-@*@2ehqhd?}wY~{~5}6;4bgOU!;5&UcJq(hXMRRT~B)OO!*Lgr0VzKk@68dRek{X zl#k)BRelIBPPhIO_?wg;!4u_E_}i2p!vp0r_!-Ji;LTgDpB(-n<)`pM`2zlN!*Uxm0!S1PJk;-`tL_5KUrdjExQz5l}9{j`F+`)Lh#`3COtE!^!p@AA$0cl*wVyL}hH-M$OqZr??4 zx9?)O+jj}v?Yk82_FV>d`!0vOeOJKUzFWZEb+U!K`(5`ZoAc(bhXc5)lfplw->aI! zAFsc2TfrlJZnJ{B->>(t*zCvs-IYGv{k@$8{v_3(z@H&6;qLFlEaC3=Oue6O_T%QK z2Y2%m!=roK``j_y)hXbeC)s^-2CuKP`~Cv%j@!bw{ymT@H~Vk&cl#swb^1NW5&ZYc z=kR}g!|tyX!*Io9!%L!(II)yj6Y$kJL{Kch9A3c(|h-*Sl(S-n{M2 zdvG_OG2G417(P@#89cbN)t|sC^^?PMG=3Tux zZ|*tGhr8#r0PddCLb!WQi{S1#Erz@2v;^*+(^9y5PRro#IW32~=d=Rup3_RWdrqt1 z?m4Z7yXUk9?w-?HxO-0Xe!e;X?m5keyXUR|?w-3sxXVXymyhA@I-J1WbvT8)>u?5l z*Wn!QuEPb~U587!yAD@ycO9;9J)}JXOAhpCs@8 zX0y+?>+h^a@V6*Gg1<+e!wdNw{uy}#|B}4(+s%H?lZWsN{_i*Yd8)h*KUki?6Zr)GGIo)s&*-3UEjNq>S5#05k!}~9{I&*kO{WS2q=e5{-f{MJdfd5$P4&2@&){Q zc?)ml-9K#hbF(~x|4TlC-}<}OXAbYk=kPnp8@QVv?~j}P-1hrczXRW6V(-6v_)f}q z;kUfS@&Wt-%J<+uQa*(5r+gp&0p%n3)07{;k5WE{C&~}uk5WE?4;D5*BltGTr|^T6 zAH%OY&E_YA-&Oeu{A}fO_E}Dqq0=p!^K}6y;0!@06dz@2-3WKUn=Q;MbpO z_x`lG{(q|RcHny`@55iD@pj?2 zyjklXeuVNp_>Yti>FTEs|A6ul{2b*6@S~KE;h$4}2!E9F3A|8#1m8ya6n>9S+xKS2 z@T=aW^$&l)>QCTjE1$#PJht^Sg`cQ=0e{00*3S$cz0LY5;phF-*3TUN6xFZb?^OQ_ z_}!JS;io9SgkOJ(_0zy#ulx%B4dq+-j_Q96KV5n6&ztN2ieqiO9rz*2`|wo#bm4m_ zAHZMc)<67~H`;hZ_|B@|hyO_V2!4$61NaA&kKy-Jeh5EG`2>E*Wi~$}_-{_P{!{qt z^mpLL@JFeB20vW=OyJunpTl3E{1kpwX8jcKb3bbR&)}!2{}O&5)t|%9R{aXzdA7bM z4?j`)8oq<-FX2y7zJae&`@Mh_d>i%O!mGpW^Y%6TXx;a{c60q-^;VlVAO33PyYRD> z@4@%bxI*}e%17{1-E#~4DasGwQ{@x*-IY(_Usiq$zh2LE6Zk*Rw{?=kzoGmT9^GW~ zSit|HIy3m`s#C&)zgnF+e9!0Gd9UDys7?bvPS=?geA_4Af6LEVT6m`X8h*jR^4^V` z>*P%3JMc_-AAYv-UHJaW2k^P_J^1=b)=vcgp7I0uwFg>0hJW>Ry)T2GrhEcF^aNe^ z;MYFE>ZkChe#!D<_=lCx;6G9S6Zjs=7jXZFx{ksB6Inkcd{5=)@N<-};QJ}RfFG}X z4S%ZgOZatcFu`Z4??$`9esRz87$N%;}{t9`4V!oRKj82@V6^p!vCiH9KN&i75p|ovi-7vpY?F-r-t82`6c{* z$~W-4E5Cw&`C(SSh2K~CHGFsFJ>3WFxA{Hqfy#H_AKusM`|vyJ_i?)LU6gnC8CU;7 zs^3HY=H0D+2;WEfKKyj$6Zj*PAHj$Bvid3fG0KnO-`T_R8QksP3H)&7bNJKszF-Q! z!-K4T0Y5|jh64hk5@i~yWdys!*@{L zJ+Ha`-TEIO|GZtSpBV1e{}A5pZ21hnb$!CWt@=6qXwCl={y^0);P<#f&jauqcd~v; zxLa>?_!-JqaJSwT@aHRE!`*sY!UN?SxLa>4_}}hq{kL$p-q!H*l=uF&`8?p(PX|6! z-iN#O(}n+aN9!kmze?w;2XB4LhwwKj--mx)`3U}2NStp6GOzuQ~=5;7Vg&P8vdqjtsn2^&GqcoX9xb@Z7lD@zo7oR z@Tu|v{A6aJOkTm2M1ILz{6_s_-@Mg;V)A@fMpPww@pL>tx8~9=LeQ= z;djyV+ZsO7`)lu(&Go;#@*Vhh?``#c_#>3>!biEyX8@0s@4@e<`XT%&%J<>#*XL;w z{9xq=@Z+?9WB6l!V%Mu7{GIyzCxO3E^+)g<-f81a;YTPxh99eZMpu3UzwsSf|M1r+ zKZU#g3;3IrpTYlqrq(}vs{9->rNDKUeiv@B@@@ z;TI~uhW}OfBk!M^>;EUpci`_=K7e1Xd=Gv`VdD+qHz?nSfBnOjkKq4QegMDv|12NF zxBao!GyFx$C-8eIKZ5V7dPOW|me~#0m^sbFYej(KY%|{`5rt`{SY22--o~9@77NQKT`Pt{Mwr> zAHz>jehB~Br!1eqPgZ^ef0ptoe4_jq{xtQI!QZR=1b*Qst)CqJVdbarCn#UQXUfmu z=YGQKm+-GCKZozDdmehAOLYWW2ILFGsAn>9Zf{1eJg;Ky8G^>g^wm7l_& zp`W)F@E<8ZgMZ@(R=Acz48^ja-UbgpYVOFU&C)y{Uv;l^DW=N@8mwOfPdwLrFMq@G8N5>c3H;c5 z*!3`nFO{FdZ@8P~3wW#i4E~I+uD9@Q^?A-5KE12uEBJ28FW@`g#qu?LU*(tZUp~b0 z4g9Ifui(Gm$MP-wFy+_q1C{q~wYmO}Q@#Vg{2V)9KKzZ!cj4#HEg!(&qkIp(%i8iG z{8P&J;m=V02!4+81Nc>6xB4;sQssy67b>5?uTp*lpXq*)!FRr!-H#^lhyKX=$>G0I z{V9CMA6mYE-=O>qe)7WdCH!B?&*6X6{iT9$ukS}K;HTAAzlPsc`6aylvE>{1ZpyFV z`zhbT_fdWgzu*$9@7;QHJwIOg4*cI2Ti%C1OZhH*pnL#7Liry2br)Iv5S}UDhyVUU z%SZ6{C_jM5%E$1JDL;gtruCM>EtgsS9DcR( zQ+QYT0{#c(XYllic0DZNw{^dl2fyc~)=vfBPWc7=y^q)R8QxWX1>fZgtKY)i=do+} z1wXO8cbm=iypQU4;ICCafImk09{e2j6T;o+hkf`Fb5ehS~~D(k0!pQ`)}{=A=AzJ$L^`8hmWTE2pR zNcjc)>?!hiBp%Qx^ZtNsf9Z=GN7wwvqio62|Km;KV}`|$58--X{v`2fE4 z`=9WS{le;paQA)AKD@7d1b5%(9KbLBxz&&1?)~o&-cvq-d;0#{2>yd#S^X4#d*#RQ zqGQ*S48DW=ejWVeJ6Jx4ca@*QPrk|eDd6{4eg;28{g?3ll%K=@)L8ur{&eLR@J#s{ zez@{W_=SJ9`VIV5%CF$tt9}cA<7@2m(lz{J*I0e;cAM+p?UxRGzh7J4hfmZ`7ryOp zEFZw%uY3>w7Ud)ON0cAHulSwSkKtcceh5GJx0X-f?)%0g_+ymM;NMgI34DI7)z9HS zR(=XU>-Ux~;J;OV2EXfdmM`JAC_jf^w6c5!-(KI}Ucld|d;<@ZU%~Hqz145wZa&xW zx2b>c_M7W%57qC$|M~~3@59~aZ(aCQ`2g;IAF~I)lky?l{XS+NUff{)MDX{1)IP5p zz~86eXH4J^ao?YZKS|&3P2q0-$MApt(fY~YZvH3m*DIgH-Tib5KkH9czkoki{mv!2j@e%h&K@lwZO>t$YK2mGUe2OO$WnW98TI`zr6HwpKrbe^>bleELv555O-~ehP2@V)YC7uauv`cTv8CyU#=B z@Z)Z@`W4)L-m-xIL*uRCe^Eb6_yLc$@iy=eU1RHE1^?wIEZ@REuKXJQhmTm^>uj$7 zvz70_U#t2){ENzW;cxu7)eqobQ@#hkR{0QquJV2OFF$GZBlvffAHd)AQOn2hA1gnE zA5>UAfyckJ`5(cL`;_HV_)_)9@B=?)`2v2|Ypwna{?+Xtu;p|7627bQbNK7;WBCex zU*#9@SMF%}8os;oOZZ3cZ21PhxAH6a@jF<)h3~8U8eXU$?~a@6b3f%f@MrF7^?i7x zd>5W=Yxw|vpz=NVKLg80aCg22@VDuF#c+4NhVX^XR|0qQKY|~t`A^|)e#Y=z^OM1! zs_{zc{YR zC_jY1)~$c|8Oo2~k5~UG{7mID_y^=U{KN7Bezv@V-~ML1UM=81`+|+PhHtC<68`Wn zTE2n%%CF%2UtswbzKil}_)o92ytm!vdb_9c9r%kEmiOWJRlW<~=VHqT@SgHL_@8H% z58-<%--o~ZGnS9w4^e&qKTPuz!~4n);cxkz)lcC2D?fsN;B3pM@FyrghQI66me1e= z13&i8miOWND&K|gu#@Ej_bp`AHts|PvFm%kKoUjr|?7NWB5zu8GQU7J1-OX zk^9=d%i$+0KZPH-kL3&aTa}-|PkE^2OZYpKpTjTN+wv9s4CNQ_vmRmj8a`FNv%}^( zJnB@NhY$)<=Q;g|c?X^;@56I>7hcE%cyy6{b2Nl^ zUt;6!!^@fV6Tut#0A78@@-aO8l=%?e$`iO7?+EV3o5J0A$8a~^2|Uzzb9nG&>vIZ^ zLhucjK+$ZoCbApz*HY;kT@x7M{r0@ZdbldpmBf z+wz;{9e8@Kxes^a?ZVx71GpP+5AMd>hbJ0u1P?E;eg^PZ9>bgSEkA^}@&ulL-|{24 z8*d7C;~m4pA6T6X?#7$L#~SYxo-M3S0WakJMcyYWVF@1=Hq z9>BwEY+NxslMmtk&n-WK4^=;fH@~#}7+$G<2Cp?gIeg~UCp`Iu)i2~#+k?CDhVZTH6W-T&2k>;K-j?UR7@o-!`21xyZzFi|P^*)|!+p)iaBpw(3EV%* z>gVuS^{4PwUcjrpto{P-{@tY(zB<>QpSwG6p5N&X_WT^d*UFFJ-nXny4tLMb3;4~a z*mHOb|F68e%Vs~FH(5S{-&sC_?<&vXYmI9TcYUtl-`&yX!N1F9KNrjU@GIpB{2KWL z?vA^F_tbw2pWNB{>E3m-A6I7pcXd*@t22eWIt%#UcCzEPaF_3PH~T40u=O0kt9RJ? z?7@q7nuqZ0ZRQbtt@;DFuR1Zjkq_aK>W|>@Ypnkio~r*bJW>4&?x}tbpQ-*7o`1>4 zTfn2wn9tzpC(KKDrQ^=w<)aXEdX?gE%o9id| zoOuVHsD2NA`Q2@O#&EYjC-B$l?+=vl+uXzIEaA73dw1XL)79_6!`IpR3E|DvHm*KA z`MG%nkL3e+`0#D*{snJUKY$nlz&F28_=5q*dHQoeX-e&hL>vjaMZf8D*d#|^7%i!6r zmY=|jdz$BPU->CKRla~H@)91ZpEpjdD@K*U6UMjzY2l58q{%5-_^SOe1 z|21#njp}&!++2qPjjIE1A7uUeaBolZF5H&~@LGNL;F0nn+>NUbcjJoSzQ#L(yXW2< z{`~vdb$$*%RNlbz^ zyhHeQ@(jMSd{RSS%SMXTg!V~!#UVqx^ckZ(}pTm>wKH|fJ z{jL8l+0a)UHwnsPuR!y zO9?+nzJ$AV<=uC4o=eShhyGZbA0OVxyKq0!{KMTm_uy`xL%5sgKHSZ71b6d1fV+8) z;clLX@IvDn!PCsvVG1t>Hr_G3lxOftK7qUW$>DB(rf@eu1>DWg4DRNqguD5f!`=K; z@Lc`Z@azT|*Rz|S4&2R;4|ns^g}eC);BJ0; z@bAZ(m~h0la#tc?_@RL%5rt1nwz6g1h-i;ko)5!z+0Pck?rWyZOoC znd%hqq2^}>k482RB|MkU;f1_{yZKqb-TJBFvFa@0Zv8ZHw|-V|H$N@h&CePh>bRZz zZ?5N5^W(#lm)ZPu;ki73SMna*%})q-^V5gB^%KF}{0!i3eqy+rpCR1MPXdqC{{;TE z_u6w*2|r^S`+R!|Km8l#-UBx0IXTHbukOK5c$nR1WBAGPG5me{_lpboY059)@07Rj zGv(a}Zua?q@(BKRea<|BAF0p(bNI;z*?8x0_ngqcmv6S~*b3erXX~(q2gjSQ;kEK! zZ*yF39d_Vu9r|#$4!dx-4gA*wv--QRK+57}>?@cy8J$Nh+;l&#*AHf%z z{{cK#K882)Av`?A>L+kF|0B4Y{}k@#e++l?pTXVyPvCC;bGV!TDLm7-X7FHQ^IyXK zGi|(ccqFgjseA!<^Ham!{4C*aej2!&pB3EAPYZYRvxd9*@%GqUx1Rd<;eE|d7hcY6 zegb$S@4@{~TRw!l`RT*m{6ug!KLfa%pBV1uX9#!mlfd2ljNpaFHGzL^KfND^pC@0! z7jo}GoAY1Gd+?<^hBxvt+}+0u_*&<222U1tUP^c>pTn~sTE2q2^SFS!^H{^(d0fKX zd2HbBJg(sGJhpIm9@p?#?0lbul@L2Wx@an}@ zCxX}V0X+U6%g69W`5`+lL5%UgINU&B**XYb8< zD>N=2o?LGIbm6HyfM@a^Jk)VRxEog=?#30t-M9vDH?ARku5l&s;3qb&5j>Qq@Zt)~ zkKvv?gS&A};BH(w+>L7rcjKDDYmKXfS3k8r=kQuy!K;#UUdWg5 zf#$7&m!rMxdI)djE&Y|2U&AZqy?r*mLI?~jcW)W>$nNrf4$Wi!2@{;&ri4f7#^H#K7n7+(K>;<`|Jwt^8Q0M z&&xr(+j;53FMYCk0{`Sw%qQ@V?qOcS4_AH(|ABA)dk@|0$MxTXyZ&Ri>wgS){TFc8 z{{rs%Z{e>0?!KFSy8a`$>wg4y{pWC(U%*|yg}Z$BVVnKbT89C=`Gl>X9z6V{c?kDD zZXUts@3QOd03Kds`52yDY(9jy7n&#VNOeZ=RCQ9gr~DZ1%QJW&pTJZ36kcn*1>C#D z`k%o|c?tLBb9gAP;FWv$3__mxlKt$YlxRVRZt z@(J9X-yH77Tflo7?+or=VdE{~vAlvusd)cTZ!N!oFV$xaZ*|-y+*AJz zJXilKcp-1$VYc&@=e;#NQ@+#RJTKjM+kWxk_4PKcEj zui*R1TlnMTYxtAo-lI0x?LqPm{8@4zK9qOiFOUcDL*+gA;qnlEq`VIw$s_pD@&Wu< zc?^H0df@e3HFW}yv%xidYo%s?TUvJ*P!#|j>;I;BCJio#6Yj}M9u3N_C?YFs}L*+a0 z;AYGF^gmktF5K5V^x&cXebPQWl1K1BuVeUd7dyX0`1;#6o)LVY*D1VAciJ)!W4L#W zc?NGEeupjj3EaQ+?YDRi59CvLb+pwl;C{#I%;1^4gok&u{2U%^Z(hOuZOj+&cw6%t z?rmqjga>yrZ{W$T%vbPK^U%_jU&AxGxBuq)j8vxs5AR^d_2Iedbm4_OfH#`w9z0h4 z5T42V@KW_7c&`2j@Jjg@UdxB@Qgsq|D<8qb+t~c1@J98=@bqO`|8&)vz}v5OZ2iOi z6YaQDc&p>i;EQ|eb4YmoeOm_=ywK|fJUzgUTf-yy67KI|`39a}Vehk6@c6-&Z{ePN z4X<~%y!YtM^_;7p4!l*~hkNR?3vZMU;N_ln+#Wnsoe*BBP6V&-W#?r8uXJ99@V;Ir z@M16PXGGuEJcY-h`52z6P6p596L|ARJC8Zs>s$RPJbbKq0k8ho>dfHDY33!oJl%W_ z&mLp-D|o5?7x3y)mapNy=4T1_9%}i9uKFu@p!zMmb?X^k>U?>R*<8`d#&J79BMe|O`BSEpFM2miP7 zG5n6tu;V81VqwP{!?$_4*;UrZ41R-tE;EN$ceZ|N__3&j2zx$<-P`N}Wg1Larni@U%;QF{1W~W<=60MDc^bO<~)p)@4+AM z+x++8M=3vqAFlc%_%X^);Lp?iPvOTZKZoC5{Vd?A@+-RfS;JqYeD|Qud3cTTJ^1m; z58#>dL-?zeAH(0O`~-f2@-z4u%Fp4iQGN;kpzrXglEdH;on#N&eJ#N;mykT;3plU^$$N)`62uY z)gQr6Q+@((l%K-e2itwQfO}uD`_3G`Qk@0-EjsQBemCu-H9SU958eT`4t;oVFFg;#->N!& z_}V>3!K35#90ku+X9Q0lXZ@t`=me`XfuE^5Q}|SM3V8B%?JxLQs;S8?fOl1A36Hg&8~9MZ zhVQC6o#$=N|31q5@Zj^-PY-@S)#=0Cbt8fY541W%`0lDRf=9o$^OeGjy{*m!zL)Au z;pH=IzZdZA0aj-Yf2is#;GHY2pBi2~*Xpd`k5rvCyu94%c*D*4FTQE7yYNVLdhof{ zPYCy(Wc>`_XZ>5(ANXW1o1X+8JjUvb;ZIgS6L|VmtCPbUeV#mnzjI~pr-A`k9)3-V! z_+hFuhM(cyH^DEy<3qPxKWFgv5!QbR4{mMiZ~_06{=VN5Ug>$VfqOgHJg(teKc7Ej zbDn4F--k!~`EC#H>h$4>?wb+4vf~ZmuFeFW>fim$;rYVq6m;ch@JRVNe5%(Kyndbi z9DhNd?6T!N*6`>geGdU1${V;ZU%@?jM?b%{Z`FC;*&0_Do*ZoJGlaW;FExU@{1E;n z_wTF1T|R?<&7Bvx%g^B7P<{?~`5OLh9L!=6h!FWg+uE+4?ZpnM2-`2qaP z$`9c#pTa+({xi7CPvM_deg=2>3jR6eYq-m=;9pdJ4R?9}MVs^XRpkS?%lF~uC_jL^ zd;nfFZ;F;Wq=khMRkO%Nm-h)^25MIms z@J1fNqsQC%8o*oSW4Nbz8^V2g0?%WsKY~Y^=P^9hKFZ*3ALZ~=ucz=v$1UL5Gp(N) zyi&e|XV21lhPTRBa8LCYa9>`-1Njmj${V`Q%L*RJTX?NL*YHU7y<~Ge$MOz5k^Ase z-i5n;6u=Yp*@LI@5T42V@LV3j3;6(E%42vXAHr*S0&nCaxZ6i5yj6Y-cl#)VyL~i) zH=(V=9Pai}0Z;UE!x`M|qd9!4*A+Z{o*j1quZHF|{rTog`Wfa8JXD<(JlAnsc%=Lq zUMTOqcym2B@(#R|`|wETs|$DgD1gVx_uz@@hwxV3hx-~=1W)7xczwFfXG~Z9Aw1Un zC-D3bt22UE@)VxR$8b-c!2|gO9?5gM?nhI2rgJ3Zr`opm0o*?Z?4<=12(P>+`sT%Ti%EI@N8=NEvGlJ-BzK z3gl85j>NpaPQAnXABS3e+JKg zYxxO0Tbk!^?-%A%`cKUZxPO`X3|=nGOL(Di&EdhXEMLL1OU)PXSnH&Q=ij#clCI-6 z@b+@cui$~|xA0c$Y7H+{-}@h|e|ZOm?r-vHjz>lp5R$kzW5Udt1>d!IFeH_E4QUp|Hh@(dozC-6v~ z!)xu|DZG&v@JQ!t26y|YgvZLy;cg#Q@K}8=;EBAZUu^Tgr0cj1yw$i?@bWUN)6#46 zH9Wu6+&gk}JtxX{;NFid@538;7oN!jxZ6iPc&2#>;f1^pFXa*3?V|y_Qho?uYabR zU3el7;BFuF;E9eK!c%!4p2;J4FthVAfES-KkKv{24B?eLf!Fd8ypgAHw~xl~R{0F> z_R$3H_E8RZ`)CSx`)CFqXdjhuw~s1#q1Ov|q3HSzkc1 z`zVA5-?4ljUZ{QqFXaPxC6D2?dNc%tLZ;HkWXXYx5bmsjvYzJQnV8eYkl@LJx$8~FMCv`Ea+7dhnNOANAqMd+d9FG5i?i$M6&61^i_B0{##E-en7S->2#xvpL?C>I882 zxncj}KPy{-Qo z?%%RK9{|@)jOwy{+M)+)Fptv)e}@OE4aHKweVm^tFwm3s^h(Kb3G^W4m_3n@J!x? z=kfp^>b&&ekvxREebk2+svp7KJ{rJF$>7-z z<`a0Jd=9Tve+qZ|sDL-h&){w!m2kI@=5V)A7St>H_( z_FlEQo};eKX9r%(eYo34U3jsp)d}FS>h$1=JcOt6K0K30@LWECyL}YHBc0zN-0h3)-`m!I2yf+mxZ6h& z{qa_30QXfVh6nN?Jd`K!NIrrGn*S6Y%E$0Xp26Kdn!sb_bGX|_Q@Z*r;Hi8Dcl)TM zD?f+F@(NytHvbE{@-;k{FX^h&z}-Gt!QDP;;cg$T;cg#!$8WCZTK#n3ZXfw@w~xAT zw~qq2+eaaMqJ7kdd+K`t@9A|651wfAKZGYwGEd-*@*{ZqbjzpkQ28-Dl4tN(K7l9l z9Pakf6z=v>0eAao26y|Ygu8t-hr4}L!Bh3QfM@cWuHQ>t!gJ*txZ6i7c%<{y!YkET z!wb3h>do~Ws7?p&_K^>F`=|?d`zV0Bebj?{I&MgRqP-vQ!`(iL;BFrc;BFrc;idLb z0(bYL6dvpK7#=>u)_(>MGgje!Dyp~7s zMm~VMeH6o6<%e*0KT6i|5oeJ(Nzkmnw8Xn4*@JQak1I_;m9?DyItU7DByB~S4*<8=D>U7}le&o|tzY9<0 z0o?7Q9z4-;LwG9h!!vmV&*cMnA&=pud)Pu*$hj6!#`gHXf!BhDF?)Fg(PjuWNJe4Q#Og@6=@)Tak z$M8~~!7KR$UdwZMBcHN37e;*#oBX}eqz}-HI;j!{V zxZ6hwU44$=sXT?deKdwAI&KC}#CR40Px@&UY%$M8}=@)DlO=kQ!!!3+5UUdn5DC11j8c>{0cE4aHKweVK?HQenZPv3X5RpxnaA9dhv zANg>%j{^8X`a8EF-0h7aM)2TdyPn7JseB0U>-7je(CZZLU3AASe=leZuP-sr;OV!`C-CxI^BkTj zKZO_a0-oJub!PMn%}aRjWAiz@Qa=^EmM`FqyoR^(CEWX#9k+q|@)bN*|1G?|+Ul&~ zrOu1@`ptD4sD1|?Yd(Fr|97k3h37vp58$Ed_vq?Bgje6OI(@jW{v&u^TYdnKbleyo z%ZKnpp1@Q22%c#@r|?qiXABQ7vpzF;a;fq$3;78C8F>!hUiAxj zwUZrh4&Pb%1>EHu_&tTqkIT|uzU!2fA2bjyWhi_!Bf>K;e*j*wmc71 z@cKS%Kxp5M*tcj1LR zfS2+fyp@OWTHc2@@(7+EWPJ|k>OY2uPqX|G?rDA!c%|cx;J)%HyndzCAH$0i%qQ?q z>F=md;l(}d_YF(9%UAH^2>W*~mT>p)6s+K`{{N%vzN6+x>$;DJwhSyKENy^=4Rwbe ziZDnEiZF;k5R{>ap$|=i%H#Mb5~K}1@Q92c5KweLfq;~uhw4x_3+ys1E#d-04^4)m zKIh!u&v(zs`yBZ%FFt$aD&Ol$W`6hYcLz@$)`RCm_(JVZ;Qo6Jrf_dRg?m1O=W2fm z_uqrCf_wWF-19YjsrGkp|Gf!&xVPWKJs&)6IB$j8AH)6kEKK0ueggM=3SX)H1>Aox z!xHZ8mvGNl@KWt>;r@FZc5rXMgL}S*uhstO>BD*R-}^9zd;2lm^9j6C`*XOT+bj4x zpJwN94Zn?i5C1oL@Qh*qKO>*OJNXpeJWYR(7=FI;OZa!?75w6_fA%%ocNzQvde2|MU#xa&_{-&c_?geQ`v%V*_UFmJWj=xbz1m6P z{~}+)-z2Z#Z1820CKn@*4h2`5u1Cn^pgRJ?zir~D3NO`80a;HBE>;g$RdujRpdSkH}o1aIYI_*8Wj!M(0xc&O_sylkva5_t1r^BFu> zK85>vHHU}le+KuuTEM-oa=6#k5+14j0$!<~D|n)O2~Xu~cqXslxqJgJnepuYJU!ofv5j zN4VEj@Ume&M{0irkL4jek&of2Jc4KP2|Sm_@IpR?XPTb`?sYYTmue@4SMoW$mS^xr zzJRy#B|LkV)m1^)_Y5UG*Yz4+e#Ppff>-hlJUm#whWDzsEj(2_4czN$2M?8R;a*pJ zdT0IV=$f|!JdyYCRDOg<>QC@@!+Or;BX}bZ;emV%_qvMUrN%XZdtJqFud69M)_oJW z*HsG7-(z((hx>W8fX{TD!|UGGWeIQO1-$yXJk}6TEy_&y{=xujL`Uk&of6d;;IR z*Xk;UdtD{)NY^uX`(IWkDZG=<;mN7?{bUBOm0!R^^*@LA$}i#m94z2oS1Wj=_Dgsy zU&9l51yAK0cqXsmxqJ&R@KF7a;9ge~xYtz-_qv+GBekEvWBCl8$WwSKpTjeG z2G8XScp=Z>wdQRJ_qrX&r~C-s-@txuY7EalX#JePx4K^fZE=jq<^(hwHLa zE`&!Pv-Zbu@6QBYDL;jKe^Pkxach4Lk956&ciN{pyuE@wcb4$YH9Q(yI~ClYM;o|5k7{_Nb9D=kf z>b}9>59=+uvd!BFUduyxuKSMR{ydt%kE)Xx9xm;^Q+Reo^8{YVXYhOft7xwUt`qRPl$69|5@J{#b;lY(Ge}sE~M*lEe zcYiL#@IdF!6kaW~F7QbAoxu}%3itkGaDOhW;B)n-gqPayYj~#nR`5c;fqQ?pbltau z*YX3reWcA#53h9JBfOCZuNkh3_a}t=b72Y}X`d(X>S5NO8NAbdQ+S~LK8JgM7Vt>- zE#c)^_8eKm{k?GmU+KDrXMbk>-@;3I1MgmE`5ipcIn%;p`5x|{YdW|;M-Fg*j`Z+W z?H}R(90~M2`sn2J3IczQjNtwp3E}x)*m%cu-8X_4I{zo|O!*id{$Fc<3iszo0&lb~ zGk7mg;fd}$hx>D60gpawb+v?hU9I8%dA5RwnuiVC*S&`Ox^LmW?hQOr`#X3nZ{fb~ zdw8mR2hZdOcrNeZzV5+44bK^WPZ+^VwG+ZC`50cyBX}d9z+3qgUTA%1@J>F5ALR>p zc#hRc4sUf`z%yO1=;v7dm+(}+h9_rRzJkY}Hs8Q=8ea|NB8P-2cAM9RAO0zkq-GsrL6NHt??8vaFj13zDWfPY6G{>!jGKax-3zmR9}i+tYdc?G|$d<_q- zVfU-yS5STrkK_kY!)=m%ieDJ2>xYA2oK7{A;G5n}@C-6%781DH5-YP$XFWzGPo5QEN z&fv+%E_d=~zkuiR9G-pL@=JLCJ@W#de#3kPPu^l)!c+Mg9;uxQ-oDn_*}#Kunb+|C zV7`Ti8gBy+bl)Ak`nt8#!b7#+!8@(j0ls;wt=AF0*LCpbVZG&_vipwU?b+rby!@s4 z81Cy8!F|0Za9^(&?&~#$`+6mCU#}V5*DHnldd=a$rpaI<|0M$35KFv4i_M9^k%?J>1vv2={di z{&iT-p~f|WC-M;P>o|t{I!@q|%h>rG!+qZ+@Tu}MxUcUV9_c!R=jYk_F5tnJ&2zZ# z()xyDt(eZAIjU#|-8^$QV#blt)u zz31%VvAl!(bL0T`_3GiiUPrjESMavs^V-*I1o!m{;l5sDxUW|P_w|~<{W%iDeZ8h| zU#|r2>oucmKIib@a`yg^!TlV|;rZn)zl8g`ujsli;pMeYJNaC;hBxvG-pe<1eJ-ov zzV2JNuX_Xcb>G2#-CMY?`yTG=-obs{5AaOm>fyfbN4T$h@b+Qd`nrekQtLH_`+7~_ zBVEVv>Uy?bQ+PNrPvEukGq~^56z=Oahx>YEa9^(l+}A6I`+6s7&hy=r)Rg`1!3iw3^Y^&Vc_*zS9Pm+~H7$%E~%esbM+1o!)n;q8^IpAp>i zF+8}k<)?7}xv3evP<{^gpPS0z!Pweg!V_Ju;1gY!@a%3jpKExNm{;&lzJdFn*Kgt8 zpAMd>{|C6w=Mi2gAG~9@j-C(Uwen-Q=O^&;DmI@n-17;%yPoA|aL>=-;hC1t;GWOn z#oaBxgeOn7pKD#gE9FbL=PP)l{08p%EqtNt2Hu{3+R6Ui(GTV=yu0;{PV#$rF*Wbt z&3{-s2Y4&*;hp>l@8!WehxHSv|08%P58lng)9mjBA#|ZB0IDz{* z#&BQ9DcsjFf%`hn;GxEq!c+Mi?(3MreH|C@SncF+U&kff*RgkO_SbO# zcgQzzZ@+I#Ch*{K<}-Nn zSo0K~EX?QdRGz^z`2wEHb9fRF+7z= z@J{Vd;JNZKJd@Ahz1ms8U!(oCgeQ^yopbo>m9OB<+VWfY-`~{ElO4SIbIW(|H>>>~ zp1s2IqxTQz|2N)Z?T_Kj-&sC}zg_Jo@Z^szKZn0p`31aqndJ-k2bC}3$;&Ojfqzu_ zEj)R#&COvV0Ezrt$?m zd4}cJ@Lu^1JbIPo8@NAT4)FY;_Ix?QJ6%sdIGmrR)j1FE&Nk2JXPM{lUcQ6}YQKPo z@)bP!jJ03FOXVwgBHzFxc@2-{TX=b}`!?|A)8;Ka)cow>nY@FipS5-l@KX66p6b3w zc&7e`9~!P>`fywKG2GXE0w3u*hS%S>eoo=Vh3)saCGcMP8U25(ofKYN$l961+l!lL z^xoQ8z=I!|=kV$~=1X|_bMpe;D!+nz{g?3UBG%6}yw|uYy7t8eUhBR!-1o&6?)##F z`@Y!0(;wP+Te$C+J-of7jjMzEemTIaUt0S;ywSLh@LY8ge0W&5`F~qGBl`EuL%8pw zG2Hi21owS3f%`s+;o*1fz6m^dgzc{s9?9qMsje6BO!*w{`2t=kzk+*y4eyk%;GVDH z(IahKTe#ei)UKC zf#?6vdU+x@L2sk!1K3R{s_-j=E1)W>nAA9NAU3J<{>@!LC||)Nc?pl@Yj`5B;Hi8IuT}p$c&l@!gJ){z058u`UG0W-mES^jMOQl^ypWIK zr96fgYJUoEu5bH#Mt_!_w{v)+>jk`BS-s`(O1^~G@&ew-*YNTM)}IaBzklAsn;YBw zws8MGxr2ND2>0)YM;{%om**q6f8QI!JwJo{_qTJn=X1D!A6vjZzlQtws~foI8@PX8 z+QL15fcy8KN4V$1j}7PTHTv^~2=4hQ{I$x@;GWOmuU9^YdwvCflk#i0=WF;|m2cpl z-^1Ub`~mLy;N!#jd5`iT-18Io{6)4eQuvQvX1;_!O!*bOc%psYui%eSzJ_c8zd`vP?)lLt zhvRy)@?*H?WBA*YPvD-P!{4d=0`B<&{$AxvxaT+U4=BHdd%lIgTE7>vgM0o6|A^Wj zeQG#wo{!)kQ$B`!eg^-P@^iT7bNHu~FW{bE!_QTI1NVFbKTr7B#rOL%c#+ovVmpR*O*^IN#zw}TgdZRc1I-|KqZ4#&GzK7xBb zhS$nZ;hvwtTjf)@=QDV(`~vRzC4BT^8*c&kd|IZ`52zbBX};KzzcZ{FXdBsB~ReBd;hj8#_wofi_`2TD;h}s9kK_eBmapK6yo9InH9V77@Laxu7xEfj%D3=J-oR`5 z4&KOHcq`w-J9!81=HHGk7CU;jMfQ@8lW0moMPKLG=$0HH@Kip5fAtUS&$XxU z;Gy?=uy=`x|R#1Ha&T4X_s@Lc%_?)eyAD?f#MegX=hkKyUTJc9SSZw&W&p2Azra{^C#Ykvms-hb7T zex~qJ_npIYtyczbe`xJ5;Q5cub9nGm^CdjHjLlmC@6`Vi9=^uvwt`ROH9V0w@U^a6 z_)6CYxaUXb4(p-&N9)fRp8u111P^o_!&~L2aL>=+@y6Ou;hxXnsqzcB=a=-?TKffE z*CjktzJjlGy@7XcuywEDm3#-Uz^=*_N!972QAJuLI z_wi2PKHeB!H#R?0c>V$N1n%=QgZuoXaG#$A{J#He^HaiqPrikpr=R=n;Qk)c!-FT= zd&p=%oM(Rz8N)pv!|(I(Tb`U_3EcB@xWBg)@WRInujFg^QrDaR#rN>|TwAY>{u%Qg z-srwZxZij5`Qf}Bl$*l+z6o9Toxz*)tUq&j@-J2o8Qkxi!wcn?aL=#cmGULr^A)^N zegiLby@f}wxBfS9pU)PaD8Gk$e-7|W`5x}=2j>mft5JRg_xu>%DIdYTKQTObgN=6z z_xucADnEzU@(iBnI*0elFX5hF!QZCu_iFfkx7PnX{P*Ptc=v2OPl7KD=lSBPwKIV~ zOzlkJf!ayoer_z`(Yvhu0^WVe`ccAjU9aKUEv|BMj#cn*YQBNDH!-i_>5a{|@Zd(~ z4ZM->=r^}~3lEjw!y|bIkL3q=BJbg;{0PtF!54??o6AS=LLS0P`50cwBX}*J!25^U z{KW7^p1?EJ$qepwGKWufox$VV+I<)B^4{h-yuGXW5?-mU3V5LLuIRsN?Ue9RzJ`Zt zr-DcF4Lp|D@I=0ar}74#$#?Kv-ogv{9$v~jcqKo;Yk3d%Iyu6{NFDsR3{m;HpKcVY-3Lon_fkzLr^_{`1hnlDGP<1|s*K^Bf@IdpkfTs_%d=Ag=Z@z?wYNvol z@)f*Qe@b|y_Sf)U{i)!Y+TXyvu4;Ip{1)zY)xay|cW|$(7VdSmhkIQe;K94?Idz0b z^5DzEbG1`0g!l3>ym_RpR|HQUWj=xD%E$0R`6;}WC-87#?a$zyJf%O{@^g45&*+b_ z{DQ9bb9g0R!i&dRI|aN|`zv_-ILnuCub(yC>!*Ty{cPY~KQ-Lzr=h>s>ZgTw@;!X3 z>jOM_zv>X)>3aN?VIB78+B{6)nc9ir-cACql%K&pKZiHUXK?@bWO8`&0lf#p{oj*W z!yDx*_(In;Jk|9Uo*Zm`8hCS_`3~O6Te$ywG9BFeGwO!xGX0>9cMRYCnSF0Of%`ls z@Icoyc=+*&eLo4$K4CtG=bDEMUVq!>VF6E-&*6>o1>F0&f@f-{gtuyE4e#U?-0QrC zr<&(2+~;!#&y{cCp6}rGhin}WaL*s%*+(rO=+6QCy(RiftB(+#eoS=&_diFNz(=}{ z;q4Rb`|2tE56ly|f4@D0`}f-^JpMy#XAZ9(XP&`x!IMu}zJ_~#2lx4D;XXfmc>4kC{{h}T-Moi4`tyb0tHX1nm51=)EbD&+AL)7q zuRdk>P2sgXgE#U8yp`whPQHZq@)f*P|4VrDA2$99Ug&xQug2( zXZamGJjc9+XKH5;Pvsrl=koyf`Rw67pGUaQXP|lV^Q6^%NAOVd5WJCg%_VSpTkq-Gq|tU0`BXT!y~n`g!_6Ga9^(#+}Epw`+BY6 zzFrl))w*opjl72E>i-rVYuj4Bo1p1-w!_ zIlTCh-FHd9gtcG5yGxs|;ALoD!jsFGui=%vf(Mti{05%MYj~{tZsFngY+Mbz_%HJv zJovtO3$K4*zK6%Xc?Yk5Xnuf~fsLz&_ga@DJWw45s%t-Qd# x5NgW3BHPUdtnR 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%0D1u$OgZ7yl{P5Tc!t?G4S(2T*ozH1!JfrqD|) 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 z zHB85i4BKJ?Njx-_ji_ElUb=;(^RRv1xo?7vF!})J?$e%)lAOZW;IRE zZNYUF*EKK%3Exl~^?|dtOox2kXcU9cPmsy0W?5U-U*4~FhpIgDEn*tf#yw}_2?Mxm zFhXW;QF7C5diOOz6Vx*g+(~qK`m6PqXaD=UGxjbyKODTH>8x*5ZHv4?p--hYF&*{s zj)Zsf+#T1wuY*vo+sa=@?gtL*t4^&FYW)u926^_#F34ApZpV;_ZPmv5b38E%j6&IX zHS|?(-txW725;tnD7JB>uy}^C{)xWAMNuX!%<&6V#(rgaaZXFIogJrSZG&FbqBJ+` z#(F_HzL;0ebU2zCE6+Hi>HGS>9zRz-N&f%%FN~iBAk^7MZ6NB;I**@qV7IxM0F@}?D%<0Xuya}q{VWp(r|lqSd1@hHO_Pq7kS zJqhFK0p0UP;&_6UOXSnnc)(WBKX{8cJBOZ>9P3QMjb`=7xsMMZyyEg0O7yDs6+Cnn zHhPX%HP?*h(evV_U3M`11N1R6zJJ>%i9Ig)m$WY7AnM4yprR~Xq+%-)1GzLbH%D8f zq9)o8Wr1(tuaBdfR%pEat^#u%D;3TdhYDe<8dj&GPQ0E?MWlY`R$Pp%yHKEI9VC0*Z z)ZlWRlH6TNFawq2sQIo$IqPMPk^9z(+rGA9(3IM+oSvM~YK$6c5h|5oaHT+pGd_pg z>bo(;y8Kjiee6b@(D?FL86V>4Y`0!P{B98-zs$T;8l7NwzW^hCY5a$E^0?-ZaJc_&^33fWEIHR1R zTKC}ucZz?jyA0MKil1|v{>ZBwe2gK#hpje7rt zfq-9*&P1llq!#6Ps3G;IY*vm_4$CbVrWyA$u|t{D422g0r!?v>JjSiP$?Ot%U;FT7 z>Y9fL3xh~5vgT!7^xX>)qd)4N6Imz-m6$=**oZ8Y7u_za8rgwZ{obve?D@K&PjUVQ zB>HpY32H=-_vW`pfjWXyUJ+ z&(YH)eGZ-46@B9NRY{*$8uWP%7-$FjbjIoP%x`}UeL5^L`aBON>525o??n21>uMJE zv-J6P#m~^^(;vs^Gx_bGq0iq<>Oi05#H7y)`gKL08K-rm&z~lCrq2@}O{C9JO$qcl z=)a`T_U4ZCiCH5>5L)=$pZ+w=(lQoSLtx3)ov9YFerl;23TojW7lTz)U_v;T{G9SR zR2&S0+R0r$Ua7r@(2yIT)+pRQA6B;^2DJF{@XJ3s_pszPVJ1+g?Ng_I2HRxADz#?_?kf1&bBNJ?z zJpW7#24}%6*lE(0F}+p1jTVk}~%>CFXzEYHYmO#U?HI7V1dDX`v=&Mcf0$&FqbcLV;EwQfYjG!Npq^tG` z^>$@-cz&|43D&~XK-|sf56Iz|tX1oKO3mzKEA84EKhNy3886nx-Dy2G>o2?kJ@95F zuv6qK28pi$t}FyW$a&~dAqvUyhU3)E;52KCAP=C6=4%2pvI0;zpC}>_4ztcy#NBDo zGi(77A30NG<&2Rv=$Jhl8OXlj`ktPSomz-pE-aq%TO&OX2jRsm|9!;&mGK}<&-=z@ z^gR1=!0Z<7pDZ-82Z}A={|PaQYR*ZZ(LXhrUEsbH;sX#=misw6d$T0Z#pF+NU^sL2 z1oB*X8N^wTW?P zCrCVU5kkn%I_uv=FBtl)uHrkxCmg>K{8MO)LRV+1f%n}f9k8ZgfluwyTpUw`4r+0! z2JfPKAyP+oULlH-swRnVmIviZnuvgMB{Ly&Q-4CKml7`yCtuxhK{o?(DGT*|j0;6Y zd7cYVwk(vQ8Vlt*V@AR{<8}}aM1y&vNO8Vh&Y;{X=8y z__!*Ms+R$jSu#n5h?%0)j&TYZj&M^cI2BQfE!7`r;Kdxsr9OpaLYNZAl%a>{PNif2 zXtfvNkt@Lb^x_5(gLe#_#ajrz%rU!9Co zy}nPZ4j2|X3!2`Z0>cZC@${ko|iX$nYckN)~-s1wT+BQW!*!b0P;F{_- z3Dc;bQusQy_)Xw=e>iZU2W4+_2FJR>B~hn_)8_5oLl-SdRRae+shErGSWRpLlTX3f z*##pGG~)dC6KDx8cI^X}-pv`bryOX6p1KZ!-ot4Nr+62;ES_o2c4wMFXQiQTrC~L_ z#P=}{_S(^V&fa)&D($7YZ&(khxknL!%;z`anGgRT?Y@?@OF~)QF4eNEg>TH?)3(lg zI8V8!$=B37Sngz|vi{z~=?i7*8ro{Lbq1&9z-Zd~91zdME0zDunt2 z=GMcT$BqCk4zY7-ttQVcpz~H7De{0+S7b)FbJt=H7zjG@S}^qDG+vT|rQ=8RADb#& zM(`{)KrGH4yJ49FpChSQR|_BFOLK(&g#Oc^Xvo22_&r#vB`13msr^d+=4!=`Nhv zzl8hZMu9ic!-gyny-(GFNifp0h%Aqr$_a{)|6@&L9j@9`jUAJMGF1OD(A}hb7rdd4 za)g&eUD~(Wj#8}w4FZ!WT2T^SR*>8Ve*w_PB&&t(?tUXxtLHoC$TZJ4_Tapvh*&>@ zA2~->s^zzwyPA_(WfA5NXn(o$&9RVs0jvX;_>^bwhi&GMn)uJ~O_=)TGM?F%>CxaS@I0^!|8j5GsrAEBe5Erm{U5OIBq%l{es6x;&Z%5-4m2RXXL zSc`7wlpQ~kssx^rIL>iuy9I^CNf=Zj==EmcyBPRxaF5cyb%f`EM%zg}YIwv#)aLx; zw%&sON__7#@a-+Ic)kgiCq+~-f-nx91;u&p(}3>=2N!U_w`y%^?v8UcbFINiKzDJz zKxk+jYyBqh{a{)g-zx^f=o1ai$;-9MG{udu&M{tr+~uFB!+)YWyNoYwxiy0f_lw^51RxG37VJC#wIa zW*YNv0=SSzJIkw}^!^Z(z#t_3{}O!Xc*v(X>pqD)c4GX{-zrWQxld=t+{;*J^`yfD zDmb=(wADMU|50oLn*1*zuULEG$l|6ucw{5{LXaJ{i`SC8#fEGSRFfXaD6vhf=`L;^IgY`+r# z_|Ea2zke(IFQxyj`TY_+1k*J2g0cMoQ6As51B_Bu@%7p0>8nWBec{vxBFs06W2THKpMpm_I)&4WCQJQ`?9b zKfw$N+!PDkj5lzD5P_RwiJKDZ%cX_ixKHIg40AO|_TUlr%+kVr?nY6(1n_)x1va%h z>+?|P6<2bzOWuSn=o5_L2UU9=oNgyh>$jtYSgF~jmcpcE1}9u4*J+!l1oKsqQ4A-W3l0=7H(Sj zhh}FgKVeo86XZOl@BqNJ!MzB^Id%uv??g@zPekr!MyiG@GDJ}b;o8fhUuS0B_7wa< zI8TaN+8);3&&KH~0e_|3f$QKP4y}_)j0)MBjL|HXmroc~XLDs^Sgigd?95{gxjfd8 zLGgx+1HBc9R*>Gpso%EB3`MP3{aDViCOl$h+V)RFZjkNxyZ$6cL2NdX{F%z(DUOLH z+ELTnFP9JWh`Yb7pOK!frGucqO~PE#ol}DKzIHHLK8W}4c|N{^+ORn7*)0rs*$e=K zNF3jh?x_cksQ`xT#BQ5Ksh8t|G()T|`BkqD?LsOU=zMQo{3Nx%!j!fq0_%PMchTeX!|YH789eJdgg zLJ}Yecq!ry#cJyHStE)!E^6if{mndk32NWI@8`|ulYQnsXU@!=IdkUB8EI6+TARlE zo6adHpPes#v@_ke|FUOa>_ZDf88F!T>yEa@9jPB?)3dr57Em_)vdalYF|B>1nZ;eV z8+wFNT6}y#dF!l$<74u3I&hb40a}yKdNL!{t`8}2)_eK$5$#$z7Vo8=QxG5HFYlP$ zGd?~a3zPfsm2}hBQi}0@l$n<_8~mhfJ*MdCB$1FG3~fCZFzhMK=0tb3Uwzz3kq=;H%F0s;2zI`Zrj7*uA0d79Uwa zwFYSyTBMBvX;tN&&Vs|3G|8U)xHBHugL#q3`Jlpya>R)q&D&jB%tVTxt%>bLmRJx! zCpQ?cDJbulc|vtOn2#-Mc}qIj@|3sDF64ctc(5R6XK?o~@|zB|+r^BW($nsGwvs)bfTSbZoCUJn zrY>-zzrqzPc>#vJDmF!=9=c+>icZ4lU%G>)(?J)~K_^zRIz-mf=^xd^UUFaMmRxnt zXEo)2ukTEb1n-89cs18Idc{HpD3+R-`QAWDQU9(x7;mcDvJYJg-N)#1GnSIqQ(k5= zdGsYXK9m?!Ag+Z`YJ~qr*cj?I1z5_Nry|e!@iFSu`uObpoSnE!I+#jlw;~Q;7S3RD z#4jwsJmq=uQJTybGMR(r8)hGD2AQ2V>W=&-h;6pwpVM$aj_H+9R^X=jr)%Zn z{pzb*oT|@>%m*0^Xp>T>iF1XVct3Xbp`6WHT>QY{EKv8*CERwu$0i7tY%tv;locyo zkvaId4=2~*T1k=Jm@!xW|qf)p+2)I>-(`TSJ|0qg1TCCzC=#APctbEJa*kk zmHu?s-@h?_()9Z%*m^^-V-m{(OYhqF0T4YzT*%5OsM2SmxuBW7{&@Mf%seVX|I6EC z-_!w|bD$BsXJZyCw=ev<&Hs;des6D(=4gZ;czOvRhHt%)SLIl~)^Xy>bnj-ql>sRI z=jJdQ znCz-Ao`E$cYdM0OF(X#y$07MTd*V%n+<^P_vOW8N$h)5WA)_tV{q=puKFpG4@yFs{ z3Jv9~M-@R9wb#3M{Q(HF`{Sbjb^UX{t^VKsH}xO3fBotzaO9y>o!71PbeuuCIqyy5 zc_uUtR+O9j`w8ds)K%-Oc&NLzBtY9b(uNN zj#c}}$b2;G^EgwR9$Vyj1i1O7G&HNrqJcXJP_JoAhYDTjfttx!ymQ}RQec`n051TX z=(rk!6MDY$+}>3i{IP8{SS7fsSz7Li>vK5eX>oal_Uh)Vnx)!VvK|e1Ii`l3tDizQ zy+vqoANZXRp960fiZ3x0XNG(MEW2PcGH3U9%xw>T59MZ0Y+eD$g5FY!LZ~pCkxCF; ztNC7=7?}&6AFrf1VAn9zYV1BpukJSh`-5kr1gr5AYHy~beO=q#qp04)U&>xT9KP6_ z3F>BuP1cML343R=_dmrbt=vyl+}Z2;!D18~YvKoRTWH@{j$JtOOH}8WBoUHShQA(C z|97suV;|z@Jt~IO_pOcXSUZH6uFW2Q%@Q|!J5ul3PXg#t?3x;ke0>CGpCn0)?KJ1E zI)#{AczY=4lQZ_cxi~R)3r|QmO;Z@^!Ch^YPV~o2&~p-jWoIV>Kb|W4c-20h_RB#g z@>jJtUKN0mNHfT%a&;PfOi0O_4R_4GHW+!f2miTUYwf(kozwMK%8NYf@A`9wK;qBu z`gO)Hfaf`lKLMxJ(OuW)S4_8e5))%r>o$F3r)kOE#=QlYD<(V9J^IeXY%P$77=HQj zoXDP1r)dEG7xPGD1Hnr`poM!-i_PI_;uf7vS3w@nYzJ=UU3kQlQq0u zS6mbOa4PnP52#_)p+m?wOT7~Q5?^Qd`F*t|J3~2c{om<>=yoS6o3tkV+9F`IJs9rF zso#;5iQ*JJt~lO_76F&q6~?Sb#We0u5%0CHsfdP~HV9FX=A!udx%0nxhytCaz5K>r zinRJeJ%8bkosT;E=OQwd;djmi_)0WNdpQk@go~dz(eF`qa1BxvA4X)NA8`9k?MAzX zYf9__rJAE>A=oGnLnQ?bRl?8aBymol3I*E`#DOVLNp|+-wJ5TFHUe{c+=Lv)HBw!K zER1ya)@|aUOxVajIQ8qO+_e#nf(mNFmFq-%vL)n&yM`_7ZiD7nJ?SU0H%=1+@1})C ziGi0U?~>wB3O`=k-~A}l@WulSPJY3*{$h4S=jR*F%qu6;-?MqH(d%pVWh^J&gR`1p zb=7vOYIKE@QdzWezWDi+cNXOZ^OJ8Ht)#G88zNlUQ*pMC`qd`8Er|i(G`?Z7RQebn zk*=JqF2@#RZF%SH_mZpBti|e!#b83cFufO4a~GR(Cpr^2f{_n$lFJAaot_$;|Ew=3 znJ}6}nm?M04L9QjO_j;|RCvV{CwjihyUK~y@U4#Rtf+UQK6P-Ub8p2ACt6R}GbWv; zuPD1>0#>dx&aQD9Dk;QVQ8&y_oH};md)J9bwnwj2bHgjr`C;VE z!l{ujuo|!sxX_O={h*aH(#i3S;oz@U3=cYrVZSpxCwJH|CwfwEVWT-0PM|t5J&$SJ z%%<#Tq>ODtJu6uD_tok+=d5k?#ni|gq<%W)aH78>i2-}9#6OylTMf`8Q+ajY2PhtI z*aykklXKXv$h$?6wh2sd;(>nVKm(sTDV;wRSD&m-OqIdQw`+R_0$shJiz?Jvsh3ej zBOnkpWDJeS4b;DreErMJ{12`=4q$eHy8@?SxzOdT`$SL=1lBt3Vt&dD?lCTKgwpsq zT7_>hFDjI2Qx@H7coJuf-cULs=9;H_rVa@+bJ2RLD`0pv>yXj6 z>$Gv$kf`gG!{{vE>D>GUFqC}CJnij7H{;g1EN4M#!cN-);=uB92#5uabpg0U0gh0+ zhc{DC75(bew6SB}{r9e*rSm-hd~9K$y!EEjs$x5c3r7AILU$DIGrZooN)x^cu2mdr6=^;ZUbQeckTo%(#R$dd5EjU!jNzO9rJc;PN6d8m`l~s8gs3V|lvqpO z#N0G$&8+>KW*G^PRs@6v-h(+Zr|S^arx7cgtg#I!bVTnbVfc(;`0C!Z_%j{lM5n1D z_>CL{3bfVms!-D-s+{vWlV^%Jfni>usS6ATJ2WD;Ir8R5toy^A>dhj%v|pe!45epc z?_0D)-t;rEQbV{}Nw~_t@D)+psMy!F$ATf7mPl5}0g=7Eottj~%ET{rJ;Ak$r@7R~ z6~Rxq9ypkxbNX#$a2kh@00u1?`vfE9gM#k|VEU#yGoB&vnjs7DPIbQSa~fZ+40-gJ zm=?C1e4bb2=_b)vgNE2|f9wBx14l0}24g!Zta+cLz(ul%T*`zbXl`@xXM1+#Fp-0a z>xK#1ARQ8Y0+15HU5W8IdYat==f7beCR$a!>P{#*uAVtgO@1|;U!8Q=HhJ1{ZciMR)v@zFfYS^0^x(oJ`R zIu~+^;Mff6$Biu^vtpjWln<^_pLwK%^?+2G3=O{`S$Ixh_{p>TIt>kYJTh?u&b7mp zCu{@Uz&M_Ia?ajB z-?3^Qfk~(28x$FH17}7$DtWCj{1p~PR}q9H!0-^p=DlGgpgh4ftTDdigTxEE;jrr^ zt;s3~pB}j#z&HG5&soPux_TPI(y)n939I_8{E`{pFM$K*>F-GAwNUT!fHO0eLEDoe z>WpSXERy$|3EcS+Xfh_rl813Eu;MzWp%&{ltmhEYA2S`yMmqV=JsEne^=C+6J!T7dN; zc`N8M*bc4{&ck2k&Ym}XJ4whvD(M-riyX4+m7_69lg}F}bljJbwyUFT^74lL1lxB` zb!X%qe_e_86Oj*#YN&?1l4@zNh;d+Htba54u*_5G9GY}Wq!hN2bfR~XaS}zka_vlF zPqHt$lKwXnBe=$pjY|nc9v|sU8a?J@2bhMV45O$B{05ua@MZVwoKLGtx`MIS7>gGR7G|VL;zVcIjJ=Xq;_!O^dU_v) z0hb5cIv~mLJf3I(?CF| zf8LP8`lplM!)N6UXmHofj_pM)J@`1t-N!Z`(_BCVUy4>+YxpN_B$Px=Pep^1uU3l@nx`DAhA^3?%r;`{vEc`|JtoI_#rz-C3 zef4jX!xWSj_5!ab4<|~k`o+3*dm8=^+v7acp52@WEYx9YK=#u?n|s#prbWSpEW2KN zga~vx_tiZg>ku|GEqaF*+1Sc`^>21Pl35!>SFAkEzP0-d^0()a2kE#g*E{aw*Z`qq z+agYU8@6*rusYwol#FCzTZknHMHT5X7Y0~zdn~P5I3;jU2t#V_;N7K+$Rw_e~;?3|sMD9X18J{IY*;3UXFHqOw2bDQQmU^wzYT zivlizbj`uPmv>3vZM@!%1b6cpiHea{2;z;RVAoE|vbDQtBPX)!&h zB*+_0cMi24T{=d1L6+zP+9g_Z9WPY{PGXEi9~euJNl_6jdvPXbDbZt>5JYP#VPDEV zw?TK?{A=3&q^&0mo^08Vc84Mp!QkT-owLch4fprlaH+9GnNI zZp|aP#3)C%-sPB5YrNmRFQ$9>8)C0ZV7Kx}Yx7k{f;J>K=($Yi=<@YI5L6ooESwlP z94!~5S;eZ)^p1M$54Eu=fqrhqVdNvujl4{o29knn4rz=4_OlP8XmU8U+%|`E_VqM5grdqnbCA<{hsP|9!XJ z=W~C$un;I1U`r+J z^c*4hP#q_%-QBueWTu;n)?kYp$;HF-c)8p>#uJ|ReOy8Claz4N{o4E>ibuBsS0@vWWfxBmO0`qYBoW9Y33@73ak#bSs zUh5f4;w1sebBUQi`g;QF@VI#|g5JO3GOTmETmMHPcZq3y=Dg!T&O3x3o$@^rOP_yb zj`$~q=S>3H_d?CEC(;XZV9rO|^|Mt!oAjfJE`jeZP8#^^;Qwv@w|`pYTza>kjCj&^ zV?W{E+{C~HtQV}-D`9*e`HK2KQ9H|&x^g)XI)?hztaQL_?;4%#4mW`mv-}u z<{Q7X!X4N_$3`|(hF4e8Hu~x}eB55o|IhnsCmFw^uR4hWjgP#>7tEyk>I3Wb`f8gJ zsjpnmf%%kfef5IE=_?(x@V)hEFPg^Sjd$2!HYp-gcgsMDu=8(r)eDjAt~z(yw{+Fm zfa$6;yg1ucRh}>1Ri!rIySnPapXU58d+ORY+f($`B*QuxzE<>VfBk5yR$=+!Z;Q`T zsWRu2`};AKC?aocm!dp2rWFxOWm((ILo3;DaK&Y1C{c(af77&lF)6uQEK{0UKld+h zfB*jQ?(fe|zrXHWe)yI-5ZWHh#y?KQ;og19_aIX3?#$ue(;F8H?`9Mm0slKXNx&0) zl98aZ$J)f{r@R{Qb=BJa^?e`AJcHMw(8M`;2*GGN*Em(X-Jcyd5Z1T3?kHzv`~t8L z-rLKGsvIm9R4#l(L7`amsUp5Xb`oylKVm}@ANn?v1aH*crutTHvz?_7aAn5<=RQFxmX)Z zJUFz>MDMn_!e^RAr3w=|SD57WC&0A?%kBvXkl6__I9YnIH-bh_jlev!X2-QT10R*B z`Z>Mv5!q`J(daNShCCht6X1`H^}EBG^AL~OVx6WFz-rfhHIp}*tOzl5S*s?I8x6%4 z3w)Dn@f2L{?sa*-_h?Hl^Ptp zcg-%oPSJm>iLZH90|kAjP`qY9ZF$mZ$Q2aW3JI3&zIHo_8pYjd=W#1N7YwgG9eKX5 zZgAu&j&0Wd2#_R^x_Oow)i8~uY~q6pjUOAMKPJr?sSG{v{J49DD@}%frZQmBm^5da z3_pxKm5XPxm!Z+r5WQF#I@sV^Kl@gJsNo?HC08fUX{LZcF!FRa7-t(8wOCjfgWcg$q{W<4g;n9c3h5_4l5jK1487Vx)*3# z5NkQ|m9m!lgN@MVPO_2M(n}`E?fiSqFq#qLjRt4I zCZdx`lcthZIME5r1VJ7hgF{VHbAw0yR(&;m)52G(j_h2x5reK~IJldyhyG|1gl`t5 z&WW`IkG(mn9I-}yWGfx}>6hd^dILs>cmUi?6(%|QZfRPX#!qAu*H%rz2JFSwF94E1 zWNU}Nhu34tnv7qNC6~~I#rvL1wh^8wuk%Z9R3-nU_=xeF@`9vGwJz3Db>u(Fu-!M2 zK=Ww0X@-YI^NE>8CC_H!?b~83#--#d2wBf7D)pgOoH%*lfMFOWg;?ma9Pg!U%hj6s z=rqPvD0V>mImL81u6YwM+>`JA_Lq6EdpAvTtNUYDG4Z5$GPfMJ5Q<;h`}T$~zxr!$ zSeABe^IT5fhDkX2%&?!R{VcH`X>$?R!N;8+Fm=cTt6Oi~6Xd?ix);lRxpjBQeZF=3 zXn|XeTQIdZOu%b_k#%hATI#u|sSGEdko`=wpXv4!wx7j(Y7&=k3AIxTrjZBm(>5|c z#~sT^WQ)ye%$p@ZY*gl07^TeYj{KX97*F2WHgbfe{nXjdGW%I!KOOe7&3-Uwgxbw98Gq z3Rp+<7iw?N;^#RlGtN-PIX2^*ka14RIHzTtGcwNWGR|PVeW>1tBX({g<{9ufB6YMH>W9&cfFXAZ4EPMDo1h+ zSM!A!@BUi==(iYTO{xsV8ai+y(lvs1iP`>W?a2_12 z5nOTv728r*URA#ARz=n2w?+F2iyR!<5X0W8-i6in6*aThNz?CCvb;DQ!L8&wv5pXN zFTP0?M3k*-t=Sj3lSk!K=07aW;63iA)DtpUySexP-(|y_rC#dE_a$$(?G=Zi_UetY ztoClfyI*@HgrvO^Oq%u{j6>}$;_F^H&$QR_D{Aj0YOkW4CDDGrpt)*>{CNvaGeCku zQ8F^kX_{l2qx=RPa&$*W`iR2I>EkY;ZTHX4?bhy-HmBOX^@r(pXSN4s|L3hvyPC|- zsy@$c(ql_2ZxbJ>-N2Aj@ne}{2>4<@5Q?waXxT}b1TR9n%xTD@8F1lc&tLmGZ$7CX zbk2@hL^3p3JUG#FjCYGsj4uDg8S_#_kJ%HAJe& z!K)xYl(?1)DU^z{y~;1K4x{$nJ)x3Ma<)V|_mJ?~gZU2M8hbg?iaF5SGcafOsk8Dq zQ#|)a#%u}i?J;}2@ebdYU73cVSJ|~c3MJ0{mWuvCMVt4p2+c<(P{nXnl-ZB(qZtNq z1{=--$)A(FTo1z)7Szjg>rZ4dKHJvAY6;`#DJpd6AgY8VYxvrR(oV^?>>CK(gSu{k z3f$0PsKBw;WN-Iuf13SXP3)g^?C>4Z_~j+M$MlYqSVdW>s!E*nD61}%x{HlMD870* zzN*+R_q+~xAn6R%og#ivB#4)id)B`O>!}5{GW^e;^_xU6zHx~rDqwwX*Eu{ApXi?p zbgA{4Np}&dJJr#BbtpHj#5OV#GE_a;yUDU_;x5%5N<5e&<|q^&Ve+}H?H-kqF@VK_ z9!Pp1@5W}aO|dkcf(KX@Dh2Qk3zc`(KasoyJf`_ESgYjZbJ<1P^St22-oY2vWBpS( z+VEe&VTb>x7>wQE6h8%T`jo8aeu!fOW>&Q^lfl&Hsm}2oPSbIW;!m9O@hKF+AHu#% zJIId}Foc1*?)9^bRdAdH5>0R}(rtg+DM3xW62QMu4cHl3=qr97@$gJ$&V@|9hZ#MQanjtprhS*@$q#w6ufn(DS4U9@UdP_ZbHE3#;$jo!HG-C39 zm;6c=Sawy#qmQjH6j(V^=|!>3L0!xq$3g9?5qdP~6idp8$FYMfflBeLMBR~!xXp_w ztms+K*&Go)>h!W))9vZ9!ko_Hp#%+E>z(17Y)QtDPS>A6XO{HM!w=HG@Yg+N2P#i{OmNRUTzKSI z?o?q1U=9keIn{^=3`psvDJ`D_Y%KxbhTl6V;al;0rx)=J{N6KI_-7>3ODJGG^ z^OwjkQIY3AEX|*o8JN2DV({mWl%*3oO*&wpZ=I;NcH!068UQv^TtrO1SKKl3PtW+j zFaM0Re|FaW1jSUPW1OZnrhETq_Y;zbin2_0<7*xew}1`)hWP}W7Y_TejKt%`1P7mF-08HkVTvifl4XWv z2LPhBSEP;jlvDbg)A&05k%=@QXCjZI7!xV6oH85mGx1AP@yHY-BnWFX+0JwtB}!3P zX8bsfFM45_G2}G15M~5K($o*K&^pn-0yWx8k$13=^&N0e{8w;q>lV2m&^7-G=##z$ z=%Q}{x*!E~PYX0c_kY@CcGzTabO^A320MB(!MA$BW)Nk9U-g1BBi3nL${t81WJayi zxX2638o7V3xG zITiLfbH7}Nelyqg^puxtIZoy3yguYSNa_Z{(l@h-;wL4%dzL|JkrV1GqR<8T^ z%Qg3#xzroUAKO{fXV!k{M|V#j*(rtbDhsZA%)F#5wwy@%BC$IKMp#d!`oX7Q$gCOnldmhV>0bF3RQEWk(B z{>OYd*gNyVH|U-(1|v;R=F$JbC$+6kVsCBmMMrPnvDQGEt6SF164fb)La?eQFpm?jLo`;pz(v@yMmlnnwgD#&A(`wW(ye!^L3+FOA=Ud z?C@Rg^~Sm8*qwln_osMKEm9R#W$(;h2}{ls?{CpGDW-@Ac}FTEoVDZ=<{OpBosv4O zsZFdfrE{X=zO{?m#E6ed6iy+4Gre26Z817=(jN>Uv0n-f68J|a0{6v!xlmAj`13r& zC!U+AI8ozo?cTu>;T{tWD33EP?>GX2?bfT>d4HkOxuZ=CgZp1(mNro|Fc7(fb9~;m zwE^D^J?egNZeq=eYMi-ntK5qB`EFnD&Ls;w5A8afhNDFByPpm9f!!@iiH+C0rB`)7 zt${DJ=U-yy+f6scUW6?GoDUJk1|E_CgUhuv<&R>Q`HsoAAa1~`T<^NaRGUFCz=m5< zfPYkhd$0+wzXEwJs!0CJ^ajv{`Qo?RLoM&+$?+^bIKsUvhrLg1MPQY!VWet69YZyc zWn_W%s$g2v{lKu&7rt?TukN(!=#Kh3tZ}ACRw!Z1J6I>JIF@mnGpja~xK+@*MR}Qu z(EGFemqECyHUPO3tJE4NdN#5UB882QK~j~*Vny#T`N-ir*E9WT1i0; zl7by?OR-nRuEVP(Ecck5c6QX5A+F3?8A1=`GBG4qYD7EmKr3n;?Om+AV5$P5>lIIcUe zs@#C!+}cdUYN2cRR_&XKFhDrBwi0ox<&L-39aL3rfIxMy6`G(;iO3A84G_-A7b#vG zv(5s0TWFlK+bANUeTq2m11&t*ql?^FWdQ_Z7ET z)gA6tH}hcS(F=~54Ua6E5^r&Ku<~u)FTT01p9NvoLCU_KXvU!c?q>leoNTLYc-SDt zSJx-J+HN@-{vQ$H)oQv4HAj!=m77pC(&sd^^BZ0*G-qd=W0DA!*%^OsLWMIjO77|I zy`s<;zE85TufwZ{iZsO{i}BS>4zFHLSN5p8G`zY9!Euke^BJhd5o(K=l;J+L%TMt6 z+w!jF<8z-qg`GQ-+)73g{YO6*@FD$ezZ@+|V?ZtVAIW11k&vf1QTvgE#o^WFs8r`T z@by1r@-B?j0ZeirPVm+}zS6|kEB<5~?;i9Yg}!6W@IQSE;ZEZ&md3V-=2uSgecZOc z+w5FT=CZ(x4zxuK`jQ1{zrlENVA^jGnH-w-8{B($jg{Y^G+9ABI_~EH4WCJTEQ5A& z+BFncru`oMMmCXNW#@m8PwSnP_wKjKMgx23JGSEMZlYm6))60m{ox#zaZd7_A%Z(> z0;LcE)}K>i4S4Ch)AOUIV8V;MZ>9Ggt8c?GR2N=1SCyg~z)L~6Lh*HzK&gze_Hj?` z{Jw~80}BD~h@JlM87KIRPz9}uU|XXy=9F)2%PYPA1Vq4zlgB)Y)oUQep1Um?cwA1n*U@tp9}z-TxbVQpci99ZNEGjLWK{HdBYx?DVIq zwFA~4b?6G6t)m%7{Y4aeXQtStnPRiMY(l13Usi2KCQK<5yPA(JR%`5&T6#d|Qa&hm~3W#hZ1&R)Ff^mtFGkGWRmXG+?bY0|A;bCBgxq# zG1er^DfHUIg-c1H54Te2mqPK0fk~1O$18>-B|Z@;@%uH2#z~A^m51sr<&nooyrqY7 zPh%~G>hXoDz#Ku)1iVUGCeI6=r&697G~1lyP@p}{tU?8rh=pFNvGOeOJiMER!kwgh zYh}%X9$4(5O(R@o=^OUGOTF*I-gk@l?c__=W!&X;EvkC zoJFL}Malh#P%!*KPW@U9fw97I$i0TKE!PCzihhsxZMd#SNBZ{iv3dYXD^ z7{FUsq7Ek8Bon3f84U>eQqrG+Ts|1%B~lc@72Zh!HL+*pFOpxKBG0gz$-6Y|zdR*i zl+gehar)3%(#i@Y8hq3Omzyi}=hvXrwG^HadtqGbc26>(;!;2o;kfp;{b`IAgA zbyW;-f88Zmjq*Q|v?0m097URTS$Z+)PgQ;`>2Zgo&TyJjO3K zF0Y&C=<4;2Wwn91&Vq8*Wp6I=904~dnM@yj9iVp~G=!Q-#W7v+LjfOaM0n01kkarE z3u&{LFZL=HA(75U?-4!c$oPW)GUEKaUw3IzIx|eB)-i;P53N;IL z`U->7@Cynxz%2AFVaPs;zBgo6sN(MRooxF z;^b0*Gi>T7_ zDgthZ*M^h-bsN5Z_up#6c#@f#H5p9PG!2pm!pjPTEiQ-x1ELlNie?;w;$HG8!9!jG z^`|N48_2Bx_W*hJ9j^dUEdz+?RubJ|1IRhlQ=3?306_^yAPn?C82aCW@CjxA8~r(o zWb~(D-Ar4&RxdJC(rNe@faold%v66Wt?5s-pZ*k+ND`4^Q$j6{w*=cwYF96DuYJ<|6HmGviFo_RI zn)#R#Cg4aGnKm#CMd*PzZ{@odVwLayC$)YH`2M`bq%yT@YPml($^P4Uwf-%yW-T%% zx0adY_cJR6Ys6D~q$9xUub9|>|waXF2z8r>i$G@zuY zh1e&h_E6Hj^~qylqE+sXy>iu?Ub$m3$$Bo8!6AVTh;UQv~q zqH;4u>Gr!8kxs8DrNS!;LQx_X$r&UG#%~vuXSwYl24?*$aa@yPIFi?L$=}Vn$g|HT z-AwmZZaYg4D|yWO-@5N#T#QdD*K{&1kr%`NL=6vPe+uR2N5 zLFYE!=ee9KNPiecu^5j3>76GaZQSXr&qFR~&O}Fk))rYt+MKqLGZ1n19a*<)kf$W1pfgj~7V{JU~bkRvLR6)vZ%8@h*!&FE|gihK=g1FSfqcD$&|TRaZNY&Hg?~=J5{7 zPD~>hyM}u&#M+vN_jEW{8nsod;u{Q}^4l{pne7qkrh^rSa&GN0lf}qWmsy64^cpjX*)A{${Tw$}g`$70gD-x5L!u?dd zsi&<$ax%Eb?r~}PmwVYOoG?9;mP;iHyzXvEPNv?)Oj&oE6hipUc$cIvkQ6zXd6%rA z9Z&L6n>hua$OYrw3=k(;Mj_Z|c#9R(S^25CM2v3LAP%5xhuNH+j(k&sup=DG}JYhd$E( z>^e4~tflF8Stn~`{N!mvPoQIu=~y*|qVKXKXF}dtL~=EHo3nEJ?k{5-Q8p_FAHiMG zfM`WdJsaHj+>@U%L|Zyu?qRMr7i*VN2zQqyc$ayu_HuX5=2e;kRH_?61MiYm6+dO_ znn|iS&ZxRfjoJruoTAwIVI^I6(wjevGSKQC{ZNVDY*B?>RFhsB{pbg?wm zu@HyKRlj&;K}@f6Y{-{-9U7|AzX*%8lRccup6#Z_`iCn|dswT^ObPav`E_a_Kvt#l z0w#-;%}>?5Z?$Hzfb8}igu4gUS-LjJzwJ1F$pV5{8GGHX~Q8d;%f zr4!^?XKCnV?&doUx^hi#R%Y}=Ramak3~8B-jvw|lJkLsV2EEocXs)U7JZa5w6pjpM zR!z&>Jvk>G+)QQe?hhg0dTzchP(fH}tF{GY6N}He07`&tz{$rE7fh@_( zHP#QT%|0X*K6tN2M+9}|y&BIfuZFez#@Xhoz5xd7^cv9}vj*jT22r5Gh(cnKar|n; zatWONEI0nyA9lTxnNJ2chdASnx*?X>TC)b2+DlysIde5G+Xb`xN7Tr{%>=0ihIBfs z>Nu+A7h5Cl!eY}(oCIJlsd&9xZ-a~yB?+CvElx2US7E@t%*4!vR6qu>KDJ-|YQLu? z#zNX8JXG|URW54d6mPS=AD;kFs9w&>b4s6@tutrrY3S8%)-P?X?`T$#0xFpXxs~a5 zyaCd`r5yqry+^nChh95qCww^Sr|aDZZCI^o8%8*2hI?mLI#eU_lhf!&@7z@I1Gi2* z;I@v$sg(uiAz3TRfyqbPF?t|)vrwO=cj0w*%|1N5&aT-9hu4`kTMt-x^=R8eWHbI9T2?aRpOX&}j0Hzqw4?0UPdh)}ojHv1Gki_xK`Bndq~ni{Ky1G{LTJ9`zE z9=sAlu?KW;QvaA8KkM?TI6MC!@gP&5B17V)3GU^_@#Mp*4u)ax zHr3G^O#@GVO%EKv++JHWnyfGqO}`Sqvs!St53Hlqc-~h5xb=8=ITeLhE#=o&&*Jlu zdyh#<=Vcb0BdHxm$BqxLnD{w`()xB!-|&53SG(I7%3g0+C+fEi_Fb#--6XWNHEAcP z2j~p^*yE4wBtFS}C))m)nT5a)~K1F_RV3!-O{KitH8A9-Cj%)F;|+He<-H66P@qH1c*7$#E5^c zII!+#s;8LHQ%&e|3O%S!a@w{)01q4YJgEuHq#vN=p01t52id+)4Dt2a|pdLzPLN!{v-Sbe}2| zJ0yOGu2aP>&TliZK06*YAG-6e-R6biT@81ZRv=38uugOf^>V8KW9Gb$c`_?ckUt17n(tnXWXI5-uHGJ9lXPTUpg3dGMAm`IvUo-J)vEp1%Pjn%KQ#Y? zRkQ$>UTDigCMOz%V;+XrrPM|tG?a2okb{6p`l3U@_-B^}|71?47>q+EzaTc=fBN?4 z2g8AbIkpg?L{$Le?Ht%RB^9XR_MH+aO!i>1W*9b|Mh)O4^IB3B>1a-aPk%TyMfK;t zM^A<;O!5}?$<*d5YPb$6Y^rrws!Lu21w=&w|$R}hG| zWtDX+t5RkCnX+iuL`)RYF-17@&KW2v$%N9&*xS#7M{m|U1f z37&DSs;l==FX9mH5ygi>u}2L$IUKhs=Izb1vM z@L;=fsuP@2SM}7iyxXHv8h{T~=lP`UXD}`u#mq?3wWI-~6Dv*>0Ih-ZZ#A~m2U zZxDY4KOB(&P*8H-6EGOI!<+M-fElq>RHX;Pk*Z|Xl3nnd%^H30^o3pPYUS%&=aR|qCBq6JNjvv z-Cqgnlpqs0YZ@#}`M?u&T$ES7T|()TFSr$%U3^uTA`MA2Qev-;w#ZEsfV|rhu{3Yv zH1q=~j_OvCD~m{G=#MJbx|3b`e|61I%ZIdLTqknIbb8;t8rd<5G0|ccw~(_oK2bSW z-YQCp;X^DR-10re*f|_|qM2Gz1pNYJhM$1kkT|+Sb2U*At4&M^Ow$y}4Y4G&F6Z$K z_l*{~-j$DdOMyE>Q%$7tUAKWzWnajHiY^Lh#WrGmt@&=5hMYtVoLMg`v-J|$D|Xp$@!yw~(H(8}V`d8m`F8(yxamHUOU)Ab2z5-L zD5vll1$^ifZj=qa5<9frX7p`H4d&!@7w8pcY0qx`4wN}eYJAPKUUv{^I#b~JuamDsK(;Y+C}wouX)1CKFMnapu~Q55Y)MU7GA30moDvx2j%d`(H|$7TgSKf>_zqm>-KZyRTi&T* z^u8(=)&<5W-!%75xD@FkNwZO6=TKsiQHBU5%wjUUSt{FF$$~r(9{IDRDMPKL43Rh)mF`SsEFfb68JklXBX1(#KM|@1 z)fkCxi8K*Laj+mlt3L)n-m!$YH;C5ik2~)k;dX5RRL!2y$cs}1Lw^cZFX@k?-rwoV zIBF1~4ey2OJx%~sP4fzFZ_vFb{ZT~~PV#?d158;uPtqU38?4I&ukqYe@q0N{MXjl# zXZ@uVuWKdxYj2p7DPH%SD8~ny^e0gFSf_$hgHypBUNFVqC#Q;^KyF^be*TaXyoXM_ z$FQ?>&NP`H*ovr9ibI_mAEVXJ2Ox_xC{6?!D$N=M6RaHJo(8FyaE4&K+=y1(SgRz4 z+IKXtjLH=@Or9C)-&k&d0}08%6pk*BRV$JQw!|V|9+=6DB2h80hE-JD==osR0}|w+ zLG#0uoH%*jQ>+}{)ZZd;vzHj>&a8Z4+{(Yy`#$V_w|L)9zE=Bd6gjWMr$1p>HR|tw zr~MUNE442pj{)Un&q=?F%|&fIz=IfHL#AsY?FBWF4F&G>c6f;LH>BS6eXV;RBT3J;EfFewIlktSKBe zr0?i$YJ$6CtI1gX6{rK{WW=rEVEy}f7b)K)Rnr&p&fj&OXLuF;> zN7j?iFj?(+w$tQetgBYB9LlPhgtysd)f}6O9#pN-gQ`Ujs@Up5jYbcO_Fcqc#F@eG zNCv&`qy+}X;2Hpe7nn@pME~AIN8!IbIKD@qnWs+lW%5WlX^c1G7aGeZ=H!)EDtO4^ z1ro3+Oq@LBm(s7Yk52E~s!o}J;U1Ad&P;W26w5M(=T1D>P-tjn9m;O8eeNY2#R)LV zcDr-eGrG{t^4QBmf;<@;WJ~V;0pnFQiMg+FpXb*&Ly6Vm>+vnZ2iD@1w3Kg8)@VM1 zE^6amOw&fqWA9H5pK21Q$w$neQzh=Gf zzW#FxB}?PII>eq6nADc{)9aafZo@n-w)OJPIOt!k^jTcwlNvx);j6nH0k2m~577sm z3&o=zYCB1aqREqJ3zNqvTym+(Y#}iO5o=`$tce%+L$QKG%XeP;k)|yqu8=o_m}R@5 zn#i?&2U6p{SdZkL7Q1qa6fC+xJ3EDuz|u1XwTcV!Jygh2iz@65^b5;{Mm2WX_o#IyD0Z6(f{2U_ zm2`wkbSN@VqS%~mu{YoxLa`--bPZT4&xab7XLyWAYyRkXL9fxVf*jPHKUDdZru>9f zcd8MKkgCSS#BMV|@g)^yN@#0}EjfJ{3F)`7lx%E({G8^QTC8~wkJX`)kCGR7T{&vK z^oCX#TBNBrxJ6a235Z5@>(ir1XgW({-u)u-ZCOct>!$+yr<(a5@|)q*SfCvfYUEx4kK-N2nm!VI|QnPmShxc6hk zH%0SIX{yGQA`0s?2qwUlCk3wPqrmm00N6u7@*2Q3v^+&(|4P7jjzUc<@tesFJa?d0 zjegp;N=>JF0YAsMI4~ZV$k}FIScK>cquc*#UQ9F_CdPSY@ z6{V@BqLhlFG{^91S|yJsiC}tyTjliDs!Kw?w0T>a{;NY(VXgq!>jC7spw1yGkKx1SK~^`{=l(^uc-boW1Z*PH|;r*d7;#k2O~2gE^Wo9?A6&%W+k%c zUuk=OsalPB3q&-BOPT%E}FKn|LlCFq7f#llZdSfHB8FIL5p=u(BQYQ6ZPi!N%} zdjv0d6qR(KwSxu*PqRzdvzKlUC5}6|QI{6DyL|IB7R1oxZEMZDUy0nip)b|Gs>GxN zdA6?BdFb7mmJb3W6DKW0j99Xh3+g5ze1l|<`MeU=MkRw2Cxr>h*;TSrMzl_9#t362 z6P7Cs56dv^lnTaLU$tr%!u ztQtpzu@iA40}P6o>s!V6WQbRF3Y9uQ$Q@El%bbSsxs=BtLU+!_8($J3o}G(<*j}K( zX<%>NcqBx{B4RdW?~jO_{{uvv8p$ByvJu~jh@Gn5L&V#wwe0xwCh|=o1OrF@S`e~w z#sN+-*EsxB@QmB$ls@k?)~3)BTqC?V(RY!{Nenc6ms8pzDKN&8LzB7jt{zvDdHZgd z+Gd`6vpxN$?dig0$ToP@9a98LB{$XilFfHD`SwRp?*9RT4q1>v&}pZACxRYQ^&W!O zKVcCxf^P~z9N>Bg>irD_eahG{<0gfmjVzW~2)ezE;hjRzEpHg9X6~;{$cO+IKk)rRv#r2937^1d;nk`Ga8iv9xccJBOG!!*vg4Or80nsk2al)i?^6H?lq z?Po?rWlzuWEIg2xPv^om->jM4+S@>04X(G;P*cb)vgn%JC>YZUOgbJM=wAG-a1J*} zR{Sa78oyKR5SUV`Rtz9JhbyimPNR|@5xEqLXA{kACh%M-J_xc2= zuFfuIIQ>eUQSD2vAa%yyBe_ia(5dL2$=f7mJ+C;Z{DoO43mjq+A03P8Rt5sFFH;0O)m|(f;jWSy?yEP zj%MeM7OYxvUgE6Wgt#haQ=;yauM<^1@wF2J(92JqaXX#Tmu90NFsO*!v6r1jVJp_b z01YJ_L)OqW1(tz^IDOY zpx9(z*UeKGCqnxugSP}9TM20MJ`A5N82;QUZdhbhpscRCl^YLN-$cBaiCg&;C)I|1 zEOI+|u*)15rcaTbh99YZbCPV&-NDDKemXEW#r64#iYspELd!+9t)KO_L9rJ-=xkHl z(@sA&v1kQ#G3`Bm$wJ$;IOXT@-@}?C9S0_F6xHQ@tuJVa6Gei|4100*B&T%9ZyrSl zal9!y6noh$nr`(Y-o#y(OUm?cp!@8gNcJ|xRr(_PIBYRN zT&7A+>|ROdUsIJJiOE!A#~f7|ormsO{*un3ez$NXpQie6v^P$md&ZDG`;wE7HOe%0 zJ{tW7?0J4x$$_Jp7)*wuZj%AAfxD3z-N0)BL+Ga1db0$1->9F?Ff%q#7-*FOqkG{5aC~d#^fR+i?SH%OBoZI9p|oRW@8nlUr}ka`ym7?S z=rGtfyh>%3U-L@)9hIjGjVf~_WlmR_vaipZZ)cEn|eRX5^a@{PyDL1pc z7=1XxHaW+4%s%u}V-|952bJ+`Y^yV>l?St$*N=7Y|KXl}@w@?lr4{L@OHG{MQ+^BM zzbfO$ri>T<>zid{z_I7bRd7Q@!RUzF3@@s5Dt?p^?#f%iE)Mqg~wfn$Pn!SdpnMLS?yc-Os zoj18hz^8zTc~^-ik8F@>V~y`0e4+g8c{DH0tyTABuM7>MS(xLTkaxM_=x%)#GBIzI zX0b}iU@KkTivl=sJPl=qudZnaOe;s~St z3zPEHY-r)-&ud0#yzpb_4KTt#p`FbTWgW_Xsa7VrWo zyMRBz?O3?Un1Vaa?+btN{s&eJ2mh@t@B6Q6zG^Xo%`Nf%pNtspi{JAHR%ZXPt z8>n6+$%`duBynShw;Hk3j;hJKtV$E|UaiyAxgzgP^JQi1hcH&l8V$juua;)p5X0RL zaDU0(NYriX1JJQ?d871!%pR{(%1@oSWaczkIw1&Cx{E^0+l1&+f?H&xAGwv^HH=h)@ zO5tfyPW_1x6x9DZJ>&dphp7d0dA0sphzqr!<7cJgF@giSo^=2GeFjc?2xvTkoBne? z7uvSWyb>YO%pVgnWWk>en>gr;KM_-my$XN-zs-~?SC>=z&g@fR8!3A$``g*aqT2<7 za7mxtjC&g1e|)aKS3IY6lOYEUnb2XbDqQhgicX1!x=taJX^ELkK3|b0(~g4;HR}Hp zY7(_H3w;_`Z@h+2e}`8Az}DXSW8r^asW<@u^IESZOJcFFh=yVZzJ&bE{!n>q{by}? zkCHxT>in;L`LicGkF{~uw2Vw46c#wXnRzfq&PSmBeu}d)ZxP`OrKa3}fl?%RS~>C_ z$4S_lz=#f;lN@ZV@6F-J>Dd;yXRPJZ&>z;v`(I4jSYJ|nrR%%v$Fk4;_!s7i-q3@y z&7WKP6+S(W^uGGz0sgBmhcnuX^9nuaD+N94UU&Fk9Fd0qP}xXN6n?G_r5$U?pZwz? zd${|UIQ=GD=c>Lu?RZ2~Da`sW)jKgA#neGJd0!}jhfno|y0^9{;9Iww?!eP$Bp&x> zoi@-7ddig4S?jUVN2zYzS6=!X@wj?v{kzkb!Dz3`K@g{L;hvD4HobpL(KnU<@NUw} z6pcyWBb7d6fyuN_@N3vj00fitP!53v#wR9eX0Uth&7y#2Js|JN70h7>$^jb6l+nz$ z^+KocHLhKNvS*3926BE$8^d{%Q~aD^hYPppPNQ?k^G@IK`R>+%GOONqDu-NyUB8!U@8WPOs>q$vd(CJ@k7R=4S3uV{aACopCvkfmQrt2=2F z<*<9h`zB(X3n=B>;M|Gx z6Q}g#$BDf5Kk&Rt^$27KEmy#30-k{?o(f-gDr~G%tO3Ffv`2=9x!&4QZz#y_hSNqC4DSy>w^Sayzb|Ndug5r$707uWja$0jKzHG_bcgl;W4& z;TU-c#p}eOt0famVa&b(`_m6;s$yQtFdw1VZjb*!#FE8waAC|Xnr=yV2bEH0|4P0{ zOU&aAoERB-%`9r-h9}I2=Rcmi(9-iCNoI5CmS!)oSWc%1pe+7^+}wGvMfJtQ6~J^^ zvsd6WJj`x)8O5<5JRK0O{f*^o+{HGmL}4)#_MSV(gZZlugxL;mj3LJf@no?kq_Mx~ z?(Hj1H%*UpKZrS1!vl%2mxC9p)6NrbRwL87H9VBVlRsi;xv)?r{lbZX?(fHk%!|tIc|C}Bf8)<) z2EFx>InY3c3$H!PDeZqFu9>|xS;NW-x|z}wbscftjrf^14CzyrGiQHfDB%Rw7CX63 zdiU4^;qmH7simh##zd3(y?b@zPwYbopVDXDdx}j6if@df-S@H|r8iMYH1Aapa2705 z-KBm0PRz`~p;*uEoW0YKARcrL^KLeSr|HtSf)<+oE@1fKV1P(3zsP-bn%Dax#q8oz zU0I~|!i2g35NQ?i-AhQzK7DSp?d-1k>IZiuje4Rn)lTuUN9J=2TDy?sM4|cw2UN43 zFn*cOw3+sP;}nF(9;hanrf1*#avJJcYiUtgYBG9sCiYKALQU*5)0$j&V0susO%3p+ zt+W10qpC#`2L0u?hBOQr!q=QyZJVW8T+Nklj=r`zO%Dohx+yf>vq2AnxJP7>rp?L# z_bxNkndo*-_}x_?1fK`NudfuQL{q$}aR~v`!IfdIAX%JgUTwX~1ltEzK)D7btLNDo z{1>Onu<483ccyx`K)8nhK}+iV(elZ~Euvlx6lO%!=6H>9OjW>x@eqE;F}-tbZ8#ad zT)u8~-^7j%V3A~9lVM{z7|1_osb_6u;dFoXA!lIMsOPThBbjcBA2RYiPCYuwoL7z6 zDn#FsRQgXI`x}GY<2vq9AzwJ-{^^wNo;8SGcv=fg>7Y^)%sg2XHO*f+?vW^q1iKqSCVz`FG+ zr5K_4-`rQbh~xcs@<+GZ=yXz*gMC4I$4|la(D#$?{xxIrr;H#Tg+adN-k1y3!uP~q zC^Aj6FHc_BQ$(9)T=8^ryy@#O34H4|^J8l^&lWBrTRbLLA?Yj*Y-y6aC+x$N(yq8sh$v5xvx@oK_dV;BK zk`pm6bI|_d{`59CQ?az^a7S9#1xr727U->QrrQ1Fbrw8qJjdN-Jon*Yps%M6Be$TF z7<Jw*_e`{~haex^3zckkbv2Qef+Eo$A9>TrS&YZdc`Kd_Nnfw5t{CEuTHa|eCjew~9G)xZ+OlXa6 zum2h2t_&+jAeBYnGC+HQ|EDfbHc8RJ@*nQ@95X)4o;Vz!v&QEmJ~KX{6B_jWU%SI} z#cN(yyr8Z~&M>n$Ow)bqPA7W`0jBLBjJ9je35ROC>53_~nUD)N?0REbxHU;>nKo25 zDIU`zk|s|uGo(sr-S0j-b`D0c1*5GO6cb{tA{r2nn3lFq?acHxZKu{;VHB}OWlC!;s3H<%9r^Th+6lTXry#Ki-|v5e3T4=diYd>gTqd^p@lTP?0&QJ?4kCz+`u8!Y@?*Gm+5u}i8$ zbDPOMC{FU{OhMzRJv)Ycp+9zqV)w10UW`KRO0t#(D_tPGB2Y$(gjoUnae$ZJc@LOV z?%*<+U&~p8CivC0`Ac6nW`|7A%Ewr-lZr;0WMksdU2n-<`Go&Fa1(JNAvG)gK@MHm zC#CCgf^|Fno~l91Jf~urt~-rbb5Fsl@|#0e7(s^nlx6;SV5GiHZvSYP>?MlpPq1rx z`)2doF~H{k<+Y1WQNl0yN!c9X-f!7mXVaPf@I%+DivNX|yN37+KVoN#>s1-0x;L+n zW5C!`Bhw>HrdQQ+xw7Q38YEo!k$$xfbAUBKuTjZmqmpZR*Fd1ItziTo4F6mcXEC18 z^Lfzo>%GY=qv>Jg{v(bbEf1p#inb$Ozae>`NVUXtlUj{zy}aggL5ObZ{{T)RZ-46% zUh`t=XcD(rUxTcs4halShUZ+f-(061n}D$i!GZxz5}KpLc&~q>?i0iwk65{`Hi(qkzpEDdFe&JnbK}0ieLC7gf7iypNix|g{A8ZtR^xd#$ zC>_GRv3bjz|F5tM z!IvdpCQrZJciroiA2g4+owIs-z8CQCA8{Ar-a^6#bT@f5G3#})i{^!Tkso*h{LX zPVxwf2)`X=3KT55P3h9!;?Lm?d`8 zrxdi$8;=1&BP28ItiFP!VI|u+U2_eb&Xl}V9fD)lLp{en{}(^jjJVG)03YRx1Ufh- z8oxT>a9jgk;96Ym{!@-Ag6V3Se5Nz`j7KNDZWbM53H3h18^6Vyu-2QnB{h?wMEyw} z+$%rsjX&!3TaTTyoNRSsSv?T9I8OVS5n$9 zLe$%=Jetl`!fj!~t|}{-7pH7jTHQwJdmkOnQnm;2PT!z9z4s^zfHRq$AYiQ-4T?U3 z_kI6W8zUG^peQ{qQhfVFGpRg><$1#_3FXC$$xHubYJY<+wH>A8g%;Az7j0CBu4u{* z25)G8ivAg1fp})d$?x@;TLt-_I&qlFCGs!XWcmmEma_3B{gnJdqWqCZmCj{ezrdx{ zGAb**4U{n)gyBi5hVTQ%`9GU*l2sj6l$YT{Iv0#eUiN*aNGkj$(04G*zXep@6Kj}Z zQBxV;Y4#a!ld(w~ZT|I~FadDBtRV4(6_;4%f7wMbIX|oGG>N%*s+)w}xDOm}(i*QP zlf_awzLt`r=+&2~;?1v|kYj`uY87SH!N_%h)-(?FcTF^S;?uz&2m#g6|LPH=AkGQ? z=PWdW@>#9-+eeItFW$~PACPVdMe`~vJDxD6m>H(k=qh0K=-h`m_l^D&p6{k=j2&-g z`O9vQ+)&<;dP%(YE84}@^YB;lICrGA?zvCn=@Y94wAatW_4Ipiac*m}t)A;iAO2zX z$K%-_|Cs&p^X!jbWq(KoB4{mx@mZVmUVlNYS=qcKch1p>H}^-xCO34X|ffGA)HUbKdWt1iw{YQig&~0pC11K-YY9O7ZoR1Fk8FN}d|H}Ty@4hMbP)pCN*`vCD6X3m?B_N($-F$EpJCbTPv=pA5Y$s~& zMz5yrZ;i=2JK5HJKzU+qX?z{EpPm+vv?r^4Ywb+g%QLi*UAXI45_{H#uKAD7M?& z)@=Ov%;48egbVTeZ^fK~U$@iYx4&(BLH&Ruci#gxVw?I04t_R5Cr-ADVA&xdFV$bA z1Zi#xGyDzF;;Q-w4!G>bSVkw#AqV81IgVcQHa1))QneHv8z--vd(X*D_m6X8?6exN zq|K*)Y`ik>`|1~|G=G}>3@;=Ph~&S8r4Hip6r-+ zsNo8Zm~QEL4K6w#jFnqT(BG168XnYM3~g78VXyM4`YZEB$0}ZGd{gqQ>aX)O0}zZa zPmvwh{%hR)%9YEAz(2Dn4L*QU3aQ9L2c=(zOi7M*2aO`Nn&T zT4{%FnRbX)i)Qs3{N#%I2M*=_f|_~5RwS3yZ`hrD(L#Ppz>EK{lCTT29y+qy1?J2B z#cy+~yr^WI!LJ{qp9 zy(TwJ5ATU{#gMsT1-fKz2Xz)F?K<26J65`V6{&<$odbR3 z7z+6V=DcDeB-{vpPhyPC;&10~b{4Y9a74X2kKc$q|MhoG9?CC5&Xyo6wITvqJpYw7 zfruIO4}{knA21QAsKwT7?c7J2B~KDREQtTFjfgzB6?BRRe^!e~T18Wkj1F)1Vk?ua z_=;WHDo;&In!r+%%Q|owHl#uMkB=U{U-0eZN3k0 zXR%Uxy+Hm9KIFyQOdvl2AEA)ON64Lm4>ii*LmmGw@R?%tp{U4BLS-VDCA4@FRi>&? z5nzp?K{vtDO7%@lQsoJaE=W_aN|VbV`D>%?e~WktSUk*eEp0gUeh{0Tw+F#P(!l|#@@mC%m_dmYpu`A3=L zf)0wZ5J%zHas8WO$~Cfuf= zE#cP|myMESR=bHBB-)ji_{54Z(W~h!TlKcq!u8PIe%6>q;^1no#?Rf!|hI z@QSbV%B@!K^ZpVRTf!48-^BLONm^o#5uc$jkIQI2qEzQEn?Ln%weRSjYGB7XY6;pj z!sB*$$1+A{0U|P+ItUYJNH2)a(C7Wus_<8|iAFY*U3nCdk)1U@2jxu_VCyzFsbrxQ znIY&+=s(cv!a9i$_$}jywwg9Ir&b!rs{?(pa@`C3p9F4o=mQemGY$*$%ijDEjK9vq z%KTXieC_L`oZ@l!a*=(j%mm|$R(?mL?gnqZ_R$k*ZjIMP%t3?CaYFGH6x~?6-{bW= z#-4J3Oh9OJ)Z7Ld=v^Xrsh=H0na~ayMzMNb!}od`9J(rj3nvjNF{cwrpekTj%p|sk zDGC%x;{nFSQayM*$PdZobt%uLM2Zyh_4^Ki3DB4VAJjpnDVxDyLIj&6;Uq}B&iD0V zpzGAHjCY=+h&s|MPjrIFKTefmC`=p%3ONmDrBHn)&`Qx!r7YKVIf0Y!)SmJeZgu{` zr#eI>cjCoWs;SoNg9!l-vWR~Z3wj;zp)+8)KcKLT2kMICxKgwOUUVGRt88DQ#;z3E z|GK6A&v&0z-{kzU%w1V3!d`Nbq8?IO;5d^$mQMgb16N?E9d3Z7H((F8eI)PEjn>MI zR_e7FE2i_P(ufk=82!hWV>O$Uza7~Dz_>z;n)hZyG0{WSuSb^pPtb6R!45g^orX^- z#(3EOsUnoaF_oPhlRaQq`4iAx>>Vdvugb>3Fw2jWtt+vW-8c&3T6T>Th|S#Y5&JID z_sS8aiuRY>O(SJ zq(+n`G9@kb3;k@CbnB^rNc}}0b@egOHqv{^{R}dbmiqseG8UBgI{s}0QvYhxjt<3k zw$y*b;t7JcAfP{akEJ*BJIo5*hyy=Vs^uo5lwp>19V8g<{u}+FWrqQup4A`BAV)#) z_%cc{D>J>K(Eqwio82GMwk6je8mvD6%)crPmr5AYC=1okss;BLF9w&+pdO_0HgS|q zJI1;am4X542rPQW&cSjZ6KJDc;}*){(RLHTkM0B}Hb4AUC~dr=u%uhq6zi@{#*Hdt1cu z1twlXg>7>{a^-Usoxkoa-jKxlQ&nZR8FRlP)=;0icNJS(HjvnMYSU0QNNLt$Nh4Mh z7V`)J84mcWbb&PV)L3$8 zp@NiisHQd@Bc0U5%;if8D^+Yf@U*nxz5F}3S>G@< zd8GJ~206ls8HuAdNF~sMp3N+vVN*Ti-)9T+ef}k&Nc{zuQDAzcsRL4|r0^+n1at@_ik;k0-?^3K$GuZoTv%8}?tKz+ei3oXpFr{r%OiKm(ppsDQrvnbBoJL zd9Nw27^2N7`inX=vF?zo>ayQQmQN>9YhEgBz!YG`S)%;EL$w* zez(ZreY_GQ84V(_dLoM?o=i*r7?+rQ>BP7gT6QJIQ3cLdg#qVZ=n~_0MFOxe$f6&S zByQ*T7GIWu(jZ%6wHWC+UX0ULid|Odu?~k8}6FtUo_yeR4jv8_{3ulMzqa`lOO6-0ahtH3~_FiZUZB{RcPE5}7rMVxUQ+ zhyP7QoV-TK*3a8UHzq!*Z^I?d=D!9@JlztD{~C<{0O$WQ4cVZHFr56(lZ6yqbBs5G4DX3$r_l@v zj_N2+IVRDR1P5tQIRY;*b+$u9z+w0u1)X&eEGZa3l0~t6n#Pn)9 z+aYlVhX~}wa#_~L+hY|g8hzxzXyKDGnbZ(dU-41Xat=tX$z4^GyE>M;uD;^c#@}C8 zo7^1k()ug->l`%0zxv`V{IB_I_;&&Sr3KmeL)J*)2O0d~2AbCJF93gL1c$#Ez3_to z|AN1czw!Shw*&PfTL?e!_7QNF-*KGtO>66U+?=ICaHkn_1w`{v?(q8&o;191>h2wR z+JmuZM^*Ag4j$D_)j9{YmmI1AhQohd*$w`e%5)Fowi?>-O82U5e+B;M_)ybs#V<3K zT&}>ee)I+WYqZhPV*E4sv^T97-hUp+Zo9n$Bw-cyLYwEpkF7w8(^~NvvqOt8>v~quK#pcF#&bIO9MktG;aLSj| zS6A$B$dlR-5^t``eSXxmm){+Ve(3M3TjF3{vCVtv4G68I!zx~D;DFciHZB`~`J|+0 zxTK5IN#Fh0q+MK6?Xz@HKR#)mlFnjOP~jh+EZ>q{drGqA)~?xT)>o{Yb)FJcRjhE> z(GIyCu^+2z<~>l=a(ixd?v7aQmimf)-rU;?Y5wG1*EsX*QIrm7O|9miR*xfCZbn9w za)!OWrkbtfCaw}IKLUOB^JDE7IhWu4g$Rz%6Yw(s-y`5AX*HzZh|JJJakcVaHugs5 zL&jJpCd_8MNKM?X7k$;eNPek-rJY96z?6STadP1*WEG3kL)Mu@2L>zIRFvj9GOZ(~E~QMvycMe`v8N0{k%48^ zUe5!h1Iu%?PwH*bqoGLb6C|mBwgGIF3VFlU_q;6E*DK^>3C_;1K982QszTATyq-&e zvV;uMYCKl9onVeN*T3ZOQm>CY3*L(kM{(#zn6whYn>W8FL&yWmG%PW+WI3ciD|wUF z_3PImEe!J__enhvxxQS_+xqG`VQ_LKBv{W+7N^K4-ChzICglQtk-Rplr6c!=H{@1M z@FoS^IMCpgQt#LF))?V!A8*(Uc~)Ld32}&N77|ifEmfB5`wJ$z3;kp2 zCag|s><%S;QICzCf?iV427=;BWeHwT(55iR5?IjlVMfInEQFjJDEK*LP=iY73BRT0 z;G3;v$ls>?OL%!+Nlf)Kw``6$3A_nj&Cf`xs^cYV*cejNt>MDT zu2OalBiIAfLS(Z-ttHkduQW!H38D;mEVVgspbz;PcN%g&~$5ZQjfLN)aV4M zcUv+z?y^HS8OMQlDd9VaS0{)*UG^9?699T1AdRAX^|npXkJ>rhihVeGCLi<4bA%m69rhL+_aZ4o{b9@2;{~caP33)1G*hAVWCgljXeG z<+QdkqqPQFAPxe!*}&aRAAB9=_aR6+qckO5Rp3g({z#TTmHon@^uD6rsdt3Q#Z3x1^90bBtr4S^hCV<20fQv?#_z|WiF$NTQlv3+!g94E(h3`=UZf_-x zwpT}jn})n|gcBqM=5d9yVNd}FvjR%O6pr3pU!{PLRAfNPQU!cSZETdYs!~w7#zl=l z`iGRvzo7pr`4T-+q|#Jx<;8v8prd$5^`pa4giW@N9~Ab!5L5T01q}~PY+-=maa_5A z6e`-7-X{!` z7($HAgvXU6C~A=6k0>e#kdPr!P)lvv3S)o<6r~q~&VfOzyq+IWQ zs_GCbx4Ple-J=HpiC8!()NLX`P)sF3@>y^}mL#tCz^-TS?~ukf8B9g}f}$-G_(_u3 zVWpYd7fs+eRkMv|P^GsX?8HggN9xv)ekYWdS;dA#yG^(z|3b(yWdJNMPH6C-d32&pIGf!Y39X}E0RYBoM_&D3vOvh;1kTUhJu`iix)uH+L9qdvXy&$SGUaO6Lvja2`c7GPJ<8(zQHXFXSy zTtyyfaVpj}t!2@Mi}UaD@qS;DTib<+wK{iKZ5JuDDmFEJS4;4*y1uZo+72&b1uC=` zIF$V_a*T@Y52nt==YL+uS>oWFSB9^U@Z|(WFM76C(YXg%{~c)DTh&rsmRr+ue_p+= zG8{JG9ctKLEmVNxi&G#&E%vG{m!2jzjX=`^3`_2*PVODR;=Q$Y+KXIFFkiGUscIQ| zLJM`?ODSNB_YhVkmf#mSf8f}Hyt0ukgCBqQ%ji!Qf{Ql_rO{P2(>iMLnTgc2e^3V*9OSXZO%5Q41 zx^Pe8LY189k`;_h4_Y=yu>NQ`ALl#9l zJXCmNGmX=~hP$3~wPCq=xz^({JI{ZXb#SbCa9K_R_s$G1^S7Oi`h`2yZqTOl|I~*R zGt2#dvDdBAuCSG!O8S4d#B906qxzr*K`3XXi3=HiCsobIa=q_rWg44?;&T}K`rMl2 z-eCh?u1=PfRoP7mv9>qPsHSl-N3iUvZ5etjM$<}}kpoS5OSV;4Z1%pJ(?tuq9p1lh zh)r9PyPCTvOJdVD*0cNmBy3`=Gw?^@Az z|C{i%5G5E#g=p8B+%2`aE2=8i-2aqHErryWk(bn<&x>)#V}$Fa;j=23z9#oIWz16* zb=P(-Dwegmg`9LiwyKI_-uH$*9Pj1VdQY&o==_X8>g ziQ#B8R}^Ol3naJDBe}7Y&M+l!KBeS6q;7EBs5y6^sQKej(>4uDzFwOg%zd3bQD6?9 zpKPx>yrIu#)Sy2aHEoq{{)`N5X}FBEHK;f_AdL$@O~00W-*`?iX{4z_`9m&`PmoS31u4=YH%og7>eRnpMoxX^8$+IRII*t2YWog z7%u>y;AmxDZSMLS-kXn}XnewoGDHLz)iJBFlpY}`fY z>sEM+xTsSA1`RkgU{%e^R!$M&LL`l@ZmidU+qUZrjSidyThlVWYhF#CR>wzl{76U- zj=T0A`4x@8?q~1v{EMHFHfF@@a9EzsmwiS14RVj7k2=uUuJYo>3GB%C&w>G@oqovs z=!C`TAO0e+(ZAWUFC^@bDD=mdiJ>K%|2z^JIx}4GckMO^?;&_$!)0H(9 zC~tnYVpzd(Z!U))qpJOgD~`3^sb^R?!+U6}(&o0&Ptb{q9t@Lt19%L+n#LQMK&-+>IZA5A#526=!TTAJ1*L!drBJ!q2JAU02gG@DF47VS(s6 zYQb4m-lyonXH_SUH}5>2dw{VCWPV`zSLL?net?>I+A5l3PECs#F`~XyK<&GW0;zA3 zP@KjbfawHONA=lIi#D(&?;%U8VLfT7g=&%wCbU^w;~S~|WUNZ=8?Y*+>qlLWM09{* zYt>CU^~i@Hc{Hy%t4m(QV5Ld4I=PE}sp-4?FheD>{wNMwna19g=^Q-L((}K>bJPGf zs|6)pZbDo1j8rFg+B|poMLP2jIXD7fOPKCUYo~EG$fg=b$Yfqwvc1n{WrjK3F%?`Z zU|slq%obJb=sw*iAfxNEsej}Z{knA^_Fn>K%UghfKAhm3@AtAYn8I9gO=PJa>RYtVa{o1ZbrTsQ zgqzD&{RKNhl0fy;r}+@pFDNCIDezYZZzZxD?DcO^X&QO-X*eec0az**%>3GCvt3S{ z|6&#PlbYmlnN=}lKk#-8<_Ya5u~Y3QgNP38C(T&So&Dsx?#_OaWGu*-PnOd^Gv<>M zXIf2VK6%f*s)hyrESR7y%4d*fpZ^3O^$f~$hn&Nxw`e)mq}~s5 z#$#=A_keel9qS3hC=6!^&>kRc<4=9X@`lfIey6sd;e^_nTVK)Ew7a_HHh2#;bVaJ6 zygK>L9&BuGe8c$Hi!DPg-IAv1_3=^BZ$AV@C1cgUG1lyAr08$0a0| zKCtWf38d4V$Jx!MzIaC!TWIJ_<*>ZB=zZOa&EUW|U(<3Y=XoP+@?Ghq>AJGJITZ<# zIs9cu`#hG$0gjTLR>^tS#3EROgqSt4w zsABtW8yl^VqRH5_lIL!3UiH}!lyMZPA{3=#h}46K-PH7;akYujht!kq@D@=!_4&K~ zKfWQp8*=P7xXroab^3h0@X(fB-75qY{I)wnMdrwdq4m^^(5I-W+JhA)Iy zwmkhVV@j4h&2GBW$kVg#w|0*$Fgg0AgBoyU21brP)G#DVj(#bWqv^D})A)9_Q*Ol` zEI)`-c*KBcm_#*Yi{0lgJQq74h zi>HcYYAQS|kf~+*`9ztzODCE7NLr>2+9xAdKkSJIUH?0+e7zF+`hCgQFD-;Vo#bo2 z&%~}=xKiB+`I-h3$A$8>kd}O{pwr3MsuVrAMc`0 zxX(YN{}>WA)n*wIcfvLp5;Z?}HYDOX6PZ*Bj`t5jz~=uLxkW~1l*`?ZW5vr~(&rfY zH5@FllConlhw00L!$ z0IVdw&fLauq^Wy>!nTv{4fvsF8Aa7?SE6Ogzl6{Dc9p!0$N2m^{)ukE`H&pz>(MfV zU7r8@PqPS}pQDDN{QUpL>CS>5n2iaWvWyaTsSeaLafA*vn@O$wbv|~gcQLlhGZsXs z57?S(X2QHKX|kSM6}(Z|aiOhKeQ}sTr?*pRse*eIcR+Q1PmkAy{bn9L@xiRyM^ZUs z*2xcoI#NBkyVbn~t@%YrH7Xp7WyTd(rv`#F<;RUjrtM ztp8pgXH$+PhgZt%+@Y}O=u$5_v483yi>I`y_=|tQfeYK&@N&wFOdPA{l(?Rw??y-f z+jc!V6f*n{J#UYR_^b7b10~Pd=KT7+Uh8ibtXZXcPPsuDMTkikU(9h>AZ?{<_EX)h_!ACtE4p>a<18-Yy8M z750KkQZAY26tKktlxVXOy`r!;d8-Q&l_=n43s53+pxvf0`TfS9Q<%BezD5{`&7oP{ zn;Mw62o8V1ZC4;VQiWjn&I&3Qh*b)($_NYmBuOSOQOeoi0w`>aLZ{;aPjv&b5x;|Y z=t-ERd`aLwA|=L2>CN4nI8aH{WHM$e(L205@{2rp!4bvUPNAw14&R1^QAuQ@(Se}G zs9VE>t)x5?Z!6Gkm)`b;r;v6p({b-qdZXEqU$hC%bHayrvs2BzWMXV5l zHNq){L&TMvZhGL9hULOA^cC9{pjM~E64+Q_nim{7C{`$_0CSut(JvfT6RVWx-ZJA0 zix<}saC1oFu${A;^#&ELAt7wmn-vf=YlffuD|D}tVIh$NEycer@Xo1;H-M}C@Yp64 zPm6T2JxY5p3x|kOJZ(lXWe_{z`fa&X486zN*g9nZ^b|G|k;1-axcP>g9zo+-YaUlJ z>xP<7Kz6&M70B9%(k`?P=%Lb>shL(SxoUwq&T6Eoo0*w_fySGMd9BmQbG7nF<_IQk}`Ue}y_YO;#^m`-Ol8A>S;6-r&va~|$)^8F#dcL5ZFHmcE5hEy=Aa!i04&t|1yY723>o9qGe zAoGDnfukl$Sz=5m6)(7bG!m0^n?M~EixfYUkNAtBmY?>^)U{gv@~|})ieBV|BypT! zb=Tzh{D0thOEfH8)BXicYh{&?znP0Tz4?9l0%rbJ&RLdDATa2%eiD%ap~dUjS`SZP z&9$&r3UJ>sd96FSFbF8MfbE$S{Vl-easv^ov;eVfkY%g|XrfgBKgU@Zif>@`c883` z4{@HWf6Z?&7T?QT{X(g3)B6485CgYut%Nx{KG5$^-j9C&FFb6$B>n#GgVOJ#<1Ty^ z>~hfUn;ZF8TKaB^@EuDIEQ__=$=!DY%eSAjBr>YvXyfasI_Spe1-WdZI=2-| zQ%fQ4^?8G0KL+*gtmec-R3i$DMRQZdq*G(C5=TW+(`PHTGZxb@XhaLuNFg_=MZ4QN zbpyJ27JAanZ+kmSBM(iNc2>!2`7U;e<}J-yzYl=ye~U`~BdtuStR7a_G$gR>;2JCKQCsGeqLnC z=;!~#lwP9DX%zIP0B{O=BWzkhKZ=TlMLx{RLwPC}%oZv|KX*Z-mo%d&TJzXT`a2iuJ> zEZJW2ZvOMlI#Z+3V`ECefYz+@IU>Wbbw)%Q9g&x{xhhj%64iC>oWAap(tDOxd$SWFbrjSLbVz>}Z>OvfW#qJvF`bKd z?eC~;i4t9bC^~ZPO*Va13DGzqq!OGqP?r_213c0&aB3?b!lAIAg2CM3t?~RBT%{^@ z(aEiys-G!eS1Riqj}duNg8hST+nl4p-OkL(%9EjQr09l$u-EuDX22hCXOxcMQg#b? zfB^6D)};$SA-~n9mFlnqLC5@L*H>|3J;mt=0*N#Gc%R(LgxlWK{UA5VTW!YrXa4f= ziOKdJ_NQPEdxSROECK&t8FqliiN&0HHj7&=@-G4LyNaMlgq{`BS?v?)V)#-fo)C$V zAQ5E;4x90nRw>i{)gPx(Jh|`s)R}1AGhImZQGfQY4CB9mcBgZEh@XxnC`8rG$hYZd z=FdW5^lTpJWq5K-Fx?kH6l8SNi`?&)@nZ*v&MUBc3~99J(9Za!cT3eIU(i_ycK60U zxP*P`Sx2pKp0VAn6f>wlPmonB4GohwDOIx`}bA5B> zLNIGTZQ|FN04x#<{cW7vkH>++@JA^L3Rq>KSUZEuxcnoOPjPA>cN9B)e1mSadf4k% zd_OqMjAAC9&9z(KhNzBD(&gx!h9)2afY&ro?CAbNR}ifflzagJsjGnDUkuZv`7P^W z!}qo2)1M@721kNp0~`q$utb7pyNocaKcw+cefy;=LJf>#y?*U?^@8J`1k7DeE4z56 zsxI{&htrt7iy-ZrA`JFQ&j+;GaZ-X!X{Row-!XNg1F2r)&eUjaRC_P6Oh47OrI9OQAG#7Ne-po+`oGHYlQt z70F&tLnXlDOG2%4x!60Gm8*9CfBfR`2`i5R3Vfz5nvzo%)t%p^JCm+pX*~6h|9mQb zSg*M~hI5O8TPWY-)(hba(^`9711xuQAtCUddi_Nfb}&5Zi7@Vawy@nCTz@4An4jn)*D4pm0)p*FWt(P4!P* zpvRCvztK$%m7Pe>aY(L@K8Dl?-tf1&Qn}H)#Gh@U;mH|c2fNuq(>LIi`-|{3ahZ)c z1^#acprXa+_k+8Q(IF3Oo9|vOZts}Yhf|m^cIjM;o)^pKF?|=OZITr^g7Mn!{lK%< z`ui9McDfB-bO`9Nk)E)ID@$koFUsrvp9X)+%wG_?j2=GoaUD$g14a!0jl*JL%;aHr z?eE_~kd4RGwoB?38qdFtaWX^AU_3VdWsnmsA>?yVvA?TmCtB(%fl(^Ov9Y^Bk^9*T zxfi|^({i5Qk673KJgJ4FGVk;xo_2DaddVrAsG`D1tayh?t z#BBcYt7EQhy=S_}N-H&8=UvV!^q0!2HvB4geKBpt@wR3xnbiBUR|!NNr^QSG%#>F} z@3Vnj)E9KsYfCgbeTj>48DA-~*lMx#t}=~7jsY~>I|gX1pi6|eS+bsR`MIX>^IV;y zb}J3rt<+zP8*;kc_AK%j|3s5p)aJD4tCl2`4r8jvqD}CK3rFZqBaH(OC ze4IRFvQWNcp{1!Vf1f^2pMJm%wC-TH1y?V))^BREwZx}1#JaUadXxKt#=HgJ3D**1 zNOv0g(^U6sbZnAjGF2mFKg@z?vC)I!=bqqomyM2W>yU7QzDdD5`H9=vSX91VJ4)ok zk2Qt4TsHvPPbXT&=_PUaA^tK6Ujq7&1((Xh(QV_|%8MNG<G0j=}-O=O1EjSn0LVZAbrgKwOxHJ5qwkE$Q`+uC%WPM&;dJlX)Fid*|= zgq0g`(0{jk^Ix^NuLd-TjHcYW(Ug#0F4zKKG=vV;43t;2?Vt?^^z*3B#^i8Mz>ntS zDwn2EGZy^r^~1yb9{Lfny@y)iD%kvxy~`>5-jfQ~*;j&jnW=E%bAR}br{-aaet;7Z6 zgZQm-&hh%D^I|Q<3yxlt!+D7-P}Dsb%kB8miS0&jf86);bDmm2V?yjo6HL)i z>%nLb@aK+U@L%vuQ4Z*Hu3FDBRgF}-IwJMQCyPj#6O)xI=iR)kp4ITm|7&AO{5`}= z1}7bF=P?HHdtP(F#ru{%!{9un`Brj`DA=G}Tw;R%u-Fm;*9uD~|FQdahdsI@ zdIaTxtYj;@k@ZUgZntr!;e$;YeoA^J7h{Pt2&HTh*7-Qe)CJk8L4QPnL#Ufw=GAGg znR9LGfSPQvQaISbnUu+Hc8f`D@e2zc`I3I3+Tz9`mt3o#;k(Fk2Jz2?@z18?AGdgj ze=WafEnY7Qu>4IHAAof60DHz220bQOyok)tT92$KU%RD-gpdU+4OzuF$h{T6vfI*m z_d~`J1>MiOXGp4hHZ%(kq3vTaWYi4+bTjO>SZJog)IO-HYpo~4T%B;xhr{9TiC^px z&oty*WeOTL;KtM)A)s{eVxkP7u@)bY0mRdMl)5^Mc~-I6F}<>3o`yijw0z2RjF52+ zj9BrNFg`%Tkz~awp=?>onPcSow=hm!4GOp%kEKHc77RKHMSMFQ74lukrBl-}76P4I z7wMK7mX7IkekvUCd5a0S*myo{-KfQ!+>RM8JHV3JVU^XbULi2Hczbd3OP~K}pw(va ztlIH|Z+qkthzasf6Cdc0Bp+3cm*OToL#w~e&?-la$-ntNJbF1xtCVpU**d)};~FA= z;P(*pSr>lk%A$$+CeIsVxMrdRmSPDhjVZCfXkk{#k` zo5Z_-s!pNS6dt{fxr`%#8K0df?&RAnc~5eR&W4ZZ82HE-grg-KQVMYWB&&eO>%8)d z<7l<-P3G&SCM~}KJV6-hNIYuptH2UQ)-{rBin4471hijU36N0gvR95;_2W8 zwsPqK41NCa2O^_{Jg%Y|&h1HV^5OnKNYt8o%u;LBNcQnsFw&NJ{!jnTh;PBPnkqqX zYAR!PMn5(ZE9`1}%wN9yYg>$Tr zb)J1(T!wteGwL6v1wieh-XP#?V_{8f%g>14=TakV@tsuEwaKpYt*WywjIA6-Avzm* zSb>!m=vp!bIAxp^B40b-!0_t2hW{TL^1}?->mi6{V$vjI0bA~>rdsw&C94Y<;s{@o zeIv!&z=d~uncBLJMepj=;|sMGvHGiiBqJZ(NM>XVR!~q&+v4J_slF`hGuVdfImf;u zVBghl5zR{34!V{d!0tUrmp}D1<)7QReCdtemy*D=ErEuhz>i80fPFFK4a*7jx%$d0 z^Baky9lAgtj4bXL>p;%c`Prw1*Cu+ZJ8%b^gL$HJ2ylBFTwT)E8FsoqiCz=Lb_juE zJE<>XEXf%;OWCSeX>Fa{tJBvxoCfozKOUPbh5NPt%zrd+vCf*mv1tAVv;_LMpgpq3 z38*UerUf~`#A)PNHn`PIR&P(Y&jr8;cqD9D3hr^5tuoS(1>GYDy@&n-8~0i7+DCDLwp;3>81XNvOc}CFbHQF;d-HU(u0; z>WY;){zVTVFaO{Slb0ho*GX8;nU@dDG=COFtc*zU!=IsGcdc}PpvtCUcT8WT57cD# zp`ir^wGUZ30)9W;eJ7#l!Bnk=JB6M!b%8$(USYB+YSsxHUS0ltLn8m!dHR&ugPUO< zcS_RJ^p_D-*bGFG;!7{OC})9(2E=-f5T1lX?`*D5ULq44uUli?+fK3qw#n?)9_UM~ z&OC~?T?ip2iM-a<0%ac%R&{qD+1Jyh`9uAEhMMGRezWs5Y-xji~tURbFv^U_8`8*LL)gowNf2ap~Q32DTk_B-0BTyt-vV4+RDH ztSH8;mK>87T(lzVrCqWD8PnZ)VZdMLPpBv(AkT@S%Phv$mvEKQaW3MpawjqHaXz72 zq|^XGZEQA$iJ5#lh-n2Elq=F+)NR(cjL9)2TXt|4X{gE@wD9z@xACVYl}{>Pp|A5|r>rkka)q?&!7ZKb1b{Dj_M>~NE_<5- z*3kn3eI3QC{cqx|fFu0BoZl>JsN<8?@IF;MFk1wn!I4yqC|bMQMJaWwNM<^u^^|5` zI=RT&*}m2&Bl1$zGem#^QZ7@F%)U&@N`ue|NPtkIdeJdLhIhp>WfG z)WCqI)HinWmd$jM#iXQ&j>zWz(0)@jUMuWyPVY2`V@jz>zRCWyGB<5km)VdY1^5~G zEd(>OEge73jPkAdCy$>Q`GMBx3Q0#7{H=xFhsHZ7^vjy8KCaOBAIh?qWyzZb{$H>I zao6Cy9;R1{AQnZY<%y|B<>)yKT64|H3k2T+!6Nq+i0E`;cVk4Oy1w<(RhnwmN*%gk zI!;g5h@jpUbb58ma9r5n1^~NK#ZGur-`0sGWS}`+Pv`4J6=uxr5(vD4(vA>xS-xE_ z*AN)M&`EKQ34&okjAQV`9vUpf5g>t@c{XG73>#Y0{U5!G|Hu28Z@RGA9{o&&W%)|~ z`?K?NQd^*MW_U=;@3H|g4V-H1>t%K~S$L2J^U8Q2mij+ZC+Ec+a%OYoGC?|=6(B~M$3b`oP!U^fL<1+*`RC2eCYZ+SgBp?}Ovd*Y@R%wu<%lQ0Ms`v%;$jXsjDVN0uMWO+ z!m`e_JXsf*?akkFHIk214z+qZE79$t`%Wb$6^6`q? zT6I{W?O=(UM?Vf~aczc}{4xv}J)bu|xsV)sOvJ!u9{GHk=36;8P^SDhtUz#&E5>%=jkM2GhZ7Dk3e zPeK_pqr}H#Ush7+9vL$AR!2vjlkVsUdE;-Kts%g5VrC`)&2+KLmRs@nJ`}m0^`s#dA5w zksPG1BbWScrD#87v2ukGSt6rBqE6QdOo0KSo6!k%fS&@nklt>FA$KTM8(UY(MRNZJuk;bBEc2<#KbTV3o z1&_GHJ*CxGAWsvR|FD&+`pUlQTz{;-MW4&Swc2(n*=pOFB(A=Y!|Z&9-uPt*#_f-4t{^X6zd-%!l_6LS*{W<}HH2Mu`$d_n&L3DecdT zj<7?%muAcWUttbTTM$y(?F)soEDV=s#}n0VH^pc2pP3zRd&x3!d+*JLUB}!bezao% z%sg0W=h=f|{wv>fx;U!A=*#&h(w_0IQTw;wu`|V8FtyA7cM|h|yzQBZup8gfO8G^4 z^R;JP>fhn!;TK0}`7F-c?^unU8btV{@R5)w*nB*) zD_qH>Zu*e&_Q0S`4aXOqYuH7KS8md9go+?RUGqOpsJz{f7BJoI^bg!^W!RDX#&%KR zItrw1>>H_?kK$pRGfbF`)MKa(2v%FxGwh1*&Wap6Nr@Vf|8jAsoNh9m*sD{CX6d^E z&M?oYQvcFEMyKNQ3|U9siGUR1v+zsL|5uJ}Mu8W=9~QvJ*=%K6sTUFL=U8dfj(%b8 zOgA6}Q3vW4I$-!~CB);am`-o<4C0I`J1J;hwlTU&>%Y7jCeaGoqoK(tQv7M~;hk|# zgKQnLHY&Y=4O#%W_K?1UgmQGykd~0FgjWP<83Evc-%c_l5cf}VHx1T@h6;}nVpm33 z^=Wo?pyA`EduoJK2A?FSPoIL%ukXs>^D+9kT!vC(S7a8akGr;W2>Q6&2nmFmPP)GI z0^Y{U)9d^GNwlUrIM{DwzJOb7a69Yx(*3te;|J?NPS86%0b-sqgdj`naz!L%3EtU5 zNLt_bnA~nmlJ;wU%4_E#M7I#dxnsgck&16KiiGodzz=G>>~RB{)7BDC6S9Si9YEU!6$_pTe{EAdcAb}0lW8`UsGj}2+ZlnBrooU!|4cACq2gx z$yO3ybcE_5rjA~~Z%iahITZFMQg-EsSwap(kxTi_1eEPP)9xyF(a}BHq^C_+k%_h< z;npPdAd*j4rDwbK>Ce?jsSIpktoEAP^yUdJ8MTuw9%Kwsx=-6pn}MVKn>Il16844_ zxfKt?gwVs8)^2{1$eaZVge9>iw0+*j6vh~nJE2Twy&!(PDX9PDywB=X|EaJ+WOlm# z3|FkkB#iz4qyB0A&7e-Q1pbQ54hyDgi_4oDb0tcYiph~JVo44A1O(Ft!-Qf^%!-_t zRdC{JzrkES-wbp+KhogD5FvlQJf|;^lrhN0hfg=2)SoG}m{QFxnz@YYPPhukCcMsb zU^oGCY}Gu>$kGB8*-{|#DcbA00$p+=6_7g0eQMC~KBCApHE5$X=z8AlVxHSd#8mCr z2Sffbrp+*FyW`<7HqEHqUI1*{>zHA9ORT)EcLe+&=C#-~6C<4nJKN5wzM<16PU2u~ zmJ|nveGTPM(4!b96%3bary-ys`bWE%LwAn$$Be?CDfq>=QBv^vlX`u3>dyepZ2hOMXU7KnQzPLxu=5GMNJSWXy%H z87U%Z6PeOYL1R1x1FEaz6x4@^!PHsG^Q_ut+fU4&lyp+1tK4w^l0Jcmdnu78xtFHt zO{S0A&lKcm4f_fCGy9vgwaINgYNy^R8U4A-8S*a)K7PNGa+Aq9@fDy&PutrBCTqV_ zkT9V(vE5H|G@u3PXOT7%ZUQrlf-vCt1x+ki)g7i)(YX4Y7Kk8d(QMH#j``4PT#lSC@&o%SOf`lHkP5&rHm z^CP4jYo4Otb+!Jj4TqF>?rF`3Dg2Dn{v6IX0K_v!#{7B%;&#;)q_p8BAc86wDIVd< zm`cT#VCYoE;f5$Z4j8HPNFG~YBMxp>P=H#SZy#CB_B6sMxf?;1X#*;@!*Ebj6g1*# zDIx+IMGFE-0$2wAu%6wR&4R3SZEJ+09|JJ}k^d9kLlAkX+g(n>$xt=!6>9V@;jD{+ z0Bs3OE-xNwz(Ac~3Ij*6vHUJviw6aTc%uHY23P&FU={VszbGdqS3*@@#FL~|ycdc1 zZ>T$Ta$J;JfybOO^TT>JDSvsMu~UHkZ(Xcmf3Cw7qG)@A(KG*kiVN^AYUVuzn;}qr z27b{uf$iAFxR>Ib1v*ugNi-?Xbpnc!Eyfj7o>ffYX^T05m_ijaq|wnQhG)R8E}>%qSD1`WAaibaLfzqeuhi!xb0Og zbP^{z#Kmo$$Cp%#qrCyN3M@S%Lpu7`KZlS3FW<9Hpu$$NNh>%|tosz- z5me@$Ibh@;way?%h&a|{+xzNhnd%c@LZ$Qj=2&BDs0&+3W4ulwi4-4Rldep9 z#wB4rL^i8}~o8B8K8s*aTzA=+O|Eu=yU<`5ZS~vqIQ9LXiCmo$5UpP9``z~R}pRuqQ zR9sqIhHPS-#z(+EVicoF>IhbUC0EL#qsNs}tsjiD%0aqt>MlsF%1RE9{C3L`GX3v} z&Bzmy*Cycpuy>qpeE$&9=H^a|+PJ*fwC#DZq`S}wf=lvnVq{5M!itvL)G#s!OIhL|A7s7$7AB)|b=g3BFSGYS_8zhK z!S>F65YklId%3+=+j~!YkJ)>vz1P}%Uwa?xKZ&^tyL1;mSz@uuMxPh1vbB}sW|l(! zpKi?PE2S@kFs2_4_kZ7Dj;Fx*AK3p55F3K5Ych;=a_h712>;SGvo?`+cjf@}wbbVu znGN-D2KJ)x^k}zDcoVpvqN$MgKrjEhIvK`1f@{mNO!$`zd zQq-wN)B?ZyG>J;xq~W#=7JuVCq;DN~yss5e2CKk^cL~54Fq-<`s=efL=272Y0||;o zT5>s&Z8A@&x;=#IQ?Xh+FvL!6^J}Y&i>wSePfg+I)=qj8x%WzMVtZiySEqHh&^UUf z?~8`{U@5bfo7a2b?LN89>1Bw;hlBo|KkUN`bNot}K-CE&F^R}+9cKuh)8$`2Sp!0T z35ijnN!6e=O@ZHyjFwPp6|mKK1rdNvmg^WNOrr`MJ_A>GEg7WZwIO+Eo{A;13xVyy zyVS8Z(8y|nh6E_egKpO4kv1XlLQk(|-1;@`YAdG}+fROXr!nAWHsVeIg(w_sQS|EAljx{mtS zmQifAZifxJqc=}?_JH@@QhWva+(>aRV49!w6wX@E5Q+b{-vuO$hBlly$CE)Wn)C1c zH}}ESxU5ubuwg6#)mlTf+W+(cjR*TyJzIdcDYPqYA8FH0tAFiKaXFe)T;hLa0604i z5?IEu1|;sENrVMZ1)xq(^@Z*IhOcMF59#FSgQq$R-H)6flWx#C3t9dG|AW0kl`+?# z7FuXe|9ONfQKuwLowN&4ft8ifr)TX~H6$@BWXG3y=%89XwyURJ|nW@zfI8|}R7j|lMi-dFDvukLALA-A3} z1vfTEfL;F2bvhN~8qBz76=foV7S(=NA_&M#DX~l|T?qe<4KEpGNvQ3&=0VpEUTvxG zh+BqFHI**-*!Ufun~>Fd@K66vof2)czn*ii@cXj903Mj<>@JaVlP4(Df-UYy_XG=tQ_IKShMNK z4<~X?XY&xQAdKJV${bRVuCLn5^6?n$3?lI_lP>-hgTTw#mLbSF;$!Sd@<|Ev*C~Hp zn7{6C$}hJW>{*7qNw*yg{}`#F@}P0%tZr#~s;I2=GJDC&H-$Wwe#+)B&js-7U)wJa zG!Z7QDnOzv?P%D3q(F=Dar@_k{B@t0U;0XF1eWF|CF8YK)0#wIDmkk>mp<*#q!iA3 zh?j_H;=UqT^+OPMG()55=1ohO5UD!rHvutIZ~}UpG4N8pji{4lwBNz+IMDE7!=Df( zCqH?%Kv;Rr)iI@*yAo@I=q3EZ8l?U4x?#X=z2`!J%J#`CY-e^)ci2-#e*Z-MoL zoG|WWedHe>IK4jdi?dB1NokUSXBU0ZAq6Uva0mB@=a}o|3856sn^&gY7F6NC)Wm4iG@{10Wz- z{38psQX^A^6t?O~g5Ye%DzzZ>0<$}CL^N7403Q)bfQOc;Ke_~FEw%a;cXfDykGX_` zTW8t>b+*f7%UQJ-rCM6rCz1c+e_4AKJ!Ajf(H254|E(*H9s!@FDjX0i)EZU&NQ870 zD@c`OC6KF}C%W=fwrX#+^inS)`&pgUp0`kP>YAXYP{Eq3xHlOc zvz=N|k*ZtjM-GTcvj1`y#9HD!oaBLCT^9T`^Ie@E_uRCNGRSZ%sO z_EJritY_Bd#+Nstv{zq<-wO81JYn!0YhuIak{YX7G)k~r){Q0{=fgl z(PNSQ51VOVP)30`df5OaaZInKw32Z?m;_=W0lQ?E`a_rD6y}h=qi%KTHAlsO`Bj5& zScY(@OFe-+YgOR!F+fD{_nva7AG7}<>fd&mQG3iTIup3S*C1g{nKedyEvt+RD5v;0 zKskxg6%0$)mHNzfQH5wnZG>k?X{J3vHrqFN-i)@86BmKmn3 zQO8*JU|3E4nuMxQg#&6Hf(BXRp!N6kV5mCU=$M)jq9Zh|C697Ol+aaQGgL?`+>Em# zsV})wil4V+HZY|zw(-EmJ;ws%wB}EB?^FkZ^B)UJv9X~b<)hN0JT*YrY1ADP`2(L6 zHX1DwMT6`;(@ObcGN@{p{*?n_SlFOgd}#40?Iozf&c+%B(c3d68?*J^Xk9aMvHsK6 z9i)GqpFG#|S6Ccp!K0JpC!Uc!N7PYHthnSJd zv0@jF>awZ`Up0Bqc)@r%BFG@NEzpHg6dWZYYrdj1OT_Y$>%2wixVCa|tRVSguHc#= zUgowo)N(y))u7wD&iqtt!IiNE;|gl7yt?K}B*N|o8*bqnI?w3xaCKRan&iZY_r$mo zoJ_h_Jv_0*ThxX74|~O$m-cG8Be!zSM_n5Kq3R2_b#0iy;=ZuHDoG6vta#w%p1R|`~$BWstBMl6GC?;Rm z54rg_-rQ$6DZ_i{7c@rwkac|jZ@%k?tp818$Ga@H=yqsR{+y@PY@~SR9#mzG18kW& zN(=bjaYpQSy}m3FBl&B#X{EWr8{bi%99qC7zig*y-UwhKM=_p7inp>dBkoM%u*~=C zmQ0*iW391D8y!GExTzO5kBO8z2m(aRH-85oPvzvyXpMQlTH-Z7&*y^sBL4pC zbp>SW;xqXkHWzMu6R~E&eLekdQ(Q!kFyc8PgkgzX5+3=osAW2^*Iv6YXEDliFf8f{ z=3cX$Qqc+Izd+1_VUYzB*kg73_T)H}*nQi1Wexp}WvuI|;uE7Toby4Crq7zlAA5fL zZ!h-d-3E~lEi3fqjpyaJF>l_Z0AEbk$VrU=a{a>kA$}Kc?nGkihb*QK^tJN(c6)d@ z#LjBhX8&tX6`{$u8b5dzvhIM^J=@5C*&jurbDB0hmD{s2h~5VfqFc=$qi?tRFNH-}IqQgVqg1*fB>}XcO&T}BDg}Y@acc4^3MG@K^FlPs$f~s=4 zEP6N`l{#wVaCZDj=#8YPtaw#QkiLQTVuK1n^}$uzVynlOk`N^N*Iw7cttujue1lJ}qzS6L;jP1A`8K0gQ+0O;%hC|?iqi6|dA47$;cHtf1E z=cyC0O_O?;da>(#PZEyui=!qldPV)J!+Wp>?jj8Y0b*nVTFQN`-PL=ck90&vsJ7I` zfU>gCLDV;2&L(P5(IqLLR41{6s!;gw@F)n@8G=?@GjR>48ij;Qk|&o{%r(2J6-o7V z=}%@OK_usy0puPFMnr(KU_{S{hZh0u5MnJ+-MmF(=ykXghqMxzg1kK}F98()$OsJ~ z!y^x`;rlEA{5b%?rz0|D5&Sa?j^ux^RaMt17z{=*Q|b?hrF=}H(@-AaFt+3S0^@se zgh(LR2?2?TLzHut<_Tq5J02fi0PFCc|2>g>A*(9%utBEi)HIVsoh!(Yi!RDptXszL`Ocs7)`dAuh$F^hD~6WjrhZ7n+PImz zlY%qa52r7g5No+?ddq;E0f)>|XUFgs_&@kzx11sW`^KD{hHIO@nA`9L@7bYa>yaVm z9fS~7Pg2$iZW(_{DFz&>dP?71c{wsJ-EMVqTmz5m^8DJzx*;<(FC$N^<%beF+`Ra# z(sOk@*BVmqyN{8&@_4MGqjBe)kYJ)Jbv_edY;)U}8M)fx$~HySY=39J4h>{pIp!huxP$uaR*%X~+@$BlZ`$w?yZ z&;LOD%K5)nGTJ@8Kj9f=Pt)~|kgiJ_cjD#z66%qFFe^v&RLc6~;|l@6DOQC>w)*6V zk`?UpsZWlXnAQh2Uz^)7W1RQw2y8bW!UByKo=jq!QbRi1x#1zXe*cmq_5C5KKSMx$ z@|p~#|7|4Hn)l^2rGI5~;arh4eN?iy=*5bTrrf3DLcrsIBXp8YW4&i-%lpUn*`IEe zCtfrm##-_#f`4%uK6@+D<~y5zwLg%(DF}A&V#c_SZ5Dth4P`W$cm z8orPe?}LH8MH@4cqUL=k7ygVCvu@gC_12rEjGNWZ}JwJLoh(}Ps{d8RK? zX$RBis`SgOhev4Q+rKiu1za5IrOf|YrSE0>bCrIWY1$4^W&+c1sq{joH>>mt*0V~b zT}(fx(&8M4BrG>iH$V4XCuA>HFf+vsC(amcL!4?_!$A$>UoG(<4>-`9`}X za=l8w$$G9(={-zeqSF6jI!mQ@@>@-%Wh}Trly$zz{G(Wok)FhKvq}$PdY4L%X8IkK zzKrPxmF~jyT9rQj0@5$2^v~JuvqnD4ELZ8*Stg{?)l4r?>4PjYN2UM7{GY4zbfzb% z^ldCNTBS!YJxrx@nZ8=3e~&d=PAbG$&SxJkK)$R86V~*A+DN6ItmzwP_)5P&&te`Z zn2)PoXC=C!;ml;b1s#_9iHA-BGrKRx7v3*YoVRas-dP*0s;c6t-`1wO6BpDSOYYYM zRe!7Ior>kPBzO>)ZWr5=z|k^+zgJGgmyWv6Q%d^bGV98elJM}Lsbp zNM(`j00am?!Lj(o_|4Go3bjYmtKj+OnXt&#L&$N45h_wl{&sXVwMqS|V0(*hE$j*& zeozS=`Y-__L>|ZtTvu$J_B3I|!7>jULyDc!MtF=BYaW)LZT%qeiy$!sWlS;P?cx*_ zMxW^Q)%-`f;v%ZXbZR?pjqUdfFXid3Sao_-j$3VLjBmrPpe$g!Ggz5ZpOy(Pkv_RRgez{q0{o`Sj?`4+kQAFhWTWmQu| zZr#9oq43=?z63I)VEemR>4E8Ogj`V!DA;t*rHKJbn*U}cBjy(e55+;$Y@cKy>HjcAHvfT<} zV?onBgIVBp6d-~l;4m7*bzC91vz6^q#t_xP%+`1N2sM`- zcs|ZfM8`sO!UsDZFk#wH(9aiL7&pZTmOzU!cT4W*`6S!ksdN$xu96V(XyNiHloE=z& zu^R)2psyHXvN`r4uRs;Jlt@41-$C|sZg-e;?#HfVSo1A~`(Jp|1Q|0#mzjaPKF z#1JyU?&#gl?p2RtblKfFtt8kKe7i~a?!kJSl-`JR#JeZOOr)6!8&}zpY2H1%vB(O5 z2i6^fd9DbR)Dqk

7HegJG3cR3Fz9F)G}PMAW{i1<283HcszIJVs`7m;x{K6JyKJ z0#~qD)KcoTv)BbJ219Aw=NZgzk9_?X1@Lu5*Eh$65y2KnM!`4f@pum&kKngsgI|N) zwzXuCGSc+M87EsnYgj$N#76?&YaIYJHW@=+*H(QiH|ezKIgq}H%>6kb3-7lly=c+= zK0J7ut(vbJ651+=FeTc?(XfNOqWP?nRaaclsCmCdg`kFFdxr{#_gISyR6W=Zn{Fmn z@)pf^3a?@5usXfRrfWWif`dOjqV)RPk5v>LcH?ZsRlbcp?+21ut@fKoSjMv;&Eo1L z@C&{Xxf#${$~r|~lzLg-tk?D5#5%XTKO7Mr2nE*9Qq~gR5!V`hN(Z2saHbYkP!##nme%F@F=Ucs?JeRrv>g*{YjK=+;dw= zHYWXg8*)ovH^GJSLD$BVijv^CjqQ}|BI9%3-mnJnv;^P4cyd`Nkb=MC0_}w6*a+N; zvv7H5unf$J@(Yi#bySsQMt)5+8Fn=tG#1B%ylqNwCSt%q&=y)4rj7}zFn74LYFOU< zN8DW@RhL(Izi-j}E$GR5_QtUeXoyP;KVwj58bpRq|9+7L-YaKhA15F10LJ*gKuNGQ ze2kgz?DXC@1DLZ+3Lrnl?zu0;5}sj2y{yvvrPbj%38XlNC$jv06?j_p?P@ky8a#|E z8TB5}c8H6gNzIVWQT46bW1A|5yl2rKsY`p+-MJ$5@`=c`YJrFp8e5Jo+!B1dZV%`= z=%rx@v}@~#{RJ)7u#-wbm4Ot^H)tA@?i_amGU<4dU@mSU~& z-Zvg>eOQ|2?*S;VKbPSb&16;-3@g|CT+#K8Y3_PM&C+EiBfB>PS~SRxi_{)gG!L>XDidG15y{=Z^cWH9x^Qmq(^3u6IxWZ(!9 zua8x#F^zOpc^|@~-UGvm{0bi}g=?|1GdMOwTQ#-^g!gXv%>=8*zp*_cqfx@ZSGXr5 zr!Wik!`fNJx)r&Fqy1=bJTn5mi98_q6mP{F3k%(F0QkE^;~h4>bCPM+qYZC)q76^R zw*jrRJ{$g7aV%-Q?C`z3cfL`2Q=)es`o{nAq>s9GbQ}4r3YZc?3I5p5yiX z!qi+zlMvQ_Uy(C3%-N6(X#xe>TPDFSW6CqZ9YQobHW~`vw=vo|O_UK~L(c8iXWxDj z;j?>-xsPF2F?Y`DA7N7p@F$%N^c>jCfJp7(>uYgesSKMK#?QcR*gwZc4mCQCVekw9 zCX+JpXD!EoSsAZw96QEQuwC=M2e^Tif)T%llxcn5hS{-%I^v6wgy&eW706b8E~yTg z6T|Y{Aml(hscC~Q4tfdviluGByUDGyCdC4@lKl|TplW4!kE4A^?6mX52zD<9uipW) zx+A!iD1A9vC*M3rtDcj3HoE;CY7$8dm*d zb>?}uKtj~xR3Pv1B+d6VaGD+WGl)+vMnQMCpD?=X{*S^3Vh5+HWvr8Cz#>bL?}&St z**nOGBsB7|I08clO#4Ek86W$8E<7x-4tofRifb#!%sG^|O$ekzc@LsL z1ibPDT6U@}mwol7$tPPNO;5IunM3-92#M7!dcos%R0%9BS14%mlTb--u5e;n)0eOU zZ5BjN*p0YNs;^#%*@OpdB?ZE4>>bgYKa`B8p=rS&^F}GLIIaq^4gzklfRQ0V;UWh|ItxfC_XNN|D_sVnz%N$6l7t zgYEP`!*GqEcC*8kgcI2@)-;8pU!xK&z;liiioS+tq=2H7JCSOIq9qo=oNuIU+`Y(N z3KmYim{|BJzHVx3VUhNG`WOPuV(7N9uG`j{EV zasJ6X@0Px5ry+e>gFjI6CgPa5QxmsgzVt>Y^{2Ny=uH2KYgmk_hBiU`1>*{?G=~4$_cYpW+QuKH&Asq#DPsh zgxB^Gp83fbHF_LfyYl>-r2}D0<~Pg#reY!fW)B4Mb7~GJSeDD zg;CW#x}K{sU_|Klj~>VT;WpMx*JVa!&*)IPYhBra=>0R&e{6M~-|58D(jUIpuev&M zI55|9IM*Y4QlYhHt#^0Fxburc5+723gWc*3BB--nurYX3@4Qz4=ZfG>ITGwt=xx{TuO&NRa+JwQifVZm(%Q>d-evhG@YX zY@(y!ydDBb^Wp9f)Lqlj?SXbHb+bMx1DNBw&*-E8AEs9R0)KC=Eahmt$F<6WsOT~0 zGQ@yEV}y+{I239(XJx)pnj6+*~7-Z6H}0E^ZQxQvKi!j^zd+H69OGs0qcMs!a9MyU>zqjgP!Ql+5l z3?|_Onu{=q)WYfWP?66$!JIvtd-BFT+s;QvdCw$dVh<#ZTSs8u&s)afYDzYe|%erKYGQP0pc&?avA zN!_`|`2NW7OsKTCp%QYu+i=84^WO}5HG#xQMw_<+18t)Tag$FpMXmb@2%OOi;Wk(TsaNFM!~4Y4Q!Q~q2ldUz8(}qv|oCf?iq6U1YGl*MTA@^n$QxZ-X2Ha@+ zsWGM{f2X$iD@aOW$#-nvV8kZ16gF_vpntP;Q1iWla$=97LEnqvh(Z4)N)WW;R!^LrQh_Pg3EWB)V<4E+$YAp24Gg4!Q7xL3kmVct`Y36AP9 z1Oukb8K+7^&UChAZ*N}G%75^i!1e)95c9)^Gtp!b*m$L(JZm>Q!lEZWu)F`9w z{cQ~-y)pdYB9FK@bOuLMsri=m> z$pI&F)QiFA0H6;n?k)gBMZrg!e~O?cCC3W_o^iscX}^Ph4>KL~`p^XlEC8Cl_dBcG z=~>VYhRE;T*Mqmalp7clY>TS{Tx_7y-NnIA1k$3U>#vlmT}plRjYzSt1v@J*sV`|~ zrG1ko0i_UY{r~_DAjC`pptmRzeNilTI_TGk>h9V|=8=PDZ=L%x-7>C!nI4(BeTuVG#Qv&$q}=y$yb11XIH`kdZGa7Yzm z|8%uCr|l6a9Nt$=r$|A3(RJ zy-FfXyE)frmT5N@@)@zF-1Tx#H)rU9T#mS(7hKtwF5o(1D9?ykVLpO-87$>BZOQmhs4CNB`| zYm3Gm3`dfgzT!rM*g-g33N~qre~-}saZjW6SJlEg|Ho1LtwQZZl~?~XYLD6<40 zc5p?@QT>$jWQ%?;&PkNBvl{gCKRnTrw~Yoe*n>15{i_w;2gX>n#k4=I#afRzFBhB|Bge3yR(Ol;ow3w$@p0KZ2bJM!{0Fn&M?>?LhRRbnUhIz22&vB;p8~ZPG4FgaivGG zeI`8YPu!9RPKKosu}g0u9qCH}G-|JKBEDP+)EGc-M)i#0LOKmKb0M9;ja2Vl)aY=;JOqO5+MdZpe@QsT(;J{9;AMWYVPu$wx5-vLxcArG-4n6{M^#*eJ zJD?xL!T!_QTi{1yj42_1x!w~QywJ#|t$Gic67It{gLQ2xJxmEca{gwrd-+JX*iEeXoUB~^#oOqYLT%S_weWp`Z@@bM0N}58t5&dc z{`JmKpG2BCg1XU& z7jDqJ#7BmB%!G0}&OZAmL@|}x^Hms=g5S)9I3}0GF%{d3q2?Cb3pL-L&<=v0oz}?X zNX2!a5|0SDS{aaltM@x0;L7Az(Ksds_{YUD72~n_wN^n)4DfHRmU&H#)9Qg2k)9ZJ zT>MlLD~#?D^)kReas+t_FJz60Ou@50v72oEKAnGZ7YoHEOkf->&Ikntrt!JwU%Or z$zObVGtXE(;gk!g`ZrjuEMbdXCjEyp+0nFBJ-Cz)pJ zV<(?Rrd$L3A#{Lb>cx8_e3_`2qu+xJP$+}*CdZShU7vA_LQgt@6-an0baz2x=P-$o`TKyZ*YWs zb|L^ag_TtK?3{Z?&}Sz$M2-T<6n-V*Cu4F|uY9<#yv3|S=~K-$SZ7Q-t`=ZiLDZJ3 zd9TG|q(AK?!#)EHGYU7&I}eZK z6O)BcO#4ZEqOZv(IDeB9_{4OBPay6Qd}5&H%RxKf6Zuv-)+eq51RwZBl~?%0i|Ji0 zOQZaO8*$?J!|Ql#euq%oV97@ATmRIy%*ha)+ z01a%YDAXIbd-X5HfgKnuoW&DUcRopbC6DzV_%=c&Aq*Bp=?@w)VOsHcWGir`0`YI+ zYo6sI#GrYSeh9I_fEb*Xk*85gKiY}Xo(BU)z1$yZIFDg=id$IvhT40NC22m!F;TgP zTij*@xCs_4M7}dz#tp&x)+UjEe+B7$yv5ZKKfpuLx2a~j`%yF1{JZ!C=&^6yx^yvd z$*ZpJ0pHP9xm{vKc%yZ}@A)wbqPe_nbn#yJKIo@)sU5LWEHh*$H9^pyp|S1LpC~-p z;&}jZx9$q>dPYb9pQ!^u$>tLW)3{Y(G>*>2`sIHH*}$zZUqd~$)|aHgaae-DO8*LE zXsN}2NAt~-CV<&M@)Sfj`k!Hqn0Q2N`q^NW zv=O1zMK8+Wp~{>u(_5@Rc^HlQYh8$QM35BCU>z}HM{o;_1OxTaAH$9k?mll3c2uXJ zGVDWu5dn7AYLGr)nZ_Ll%5NP?MlF}?=czA#&Mz3bp^67k9MNM4Z;t!Khu18yORpiD z+oINkv*D8{)mC>0&w?@wq%(YtlWqmY79&ka0mV8&vj<9GNrfrtS0;Yl@uuL{ZHf4` z0ObU~@?!W^Us84&j`d2wF%Q0q;n`M#?V$edc8me`K&I1}UZuv<8o%Dcw+6aKcEgwx z#j9c0oQ_x1IJ+^tn!Q=!74QFu;gw8tn|M_scr^f}WBL)Hqua8U6s=Rm zbH z^!GpKQ2y&!gE8S$sfjo<5ck{RwC91fc%7Q`1&dAedhi*FLCRR0CN-$npG4H_D&$ch z?8NVw(DW+Umhfe2trU^s-pA$B$-}0xNEeLwolmfDoj0blWjWC}@6ah8Zeza*Acb=F9o=r^kDZgkr_4@$8N2AMcZ%Q$aGyR43-dRE?}uHv1D!f==XqvMm6>y)nX}Z)>4OTTqAYzFPL#wgp=_Wteeeuk3!Xk8MIA?L2jUj- z?!mrw`k!I3;5_fesBr>`j6C83;PnsM$A>@*J&%_a;#=W5$|8_}3a|#y0Fz4%fFd7c ziqDbk#w7E|dL%*n0M&zR{_>5T3H%P^uWrG{S&Hu&WGbI%D1rx|)h@mI9QBaGhu@)M zjFibYyQ_R)_%7XQWBx9^AKnW&?85!J^Xv8B^|T<2-<^hb2D2SPQBW5sIy8r%cJfa- z|IFa56gh)4?ZfoCsWIH`GeL0oyeW?nUg8n&?m!wVIK~Wg9Emx`S%qBFc|(MnW_ima z&^EK$(l%drGhg3izSgTg!zMCF0}Q#I3TdeOjz`&&90&#Ap;nwPEjV%u-lo`D`54YM zkEJfQ|AHN)>hd$@;k+7j5dbQ-{|_eo52%Wh&4bl=d?t>1YopJ7%}(9j`Zb;r0;F(! zwu}=M--C7rR8=Qp5vzk%OxpCUQ%3X*36ivQNahK*jb^(JUOVt+GZ(vk*hTT13`F*_-)- zAB{yq*kKtG021>iNHUwriINmdnk31-%$*|1flS^i$y_FH)2h9@dkGW1U4Q*1bHWL4 zPWT7eYQkg22RDzzg;<#6k867yvyIo5K_;N>8mnf5F6 z7jKEpVE3_V28TQxH-pzI*c&q_Gr>AAOGXxsPg3)BT{H_MtFnrsSyUBdqK8Javdyew zW|21t6G#J@c6#-UdV*rC`p-6K`g$;^%4p*#^^1j zYBF=z^apr2nVl{;^JKngHT6+!&SeCul1jIDwCWfB0f{SN0qAH1hLGN+GhZ*e%7ZnINd&0 zzok5eRvX3$S|Jcw`p}yPGrExM^xhJjO%S?|jzrL>Iuq(bIWmlQehkEl16>k_gbnn=2y+-dC{9|DcSp49p*(%Z1|?8jMZC9LVYO zk>h60#VmfW-ZMvd!F_t|jS79ntRdWqK5zC;wM@O0^~ACNbWE;C-0%9`El1*I+tc}h zGXaSpb8_KtNC8sdejUJ8(ed99R7*ORRUNs48>C_Em%<7GV4rgdX}GJte|!wsH;>Mu zAejZ7SC&WEw^1R-YuCRWp@w2x!{vlSNyboEAWohlTSHjJX8mucj$i@vprr6K!#dN- zrN~H2t-8pXKRnBIA#3UzT@f|^*Q5fkasPbFm4@xFK?WN1kbMQpY2F1W6@?SQ zCj>`8rQrcZpx|QkKvpHcUr3-O>osLDp!L2<2||CyxmbrCn$0Iw1B@NfG4_U%10FL( z{*?kNja<%!NagCg8e}s|)AbKdwQOW)IJ*sryZa?B9)LM9b=N~m?ol7q8Xt7g8{o5o zER)T%xni;mgm7uEF|Iva+-qhx#bqn$TuSeZ%NF^ZBL8e76N7o83TgJUr;rR1SxAUL zcb@*{a3BSQ?miZUBp>%owRi*!)<{pW$JEOc!YL4L4!d!ScaybBW-W3YTC;xF$wUGW z{E1r+Ps4wG0Az=d=Oh{&;LW($Vi{7^6;r!-6*6>9$rav1=np0`sjn(1vnXsU8+^k1 zCEf<*TcHD!qa&YXGW92KPyiznCRP12^UPFr^LIyDmWuu%`$1%fgFf?XTEZdxAJpIe zHkz!4`_;((B{X0J2q;o3$#P9K@}EUmM``FT%P9YTSAY0liPCP-OGk{%vaIHUhmtU| z!+}yOT9lsq^DL!E9Mt>3UZX04Rmm|WQiiFF*Sp_41e3v|Mm&e-dW)-48P&!*Lji6B za~1?L@#89Y1|^|SM+ZC)pv_RWt6v^&V>9$`tr{N9&)~gt-q~Wq^g5FtNYjs^wfrfT z%Dwuf_-xV!2&tAS03Qro_YcKDz&C}TqWy$u8?1+fpIVn2^1*kZjMxGz@HsC{&>p1y zmH4hla|(@|L(v@WmuHz{$U(F`c!gg16h>dYY(Cg9-XMoC3%(s}!T|)ktvHVWOLyI# z1D2Ib z-og`~!_zf)G?>*PNR8m4Q@v}uosa$V?rZsFCKO8iF3ZMmUMm-vNNqQZ2UXt+({tatSpC@J zo3{_r7#1AQyz$BI`@9=D#3Yz;+_NxMf3uzkTOhV+Lm@=?bEu|>-amf}o`c_RfLvqI z%fLz4KahQ=Hv&19#~Jxbmi+wP7hxG32H|!x6qQ@?54-d|^ITR}cO{ohHtZ$TD)GuV z(*&LKpB~03v*_4 zVRnzl{AI@7Kg8gAU=g0Ho#OGDME6{HnzKn^MddOIy82+nhMM%?7*y z>xB&jvjM8pmzgcUBHYUWcie0Bv2)=j8fEq0w8I`_ND45Ar(mhz!7{;N*$C>yR$(jv zZA(YNZ?VRi^G|+6#KJ#rEg&oj$G|jn2ER+n)$j5#>i21O5-=POGe(#5@sGD@cex=W zice;JV6#FKw*=Dgi!$wE^kB9Z3V1-eY;B(UT{0WLtdF&K#s@`sQvC}BRv2ZUQDs`y z$6A^IZMMYv`MeX)1{z7Fs8H$yPA`8PCOe{Kc-0Jyh}fAR*#a9!1b3HWMSSfsr8pR! zW^53YVf@7si@)6f_AVpY->&$_Giej>wVlFOz56$D_!adRmM64{XiI2SE5TCeSN{Z^ zS9}7_jqlVUCba5hgC`jMM~Jx5e}*vS#B~(Qrt~u#JOCUMeeDap4JiPTNG5v;9E@q3 zGyD?g6osH{V+ds&8#LA~qnKBVL*+Squ}Uw2J4;Slp@c%hTHIDt-KfOTXwdrZ`ZN6 zT*_|o)?Og^S|S5rMx&8oHUoS$_=VZ-Qhv>%>^kQr`YpRFlVub&;03-?iZ1BmuFQf) zytW2?Md$QKb5Fv+!r|f{XIsrwN+b&==h$+f_%|0W!hETM$dXz>0-9ek8{a5Ioh&og{8Fq3q<_wa z;U5U7K1>d<51x%QR#-R+w(d^%Z0wD7)#8pjuOJdS5hv~ z3i)kbQb@2QE#%#T_d$5^eaR?JI2be(BK}be_;3)~=6w!F5?P_<{|e0mIkV%=4cv_Q zn>PECG4f|1O+|oK)gmN_-BZJ7)t6_(=W2Ppz7H=9esc^$_=JnI>adrq&#dz8kfcz5S8KDU_EXhX}{SlLx;?6?DwfH)qFnVI@ z*8AD}f!H3M64&|YdMgX`Wsqg#`1bP~q-otzamfCQ| z!F|xdXyDJQEy_Qv`G1FTc-9`z!H?#9NFH7U=2@J#Z*$vVaoXm{@jdh_RO$XT{O946 zZ6m@ypOY#@$O)&)C`+g)6WFgJZfHI;BW~(h30;!hieun6J5k<+7L7_Fi$Q^G_-Bj` z;dl!6$ai;)9?*&A5Z5h69&tP$zQ$8rUn1~f!_f5a!lJ8kJj7li68=F9aoOQ|gKPy! z1@a0uHguz`g)K|KRK(|u2(Npj9D~5qI6DmYP<(sq^Wj&Qu$-8z5xE$h(f{&AoV&SfED|^VPGh>T%I8Z}Ft5{2N5nL9-s4kwFq8rhBM~;!D}Y$Y*M#cpe)4qOXww z`N@|0>8s-X24M)>6xXvk0|W_4Wc;%%X3T_?9}Y zdizG)w|KK;rINg@ELDY4U^38z*~(pUC8gsmvNWLxkJvFU0cVjS3>(XOTp21&T3`bZ zMfu=ufoJ3`poH>HK!;5&QtxFz7`ME$8gOc@N0g)}pi!6wV&_iTTne*4PNje->qH8^ zY^a2clYm}@NbU&OHip2sNyM;;w!W%mO_-RoVLq))Hltas&CZ03LqcfVfO^g zFjDEOMgbcuY3|HNTl8%HBzvI^G{HA z{Hh`dad^20UDK-D(Wtij6zOO0ien_icwGfpDkK%amy3gCE9}6DEw@F1!2k`;(K1;9TY2WFG zYQIQA`*nLez?iqHOU1&yU5>$s7o>n*B>j~`&lz&aVD{Mwaxnb7hEOk#V5oldzrcAb8oSh#8Kk&S1U18NqB$c!x z2`M@rvx7T5ucsUdRG^quE8dAd$z~Ph9L!hF!Bkj}AvKlKnJUh~eZWS^DAnIbk{0J% zz)vQ6YL>9=`JFuLAu*vs-{0`)T`vYWAT8wTATsbNT%KT%h}>|1)NsBC!fB=MzK+$y zQNmFJ?q^vIj)cNkg7^}h-B5=N2HlU7++xY4O#t_`OAb1SO2_LL;rtOw#4}>Xtn0y( zX3Jt5W9XjsGzMZ}{{=V+5Z`|ck0dUjepBT+CI^j-IRH?yTvs0Kh$h`-WF(Zckl=N=cb0D+Yqi{bh{1a zUA3jD!Ml_%@t^0uo|xxmr1Z}Upq&S|>L2qrgrt{F3T>4?A3w4|o^g&q1L!=qRLj*E zjQ74YFvk9nCe*#Zce#z;m2+L`ThL{k!}u*r%^da&>3)D_%rT*%o|L;9+IWd&!>wynnK8 zIUBM#7MWj4zuz z$bNV4_w8LyZG)FX(w^1le5qA;4Ia>{Ps9T~Wh#KqFk;s@PqMYS(ZoMBSrHdjYO%M} z53^zmAD$E-Q&4C9Fq>6>_eBXk9x?%e#Doocg}CGEmZTczu7o@N30LjGiMwnq_AXZ= zrg9Ee@tPGfr1s8`M^Xii?q52w*{6ONSZo6h6~%w5p;V;wS!hJ7?kKU%h;#0R##B4o ze}i_k(|dKD>eXB06MD6RrFl!80Yo{ex235$Y^<;1C4mz@3x{q2GZmo2g|^7k*iLQC zLp*=0T=Qsrt+e=jZ-M(eP{w8vyG<)569qyKA>eK^*pU~)ILap zIDI}Ae9`87oN@k^H2<{ngY;;5Fb@yr5ol~g!yTvsk??Z=hR5Bsq8&U!d z$D#Re&*=@T1h&}kM{gYYz3r7BD6G{DUQYh3s%ier#Mf5v9}WC@MHpeYFfG#ZWfVSi z@-+@?04wrb-+DY}oR5~zquD@A&d$gxtF-25{ob&-1vdkvr+VFNtA`=KBpO%7KGu z;ItkOCiJ|WflA9*~GX!2^l7JIS48ainiO6aMJeJ|_!P-p$cHG5Zyl z{8JSKX5o_Y_{JPy`y`ya+!}V$k5>4XxIVlP!=HF~oDtp!cmFhe8??90@)COT9w-yW zwotb|kUIcv#1!Uj!>P~n?$WBy#qwWYq-{7-u>FClCPH3mpdju|AoGD1m5mP>0K@Yv z=!vsAft_pjh!c*c_mxBFBaRPbbDs-%Cea`*y_aqh}odF4S%C)dYGA z9y2?c$q2d_twh3tamBP%;tTxBe5mrJVi^FbVcjmWmWm-EN@bBNKr2cwiBZE3@!J>f zVX%#dV2N+fIPYo{@2n^ZZY8q64rJ%ywOTcZ@ykrzeOZ=eRPd{kpk5l>1AKD^zkr0+ zBFL}!!7vBIhK9gDnMOW0LY#X|v2T>v5&W1&O{aASD$t8QzjBiNC7)XDw=fvpGHCS=$OTm@)gYBRrij#v+wrCtS3pf@e+MgJH8TNIUo<=9y*J?~Z z(BJyvjkE5HWM{C+dGs@+Qal^&$g{X^g+d<~h$QsvIC#1oo-CY1MMtUri(& zulQLCq$>B{n;%v3tlH7*2>w@p6&vovyx+VA_|NhGTd&`iFn;X61W})H`o-~cw&^cD zec&6NGVs}){xL|Z>6c73{i4^lp8lIYf@Xm6N<4Ag<;|}PzbshJ zirr5%FII3+g1?gu|p`v6nA*7E>(2cmv{?`813+`vicUY5X9s%~EdW6oRwYm7S6Ge?>g%ux7?RXUR?|CP zfqfP)@O`lz#<9sT7z4?Tx`5-0acH|Uv`lbwwMm!tUQ!#p4Y$-1E2GVkM)#0LgUf_& z6IVP$vm0UC`ZGPN=Q2qP<>258OP80hy@TYcuS++y&pESa$l@I>8;cJ*I+lF zQm3XIY2aXdBvVNv4d8b?qua2Yn#KnG_H(K9!f2)Wo`Te`e|<4!&OLF~F4$s%n{fJ| z*5?q0;w*UG)g9*@iCM<`ko_3;A2QS3?CiItPYa$j{{<=JKA(X`eA_htj=I_dh7{4q;Gx?YZ1yjaB^31{zcki@>fUxyRHM6(084ok+d3YF{~3< z$0_9&c5y+{7**vAmMwJ#A9!3p@D8W)fyWWqx71hb42`PNe80yq@F{lKtYTPdl%LiW zUGpL{G+$qofasw4W+CBB9t-PI3F_OS4?>?{`CjTwhJ`BFV5}M?kL!!k4m%41EO{J8 zc>h*{DEO(2%^X4CI?T5t|2@seNDYYlpCZT;hw$lg1vRHj%NVG#^}=t?0KFN z*q}G|2C3X$_B@P#IKMIPNb@5x`2o-v^*n-}c|uuW?{E?aP_PP)M^`s&n8DOVo%1ZkRYH`JS@=rzi@?wi$|)7_z`!!7?}co7r06P~kBBQw za1Rvhn7l#CkoRDjEI>sx>-^bde*HGh`z2K)8oIeTJ@t~UIUt?oTbh@k5j8(fZ)wUg zN)6x>oZ&gBGO`2SBcopSUtkuGZ4=Nhq8T8r`F5kQT=NWUf**|yI^Wiv=}l}F7WeYn zX0Lwbt8wuLCT|3v6qg#+z7#|4gLVcB;E@Z#88bjHoZk0)WLflm$SDr3q(dX*CrVc65l!@Fxj$yEh5!MDg`RrsCj%xynXS|H^ zz@Hl#&y^?ZuEEA7|%J!z%|wz0@M^T4Zq1WoOgbxm$@EP`ULAoGYcR^p^j6F(CwaPv&q{5X}7@o_#oNf$GzDEKO1Fy~Iu6R%RAT^}9vNtDjx?E{_#$W6ucWE0{%as|4LvwU#ycu=$&v~4a-+^y3o7n zmXNPRd=zW3d{5s6O+#ajVczmDtAxA5^uH-jLzJ5*>hoH>KP8lclj#k6cbxxMXB?UM zfAWq~;icfjxoDHA2M^HAGU4v)?8vD{2&DUtE$tXgOFP*#>DJf{;Enw4E({dp(0mYe-;ZJ&{@(4W@w zGi%%SwIW2J80cIYeu40DjKeknbPPte*R<+a#0@dK4@|#u^ifatFsknx#xM_Ij0Iyp z&Zax4KZ`Cqya!Vqo)#RWy{Rw>6zbcA1LRSN$S$tBH~EF(synCoAHYx3Pxq8b5Lg7I z|G@tubRUL$+|vpt9Tzh!417mNo&FAD)=&n#Zf|MuE0PkObdVVITEHv9 zqlzi-4?~ew{&uD?H_zERLif3QC6@gNCCW)EPf zyqw=5a%Y-^}=fX!#3ni?&w-e$Zmr%YUT5 z(S*Z@TZL`?cz+{56n~>8U%LKZ{f*J_yl{5|Dz-j)-9o@Lria+x8jxlV4

-?B;s$-5JKBM*uRoO+)s8X z|D@{8kMU2M(4GX*<81!PCw?RT$zh1OGS2KX{F6yD|F`^;QQ#arJAXS3-v*72;+qL? z(!a?MPb>d4G%ka`#h3rT_fN9tKj5DnfHu`mecgr=RudJbGy5m^tvR!QG77KJZI1`> z{w8lW{gcLQN5X=B;Li#4d^Z22`Q@Ccgxy)!lh*6c?rA@9{TY1`7V6XenP;3&>^A>N z&gj(GjZ9lC43Y+@B)PFhfGw8qJeF_9;)qj6jzg(=fpRuGc6JtII-9*=tMvV+!5jFADq(Lp3%oCVMVyU=?}k`Y($8j#~_4^ zLRbke!> zRAGwy4=gmMCm<9avVRZ??L;BdpUQX7{81{{#dquY?!lOf!1u+fPjmVH4|vbKT$T4L z=2an2L2t-xKF`B*3si9OR_}{lQz~5_Ic;Oq*!q)CnqlkR^n2k%Fg%IG zYq;n%Um1uBI>|abL$o~7+||^t5y~tv*I&%N5z^{@7%tu$>RC5{=W|(HdxvV(FAsPe z=@EB+Pp%*y!hT1rmf$8FcvEN{TJ?w&MJ**-$!Dsj%4%^gegt5`qu~1hpUY8Sp+6wy z#6BMHF&w473=OPE(fmp18Eg#g>%Dx9lHUK~rykpW@RPr34gOlR8#d+buNr2Be1Q%c z@%GXF{JkkD8gK7x@HX;8{6`FI@Oq3V_|nKK@B^WPKeN@34?mGBV|e2Xul+N!P>*y6 z^}xYx#=5l)+i*qIoL&f_$6ly<-xVxu_10Odd{+?ORUKi_^&U%hzpsCh zc3MEb3_TW*|2P`aH=`KwZY_Ref%yj!n9tJsyB5AS0`vcZ4^&`&Ml;S^5PdurmoK%) z#pNH@A=y>eCl4;IM;m;v7pNM%W)14|XYqN2s2*#}wAZzYANzZIP+~NG?E79Z z?fXZ>k11d@=vzL;INORJ8_C+E@nfj{hvUbjPTCJ&h}UP%96uH={MZbLv!MbWKx zAy37R-OslYKPGu9evDk|wD>WB2JE-HhXNQsI)02*wG}`1U@B;cN72N^k1c*aVf;TX ze(cQC{}6|kIPi^C$g{X4evI;wntsVt(@(~H+Vr1~5&yr&kFny`@nerYmpI-ZiiHw1 zjfOy(5m3xHEq;u+&Hu1)CB%=ZNj#{3hh^hhS(H@#n4$$UevD5l{=>y^=7aj=>i~hc z_%W%5aXZ8C0zyr3eEgWI3-Mz&gd~1Ua5L)Pt@m;m3GrjnTwMIv3~4?gVmdBT?_%RYeJhaUCF(HmS_j9yH{MaYg6K=AKpCx{b_!5mDi^6I+vW@t$bvTWw zRs7h!%nB`Q4J`Iw;>V;fCN>-KV?x@AuIjVKkG+RBA`(BA_4jyjQ`wKr`v;BSF=vAA zln>o$J67`zgd^Qn{l4mDMvlP-W6@XRC01F;eKBd%-Mje?W1UA74kB=fOVeIYVg%0I zkpR(`X7o)r#5NL8jJ{!^W?1Yua8``)n+^IzHqIP;_AWc%Jl@OVJ!I9Y4>dodRX_I# z-eIGm<`cPO07`4sGp_P}YW1w;D~Qm1>;FLN#4)T0oI+3 zG34aNg~P+8Q?cGCyO5dy z&G&u^AO}Bs>wb;P7tGwkxd89;c~_tfNLh~jE%&^mRgYvS+RGtkjtIV~RpU(LE(jP! z4}A}zM)((u@s{M{Ht3aVGTwm5yRS4{7(!!j;!FsfoQdxd0Opg5v_V@caqFv`De@sg zr$aUP48J>ZumsfVL7kc$JU3`U_o{_CmP(woVC#M$M~=mLXYS32FIot-ZR2%l9aWbH z{(!1^m~9i@G_>G!8=OHQnGDM2i$=W(_hZS*YQDle&jFewqkr4!m~`ZC)fQa?xN=-C z1M#A|S%tbj*dIWY;FEj??iP>RJ=G$I#V z{)fONApnU+#8m-|FkE{L`6?GlE#SvrbM+a>mrr4l(W>u9TM*20O;;l6%!fD5&`VB! z5nW+qJ<64M=79`BWV`iV_66}nhYg7U@Q@dXBf`*;iMZv5Py{BFOQCh-StcD;mtN2n^?yU>R_6%^CH7JO%FW%kBdsdrHr##01=O~=;dH`S z=n}IL$42^2J^ooPoF#SO1C53J+0E*~_CR%!wbiZ^HVP z$@o94DAD-8o`+yO*@v8H{NETg{fY5^hmomOKM-|rbA#alK*Nj)lo%t;_Zo^xV4#{W z#POA27@ruVP?~%P0?;3Wz2mVCY|iRuI@nf)p~e#gipA7+`xsxnBsgi92mg@vRMJo|lZ@iTaf@JpG&$TB>{bbbm6v3|G*KtSjlw-!U5vdJiga(FD3 zJVk1Vmd`w`^YI@vS}M$^_*y@mDCybLOF;bt_jjd*_q@%&&GK_W~02--N~~yUv)v%CtWrA9o(e(QXyt} z)(Y*pdYOIq<1~BZs=oWrfn;KU!PULqE0C)9{+gq#_rlkJ6T(Qk408T?5-e;o%+@mI zi`aHe8Iy5}hP*r$p<~jWBSWuB(R|MVb3DHu3^4wYDFg2QNATcX>pM>X%zHtxoclK7 z7XTbqgg+ylIBEpp&^)1=CteOpy%RK2iGdr__^?zboJP%*F%#$FNFD{#G}!&ogWuuF zGmkx3!h8^ZHV+??>#VXdLS$j{tTTLHHnpw3l7mDp6Z-Qx?DW!1q}|s*E?@$^>;7)9 zi!lGM;t9ep;55KH8?T0NuZI?R3E32r(0-cc`-}0(i}(becDfL9$i|Bo-{o*B3_21Qsiv)6lnM_NJAWemjRZ!OOCi|mI0CU{|D+68T5T8uv#I9vmw0ek~k zg$?Yj;eH*>=aw9zu(fBccXzV4Ha&71@=W`@_n6gv5wT^hKSv$%q6MBrC%nf}inK?z zMt&~01f677W!=kZ1LbHxA1Oey3+g9iP|C5De7*BnMV>eKu_`9_f4`z_Qp zVH+er7r-b=8*44J)_dhm&u!klN#0G}J!>;bURBG;I5b}b)CC}VvysUuv2|9@eU0ax z#xstJk@wF45-gu@JkPMH=OW`d7so5|z0-I;hG);(cAQn$Ii9sb;clB}Em@F-js%>w zX|V=3MP7qcR__(|K&t;O1|clKAbqT!{{p=Ncf2d{sR0T+re2)~$+~)(I(&~v3$FnT z$o%aKQ!jrH;TLzvqJ_v(CH(o&`WbOf{|0ipAYweaEkGtlmO9~FQc@Q$QH;MtxyT|2 zR5Ft(@%1avLy1~OW=JOU1zL@AM9K$>fot@=jE`a$M3x6p5Z`g3AUNJf{gEkxYQ_9W z)&uDxq#o!t%Q(lYiKV`6?hfMESWPVEdB0U5PBqrn)PX=aYzFf@f;ZIsOlaa4X*gXF zEzVyLc60F8*$G2)qG@Ad66xcAga@)GCN*S4ZbDv+p48yZ^=)%q8XYug9sT7*bI?bj z02#GMGVpOcy~_M+z7`aT?8Kj?YWXl*OIN7DTC#xY22hNER1calfg9O}?HVGthj5U5 zSa2MQ3MWvl8zRZ4HsT9F#nIOQhex8f3pTlT)1_^Doc$JZiwuy7C^G8r9`PCV8(qlT zCNm=*N*RxWLq=pW%IP~EBVQy}d*Bh_klpN&6@YPEJSUD6xC#gA@!aVcFpc+e^8)wE z8cTNmQCYHso3K^(1lW(cZil%Pu1`PG%Tn0R zH8VWs6zZE>RG8)}Bo>+NHR8Pz5&D=-#fbGuLysZ!RqSo8`%Yb3sGP zR^TsO$=*N9@5I!JcKV3H%D_kUchi%AYc+Uf)pu5iVw|aN&<%GV(8W}YuPa6jA7;u^ zvzyR$_pJ9Y0nvQcGByH(3(w=%x|nx{2s}L-S+B*F3@6f96g4^s{92_txI{X*+~{Dy z>|o7B(!qdq@QSz&UfrsL58BKQJ~`|sc98J)Y?P&}TVru&V3?vYF*C2FQx%IEU?gd{}JfiPH4(i0qGo!mH5vLmx zv8z+KW-6xxaq)3X;$gI1gmfUtQ-V4}Fz z&l(`NBLl>v+Gn)S3OE&8gX}`AR|J{bofp$6BO`C1kJRE>FAA3{B#rh!qYcs>k_jWq z57zsYDDNk3S@dGGA^Ca-RKQmMJp{kuM_1wt+_}6GH9!Xq{~8;U-*)ocCuA?&RLdX6 z9W)H(DrZ6b!NR&{kf@6!Bl^HuaM=ACDp?9fjHWd%>7XmYa+k-nC1&xm2+uCD@8XNE*=LN`g+0%mC2mHs5 zq6J^kPMk7eeL1GI;COHcAGP8E;d$9G_!Ye3(3Wi(u)a4-9xn-ghR3Y~9?j(A+ekOy zTqyV#(5(_5?wbD^2^i@*Lom}-k~hwOgygl@-p6l?J50B0nm>#=l23g|I0_Cqv>Of; z7rg1vhJRIXN*jK(V7oT_u%qBO@{c>XuOkNvt-;z&t(-jR*0 zyCS%r6=GKXPE^HL({R%0G**lMm_J74`!h2!GY$S3aj#|rpzu7TcD^$QeOZZ4@Qace z^d8jvZ^k@8jOyYq$0v~+A(+KhSk8Ya%!v&Bhm#mu&so!|m#X!%+ru~j*~aD5a{`fg zAA_zuC!py}g`V$Ouj~l}J?oWy?;_87a!(5^4C@^iGSS7eeq}Zin*WdddqI&U*x2uo zafRJrFc^^Iadn~H#dwMVSPsEf@*%HwQ@sh+L3B#&P?_`$9r~6ypgIJ-p1G=1ns1Rj zNXMWq%7b)H^UaV4)j=P&78&iMr~2XOOO9rsxo6p6H3ofnG+BFr!jvpi$n4o@F=0LN@|M($j7?Afy@lTLPhXD8@PEsLfqAdXLlpB$41?x>m@NiPF|H~q z{6DO{3w)eawf~*82?lI^CQ30P98(xHrAQk^O|=}8lFC$qMktU#s8s=rq83O?1%zoQ z(_{#NVyX0KD^=i74oXLj+)AN9|KH!*`l$_S$=`ed92brFN3nbp?TN%*my)a$7|~#XyF#@ba%zx}6F6ACkPJDc8PW zP5ErpLxs8Pq4@l>*1D_^3$p4s+%%KO?+209pu2I3M{*Z-SUHT!>IwJr$I~^JT}p{L zn@Hqu2QDvv_C7jip-Zf`z_f!YEy#Wc+0Wl3h|>KQ4iwT|VF90Rl+s-cWIV|(Rk=~0 zzSsgTS=TuP!bE#1d8S3=31@y8P5Nq^ixb>&!OhIH%6BVzPx_RlOA`#|+O@RnY2#5#^`E^9d4ULHKl`kPzYHPj>O=ev+ ze+spSQ?l+V{rsf^euYe{mtX<4Kn8t6VuPOzQe-@GFfy_07q?muKF?o zIcV_C^mHqRPFE!-)MeBuTj30bIsHD#g{_`CGY$dU$}fSVMwWg=_q+>8a%%p6UMtmC z*7s&SE86%T5uOBDoCW$fgx{^n@O0uHYchXM-_?K;E1R)&L)KiX+pa!iUT?QXxLo(N zgP_LupoW+K4c3Rs!%I&rmBE!|kvf0vi@Y`LCpFpQY?v{89mE&8BKOs5@S2dF;zR7 zaL62;{y9T`6X~vzD&=>DwD?{8XA9IDZr{X9kbVw!S)#gQJBv!-d}LzL5bOjL#nsNED~KMCq`2;TH@Z9?k&akSF) zeJ~dLX9GRGVU!%z#3ahXB@E@Y8D86ZxYt)YN@Ecaq zjH}?M6(d@aUZ`iW>9c+l%=UGBSXY51EHK_t=MDM6tdu-&A z#~FJStaCxOlv$AX-t>gYT|S5x;PC#Y;5VzAM)J1q?r-!}+$PR}-TX^w(!{;*pSbr% zLK(5NDf7Zdnlghs1?pKL2!mi}6)w4nxS}!l*iI2l+4L_9E@+eKyw z{!Dq(>KE9Z^UoKWRzFiQaqqV$?)_+bh4{uEBTLODc0$|_f#_V%muP%7zfGCVwLS^8 z1=(wWF)x@{zd7@Ec@qn_+6TA#pL^*7_|=0SX<9v4)x7tn)i3NFESvddob;)z4Qp_P?^%8MB`+OW0E+AJv;9!R@yQ(T-s0U`h{Q{D8UNHI=nYgpxm%|=c4UFOG z`Lgo<%+v4fy(Tx%V?h*D(DeWn@sWA@{k_*jOP&k*U4q8ikc;M`1iSQT%NiGh@gBdJ zCX(NDuh6OO+8kuRE^QJyJ}c7cl|wYi9vWP^#@?**^V@4gmZ!w6Ga2K>qAqQN5p(V! zxhQ5ckVr2fD%viW-^~~*KC%z+YbHR=dk^AM&L6K@d5??kH#X2#4r^%Pz6$uBKZe0I z!dEU>Ni0M7r^vbOR$out&A0QZNWK2Q@@J1PbZfZ30A;hWY2=2H8}nx~!mvIeeS()_ zBXcR5fUsXE;eW+exAyG6`6I~_*Pxiqy3hXWWkJ_3DaJMy^j=I4|G@8|Y+CESfn zF#mhfCQZ-#bz=O?TRLlLsm37i-Fz@?pPMCSoEWPUjQ+&2;5s2pS~AskZ2 zt5)K#y92_t>#BcPyY5ThB}~gYzv&IW8QDf8oV8JE&#cRz;ZacHa-Dg?bE-|EiPc2oElY-5uV3 zVafihXbe|VKb-!3H<^=9H?Wx}54qvCfnB<_hRc6u0mg&Voz^e^08Q6#c+*pwrjYWf zI|^CDcL37X%6HDtT(CW})ZEGKm0Lbx;eOixp{uJ9chBphn&k$v_f9KY-Z`jDd_CSR zeh9V361Qj9kZeAEUiPiRwVftGB)gcaDN2$TwdbY7`}S1dFL~Y zbZ?$+%cSf#G2+Y<-DLKT{SML-eIH#8Nm*{wZ{+p1>y z#lj|5OChXJn&=($CG$2(Nh5gxBhBi=Y`3_zZX2PamO7_C<;)u+xo z$GtVzj!WO3+RIEw{o;#jP97LRW<`*Z5hNW!n4=zM1${a^etiY9@%){mBrs6>2UiiM z#}+qJ&q%`ZMlEdBtqyNJPrab><;k+$>o!@-^PLjr7k?h#Fwa^I_r~{LwFJAMg#UH* z{k`2X@OiT4s5M{f-iolFXZH@X-LSByd{Effm2%O3pWH6BBDcOMJlaJAk%Tq^M4(oI zNQUaeNe>id=*G?agRi61SSmM44T~TR5k%d+A0}oRBgnoHq$YyYM3CADazF&B10qSZ z(rd$=YaMBs_8DobepOMHyFm@k4->_f&r%nwXo5A%OURqRuXY!s3mwn6y zxF_$a@Q#GE2HNeZ@NVX%N|aP!wQ}(LbK>oWjHk2#a6|a^C++^1D(X2x^@u9QExPoC z!z7w1{b|!5>pqRC+*!$^!r$Fr+1&|`4P#No?uRl7|Ay(n63+LkD*Vjwax2v zH(qY-cd6W~=Iv|MIa)q6nnyZa^tYnuaN0@lm)?BN;YL} zn3`ECZ~u#|sr-bbhkZXLJ+89>K%p7H#7ZgZJYcMT1uy~Ncf0`M*Y|Pa!!+Tk@Z-Z= zpiY4i`?MTj!=beOo{clAHyJr3VNK>Nn-U{)W<1O+wc)oqZ| zN>t7?sT_zeSs0drzNUA?oEicJ&GY}Pa3b#UYupT1!RQzlMJ1X$IXTu?sn)i^y)PUt z?tL+w&G;Y91)f`L+~egycF*hm>B^x)ZS?<|cI+&l!>)^uyXJ9 zDP+*Sqj`jTM|1HAJ5^bHM|08H{vFAd@CrVK+h@za8Xk?n4Y(@Nz8`F|IEqQ!6gsDR$erK#U@f&_wnJEvp^P)UXfl+oLZ#$>K z+L5-y7?{`r%h1vOfas?V?LcD%;(v?l>FVA#>zgV$(40~JLS^|r0FyQC*bv~f_9?7| zfGATycIeLKOFML>6b|Dk5Vp(7{f!)cI?Y;qqV&Yc0hg@oXQh#<4#?@j?U@FYwqR$5 zXZ~sTZqWa6*t#N8C*q6L$&|hisFRU!I<1k!t?z3xm_J{$nBV_o$8I+R41e}-#+S@X zsS+{62GGR9UfxK5UF>&y;VYPi(hD|g0BRy7olql;6ENlD3>0T2KN0?9W05HjtlD3* zE;eXY*zkKmK~pBf8F#v-CGM2Ss%aU{=_x^MeycvCo#o-@tO03K(gkh5zkB~G8%a^1hsb1IQUs|YP;0ro@sxzA&UhLf zwr(gA=hnO3glhaGn^3(Bp*Y%^5e|F~L*^#R%wS4o0yt4>&1O+%2Pv94@!_H99|YZO zkukAzIT9l_Jj)jIGKVGm$XyY}tm^Pb-?n!d*QQD)LM};dRLdu#Oof?HWB^SZ8>KPp zN1bCHNJqd=`HY#RG2o{o;2^Y#QXUuqwU8|!|9`WcZ?)+&iqywQKCImbhfT|o5G*3* z=_WDXxul{jZ4@gnx^N^yMT5o8w=}rJ30-7k=SH_kjN>oQ^OT%l%d9EynJ>_`^6 zJ9dXZ{*f6{*B{ z5beS;h)gYm%&PQ|+6dCf{sv2vj38Ak4H*O3Wllacu1TZR_qc17O2(5tW~QR!G>AKa5lA-AjcbYot6ovGO|{jJYA|A` zydUz|Ms0(%Mi6b;Hpt`%qRra|X^SA*G-i;F2%_En2ALW`w7=gVr$rF$@Hfb`2%I>B#NMtP2UGYk3LXbIH;G$OEDC9@<-F0tyzZ>IeG zT+5Hr)PyhJ;$%kC8_CRjS;GHj6#Ct?9sd3K;`-VL#v%OOavr}&2TS#Kr}*Jz#MHR% zHok(c=LODLAe_+8u4%n_*wS0aAtl8yn@ZF_F3fnE&FQOP**1T{z@(vPVQ1hD#ihOc zAK=T))@({To{au(hMPGyY1dura52TsC_6U0qw~;kD+6(`jGfXna6HeB-|HjN`Ab@^oId z&EKJ_zIH~5ec(_2TKAj1v0ocjXTMZS`+KkIK^>QjKsA76Cg6V1q$CAmHivJGKHBsV z-obGNR!t9Or}-&#z@PnKESIYHX3A=j&`}-9sllkzlGAbNkGHM5zoAfe?PxGl`LV&Q zpCE&okcnNz?)`$gh-7N2?~lm=s!VO{vR_rt-R!BpOOt~F_g$IXs$X2-q|m4S>3h(= zK=!b0=Cqx^9Ty&1nQmNa3HfkkhL1h>{_d8(Ta#(BsGF+-O6Vu3f9$UfMs+3Ad~z|6 zKIieN-zEO{W`4sr{z)me6}P4DmgR!HmK6kK=TA3v@vm_E96|miV=IN|hK(OVWN2rt zdrO(b;mdp33C7A(nSgoLo=hrQs8_IFQ3g_NtY%8V8MUvI>b%c0?b|>N*0O{P zd?CorMI8LGjLZ=%eB@^V*kI9Rc`fEiKbO*3dyD@Sre6HtX!blb%Wssp{q+ZNadYQ8 z{Qa7`Mj5Mg_Ddp1iJ&b7z^U`r``oe3g-AeC+Ml(}+Iv&}$Uu-i03pTgHse@c(%I0> z)_3t2uL-~QF)jL-ZXY?vDKT)N0Q}RpSf+pa?s1=GllqRXRqGqM3P604*3>I#Qz!LZ zwUi~@NG8HZUuNTdQ}DC%YGH#uF2>yZ*=fl}{+^X=g)!W>al5kcy9)h?bX=QEQ%x}H zk5+Z~W#}c2e=K3_9e&x=$KDMWcVNM%O=1 zCqgf!oz^=dZ=&-h%SEnT{6Wi z__$6{o*(7H#3Lx-o37p2zcCcO#!-NirlIf-{LJ7%i2d!{D?{^N5&ZfdzU?{`4F7vr z8l0SL0N!zVsFhL@Tvdxa17~@{VwrM}d6X|5|0VkBH2Dd3By081Rd^$+gKp8GUL}>q zH(r-u)S_fsBpr37>kprO+VzL`Suc^)>&%AHpF|+~`I%4I5+IehyAG)|A9R<|7#auR z)g{V=uRxBAEPv-zGEe!6}yb<}UW(_8So+xBzW zHoouv;~?p^Ss$xZYr6gdz6gUINa5EG&gK^bM2^A-$Nu|rUU-sls)qtI2YKJ+4G zTs~C+GQ37$)pQqA-961iw;<+giSBrkKW!U?`Wuwd_PStC=+8P(>`<`naRt}1*mDuY zsP3Le5#(M6lm%h_{8KGtowhC{npGrlUax#iGCDS>P|4dvS}YpGHStf5;=io=9^hjO zm9+6uebYjZn95)tN@?5elpAd~Uv%4c8eWl9J8!>PX(8Zt<^CHW@KF1gyD~a93iJpC zUA0LN7QS|TLmi{~_9Yf>e~YT0Q)W!<_FY6=Jzx=S{VM13ehXB0FLkL`llpo7UvF|k zgUMBW{Z@Aee!u)tSpya=L<#C=Ea(i9cm1`kOP%8NV zJoXrWRpD<@nb2W@u^*D&W&#l;4kJOL&qM`k>;TCvP$03u1d@-wR!0K30<8cnP8lF^ zS0lgTB8{AKqqf(G?N7oslu6yw5)0hBb+1V@UQp;UCElhl^bibyePUYs3zWQ7U`ga^ zeXLd7HZdZbU^++Ymla^3wnnvKz0s-#4T=MPU7aOr+bRUOxu~7zHLGvjE;Na~vDRX% z7w6lwjKX`0K>@dm|Rn$)zAwzMIK ziN39-v#RYXioS)+RSXFzlIUxz@S%i4HTXj;P8)vu?Ct~Tu`=1C(rB%880#R4T!^ED z&`LYXY+y#Wy8A`HmC2h)FO+u^Ox#st)pwAYZizx{W2{Up7<5Rnz@^Ys;X$kJQ;yq~ zI2>8WR9vl6QZ7ps7F+AEoSdAh*a4-r*p$T%MzOOL+p3Vowpy&+-(cZ33%3@^o@U`h zp|t51o`)BSkLp{KY3r2LSK1udr8N>H78vC%ji$;L)#e&^rA?%TM~yER#ztuts_1|M zO-++#Yaxv(4H2ToQTfWGX>ZcB`S#qJG{vAaQ=_{2RWfNj@4G^RPyCT^4K(qa-mrmj$V ztsrW|w5akLpJr*H^084G*O#fGE-I%`d1I7jUQ}0uPcz^dd~32bO5^VMpq!LX(<G{W;wvVsLJ*Sk@y8|393N8|E|`ug@B*- zH`Jj$phoqtOs18Os2#Diwd#4>V`(+BKpUzwDaf}7ChoF}NPxdesO>#VU5pGJ5g4}6 z7Xy^n<}xjHjA-8psKb}zXwm*|F;$&!{QJdJQ`HC@GCKo2vZ>?c%%Eonr>bSHB@_4{3 z0p1l!3;>m#IJduFNQ8eoly06+Co8}ew$gQI%6mJO&N{GFDr6(3-WG~(CA_DI#v5Nj(ZhcA#+!=oi!V3ufp?%v~92h#0k2y8dtI7t;;; z@^*?&HhVLnET|8U*)}Om zH+~4RtsZ8`7W?+CPR$gMZB^GPmSh@+$T+f7eMz2-;Itho&_RR5%A`{*$R90#OT=LY zmbk6XG!MPsXhg@v2xEp&eOsFOUohv-+SN-rHXqB{B}FECOI=MJZoYxn_e)6<66MEy z>R2zax+kZJS7L#@Dhlt?=>9&t>IGe#zyT~w9+K?8*R#ME!Zf6Z@|hMeucpL#sx0WB z59tF$9}-IU>yOk$BD>wIseXZ6g*ST*^H zN-T=TfcD2#oQF+wG-!WJ<#|}dfu~|HF9KLo#k>*s1ao;8*Lq?+B9Nh{iAo7>(wHTP zb=b@%hE+$hRVj)nbtE;rX)of_k!+)a7&5pGlp==7QYUGsq==kXCL_T$(tAQBJOSc_ zs`0Qmp~ij)p`w0OL~K#ALFr0xTa>Kzd1L6!6MA4Q^c>%^z&|Zr?)0g6W#!#Kg{IuR7Z!1G+gF!!6HO;ZK!<`@7jN zPW2V^32Pv;gg*M~;mp(TQZ|brH%G)RD8IHYZyBNQqy>fHCM901#bQ3%`UdoY#hCT z5gTv9lpy5gy#%L4Zf--mB3g@*QU57o*5QHw)R%G05?-Q>rVr7Z<+v^~ywOKH{H6&%?McR%Xv+?kVq2@E@?3&l9Ag{A z_Q1GKY4^Z*tgkALagB!+FqRG2t^wM*N6^N0E8OZbb#U_fPzqImz(>JWBA)^=msBPd zUflLR9dvhT%oT?7klv+PU3K3)ufYBm%z2Ui$(dA~e4Dv&NmIZco7vei{HjJOK6DeM z4S#&K?gGoo`6zdOOT8@xh*kF zb<2nPg%AH4HqCqyVkNT9-{yRkTG*7sM*nEcZF0;(_AULTq z7-_`1(VUwU*=PPw^t%rP%fy9@;0zn1^;{a;v3l>rb%& zYfcjcLGDKRkT**zHlNXg?-snL7?Y6-{1Az(+^Hn#hbgxv2ULi4$)J5bwdFOkJgv4m ze^Ag7lF!_MqMgKefI2vW(bi{!K~Vk2WQvwj@{P`i+Hs@vMs|3IXxokEHf7**W5`m& zn{2JhM%|C7P8YYtqx1J7sMe=?xClykkQojxV~qnP7Kr)MQkd0-o#H}8r;mB8F{yeV==pyvL z5zjBJSMiAj-iPR1A`7g?7V>%5myH;{Lhp);qhyIrt3Ym<`t$F z;%7sprSw!@>f@wbJ++p2P>hLs)2L#PzV&+mt z66WJ#XifE?7+QlK6hmvkgJNiH^`ID9HEi14gIfRd-;r!7j7JSc|NLJx|ewN;=}CVo0XYrrS>vc-;4QhKyP9~VPw(1T)VO;w&!CboJ| z46QZ~@@RpL>wCYxuAcik?Dk}J!Ns~YULOnQ>BEpN5Ursqj@?pUVhp<_9u&i_R(VRX zOL$NWyBZIQ5v|Qt78kJ{*Lq&I`s7~3T*^qqd|V8zsU8$VYtVyYyd3bL7+PCBXiuWe z0FfYj+Gic97T2)H*Jzf|M=8zpplp$&buMLz67!%Ka!WiYhTJ?4iXpeqgJLw>Dp0AQ zZMnwNY``b?g2v9^B3hx3i_vV*gJNh+Ri08-wt7$utu_yep|#Le7H8#A5nA(na)(xf z?vXCY|56_pLu-i##n7r%o>H_D9uz~X#)I}`<(l71{&yb4EQLGo4`#kGky%svF1z|X zwXt#;@%pE6>bHCc*<+GcA6>;Qw9r-bQOfoPXQFtS^h+{vw)-Wb_}FEub9*$zn>F!< zcuq`qyl|y>4*wr^tGidKr#B-vS2A%10O_d>j%-YCAdyh!X%T|@ZG)Aq3zN{FvwhB~=*2_zxPEvx_ zEIES;Xqm6Plv?K4FQt}W--)ATe(O@SY*7nP3@vkvm7+BzLMw9k`A!nI!xo#bvJ|bz zi4|jF$|LRD#ga}nTw04%DWu{{(TIN0g6hq5QNI;p@ z{Wg+8pU`1E%cmUB+@EDZRxW}z9=Ax`)~Xn-g<2RRg~@y#i{|r3Q__a4-lD(=+@h`3 zU+P#x;aW+MWi=_sUJ91a%5}7?Qg{VSv#rk=XK4wdnRpcs)ewsVzurjCOk{w zQSbC!lIHhLI*0BjmaR}uJ~o12cM)jPb|P&JaUnL$ut6ybaR#Su9akD}`*(Mo`K$(|{lRc$>l8eV_YM)t$h^B4yk%ZebcBH!GZ|8_g`nOKa;_+CkbC-<#K~*#eM`3&7#)W3< zw*O0#{!dXtK9_cH^Ru6fBr!?ew`!DOiH=2R0{aRpmv#ioW z9sTk{QPyC0igUpk#J%DN03axqy-x zy`?CbXz$dWH`rAGLyIj zrG-~{S&}Ik$&$VcD4FeBic--+E}&$FZYfG;4ws@78O<@2%p5L3X}CwpjNwR@WJ?xM zGP}1FrJ{9QK*@~UQj}y0NA_(gW|7?-!^|7MsEbIzF8GxfFkur3n5@DAW@hu2Vpg<_ z3z(UKTZ);P!KElg#&QfLGlNTrwS9p@$&BDgq)JdSd$$y&Y2K2JiNESZr7TGc94idfMiF3`#h+fu~L{4GT+GLmDo zGV`~DRu5h2Xl2H4Bv>*b3n-bLTZ&TA8ZMw@Mr|odX8M+*6dA}dl+5%kL1~gl$qe5} zqGX&FP%<006s4jiTtLYT+ESFv>@7tpGLH9P-(Tm)tX{qMgrzH({;_KCGPB4(TM{#a zgX~9{X&Iy4*2~0=es`w^RyP{i283c0yhW^G(yQL04P0!3Y{osB;6bqgGBS%}R5gRQ zgsPtgTTKVd-1R7JS6PMn&9W_}YSI2Jpk!ujDN1JSmQpn`iDM|4v0H-Dyk9z$60#{h zO13AXfRb6Yr6?6`-vUZz!j__BhHfcJkvSYg$qd~Rlqx++12L4Q%g8ODWEO2HN=3W3 zfRdT7r6`$^TZ&R-3dc|~Bew*l^RIAJG7~qFCE0rgl+2nfMX6}>7Er2j)@OXOWd?33 zN|6~HL#fRhmqnfb$~-Siiiu>Y1SPX%OHnG?y9JcCeh?)yZc9;$Okj^vq+rhhiGpqW zo_J(>R<@z^thW&h-S1|LXur+u+5+in1uez1&gU$ex&?gALM62@@$*%)V@vUktX{KY z&FZ!4BD~jJ?ua+w5VD!-bhA|3*j1Of(M)I(zswZY%vdvp0kAOF@e0=Ad)AFDM~AkV zw!a7vqgUJZ?bwG__o^$uPd)kl>3sqN|X+>t8IOubhTeKWY675;6 zUgWJm_P($HTIWop4!Gv*DYM6@S-Xbij&N3*Eu6ZpWLBD)VZk0&8yO@nmcYz1sB)cI z$bmB-pN=YVBsZh&#?TvSnd$}XQYZRmz8TlrZd~e&G@r*TGLM+A-z>UPl*}S4MJck| zVkkvMS`4Mg;3}eYWv@fY%r}qHG?_((W|&1*ijrA$r6`$2R*F(&x5ZG3jIX5`S!W)lI+-#Bl*}S4Mak^DQk2XhD@7@?+hQn1Mp_J|$lxlXbkQY_N@l)!l=NCt z5hb(8N>MV4t`sG+$VyR)?6w$6k&zZdDKfZWs8VmJ}*QDIriP zN@kIjq7>O}F_a=BErwELa1~LS=20^9Es`Z?q)hS!AV%MRr>ZvB*e^(JC^yinJO7nv6F$n)wz9 zmNU{K!TKOdX3>?R6fH)^1xv-y)EG*UkrqQKGPsH;T|3u{nes;x<&3mQqI}6QDn(0~ zvC5)_$QVkI-4;s~8EJd4?{gqgSem>au4AML7BkX@SrTugz2>--xX#uVA*dN^aYoyD zq@tenMq0cHZb>svuY|0qQbyN!BQ4$ppDISx$lxkcb!OI4)y%i3Q#d2dQ`Ic8JvxOi zIaZljWThxYc3Uh}WTeGViVUtIO53^|N@l)!l$OdmDp1KRvQm`HqAQg>v&c$OitM%+ zN|BKkLn$)2iYQI>D4F>dbq8mpMcqLNmZD@9T`5Xtk(Htp*=;eDA|ow^QePH+k5V)m{cTRnNNaPu#L%;5`k-gM^;Oif-u7DHjUZ1uGsz55 z@aVJU$D-!-Sz@@DO=cLgSZRxZ1zC+OxLE4QT*DG*zs;L#)El+n6STl|uik7hcq0py|A95x0Cv5p1#TVC99APP%&lK)+10jk7V$E_g<_42^gOzf3Ck z81HM?x>`%_krbOwIk=su0-=2}tIJcB{U|g5=@ct>0Ou&oLkNkb04Px-e<;)ewEmUS_RUMuQguFsY}q-DQZ&AdK`X<& zB(99m%5VVLpWThr%r#_pxqY;|n#SE9WIhY5i6*gHS*7<>CknVXK;HER>9XQ|jKQ)s zTITGlNb5h8OH{052XEJU8A?I-dn9gZc<|h%KR zJ(lV_BAr_O^w8Am=Z6}7DQzF!yF)9xD$VGEcNG;N?1I{foEo=j1{Y%Y^s9_<_wlkU ztED$w%$2tMei7;h%WhMvxDWgA=)SLD*(UY_3(uCnv5ELQ6|YSQ+An?6?q1-!+J~u7 zJ7lZ*YHZkW?m+skX_%{Jo%`9137O?L6DYfg`=(zBzt^M7bAM4gDYKzGO#bfu-IFr! z57kcPAba|QTsKq3pLsN%z1T37cUcCwVupAw!mB*}VkB$iKUvJ}%eFEc*KbMn4X*;2 zUOD3JgQ!B*HU-V*lYX9PtJ2?u6w_Aqds|YUw^XswwvIMCHB;Pb(w0!d;ueL4^ITc6 zEeZ?M9#mZ2U)bY8du&nI*DYt8h_k3YH1JPixe>eTw#R9j_8VbWk7&E7-gX&H^}o~j z%^&y_jonyT!?*qw67Tv2kZRKKun+L=6k*=C!^BZ8^8db&`E~W@Z*o7&`N>b>YCiZijc@()zVu@ib!li( z`i@0?K~eir=0rVM<~J}8j|&)r?ysp~Hs0{$mSk08QIJ*iI0YfElAh*VSd>>?ve*UC z`s=P6k_g%ufQgg4hx+8(<&D0T_f7#tf#odlGddYHb1AmSYgO3-# zf1n#wI094mHvi#f8~#hKSwfGfx$o$Y-Hr1v5%3+6&Vo>0GoI=T9XSI^*m9DMA?F<35^Gx%?b_C4dRRdFKHV*HDUxqHEUaizj z<+$KL2h=G^b4RYKYPZ|429-ur)cabv2edWS_hU*B&E0)&Eq%J2LjLJ~goh8EQKhZd zx|_NiN|>cWmKyI>^ei2ra!_v=|0own*csPP-~e{$|uiQ6G}L zdnX$Td%MeORbeEJ`O|rv4PuOW5pFr@J+O6`b=3!H;S}~>wVSxnvFTS_>w`)gexFj% z+3pGE+{IQ+eBP>JjVf=F%$$!;`RM}blqQ|?!kZf!F0-J&w=P7)me z!ix|2bYQ4sr;_R1vb%eU8|6;=Cq+o5ABGG>l`&+Y%#VjfPN;^HSF80tZAF z<3g?8aG0tKMBChDqXkw(jB$sLwN&8PaBV3+NROQ92F+ID@ni5LNAxjOAK|VA#uHM( zEMpTafPIc{;S=>yGyqj*m+LXwR5Dpc8}XR!`pXU~`{oZSexE8I_|M(6H_=^FD+bo` zm-hC91LIHrS_Z{b@7GgV9{T)Gm|4#`zsX#Ts_SRN>#nwkWV;R_!fH-QEp6l#)L>4v zgAM=Q<z%1J%`tsoF4whm-M946oKtVX?LE4GlR!?pRqXLp*Qw7n-bZ-aYNUeebK;{OX`rVTI8 zsJlKy#N-jjzwK1Xh#^*F3q_jbF|;V7WM+!CmbP1o8;R3(Zf)!Vgv>fgZYNbuMy9Yr zgm9x&5l-2I?GoUV4s6UjoJ{VYCf=?kfCFd%@Q{`f_0gzg*&v0ni3Xty+UNu)9a66B z(y=5{4blng@^7l2X?zOiEQDi}%F+;nR*kS;twNy6ln}VnR&~nG1zU=dK(o=&SG$Jt ztZ~xCZR((A{Yv0bqv|sHx<}=%Cq+lUir6R^1`X!`rLrh$10N_T%H=!1Roys9e5s{R zQwd|<@j`P_@Kf2snHt6{;5uI~(bv#{q6x2K7$cj3(Yz94X)^Bi)_s?{f0-MB`{@su z%rxx<;&pp=?$uP^%H$w$fE%&Pq^!AkWr!?1ceu1|Q!2BwHs~4(gj^MSZF{nSOrrKf zk*RUW7y=#{hp!=%Kby&}FT%B>qgj`V6iSjXz{^q1Z%Kt$)&`7eWIYNKHc zc?$QXLY=>+GOMe+;Q`Lpyy zab~u8IBe9gnw;C@pu9Fz?>lMI#)`kH1kCTfQso>*-h&+oQ1viy*jd}Tk7LLa z@K<>84u^|uY*-;X`&=HKw7IgpB2ExirPCBm;{NEo@sG2nb?%*61(bwZTGe1ZhGDci zvqaJ}SF4-p6?Qx9hK!vf4zj0USx~GSDC;>5Jp4Ou|Iwo8LNj-lg@51F`6WOPe+0gS z#?8VyfM~~i+&i(im+Df1tzW_ z=Z0B5V=(3Rw5P_sJ>#!*1m0#2NB&fvn5V)&@LQNKvq|B1uaDHdt8cAZ?PiH4DcbaY z#2dI$Dw+^0T~s+h(m(wq(n{{?%EMnYwPQDXvTQ$rMxixv*i3*luQz)!{EfUb^DlpY zx90Wh?Do3t-1+l`j{t))ryO{jTT(OTL9W(sO?}0&V=t3d? z??cw)hk`k+(xQ|w;y6kO=A6LW0Ge(wiT$Skd?4ulDv9#5sViLf5mbbkESdjC((`8l zRDYE{3-2ypV%;b);?{2KKIDCk^}-XR>^C1TwZ7TCciKSWtC#x3mn$(TZSnq1aqJDR@@q%3zC(^{C~t1+bz28URezXp8HQi41il`HuFR#o|+vn zF(oJqx2|8Ax)Z1xVQqNXH91$+c#w_$4z#rZBB?S~SHAuu{LLyM+IL~o1C3^}e74(x zEIQ@m^R12YMVljZZ>hWc=qlTZP?~&ElswwF5KC^m1WJ?7h>}N}3S!A^1-~@;x1!|H zf`2Tzt*)0Q|6G(jT8xh+x0UbGcr=~Z?hILIEVT@YfIU+zs@WsAHNX?%PixqUg1y5?PCo~Tw@DKAZDvZdm`)Ben8$8u$mvzn#P?}U8PkaHz%OFy`r_T_RIPW0h`Rs_DfG0)zzHa*feh7+*M6FAeULo zveO2Zod(YRtzUAg-{I#|Yna`n?LTiOqS6x;9NP2qn&9aB$lloS$hnVb!AbOB!u!bo zy5Q7E+xDF2Fz8p5Lygjj&Qpbnj;%LIR^V{>rPJM9=PrJOWw)q7CMQ+0arEATUw0}l zJAt=`JtmyC-c<3RmYW_;^<7XKZsp|>H+6Z%JzEod^n9(Gp(M8H`k0emWQ@~ey7}9g z)tGa+x^kb>@tA+vg`cH&-gBD#>4!Y%exBebzXGEV-~P3H>mNhnEBzYNx)r$|gO$ji z?HPHTBEKPPwz!z~8JnNzb>_?mpEC6CKy=!>gT-eBgRCAnqG2gLn#h&tgs^xCxTbouH}eD8nFQ+1k+FR4o7BTOwc&2}!Z{JraW5Vqf{CN2(fn_V26{}Oy4yV(fxB7OQuXC}kAh3QEU+e&BcI|-QD>yEQZ{};n{ui8O=BlVDDtTcRPAtd*5-!sW7X? zzn2F#6PXN-sl0$!=Fj02V`BKHG)dFb@*6aZUIAe#Wu+WQx#z^@w~C=#FoDEYV`^Z3pu#!?1k2rz8e}?W8qbtP1d@feOF}p;aEL& zG!F;_7?zARk}LRt(xlugk`WeOu1%(agg@wVj|pKa%=$UTJD$9;z|E!C5PdZ2V`BE% zpv&HwVNIy>a4i$4%-Ax4d|@mT2&32e-S;06yBLBAbLM95Gj`qwkp+Uo_LRC)5*!{1!pEa4bMb<;B6K& zF8i(t=J3Oxmure^`)zb<@6~gv>TIo$3r8}4@mSd3w(!?KFE4Y?9vMPNGfJ*4vy;Q= zxlEZUwrUH7Q(?8;x=6kyhZK))6kqWz83laipf8|(C}nxvp3SH@6R974G@Nz z|5cEGmD4i=4p0op@PdocA1o8$AZpujCY@3H$~R{I%8&l#GMo5P>8ZZuPlI51@X7m^ zjj!tblnUJVef7!C;lx*^mw%gCQ`wB~hgaNN$*^>cdx(Wu$nSV)g-6zSfaNVVE;n|) zj0(y$!1i*Laqj6bdxyS8-9U%3uUBrQ&W)L=y0?ITd`|P9?s2OzQ4JM}?Hlo#LJbS3 zVcVkczMb$rHk>$n*D-%%Eh?)u)|Git4el3(>w`U3;--$=C~U&BFEY9NO_k2}1&R3y zel=C&zsxlJOb)GtvM8!{U2%AJgrAhbyo!4;OIg(IN+rH%W~@*GB46SI*0ez?}p4a^`7*K z?bOdypqsy%m(X5)phBhx2#e2U({W`h3SOv-Cht?%SARs3yCzgHD>9X-TxC-|<`WBU6h zzCRI_^0D#dGxs6EUO`sxZS~Gq_VMMx-04)#+&q!g&x)M~!-*5R_g7ha1zk5#n^zhu zyeoAn3Lw>cd}6dcYxlJ|Rpbx4U#zt1hjvQihm+YM=4znig*8^PUOx zqa2Z5AyPuw%yaKiA6q64#;K$NzIX+GwiQZ8Y%;co0pSK89?K+7G;j3boj#l*9N8;$@tRl{&kNnm zx;mTQG`ngWJ$E(HaNGs=vhaH^zqvbq2x95%vs*$|3844Q{DjYC-Fn;UFebf1kI~WC z6pf7@5L^kFAP~Dv&R181K(Ap+x!BPe#U2@aj!bh;Av(Qc9RRLz`j!RE5gv3kSzx`3 z`7>Ux0)OJ1KLt$kA5~wnaVhFgU7vsfo?Ah7F9K2B<5Ag1UaIQmK1DW-TUt`wmn3dU z5qWq%oSbnDe2;{%24x`qGP6a#&AfvRPn_!p&S35%K-9)RoobW8Xf-hr9_x!)rUW0h znwSXYNh~YG|Ub{pMutyV63)B^=5n}vqI{X*`dT% zW`m|oZKTkz9kAk8CzM3BX>5iF=1zc}+FxYNn)o={ZY&V;SI%RFGyf!(7Wi$*Fc}ci z_5x)G>N?`96SA%wh%O*_H#K}nBf3c=YDao#SC90NG=ubzZ;?8Vb_xX9G!X^NZg?!3 zbU4D95NE#zS@Ji7O?m~hC5h@a1cdyj&o&{jz8uWe_(GGdCkJyc_96A-VD8z3He_n( zo8`7j>h0wDY8Ycu*V~lawWaec-#Td#Q#L`@Cut^i_4@5L!^fmYmi6AE?KQ#NUW?Pp zQokN%{<;FX zwgg=h!J@$61_HS?qvuP6XTRfmZPF6>vFsz1SK!?%TT6MDe_M+Zh572uY&sU9_o4tN zXXW{KNMZU7vd#1H$HXw``cDgZ&!XN_POtC}V?JsD8Lx=LUkOBWjv1e{t{!ck{Zx8| z+f$p6ynNKy@KpGT7o1w`oyYG+TL`3}viyC9P$c3pA-IIjC?Sx{B4Wc2y+}e(Rx2UU zqn=FfObE1?D&!2Dat3jJSoZT{2Nm@W{pZaO@nde5@nu1d?pPwr9a z<%LRrp-PjqrqC}&s~s26RU|Ake?Uns1Zb=){{#HVPNjkQ5ui{gB77Lg8`K|8dFjLK zjcC6p^UBOidrT^sOY-RV(nh*fD$6SApN+h`?#7mYPOpUHQ|^)ag|7#P_P-vqSAO(D zbnBSPg&BUj|Kuo8dH46BDl;y}P-)t&3>U$&Up649xz(e4>;3~f^?{iu<}&(9^<`?A zaS$&XCTy%Cmw6T^~sqJva#B7OeHJ~d;n^!Y(W=dqJA z8;5C6`lQVIp_4MZYi8KH+3`uwa0Vtf=_x#j9nn(*LjF6(^)$$rO$e6V`o+V*sqe&c zP6@0@zcVE0z8$P5^jvB1R4={nmHtUTc%yf|Mo-qAXJUeJ3WEmT-Z-qKd}DLpgcl<6 zymbCZyfMwWt`!LiJ%hIGmm8Qcy6bBSHsuD6e4VnJf?rLvp$STL?HYtsxko09Uir0s zNi%zQl%o6_WUEoO**hcH5X&EQ>s*0L8FX*v+b0RSR}#>=an}VZR$rH15b}ivSsiqT z#A14_UJerM$#>D)UG%2&KAXx7u#7)5GsuC5D~GH^CJ@Ss2bK4{y)7Svg#!D|O!ajQ z>0)ZxTao#i@p9%~Is3(4Gu}7%+%gsxOBCufyT;Dq_2d;*XpOMv!u`D}%4Pn@edc*K zm(UB-l#Rym`e8p{xq;D^;7EC%g1JKhfsmD-n=c89ir;p1#9wwY)Njduos{+cddavf z|4En~PRzgQ`nmaEPAa^5o_VS5b#t|rm|EE3!Qn_dHtw+V|3j`Cygs=%C*>Y$%KdF( zZo{#;`@;wERiXbrx2H}0GL<5GZ6%JfM%=6~giFZ66y>yJRdD#T=WoE|S)=EAb5_!f zWg0}9b1#mb-=bN{vb6fnxHaeeR!zPcx*>*}5nmjz#*n#@(b4sDTBt36l2iUaJ~6m` z2k%gyd{Tw}9$lrspP4v{YZXUhA}NHCu>M+s_F8j{8hlQcrX82rA0VBP}Jv5GkR#ly7`%AO%}r ziCMS=W)osete)TFQja)}bcA~sx^T}TOVcs%deCt%<=jJ8cs*!aOSXPhGL2-V{G2gT zyu?H_l>1hUB}I|5`MZCTo_!cSE+%ERgEI*b`)R^8~KC=bwGG9*tH}y>@ zpV&9-tGP9!-Z^7lW5dSW--DyKHwMe@V|U8tNqxh5(s!IqF1_O2@ES(~?wGF7j1jDV zviQ^7uxZ9Urxg6(jXk%h(D2&jv2l*7GR0SiuV66_r`M2Q6(;~T=cYT#;$^&3_tHN% z3kT3|L5o}NKf_@2%Zq+%bG0S&<*yPpDgwOaD*?+El}4xmb%B2c=f^tYVZ(J-^W=mSbn|{=&W*v3AUn#;oW(*y|rUWwJPujm|uT z!)2U#5Y8Q@X~zMksv2zy(u(=2`Q=S?RL@*kxFx-^&-fQ~{Ytu^_gtJcEq!IZcT83T zm(5kbZp!U!9-SGW@H6{mHZ_gw59a=m2&7*9c(bHGy`oJv9nyJ)jx6$<>u|rbr}B%$ zvJ02LxXN1kt`RQ@(8GAA+$z@Rvff82Bez0TouP-f6B{xr6`yCOmEVE9pUN-WOs8)I zLSL%<>@6dai{@kl)t8Oh6x@E<8+;U8kNQZtC|AxHELB)<_N2Wp3NZ>dT)jGWcs!BU6hHnqR|?b3Qw6?94y3)ZOt}c3%}@z z{|}~sbhLGz0hzFT+?wFhjX?blyP)e%0@3&od3@1CZ80~=Ml~<9ZmM^9H{yHHU_WZj z?03YTVD1%^vC)K2?M4zdn0-_hZiAiqbBQh59a{l8s^%<*f1^8XIs0xAkxl)E7qdo# zz6xyH5EGG+cl%7iQ8!~x9JTFs@LzS=aS8G^^ z>a7f@O6$>^^k)FQBWmK<#+9uRb>GGvT@NdNBFL`eM-XAtPb-ze#|{ayC&pqomBv;C z*-*WgJ)O!sK&*!4}EjWxln#l@WXsYD0W1L1j1MyY(?m?TGpvkOs_Q+0T+R$D((%&Tr`>$kx-A zc^>c1DZLY`uxcSm@5EskQG95Yu_OIoq^$_Lxqv6fA(s^p-X?JJ_)c(y{q!*F@ z?&|zK(n0e?MM+dt9tAy4nWS3uuw;_@R{Qc;AUd`30LoDs5}aI1IcxK$shq-^mCBR+ zepq>uyFJV6m?HO>E04t^%G)8QSfM-`ws_^42Y5NOear93_`wkO_{CN=RjCo?3 zGj#pB-wj9N|2?FjZ_~X}HAD8~N4dHXZf`i)D2!96VBGzCMN$Ys3}o6F2BI(j^~`Z~W)@{RjH`Ro?i=DCs`>Mw#||UK{OLfU z*@%v3tcPe5DT{ELUY@);ylLGoo9k{cM@l)x0&lNu>x2j1d!$-=C?mM+3$&5WcY{hy z^=4FEP<_J^$w)4vJtFx8DZ*3!KD6x4U&4vI(K|$K497h@v@Cy$;=cVvsXG9<)ch=1 z*6oIYljusr8u@=u`VOzYUsCyfN37=uS=_+qYlz+4o2g*OZ0WYzpi9%mXiTZ<{nM>L zdoN$g#C=>o==v>@_y-=EiGN`3e-nsWdCs|_2&(p9qwY)f9>el>j&ZVV+s42?zfe%QB3?yXU){Xzu5OYiw373OYG1k@Y8Kjm)B3=+~m(Qm887~3=&^bQaX zKk-u*%5D&r$VC;)A+Db?X-zAi#;9Zmee+ZqQw4FI=jrvlG2z<`k^45vWfCm=vydk^ zuXj!z_^^!CJi0qUPiY#reP+9aBv>`6HPv@}85#t%=Nv{V24EZbEFq|MR}pE0Uim$Y zRaa@n%Z4XzRoIHk$#vIN!03~HvVXL`6Wc0fdPevikHB@;NKxf>p;eDYD|d7cVAZdx zLNiJl|9-Nz=p=^gH{85JYqIT?v+Z%Nwv1AWZ2Dy-xX|`u`DzViiz|4L620BRb9DDK zH1w)!s?hM-ui^DyOU2{Fi09WzJDuDgo=RP4Zh9U4rfw6fd0j6;?eRl8_ks$HN7>jCZkX9O3m*SLKmYjK)F zTvjM(^n8^w`yKWDnWu{=OU7VE|i*My3={iOW7$WAOT!Hsw=JA&q`IMMY*7wK2M!&>?4~^BBbJ0KY zT0t!K=Lr?T?SI}uMK~SJ;%H|WZ2u0e9`UUoI{7q~Q3-?6c_)Bj<#UYw!Ln~km1m|B z(Y3j=g79!ZW9{jk29Pns_1V|ZPptq(4PZ?18~*7`1}8Q`75%r=XcNqBe{lN7_|29t z^To0kBW4;mcwg)$m~OtJ*9W6)VBA7imi~fUlj?#|>;U2GJ8VvD<~$!<90&=|?V);|BEm?t z9cRJacT0{SX>+p9O3pn`x~8!P!I||+fB8-U4r?0KkCD@3t!&O!Bzth}kf>ngT87#% zHEn-TNF1v_6B(uxCtye>P95fKt{oE(C=ap^Q6pt;8J*cmtN60yYc%OlXT?3J4%@~y zpfL{wbMFUHKLdAkgA;3j73RTRw-TC^d#;6P*LQ~Q+O6N8^Q+ruY$2d`Vht{Z3Yf@N zf^HJGxSf8d{ij=%I_n|l0~VL4yI-8s(2zfcwBeKoOD8;ya9;OiOv=60bmGL^eN87! z%&l*lj3f7i+}~^)7LMK7FD)#Sh-eUUu83H->`F?Uai2Z&eRJND2G?+K$z&KN4cWr4 z^r`%|QxBHlr@smaAHp7ro{$2e!30>8%k8f8I!|SV~)<+{CooH(F zDDLvbTQqIl`d~tsJ1f~5zIPg3Nqfwb)~bs{2!e2c@cHMsZ?*XRGmxLtlEa#U!})tY zF40cBPIx5P2gxjZGP{#sJ<9f@(aFu%1CrXR6S;~E)drf;PYZD4qU|eBI_{t{&~S>N zF`N!EcA*Mb6#B-DkLyAeAVs(9+HmFr=Hl@4S+>yT{wA)zaRS?|@zo!n;|?bC>{C&U znYP0&{M7e6Cx=;^HAfXEHF1>~<{lfpV0kGgGenj0Bx}>S#Y!j6IHs`obs*f3Jt8Rs zvG1Z*#MR15Q7SiCg~n1m9L$xzA@4k2 zO_V~C%7OJUj|OvJgM5_XQzYgI5iiS1ac?lU-%=!c)HJ2^DKzr%JTNCL=ZgQt_!NmA z-{>gCnwe9yzT39KiqsF*%WKuNqbqwF!6BWsjSWBkRABom zF!E2C&LQ*zSa`@N&m=~`L}on;-0Q}&&^;{k-q0C$Gwa*w%6pdr>R*m3*rVj~&Vwm= z{~$Y*?m@}dX!xS=qzV^mA6EDZXx!TZ~Ngoy)HL-QlpG z$=!d{r&@AcIH5$wogT)J*MEKxOD3DS(zCb3eS2MhAG)%+WiKF4PYSqh3#PI|#J_eJ+AL9Nm z|Gg>v*&oeKoCdJ!UnDg2X$m=~MX7&WNZsU8AE(r>M5$>qsi#M&k1VAAgr#N`oz^?D zkg~Gxo0^KX8)d>)H9>^kcMEc+**|EnykRe}G8WfiV|v2348W7%;S?Gai3`yj`@P2tM_F_wLa$WyI_|{ zjejS-N*k{jiFS2<3?nfSISVfyC1ZVay;GCeAqekLW>CSQbc!CVMcK5uMkg=+fHhs%rtvP7jIRp1pXK*Xn+ylnaAN~5NM;ey zk)_1&hyToiA}RxqO0PyxOlWyTT6%x1nd-1)cqQ&~>5){9S0r9}yru6nPW|XC1R+dU z>5=EvwK-j5YJ>(Z^x9+I9@>LbP$rPG_}i6C)0}X}nI?_Hk{Imj2EO|6KU}T*t4de1 zZK9wqRcRGzXHqL>iYoN7KW`7&|Bwo^RG40|nU2Ao_K1Mva0|$Wy z5mSTe8~XXS_*No9i>N&2=!4|%-Kr4&UI+XbKtjtc^nqhqFAX8>>~;NA8mVmjYx7mQ zJ3tlwYg$By+`mv0&MC!Yvnt#dgbhywEM>(98_PU0-@~@ z$#BZKDzCkAW}`B2BujU#RY2wW!kaXPczB+xmU?ta3-L3q@o$jMxFP zoMW3O&k9#o;>bqOqP7**d`Bo9FB7-NC&Ml0I9y)*x^UqV8xRo&N*&%tBuu2*O^D#| z_a~|($=xC%FtNlHEsG!s&q9IuYBs;WQD!oXxXUt3Ik1o4u6~T)%C!bb3`-&yzkdjl z2VFWOp?OWv{Vn^d3pv5^`SWj*_ixNgL3e|Te<eA$5K2jw6KdikEe4JI4|DUu82A4Q9N_T_uXVAe779>@40}DE(Eeuj5@<%2Z+w6+a z{fcYVq*P&b>SUV4X_jb;)^DrUEoyh$)w->vkU~>h+7uB(SD}DNfP&9ZkV5%W{`U9& zoO_>{X9D{DeqX=M>y>$)=l(hO+;h)8_ug~vy=O@9I8a7lPwGc}^es&-cZrs!e(YXW zr2d_k;Ivp>&CSQ~W{2!{2IoGEJz;>cB-}TfJ=t0L-i5I83|;!XkEeZ3ST|GpxKkc> zY6fU-bokQGj1G^*7RQ--5&uYR@nP-_g~Y4W)WNECq}T*uYD$M}7B*9A7&Vb6)3lM& z<3t2s*jByVC!NVllUAlht#7+Xn!b47b~0-|tgC=@_U)YtG$QlSh)VE--V7oBH4oSXg=VIJF^GEXBk;hz6Q#;UB+c%{2FxtOTj$YNO^6loolDvMDV1<1Vqr_?w zL7D5c49XPeHf-Tq;_6|;&4X$EyP;hE45A?lH=ndO=GJnCXvQiHyl8!H`pt_MJ^JJ2 z+mnE6ESzOsyuL798%hT=maBchO4<6vWNlD<@nPVMX0|?2*MGhCXv8*N0@)KT&A_R< zNz;G#3q9*K&#vu$3p-%`o;OyNyI<%TvdOms^U~6^&N`}VDjtc5ypZdm>N2%YAc6j4 zoVvvlpP$dVbw96tvlx}G&+*oJ{yU|G#~5W7F0rSjr(P+@w6GzTxW$H+V!EmC{C8&h z3nBm#k#pAbSUU#)#U_0|gKuj0@Wxs1%oNXW=)djsMQIR;edG6aM$dshtvHvd0BCN5 z5$}24(f<6hjYx<&sJ_87x7j_HZQ$8={q@8G_$Y|+{Y~^=p4X4KXJM4*>5HaYQHQ&t z3OUjj2SmcY!cyMP?f>KKf&U!mO}d#6BGUT`zvm0NX*Uf*_JJ|J`v(U3?YsU#OPMe@ z#1%%}x22(M`wmX}mK;X(?|m3U-~LERVRm$btvh z;Da({9l&+W_)gStFv^rO{zE31_UpwNeAoZ}@5MOr0U?nu{Fdc?Em9g=`YEHaZ@f53 z+sO71h?IVUkJ$saEHi*=ok0vQ6c+qq`s;^^1<`|oXwn}m3D5sr?Vh)6vMhh>FYMuk zgZg^JPP|+?xi9=!1;-&<52CA_41Hk(oXc zPy}%|q;h=662EK!4ZdlZe$%$aZtO`dwWuGr5=Aro(mw~%E-B4-MSo$oMb6zXt5huU zpG|zy!<#KM;j<(xOECJBNM2A9#N7_K;rl98tdmr>jn@kp#6JjbBy3S&;`_psz&P4# z3aH@`yp2<7BtM@7;twH2RjHN5b`tw0D|I&Xyva)4&->{Bjjd-gmCQFVLc12I*>@Al zk{*a)8!tyBT_kN{8xLMEP&b0^OkH*F0c|5+)G6o#XWWFm`Jt5FJinWD&!4vOl(fkj zzKI{V@g#mklBbjR()Zm_hM6LalV&O_wsF5i+^O6Ma|WfI`U~=WN1~qRVyz(r!SZ_~!f1WG2u+TkCdX~1(1A>c(EBa8gwP9_E*xEQ}?-x~F zZ0mgGh2Bdbf0Et4Oh-8(F}2R0kRE|Vs99Uf`vqv0bF%zg(3xRjfc@(WKU|5#pp|s} zLOfVP|KlS#byay!3CeV8JwoNA+d@wPdCI#-2thwgNMvux`(~$(W~&*tc;e%_bw^_b zx%*4gpw$moGx|_w|MTbf-vvV+bIz&g{d<)n)~oYcuS?}%7 zuNLKQ{o)m4PZ+3X#tV>TYPe7l8&P-yx`j}zOtsH4jVIvpROg9oS^QSB>rNf1c?5E` zhKGS--epUl==V(8J`_}A+}FcFoYH4)CJyfLpAK3z<0r3c6#+!S_MeMpAqC@8-rI;y zYcm9Amij1J8gC&f0BjG={+`={@{tc{npgiKlhZA?SaK>t|A>F+V$0CJ-jO`M zd>QafdjrJf#!toic@C(xm+(;euBEmq=_m!Fd6tBTPdaIEQrxlb97#(J{I($ZJ>83fm24(X$b#)1T2c?mv{+**2pc%fxiq6gbH zsuLpGxUYt@BwmB;W{j7{$#_n>x<}cC`xj)`td#?g+|8PCV-sD@!D!4?J)h&*zauxS ztu+L9@ClHMI{EojmR-)my;xMIWK6=PCD;4LI*JEj5UMleo*nu9eE0um>TnC`2w$#m zr0|Qtv8EtvGG^Z^DO}=>)cP-``KIPF1AJS< z3}L(bi>?d_FWrun&5t`=?5P_41Dx4EIyJw+!sFM#pz$^7CaYI*A%i?Ombt?}XZA5= zi}fa5otFn>pn|#uGJak&xxNhVcX07y{4=ewEoaTsy^IHSSEG=7fv>q^ys*xn`w$Jq zY|DHR5X+TVyL4I9E^b)7>|^sq5Wxo6T_AiXWsLLx44L_#!@Wrz+~ycR`QQ(jwsDIi zHA@UNKzI=0CiYnKa}a@I-ZxH;6E4(tD=;BzVtoy%U>O#}#d;NB7b?p^z?|*;a1urF z++rCl__#^~R?uH`gqg!O8+-}G+F1v+Q+@~5n($6bs}PqKmGK6px%F+=xe-AG=l+;j z;lpkPaGof9Q8F`dQChO9ldn~-zVS7CK!7Eut_Ud4*NFd=?yxr^BRiTYcsqgD*rg;k zlLH;K?XOh{ECFDGX_Mb;)vM=%@mzKU&BNkU!-z&o4)wtkt0QLwG*9hh87>GQoh|jg@_cLj`pH!H!WTL>duG!NKiLdBN&av2* z3oj?HC{Al##el)%avi_G#ViT#;U|kREPF_Bek+ixjG~~8Q0MA#_VYicAKgUWp}Vp! zS0%W8n>rcoe(Q2_Pq^<1AlrUI<|M`qunNf5UQ#!p)8W8_uRZ)^J2VUq0(+LRyMgBdy(j|()Tr75AynW zsY@$}xBndFBKCLfA1dp5X4W6U2K(Xw<0}7{_*;GtW%3_7T5MtVo(KWcZoe z#?O?mB8?*>J)Rio+#2lZdoWD=%4W!b5S`QOr6kJ?i&R-xw(u$*Q)&{%uY_fIB{+U% zdW)ajUC!NUk6tIe$G^KVzeTeo zSkc|SBq2jEIM5uUya9W`-&n>zGAfZGV!e|;1Q@KQt(f>`58RL%Hv)hwMPo@ozPMU6 z1pRlKq)(*`%6>~14ha;OcE!Pz<7Bf`mm3a}dj7)1S%6qn{5?Om!yb}GJCx>@mtRGbI^(Erxm7iabgHy z)Ha7c8&XY`6bCHDewRXB%4Ip|0``}))VM5yK^BCZ0Jpk8QsJpvTga84lGvE6JLA>I zNtJY|0G?Qz(v}xu5MX4H5|9rhD#?N}4!Bwwb20k?CV9)KON!BQ3Uz*1Mq`KM$v8>$ z&%i*k5z7mZJ?>?5s)0f?#SKPYwJmF`OW~nRajB!QYxAdr4{!h_Q`~H%HTB(}f{%XO zlyzsMrj5+%r=oD%YJ;}f2!0cDJ1xoJb;KWbiDgzMsa9I8FRlOA#bQ#6brXa7CD$Kc zbAI84SkLfL#;+?pQRZlas*Nb|lLr}JG-9mvWaUzQk%V}TvR``gX$CaD*@%WnFz+tV zG`_;9&C7y zxd7E1MXd-MTtg@SlqSaE<6%dnZ2~ z59miJ6H8OJ=bwn*gNZn8MJn!Q4=X}mh6nLTWg`h56BfG8W+zk-R~8+RLBpY+aLqyJ5&Z1ekIhm98AnQhzucyW@l{#P+xf;D4UhPGBXTq& zgrDaMF|R-I<#8=nNFn%u=~T8=Hjo&Ytbs9S>wK?Gb^6TX3SVO+A+u0IsJ8Ji%vc%w zbRO({C0}KPHLwfyz24+o6?Rep5VO1~iq#Fa+tna+IwB$x=D9Z`36;vxX)R}`qkyZ= zid2~42Ghh^ig8cc^((dD5MI{Ao(7J*svc06g;33bJ3$*#D}B)V)sY$^%|a@yFt>A7 zP~ZweY|VFRDaq9fIGY?C!!y3V+1FR)It(5V1~;U%z80`mzP{uf3o%&dF(_vOZ zs1E8hD}6=kpijHL#Z^7Ne4&FFU*&n9UJw={E~;vncv#KWGC^y6(E5eG58RMyh!h@Q zWx`I0bH#verk#v~8#?v^OJ{hKO zEyK@*=||oqeM^{r#JvE&Ele-vMwv)PF0EWhF<4IF3JE(#mT*loA5t#;Wa%s(?%I@Z z3w#~Hd)KdvPvNbVI2=j5}LevLZ3cf{TyF< ztbsg)P6D#aJ2f*UMq)L)*2yY>N{~{D#0c&$2=HQep#lss3)q~>IkswlO-1=Itpk+K zu<>D@k1Y&+1&QTGBhKu>C%#w2kz+K%!oDiEd5oomF>mwfo{WU~PLo|4c0-(2RdV=# z+b$}hqA@7GNts#^re$P&bIP-YRf}VqhJo*^=D3ez4}>jAje87!qcY?OfiT~{@N7ev z&+B^{{yr*UHLj(zOHw)a=4jw^g#E_+Gu%NoR;C6%?h^}q#~x8giXoI|G!|zP6iXSS zO5Bt3-GM7#3G)D&J%C>;Y^R`X)sH-9wfDFYmb{xou??NQ+@lo+eSNijcZF+(-@a35 zjOxdrcwZ}g`pWn&!s@kx+A9wWAS72)Rmo z0TIE<<`xbsC0P>61lLBMR=(d?(MmluECZj1C^Il8Iue5c71Y!Us@Z%34CJoml%hIN zZ1FWGSzZ<)aV2_QJMef(6h~MUx?AqI2;wZZ#UAs6dglVHSKvddY+{na|u=0ce1tnpk0{}widV&>}Pfm8#o9(83H-vqU29U@^!Pu$C zid4vFYGacvNPvaq>Js*xBGkh|N{3zLVPWNoG43laVz9sfa#zYE@pDS#5e~(U$CX4k zltr8Q8gwmlS{e0B1SgY96(qtw{8$8j*wYl|kSI^iP=terA;uEZBYPl{E)+vA66Q&G z)1;6?!byiH4SD)}mvbUj?Ik&lo{AzoBdn`p1kpo!VNYTB!S`DD!59FBoN^(>36@DE zFT8UejFsfWyaX~q)8WI$d^)*x4F$g!=JhSI`ngvyty)7h+@w|xw;|Gn@9}Ugy|Ic5ACHDt$TJi~!z+W((Eez+(ZRvlR4&&y z4oImFpW^W@4*CRQAnH^`c%+<>@Cd@oqTvyQS4P7l2(ONYM-W~Y4UZtaupuN=HNuN) z9HEPCKEXtUbLEWH2xp_=5rjLV;Sq%AMZ+Tq&yR+Cgv$)S|4<9}fxPeChI_miKis_x zwYnGU7LF&>EK$Zt`xM3i5jro1@_ov|FO#5jr0%hgZ}2{nP{$&K{$wpM-bj04UZtasa$R~!iCp8!h=4+M1)7m8LJUq z77dReyfPXdL3njEJc97LX!u0Nc>1*##KJ)sqo$kNe>FUyIsXdZIH-A?Nc|zZp5CQi zxyw@fn`vLw9T#c|c`VY)&?fit7r1G}rlzJ@G|s}eg-lW1 zIB_aub!hVmCN@s4oUyubveEDe!ky9Z2*UHC;Sq%AN5dlsw{m|oh}jIn(bLJrD_`{p z$9;l{2&c;#s}XLBhDQ)iM#CcrH%G%G2)9JTBM2WXhgVbh)>p#*>Jv;vxF#Ofv>M?( zWq^c75FU?)M-UF8;Sq%QN5dzwe{+c4pu++l_UIUz#-e#tcv&<&g7C^{cm(0q z(eMbu>!RTi3NK8AgsP_SRWFA;>=R6+aIT!On!?#=cm(0jXm|wSdC~9)!t0%kA3>*HKX4G#v_JB|C`&Qce3-|YM`K&s zu&B3>Vvr=&`)=dC{!?s)!a`R6-?}$>@lyzNLPyBk-g96Rd2^f1a7ZZI8F2HucNknY ziw%m2d{ZQ#Spi2!0$Td>aXuBCtOPq-i~>`YK$f@)X(mM5P)AX7MfU0a;8=neZI?nj z+^RQy?zT+v%=@mP7TBP7mUP^savlvEp(gxh-eK_>pQH~Kiu)}T8$+u?7~1N$u;mx} z;zSsQ#h69gZk$I5lnn+e7q$yD1!97w&YD4Q>v8rU))oqP1`Sfm-lEpjrYOucGTBh- zLBI+G*5VH7n6nSMWJHA~na32bHCOgA*&VR#5SbK`-VOtE5iX8_1)8zHUHYLrKj#+h zm`)Q*%r--eZI5vlBFe{H1f0NCi|dGp4g*_^CfRbJY$1WLz`&oyNXV{{G`Trg1y-;< zcs#*d0$Y)EkTJAkG9}0w09+l;(h(?i7yilCOcJx9cD!atY%(M|(7AbP$PoFWYOKOG zI0cAaoT-L3+T+m1@QKo}iPY?_go4frBup{WW}gyv+E-z3WH-BxRTSAH!blOV)D**% zMlfmjRc)RDmiyY6Y#kRc3|nY*sA-2Y$1ERHeO(0L<{4I0Fs(G0ta-#&nH2~m+~OxR z$Ba8LoysjS=PfFvQ*m71;*cQj|P2KCBMW^!6QeX;9^cP>*E@m(3_HQ%|V- zV1Hz}x+5W+&?aLz-4H4wJ)F?IGOj|f>ibOj)t(G1LcK$Lxwp84RUdarJsjihuo69G zy=Oi&IC($oB7YF2QQ4H@8ltCcn8|yKh;spLxYL9VtFny+jDry4Ru8sJP+H6DZb(++ zbFT7Mm3Y2vuQ?dO$FK;A+T`=(y(R^K@el!ZsdCF%kx~>=P_mq<+!D=Urgg5(Y0N$s zWVFPh6XgZp5-lN|&>|vx134S2a<21VmMLN++3(RaRkF|nv#`JCbFR-(omOAS@{tJC zuqDzyGM|pr6*!qNJhU}g;{ZPlAMw@k;n^^}raHWnaH)=@62`LbiQF!fQS_yGpo^d9 zGMm95YXXG5*hD!Ev$B%bdaBKDe2T16m|ETkbSl8~xfbAs1d~luG0ip^k{t?-Hm0;R z)j4+vDW_?&OklZ=UZvm8`Hm1(xcB)m*)%W>fF;^9A0}OUMD-rEORV%stUQltsJOgc z3L?XSeI7oYspEZ^@4691=nm!Zg>UjXq6m%nFozI{ZL48?bJ_Z$O@XGdXV~}sto?Ut zvfrpio5Sv9<}U_(uTmtUMy*C(QMdh-NDkv(B5aUgR^nPW)J~H4kaF16)-W~V+@-PW zIpKFeKz)6Uo%xhqf}zrLYx}b*?H(6qoJtZ=vi*P}j3mZ2OGAEj1{EI`@+y`ahZ>N* z>^AM4v%QJz>?t%Fm|X|djBVG3($b7$S!c~rxqlJ{PwLI+C*xiF6RM1<(KV}p#ACia zYzFTw410W7)Brc`!=4rzwtXf5K*!QhJem~_#UVhMo%jwU!$60%(d{DVlYDxFT)L!h zGNaWK!qnHO*++;%?fa|>E{6#ZPhHGpUSLr;>5R?-1y+L&Kxito5ud`X`r7vs+Ip62 zNdV3#ANIxLy=~_qtU9CnY@NbYa^7AerTZL}LZ4dZYS(dolS-8Z7M(fbq^O01OJWj) zx|=%xa@U{DhU3i@Va2^9klZoTk2^N9)+0&)O8Fl0xA}A}#gV7*1|x_`crO_&%(~hncxYk|VSY zwYiAIl;NO)3@G?9q5XNGV8k(DY$KJ4U~ek54FO)LhZ4tj8ThbJh}d3r*NE+uBuwcb zehTj^Zpqh_TRBY0PgEY)~V3-PY9{%FAWcvo3@ zB6z>SD&+C5vi?NyuCo3_5U!Y|z&e6(#mG{PaNpye&{fu-2*OoXo(RHkunKvEtE@i} zgsZGS5rivdsS3g##YE$?kIDLTM1zy|73)uEdohl&wh?=p^~ck>%E}W#`wdnhk9L*y zCxUjB^(TUM>z^^ERE#XubZ((0>QL3zp9r0+tUM8f-(VFA89ItU1mP;{PXytE(ex3< zs2EwQ5$@gV5w5cSL=djB@Po#0GtUM8f-(VFAdu`O36G6Dj`V&F8VwS2jjw)U;vQ#7dPmg$n ztE@i}gsZGP5rp4h6$<-n)Ho7BxXStyLAW)VK0@J&k);~pk%zN6U1L=djB@ ziMx4$Nu>x&R9Sx_2v=EuA_yOR6NEjAiN^PZ*p;n6q3z`_@Ng8d2*M-L@Cd>yqu~*R ztE@i}ghTt&#G$fcWT~d`KaYnz?5!{pDO_dci6Hz2t5C?pQEN^F;VSD-1mTKVs=~u% z3h#L+V*R)@#tC~f>ko${m_1A7r$U@w zIe*Z--^VwWAL;W^F@%<%p+B_LlxnN&FW7^+6}s;+yKfPtD)Y_o3{>TW)M>xs(D;3K z_lA_i*E!+z2b*@Ew9dWlp9`$O^18(&)^a389|$-6F)0q8C^Ve=1%qldArR_T}Cx> z-oO#(K06~8KjK%Jtq&iTspTAzzfS~O)*S}nIKY;utIgy`8Z!BVt=$3FFujF?@wt}{ zThMX=xi!bDId|*BlRezn#!>v+&92>**;)4+k;P|d-TLLdT#MU!$AZGlzL}}?tZBLw zfqO<9KkzgQi9uX8-8OC4x&0&D;ly2sWZRnG%I(XirZfHf&mA~*e`f1A2*ML_weL3u z)eU0tOamX^w1t2gS1KDEBE*%#*&5JFkxB-QZ<=Yrr$`zMX$hsbB84m{-!u)rPtjs9 zWEpVw!bIIO+%~1Uw~og0pT+_<-MsjX#qw!Bppg8IQnT2`C1wen#<9I4bJXD5(0=RV zlim4C_%B|UxFYuco_DAUv2%WtS#;YdbjqA|Pxm7|yJCfp!E|;q>TsGbSNw3QrY2n) zeN@~sGcu1@{($3`RsOk#XX&2uJuRFBY~!YkX?U@F$4l=9zD+=4g>Un!uGgTSwq}0+ zyw$j^MbYKK!_8*fl+y)P?8R;Ia$rR)w3(*FvR7nCTe6%oA}HX^_4l{bWa>v8dWj?M z%|P8u{^iNB!s(E=^sC?d{`P-WFDqoUT+)OId87&zVK||(P7+4y6{$j{UXjWgDXp^A z^?KmGzgVwl@YJpIuwg@g?h)>|wnk5u=JLKHuP$9Xo6Ey9)^UPwoE`BHnHiXJ*7ID+ z*}s#k?SuE!agDJO8Y7l!I6w;z-VRM`GB554o$?qTWd`aJ{v2-4Wa~^=JnL%d?e5ch z{Ass!KLmTKQN*6V;?@n}kP$ZNpv3xJH@hIB|)3;SyIz=9Oc#r&zd>DS9gvrXvA|RMtQ`g{DSW&*hlgD z47JharQDW!%R+4p;IgYGl5rW=<9bi(T`$eyiwyz_X$?ct;Y%ibX$xPn;Y+7pf{)kX z9MNvU>)(d6+`?)~JoAtA|4raj6Z=kKkbtSz>kRy&mwWBfjK3nLudoE>(CvH3(p|Y* z@JVJ;v7i&jj23-K5_O+Vov+u~W=MU>JU))u*)XT{}F8?pp+6!PcG! zx^Br7|0Rx~+M*OV7Wx(sE^#=glie0CH5^~F;Da0vAE7!U@JT_I6SV<1|1{r*V7M0P z0Dt9faTlm8byrFbs+}{m^FBOUNN(=vRm0YnbZxx&-hlw1Z0@jMDtO<`HtO3qeiTX_ zq^z7T$C1+`5Yyb22R|P>ihBPGSLlzGE+kp-v-#BwnWh5AzRZpD#Vy*DF>Bhc!lADB z_J1V9rMY}hze&xS>F1KqLG9tl^e1okD=5q$u73fngNA%g^K0oL`TdCDdZq4~`?oqcGCXqF)`#m4A3dCF zh=%4e=c)a>5+$XgB{yJF_yxM0{o?I^7Nr|mlSi{B+SF45eh3y#&-yzonvD$eI? z+K6JWzRKP8;GDZo8(H+SdccBDGVG4R&s>ZAzw*Pnh@iInEaeOcl^-$GYHF=xb73E5(w zg|#;1XJcCQp2i;ULEJPk2zJvdh1>aiT&^17D zjg5e$62(DZ9KF%N$9g}fZsLn5&9M)gr-VT#5(GV!gn!-1ulbfWJ3!=y>%LfT9f|hc zS?O*5z6Qzj=dH`hp%#8HxbAF|x?ynguaCl2+jdDW9Cg^`9MlQ%M9P`{<0kf~FBpC5(|jWY%lw0Pu#aG%m?-W0`e>^jAHLd}6 z2G6|BuKcu1bZJ6Z?J^UR+|fl3#-pNe#C=oZ9sJK|*mpzl!_QTVL*IYsE{5+!{P5`k zQER#xjs60P7dsRy`_8P+hUblaWEZMu|39L-B6#k9MeY|=+br6tX7Q*_aO}k#Ys2Ge zr%Pz3KW6&>z~rb#?D(~7UONOqlUyTM2RXjL^+5eIlCi{OD8pUu%n2%_ehc-$Kh(D1 zD->OpKawxLkBHD(9I3DLW-8<;yO`RxP zxp|kVT$;=^LCgNvxOf-$8czrHdtq0*BR;t7>emk0h=y31rPe(k!GCcI7N2^g-ICcI zgD9aRqG==h9uDrkQq;)_sM=>HjMAjBb{1X?Tii{NVdE}idJRl#?3pK8`>%9Cllp6| z*vMoM`6zgjTVu30V^{AodtNpIvz5y$->;W{lKxYD>!)vmSfL1VG|wg&j~POi$->?f zB;LMG7sc&qT{^dU=RdHdu8s8`w50j;@$TlmoA?y^nmb&UA5U5ZW`*pV4}3t~zPD;V z;6#%s)?B7otZ*MNpjzc#Q5xRv5iM?62S&k`pa&0zL2)6&brmn+64*CT3;Ai!pSjs!d9Nhcas`l3yOq*Tjygg^HTSu+DBj)bo zJR>k{CJv)LE+%dysAr1lkWqakKndyA}lIN2=#qwEyDdA<;b&|(*3@r&S8`-zM zG9wVb*!s@h+~h{RDom<4gi%k}hHjz@-}h||SYgOe%`8DULik{C>C1P z^5~!(_CLQa>~(G0(W^GiZRyf@?D_7n?!$9iw9c&Qe(SVy|15oqYtSprGidE2`H2|x z(_;Ebq|d5Fpml2KWi9JhslPHqi}gsK?P)DK!e2wefx^AJ*6fgQqYaugGmD*gbSiAs zo)<%Z+O$$c;&{ zUg=MZ`PE%r0EZ=KlMKzs0WPjwpv9ezx;`sk!G)zjOYFn85oA8IyBjs- z5xb|qyJv}9C3b)Hia};RyU!iy>B;b&DQ1{poL_@S3wo1A#_CDT-A178Eq?8q;}f}Z zN^eVok``Z$K+)GheK~|;-!+VSxg%wK&E*d#tZ%-RrLgwgLRT(*I&m&K za+~K*FPCMLY@7gwQa_i3J8YiFmD!2fNcXexIP9s-uuP?Lm-V)|?{cMjM=4cxhyYOk zxdZ^a>A5Xn*(;S+rg)VcV7-4V)+_b%v$0P|5{wA8lFTECi#-kjABml$*!ktyUq|v1 zbKOd}lB`v#g{0EGnGVk9BPmryqT;<$c~z1eIUz|}riI?VNE*Z;_gda+oc0M#FnR|q zmKFeH2I{Ip-*E9Gsu1KxHE&1P_J`SdpVMQoOn!DL1r5;IJ@=yF|h zl!Z&Hk7l38!JSe_Nnljvi}{RFaql7vu`^PoUoeCSj?42`K97sL0*+Q(+#DGi&?hc+ zK;r@`7TGN*s%)vrr^fRkYmH35UHB(2SsQ(xCUdvv@>nGPuSz%j^52jv_m^_vgx4?& zbA|Yy_a>PXr-Am7@OxOS=Uwo_EF@;`^~tfGuhFP8`$y2HBLf=N8T-t1|@4*sa8gyFGDI7+~%HxX`U2xfmU^YvPU?Io=LBr2CjM zp4A{#i{>xYblCr%3QGS?tGqc%qogugxaZ&qPk{afl*WC^Jw9jPa!f?2tk87p2OLwp zY6}QD={fWhnKxEhzl@*L>^_(J&ldMt@Sm;I@O&cc#kO-9TGGLTue^4MA$Dm>b`Pfh zX7RwVG12Jpe`V${Kobldhwu3mrj9H6XVsXUYj7A=s@eCADt%tjR>A$!kU=i3U%hMV zix8@BFj4wNvm9}!Q035u=5#x$rwxJq+X$vQ=${__INHX2104JsGI)PI zwM~v-TjdCLW>8{Bi)@XTwdXeFRnXTOL#tblj2HP^?3QR)Xm_k^)=erv~4;j7P#%xR5JpHC~C};X6 z29TPY5b8CzZsq3+%+nW>jN@9C_>;l0Q|sXTsG+j^bOg6EQd+;r-6ER-6RUIRn6TgV zc5^>60JggA>bEnPN$)6IW)AdBJ)UrIU({R-F z+04Mtlguqxh{9j9VjG`i^)x-d9q03Z3Z8o6D5Q~dt~L>dK2M3C5AdHE#_V?<=yL`Z+$X^j&WPrf0ihe}v1saR`dizB22 z5eK;w z=a47iwHb-tQA+QIv~#c1;%M4axobqwL{VQjVix(jPO|n-$2LBXwia*A!7oZio*9Ca z&ftal=&K)A^;C)@!%gh%WwOqlyNUd$DF8Zd+mSb=$<2zIJ+NjFdC;Git{i`w{rRNL zI1+im2*!U2w^};2&_k9bn7YxbnI9)bZukyWQ{a~|oOFF4H|%a>FEj!+ykMpv(?f1p zZt82gV$OpI1K`I9y<#wQ>{|F0v997_h2Nv~QKY_G16SWR)wiWw-x+N;$r@wsKp(nU zufnI(wP${ve@cHF#8jaPiG#}s46&OA{qn1AENCCunePEb{RyBBokkcUT#riEgCrSY zahpDxneoWJQ8#|=oYAJN))8%doe{rvG6A7w@SpRFU!_}ZDAahVq$>?^C0$<*ck-ORCt2Q<+hV&9 zy5bBqKNX9zl0&=IouFn-Qr&1Tgdcy;fgj@+;1^?4%4W&hfe`%5&`}UeN-^a4jCnk2 zy3WZBJ9+XcGT0RF()w9b%??|CvOP~4nQS^Q5vt$bLjB|I4<%i5(L6ZA5x?s%f=;+@ zD_+wO+j!&opc1N3egrOPHuwE|MZGuS{`}B!WMokr`b*D!Z5sUgCf>~kp!^&CkeA2H z*v7M4cAPz}_T2uxSm88=@Ncstvj!cRMh}8x@U^KN)euh()Zy;&ySf&iZVQ(TY7-#O zzKh*6XQ%&k+*dhhY3`+SFYd5>@E^~-W*6xH+i4;xJ3jbnJRf&^;ZDy5Q$xDDyYUyi z%f4aD@UHwR3CRqy(i)p$1kB=2Noy^usse zp^@QWRQ<&&@R#6k|h7yTVg$u?;u{k>en!wr&&nDi6kqj2ZVAcA0PoU+DXNp zlP?Ty;*00Nha*J~VC4tBycOX5GXEjgD-R(PE4J^yf~n_4)je)Kamh^$ zlyI}QD8Cs$FM85R1UvyoBpK)K9ZPpwi?R=m(#$d*{O!+RX@T@CEx^H-2&}NQQ%5*^ zKuDmhP?y<2BO1t;cFE? zqjN|8%OZE!9tpD+s#rg3D{4;1B&z7DoyfbHTZc^$-CVCff3&MaIgMtBV)BLM?G3R) z!iJLVBCVg~RrC36D8!4#=PwzbH}vd|75;_P;`N1!+>_Lzv=W&E@%(GJpShZssreQ- z;!KOJ>)G9XxOzchJM1GWw|Z_dlBfL#1cCnc;n*-r@lwCWbok{9%hd(6(n`B7u}WP5 zd7yqm^cwXDza{i@S@nptIgK@EvGTMsKe*Ri0`rEhA~S6lnw^>G92lSa^36xVDpxLi z8NrWF`r(xjGU)4lnT`9}X{zyVDk~#~Z|2vD8Rm0Pb*P{H9trrwdDMaROhYhptvOwh zE`%{9NvLU*%x4)2rXWSU>d<1Q6e3$l!ul(ist7l!lC;Z@f&sEM0|JqWbtb98BL{IG{_%$cEld>$?^`D&MJy$Me$}%xBi4~sEO8&vzxWM zMO#|R6pHnzON+|skWP+d&=1U;$%N2dO=^&TU<}6u#(m;%53B23GL2`Plk!K6dmeDs4`_mEOjLEO_#d znuGlb;?C}W2LDPTc5vm1>OB71W6*KboZrb zyLsmnV$jH(&Vw7V5Dy>WYS1nJpx{`~kN9Ee8|GTNo_mgPS+vw*k&G#+`OYohL?A=^t8}eb z;&N;&gC`g_@d^ZjNwo(Fz(3b;(YVdqO8=o!w)~@EThJC~&FEJXSSER_Fc}*aGkTFA zq&yeJ0dmT5Ahl&N#i}!@-!uhBQ)Z_4p?YFe@h!a;i&HaFsBB#?FByBP~q0+#{BdT!@EH*DCEKEwcyp~S^8WCKgJgSCr5l~W(?r% zPe7xSUpyLH@;mw3OK6E!7~wr2=CN4sKa#e8NJH?MvA-pA?<@jD!6s_4BfpRc3^y!} zbHkpw$HCK&H1h2=ta%MbapHM5?8c`IvUuf+#fvG7tp#z7CwR$V?^_1U3HVGWiDI*bCGs*H zss^BW{{qB4-b3Vw32y-&P3R}JU|yCrj<0a0ous%ieh`AYd7e`|d0mjYTCA{#WVvC} zRgu?r#>WcB(JMUqY?Bc);=;KrbyF==%MI@bK1$WusncVHe>H-b&M8({WFJP5uD9N- z#8+U(ITO3@M>7L6lCuZsBdk)7`6$(&-G6zi;oSb)r*9#dl$M$@HSKHh>$d5+L+Gx) z!{Xws*v6|;e?L9Hv-Vt+ndj!WHDnesaE_Ae-2CkgC_3*Ha(B(@e|%Q|Bj@H{Whcob z5YgG9SxJ673UN^o+n%|Uhu--<*ZLy_wog{fM!w# z_522r!U@n{0bPHzz{pIuR^Y7ZzY{t=e~=R|#~K|c-XDDj%tGd$L^6}B$Y*ZY-5=2N zUMFKm!n9=qDP#LE6k`pusGi75&ii zU$!ua)}_zgIzE~46dTBHdEh?cLP0v>9?pvroQ7-0IM;;(_{7HsE}rxO$YRI3M2x!E z>34Qu^0qJUafc;$fB8n8^R&~F?sVi4b~^Im$;$ZG=-R_$kx!S8Mc&>0DD539G*XM{ zxtHouSkH$|905H(b6d6)5O?lCL3d1K1{&Y~Bb~P;in;V{4gScb zV~VpDW=^}idvC~1Jv(g$z#ij7eFwQp5AyB#m$~t@7sS0?CjqKA?j)`?`!gJ1s70AL zLY*^tnPLB$d`jE>+l*ZPeHM1dJ`3aD0-j_yKf+A^(2<@}|2}5TY%oEG`xDL(KO@TR z`_D}&9^Hl@4xf$21Ox}%Nmlw)-MTz9(HC;0P?9B*WoLe=rcgWcn(VMhex zw3oW?q|tS~yX!?2g#%|Ov z@a7!Uyi)ol9#6%KRMa@zotF9f|2EA4A=<(I&yXKsFBv|Nsr9T)SJ|s|<9w}GbssM$ z>S3O=?}m(3J=vo8|+iFOq)6j&BbLx9j*fmHwBB1d@;hR955fp7N}E!bGm2YYqub_e9b= zx2ysZFTV>i01C?lbl-j$2|z{7=*iKc0@THIFil&5xzRFbNtmrJ2c2gIvCCP zC6~Fe`FC4>>Tpdr1&E0K@)3vpw9GP-O+01jLuJU`jG_U-gEOprXhe(n}VB~DztJiw73B#DYjhaNZKa?5@~JZ zVQLKmpmwcPWNWf(nz^I8Ji|{0bE-hovdM`Bkhd?0z!p5Uda09r(nUMASU40b^gwmL z0JsT^7@V(_IQzT>>vC}V{Yr9(e)nzk1pSI5Xk+|%JJ*+97~J(YBBEp4(tMR*TI=F^ zY1W-a6+v6zfDxtHh!pE#JKUktzuB!6GbJ$8%3DhRT5kQi(n8*SYs&cPW~VG22KNZB zQ>Ki@txws+G`9Fu=0?<-T}LypAf-RtGqSL5b-D}x7qW#RwJz4=2~jz@bRB?a_m||^ zf_u^@KS{i?O7{`ebCK>TfLvQio2c6%(UDoSb%Z3`I1%suP3dhfsupJWjrF{fT9B!6 zdjj9ljjEqj; z-u=W|+s3*5IhGwQ-T54ZVJNutVF?`TU(-fPy9rhDPT#}Yk8?fjpT6gM*y+%^tQao* zfmSNLhyDV3yGuJ^X}5T)DQ$aJaPS)5#xMG(Q^sP8ze!mCkXCf10OM!TQtIpTi3G|%4E=U*>%l;2+~wecSO;)Bn-{a8`eNdC#Th+bqS z>d=v(mAw_kA?Z6g64Qz{6-8(R#0xICU58RGYUs=BczLGyAMU*7Q`2MDbHuaja2*sV zybLka2p`Bspu`=NJ?{X@;SNf?FTY5=V5{SX*v9{Qj-35Frw*^h3Oc?2cCO^uxaiOU z0%IFDd|)rn>6{0iIdx6vdu(39F#9KZT<+#PJXrI!S#GK_mC@L3Dtn1Y-s)n7uPT|d z+QxeBr8RQHzfY1U)^i6RJM!uXb)`n;b%O?^a4Z>IaP6&>ThqV4XIIyI6xYS(w}*lk zF0~%m@Iv~-=~&NpfG|)CN^bZY)TySc88V?A`1besc;Pm3ok2&7*RgVaWK!2(odN2T z`Cz`D8=m(bWoS5qWz~z|o*Q;Y_ZyVxYb5d@1&~zCDEci>v{N?VE(CGU?rwJNmx8gv z&p_VW_G5(~iIO*dL%R|B@0z+k$*6rrfBr}wH>-}P?YR1#ECi$|=-J&Bn_84E!EJ_* zefPG$AuUCv=|u_bwRsHlTKeR-w}pD8ZG+6fGHPqiwEf~bxJBl}KQXP$6iwBqy#h{k zJ8)I1MG^p=o-+==h?);MHBo=t0=J_V=NG+u@csXGO3CZrB@q{&sV)+4{OC8;qrJlR zWD951@!!YTH{C6?2G6zGa(EsA4u`d8_dm-_Ihb>SNg31dhc42y`7{+$pVPB+Jh^E% zW3hsK*jLPf#;UzCeuT_c_%(Ark{%W-bP_y$(Q7WvMSM8^I_y?b)RdMR)S1fZhJnI` zNFG}2b;X{q_v3QBaux@IzJ=`SYdwl}a3FA1w>`1lR<-{e{ zi`5inxL+2#^_zJzGuazOvNitV=c4WVBv$$7{65_g`E=eqM4l4Vr`H`%SN!gFe8LmN z{SrIjTYqdPJ@yobc4CD(szsl8|FJOJ?fK_xXCD3-tRbe=BC+QfBa&^#=zk_wcpIOw zjo**}V8cL;J@=E;-^JWoFv0bO>3qAYPIdyLlpti#_x{+wen&LgxLzP3_@r3j5vt_H z$Kor>-Mn@axoWV?_Iv`s8WXJ#7tU~BBFczZYW7hG?ml`NA5(g_7TVZ#O8xCW1C#vWRdt0pXHN<>NmKJO*_~-?)ZW8s_T2E9+Efzj zd9{+MbW*u|^t?&;}mV}WlY6pc}4H`y`P;FcS;^a^* z!K=n3U}C47Fr8r4TpPsL?SSSvVfr);mXDpPsZ#q{Nu3v?_m9LDe~h*w`;=$jqE6jB zx@DMFu(2`sHk(Zy%?=Q^BA1%h6Yli<90(ihIhi)f4LgN+PtqEUi~T7Xkmt>t_Eevx z)BZBQ&B|kB6Dec&h15nUy3J~8;cQ;}(+Dg2xT4!k#-=jDyQZqW(v^K_M{ToJTsoti z4vO}to&LF_zjU9I&mv!cQJc<6pI{;A*T4A;BZ27HK+U(T@Vqy5XVStR## z>13IgZlQyeHp3cDoISw|sVvTZq_{nrGYxKnJJh`jzvHv?l)`M??UB&5b&D2!OmK{mLTaHgMU0i%ZiIktcibi+se|{ znIzv7LsKlLYmA>B=AD18=&-&eS18<6uItlL*8+AoDBZ1h!dYdA5fWw?DD|6=6*vJb zck}!h`1^Wpx!pJ4Rkyo3^n5+q2@L16Qo+yu%9cV66fvT?xf)qa%?{t5{{nhgAEDo3 z%&g-l4h@y8h8G3zsZ(F6bgk0kw20ANln9uS@@%XDhb^~&Sny%W^}JB&Nu^(qDQtON zVPrQOG3VM*Iu0&%?U)-r!-|G6E7Aj>KT@dpli`LRV(Mrk5 zeXg)84={Vd*sX9F3hw2jw1R}ee>O+W+u-N+2VUa$O}$|*9NtGIAzYueO=qXreN?gD z+u-ya`M=XzFq|x}(Uu1$%T0Q)yZ5-8kE-d*Yl0_Cr%#Tg>~ksS`;^b$q?EE2D&^nN zMocqNcxp3buzHqT)~q|PGNT?|%~V=t3|mgkI+gP&6VBH#_57|IOpp9_Y~$L$c?8}` zx2_3Jkcd2yH0eJ3&{%wZzC`dW?)jV9KP3Gn1J7U2EEcsyomJS?{nm8uHD;Y_7|{J> zHC9*vJgKcTMQRo=suEy zm;}F@%2)J*UY2)X>Mc3lZ};{qPCGj>-^Ia{hk`opV4Jqv^**MxR*{Lb)kmm8I9tW` zoCD#|lGMFYKrZ;!>xZCXPp{!;=EPXfSM9^E`9IGGtT3aEpJI{~lGi???3LC{fAHpq zVG4ESv?=27r}a~HegvMDR6FynKBag$w)j~&{|cUHB^E+h|sp&l?!owwfJznNVvTVhqHI&|H^K6RvMr=}Kp6I>7p4i*azQFb$!$ zqgNlbrEM0MQ*E%3yA=vc1u;jgr;f-{xApFsuC14yM95nlJPCN4(uVtdrxvu&H`a4M z@P*dDSCO#v0~5H0k5lLepM8)be~!HJ-}S$<$sETkhZ-1@ z?c8E!;LB;m##4TXSiP6(XsBqyhW)jtAOzN`U^cpQ@kx@MLtQd1o0LUwvBhNOlp}tO z-KjtC4*9U&Xow}&>!eR`pdJy5G5pt>LuQKCun-9~itQuLr#QQ@NC`ivcM|Q@i}9k{ z9_dCDcNmCK$T-VQH?-Fp{EF_t5Qa|!^JjZ>;r$waPv?j8Q)UwhehGcl6rzF1xf*hM zq7118pveQ!VwqEgiV`BqgTa|QD&&wlE+oeYfHJWGF!j6+!h%#EwW7kv2ugU}9>Wzf!b1^P6vMe%*`!Mnl% zfyLNQNK1?+gi5Pnv@#v6?|Us-<4+*`|Ckn@WaDpSURaByrnEPo7n)ws9YiQ;79P&O z;hrQ6eY$N-lhayXTa9mSw^~LkX*Rq}+vRIt96HFT!Ah^V{y7aF-(!yHx3X!#xVe*0 zgx$M;9TJ2E#Pxvt^8~s2)&Bv4#CrY)p%J0SGdKQudX)B=I7wSmW)Oon)zC4o=r2kJ zMP*tWab=lyKyv{n*RgA9(6b{4!B2BXc|l#+%JBq*Z56)D%=hQa#ZZ< zBtMr%Cp~N)B1-#e<6mgz=YmXT;2fl=+&;#y6tT`pXZm|mITMrZoI>lB`h@VWOGVSA zv!Ola%Z!*!)~z}w|z!J|y}^tsGFds1m1z0!X-8FK8#86$wA@etX5UuLIs zAqP62J(84yOIBTfP4*siHDOOt`&K%ddq|Xty zYmee)yI?wa`R^s-d(8Qp5~)?#X~+17%Ph;d!8Hv85M^U0I)_)m@gq*dp{;pLT^hgg zeU@dtf7L8y?Nb@H#`j#zJFKw5`3z+%(QLEpI7;i5UsGP=Imp+R&7N6yaLT(TnbcMU zydq~*==1SNWMt<{&Te#TG&zl|eBDE~1N^f=D0@JDWf)w^5eNobOKua82b4|wdK~dd zxsx31VA3uo0@VmtoE!U^Lb-lag=X2eVx%R{@7dWmls zoE52In2({fdV$Hgwo;wk4UI_n$7v%sCE!qno$wC|SoWC@nP?-u>A(-6BURKwvljXGtL)I4+Cjr} zOZp9=6SnxO{e}@G5_~zkodIV)m!2V@<5@mCIEM%roxBlHO9*ef&-nTgqz1KMvlswY zlwA%kpRainK^^Fbd30fA;lcS+9`U00qZnV~eMiQJyl=<&a_^5czJ8Dehw{ueuYrCh zrizM76>*jGdAg?6qb9FGl+dXXhD2bOD68)^p?A>^^D7n)9i@WULdCE5PE3&yInNM7 zp`+3zsWwmA;zHMuiM1)Ml?||oMMHC*zKd->$qIK~ilF7oJi;4ND_t&1S?%A}rq=m4 ze5ARzcyW)X?ixFU1&AT}FIR>*B?go?1&&BOc07(vx6AYTO5{Z}ve; zQe!U2IiD*^#sdZ!RpYC=eqOn%Ss%0}srj#^iu?3sH+u0k;~w3~@;GZ@Uf zIn^RWVz>k}neC5qYu8W0FEK>Xjk?uBM1rRTP=ib zTG??$C9lLpq?PdXNPxJy{T2O4j$~c`%W5*YIh7MpV^oiVtmMrhueO`-WFO{P+z{&U zVV*@P3dsO8Jk@#R@GI@Wz9bp%3Nj`W8Y)PXPz#WyQm!$E>eK0o6GdQL0LdVVga~-H z2@#<3o6FuU8LwQWjCvKfe9uVCzOM406*xKIgPxYP#uxiqB&@-=%!ZK5%rTs!G#;gW z4o7SO6`L3xXsNL2Hl)JVHu7&s8G8r~mAfI8^ia&-o5#iT8EsI(&of#T24X7}S#Iw3 zXUgSr>O)cH9nbSnn*wYseo@$}!OXv4$YYX^&hMP(rA`G@khs=-uHwqN?G5GH_~2`_ z(l=J6=nbKeiRa5iI?12+b_=-7G!7FSmG2DEdCFEqMbtWop{vbt#IqGhk zox{9X$M7Z%a>V~ZEhB%C?Q&g?GssXBMY6+80Rh* zCjk^L_p%*5Av5HkS=VYhe-#|fezb^5@$YgHD!oMooWR@ zs2i|j$VApY-m^O`dY+;|&lAL$ypq~@?P1}k`m{eG80C?({r4f_pi$!+dsM(YY9>9% zCO5$NsG;ih7lD?LH}Wulca;Pel3DYKsvUCCONj=loHeN$SsiRju*7v?RWakrj&mc1 z;MjcYa+B5|YeJ6DU5eVRA9EM_XqhGzpP_$J*h>-g4*E9GG_K=i70$%phy7MzM%1<8 zcw;VGnJpWy#5y*IU6L(Y^HuO()yUVp!P9FGVV*YUEO4~(E_6qtv@x$6Miw7C?$P+2 zO0zNPpzvd(fl87ipseIN904;t-|d;fkF-c)WV*>b(n;WVSni(GN)L8NB+Ld5fZi^k zKHYwwZloNRA9K@>_U#0@Vi&t&hxeOe&W$scKOg#z+*-+g&}SFw4x4=Fd9s2`e%z<3 z;F1q~kVhpfJmCvp$2Jd9CO^na#Q!8qpeRP6SI7uPp@YW=M#~&98mx?D=r%HfQRp!; zLY&a&V}&?h>9RH%Hg}O#sN@=)IE$dN&<90O$@-uODxE$kf=cKMasqMcD4hE&-%mkW z_Go*vNaXi9+bAGRU2Eq_Gy}plM`1FsXvs`hv?&< zu(aOu;);_*xcIR5w+QpIIngNT>Fir}M8O0_>)?Z;b?`yaI{2Vy9ehxPoT1Oe3OToZ z(R2OVJU(S6%PFK9mC*HJ1eMU+Vg!{=pD}_;=u0tzO6U!-f=b$>VvZE6S~l$+0!FA3 zIyH=-(&SS`P)Yir2r8kM#0V;5K2-&kTjqOyS4stjSWtQ~2#pr4eaKw;l}DB)gK2)rCB zqmwRLQ%Y$=+t-Y{Xy3J)Ejp`JwC&Q*2jyr@l5LpeN2eOj{PaJI(usQajQ8wo(Oj85 z1+OkXzNY^wZNY6{vaiVk1#Au#O7!fjAwYiT58@}KnZb3lDUz{^yi-aN2ueYIexEn816(Xr|br{v=hwDG;c(0g`OUb zsb;@P!DS-1S50vssxd|LFixb3K!4gHHDJdcvO{h(3Z^WQ!}(YO&8lJU4^e2ty-j#I zCi&Gqr{-Ml^^|DnG-Z!3Z*kg^wJE>OBOs&bZkeg=3YdWBJ&eLnTsa&9h{I$nJtx9~@n^&*WMs9LhZit=bYn5{?h{|uC z;=GQHRk2!Qp%R4J!lmUE&XB1#p>3%03sr(#E}?>lyn1M@Q+|kmUYAtXA=bqoff#D~mWOJ@sQxZ2e$*Eq>eH5{ z{K6;hbbM0ij{7t#z4ocR^f6z9@#UsBRKma~3>9bP1x$STN@1rowk!d=inh)cc_Nyr z`IN@iW26c7giFinyP?$~oVdNjSA{CRrDY}EkZB?XC+SE6*_zy2e8|*)fHvDZv_;?M zSSQrYX@?j+N2~4|QuBQw3w@fUq1q-s)EZK-#iwcYt+g~|>rho_lSKii)u%Dtv;e1l zz(HkFfR=&kd&cKoVpH&dkEMUe{!u(74IPMS4U)wOM3;wq+yAI|pQ%$BOi$zk<|*KS zx|I)Dr~qkn@a76gudX8uZf}1?g25D6UVqZ3<^;SU@}gqBHfc~1g><1l zYo*c|&Xq9ZTPu+ttDWIiQRv7zko6iNihNyiLKc9C9%*y9_O8NU#A6l3z}R~N2A;vG zGeBP~(+?At2jF#jRxWv+ev8D=YuqO}6rqN3z2WRRxrzq+m7|P-DkI&RE4r$erw;8nww@~<`N7i!PSl@`p8@=QKR+j|!L= z9h4qGnK7k}_dKx?KvBCX7)ytBm)nPERRdttt5=OVn@CZW+&7 z=}ehq(XkDsCwE_NGgLn&liRDF(n|3tGls_m!?b38*dhEL!k<+5qk>%?m{5O_UO4$O zttUVTxp$?qox;u&Ws~nhkEood1El= zj-+_02r~$>eL}>SrZ$I{FFpAu_tCsy@i0FW0rVaZ-KVr};;?KlsZ{m}Iq0&*I_UFN zou$qiVfFV?k1Cq1y_eEOG3ddM@)@yIRkE2VAe^zq5!V_Jo42RPL&Dpq4LkDPWpp3> zM@I~xcHH1*BIVi}kxjVEzHSZYVSC}!zDKy&sKEr2<_+10DWUHbrYH2dO!}bH{k`b0 zSJ>a+q+`fI;{pJaBu@S~XaN^JqQ*#7-xYL&)6i>#3aQr;wvC5)Q1zx61+2q|H47VP zRB5K?|G^4i5VZneBbAm@Ua>QHgst!Goi5ZYzn|g)lJD4 zDcRI{k&;c97b)2kdF7HrLZ3ltvBH0`V@TvQJsuM?Q_hJTk@CH2Pq)JusZFOBDc`hr zk@8J-7b)NLcIEOZ%m$wEGwG2%MT54mj;69qVx9krbr8AmBnSBA)KaZA2KbPk8?`0ER!l}R@#S6N9N<4 zhAgXv8H8)kn}W>8dG**%M?^+TrymnGjHDw9eq2A&kDYMlr_`c}`u~r&w~w#0s`9>5 zXf!IFbD~tkEsRGAPO28uL1xk!aZ)IHkSH0ca-x;VJ;Pue8O=xwaYW|SlaRzTLq^)6 z4s?tI9jm~{-osn8l%BSb1_TTs5JV*)!WBRWq9v5K`}$A;*bX%0+_ z9$srMd73O}Is%X}fJFP8rW-gd5rfy9);*fM73BSjn+LIiiiJ~#FteL6?`G1mNB`g` z20YOWH$kXf;Ez%@AwrYl0A@lsX9^r=QI%^-u&Hib)v555YQj1RglVP83lg_SRRlkX zEgKl@L5UG{wb_fcI0;5XgN^`bei;yH2#DN41b;wC0wNRh5ZM|cgPSQb9NbGSV0OsN zYUO9k9czi%;~*o%s9*1vKw($7i7bz)0osu@R~eDIa%&LLq z!%b(|%go&mj$Tqw>j+%rMw;x98SG#aH;J5f)X#6vS#rfWZ<5To^0lhWP|*u-H=B(N z9oW7{)Iw&Osux3Fi*jC3-C1^yDV4e}m#{JFd!SR-$UMxpKQ!3d(ALScP0J5qyI z85Fd2NHkUA7Z{9-*^As_n7!Kl3!$ak9ovF0;!reHUfEb=q!&I{WJ9~DC$46OqQ$V< z7twQ7)}`5trrhFnWi-cRuTXauiWPUn?A4=AW}l3!Mlc9i z8e7$?j;p&XG|t6bvlUKsd(;)$fe5ggVyNb~XuWi%;I6l_zWq6W}MxJ)_43OJi1B0>G zz@Y4L)fhO_0|wSM#~{kmJ~hkgl~m2Ewp^J_A;6)l_y+pu3jgewA z?N-IP)TwZm)K?oIUDW0oLtU`2Bc_~jF`9=#%RCGKkASoa2Q@p`fQ^j%6h~x3SLD`bnFv7ocfc_s!+cY%tD;j&i4wQB}E`L z30G4g3HiXL)7xH=N|%2|%J;vRx!~hrPd9tq+wRS&yVC#h_S0r1=Eu9+nYj^H4i-tF zS>;gpfH0I9|8xy;VJ5|xy?v`2BJUCzZzi3YQoF#&q_*8RM=O43IGoWnEZdcFzXT*G zYQA2<#UASsnap`>RWLXHR5^AD`1;186U98`ZW31Jh3p0!DxM}^eQhnRQKHvXRw?V& z8 zsSP~V`Z%UWT-;s=k}^(4m%b6NLwo)KXE#KW?_uS0ztX5uWj2iYqAIeb(8~z_ao_)# zp>ZA)GouXBRZ#!5GW^q!knN4L89aH@IPcL_K4Z*iy>A;=t!&AxiQp!;jlkm%g*vyp zIZ?x*J2{v^k-XNnP~2>aM5T1E_z|YaRQw2S`X36)su+!pl&`|bT?nf%x~9#ju-)y8 zRT!CtaXv<7WSoyt^dqdo$V`pos=_Gx5mupM_C|80#98L3xWTas6*D=`N5!m;^HGU@ zgjJ}R?QuRT(T~tkiJZCNWZ54#nuRaB-RzFAzZ49SVQ?0v&MmV+&PT}1kn<5TOC(WM z2$?Z*K0?utu!=TjktA12o1;LFKC|6Tl2x=Zqa=B&1;^d;ss+bA1glUn>*Rb?q90)u zDrTabhsu9^)Fno>sOMCuVphuesF< zWh06DxgX&hEU%j^H=DgYyWLEc;%u;8zKXMEwmhH>vP2%x29K(4gGW_My+>7%(~OwF zN;&)0lL9&2idjX@=yO=b+2~qWMb79)ScOXTBdkIt`Vm&4Vph$0sLbU9DsI-SLd6W5 z^QmIC&G}R@^CnSMsF;P5s47&VA7K?LX67VUN|m*airYD>P%%pm#!jNDs50eF zgH@=Q$#Xs`(U0%|A*=Dq-6;@R$-1aJj;;mFy>LD%W#ycYO7tVFLd9&L^HGU@gjG~A zL#WpnhL10O#APLzNUNw4eGaRr5?u?cs1p4Mt5Au4gjEcReuM{5W&ek(45LSBU5Gw1 zgQzLWVD;1h1RF6z29s#V)w4>ds0cHTl11h-WxK+xqm|^=U?0`25N>8VE^{}-=$LKE z%zjAb%bJc$%tl%%?N(AvxDYtZt7ayR^M_I}l-kUdF%cieYCpmWaD>SG!!}lb++rHb zbCI4icR!w<$AE6pG26dCk@!nw@eDr8*YZxW8^dF-QU~s}^Emd_uH~&tEqz*vvv&#P z%6Rfiar<8~%jZPcJdaGT%vNo~N0dL`T*DE2CuP2PU)$jQ;rt~q%pUSP%xk-sm7jQ% z*;{)TPRj_Ofu4g|7uad{rMZ^1kNC0f#r>~4=N%f~b>1XLb?*`~o~Bb=m+wA%CL9I6 zt4zxB-=6(%ZNrOBIE`cGhc6moT0d}y+kg%>xZBs zT62Eo?)>n=qWy8AzR10h>&1@_hm&VMatGyGTkbpiKAmy4j#BpF`!Qg>!oK`|6H&z> zeFnC0=2{M=ae2A<1eiXQaAd=9N$2S5=>A1rL>6y&%k%G|ZpqQwzlRb%ImFj!dVt$< ztE?$iletz~Af^4bwNB|$p`o|5X7!#b1a9Z!UHbv3FQ4{&@J{I9jLVny zA-WoFaekvjC)n-|2bl$n(`&KHssR?HKUN7k;U=B^z7I-BTY)q8Pz$7E1o zsh922swQs#b=C0__x`%Fyd*JOgG7Nh+b!yN6nZosAQNlX%^b|(TGfL4gVuRCx!_73 zv#nru;H1h%#415FK~9IIAh_w66a=?QuuX91k4FCo!ChphWQX2&A}ThB--4OtmGD6` zO9>}iI5pYyubuy<`^~tS?6q$Djt9WK8JgCf_Gvpg+75s__ixAh+NHFIHinauuN}qK zk{{mD%p*DKEIak8@9&YcN``K-lcB&PS!fy7w&?7st}4&+Gbz9sW!>CX&drnD54_VV zS^LfLegzghaYq;jbiwzH(&_P>tv$=_KHVRHXWu9}`AW6+Pd~+dL7RzLeDj_hBZ|&l z$Yh6mga>zCwNe~8?iel-p&Pb1NvNH@zDdCd$GX(p#dO)eRy*W{w-)l>ij=f*cGlzt z+QfS-DSXWi1|f>gJ9hdQopvS1oToj#^SG*|azk43PtUy=4%?De6SJB6Ejl`eW2=gn8{+kS+9gU3`yndp8b2?{=)(H9 zLYFIA!uez8kU^*PJTXS@&-0ReXX!lD(>`4hIK!Oj?n^N{NS^TUjD>8 zS$^1Uzg&-S4u`?wO4V_HrtfAM*g5axv%7Pm{1rVM?sN8^bM&%~2VC>faK4*P3T`H1 z-TnbSD>$dMxZO^bTl=TurSljA77Uh@`b3lTiGUOV^5yLcjS~Om|D||`WI5Z0zQBp@ zSO5Ab)y;lT_N3t*Z3jV-{hN-%g2m-1>i=hC&~z zJ(8yBJhKVt`69?!Q%`O_fTJO3tNt3?M?xw{W!%Kp8&RcZ`ZoQbW zuXRl>)As_D*12_;wJ^r+0=4XL=u^@np~ReTo2s|8laBBU@9NetE#&II?)< z;BQOQFO(i$utaBI!pYFY9f=VmU|G>!r^fe20W+PL)lIXB<5J$jp9ovb^UI}fZk#Cp; zsXYUh5dY{JFp&Ijy!a<`!Y_qBDqGe>0I4do=;o2AF&S2TI zi%$P!n#2L+wKv`vdVHqYHHA)3*X$_O8SVk+uUQ7}JQB`z^KkzDs(`bSg!3C;g>$iI zO-*Lt`)~)gs}Iif>1;w9Z@qtTM$*rPEw`Hgs0qYy6KS;$xacmxhr7p;PA=dZV?3;x z*+$-2{^abw6>B&f|6Ge>905jJ{3{ga0;k^& z!5pxub1!%3oHpi<7yY@t_g!VjxJkO0_Z=WzE7cLITeJVvchaY<8ObN!$#w63OrUze z%*}m*z@KKS_-?2-PLuqYNk^e>0z@WaQgxms_8f`v=Me-W=q-aVWct6}_|}(C4-4 zKZD`R>t6z#l>=)U-+|=+<_kH8*&6##0BQr$%x;*G;zx>&IcckI1ZrBF!@uPnheg45 z1iuFuKX-7@v`8;k5|(NEdri9>m;EE@xgQV_^vZ&n1vXuAey260H6Na~r-S;`9uD=j z-ZZ}LQo@d*~tz%zFk)DoDm#cD`sdukHJx6qB@^5ia@twik8CxDA>^CnHI^B&dF2V<1Qz z$?{9Im~P$IyGvsy6TNKjom&a5u|v8UI8jC&i|#x{tjpFOW=-xWHBk4?TEq|eJyY(e}~58eZBXpO$*l^ zq7$n>eY%KOz%%OUyL2y1X$wW{YJ^J(Xx=BVp^A0;dAhF4^|CK+VFMz$1qN0F8CZ)fPmkEna>bT&tncqh6>KTthM)* zHCu|?t%fz1h8h+i7iw8`MQM2uJ)+R120dM#*Vifn&Yr zoQm5Vxo*2yKXWkME%fss3kyuU%{)o{ zDQcDVU_1@HY2M8^4VXNR{?nk;--=Y_k$Y;pXp*7c4$K_V#pC&*e<{P>JSTg8075)w zgWAGYWasOd>yAH!6GxBWxrpat1ZPD~mme%dYBy}n={CI)UlWL*Wyrzv5}i()={*u@ zL*zN+)oxfK$O(jU%`DXBKB^8>2xp@oy>A6~()9hz`p>E(&I+_R;*m3f-+vRaIz03S zOO^exXatfz(~>9C_hWc5Ub+*s)eBVBKBNw%PO!s3L`w-6wsQ~2^O-iDP@`?x~*4}na&UA!jKyTHp z>#5V!l>0G|WiJ>eM{fdsggcCnDVa~`3c0XEQzE(g7Fj&dQh&I=b>Mm(xNqO9&p-b@ zcc8=*&^2b zkPll8oUCipqk-RCqj`{10?}Z#+ zJG^Gi``d=E${|h59x(b3{t`n>Y0rXW==8%>EEA0^DT*3$`Qh!;r2UZX7zp}>Y<}>Bx@F}X^U9yU zg47WtHF@aMmQxoM+}J`=vaMhdWkuu^@$C?yTfuH*%iQAfjWq=(cb zXAyB@J0WUObCa)zT0}4%txuGG1Y6T!J`J{~!9p7BOoLr%usaR*q`{FixG4>erok>e z;~j_YG}w~{i)nBm4UVM2sWdp929q>6n+E67U=1|zit}kuCuDo9*5V#4rojOZCe6Qp z-lj-MbnS*8yXo%VNmUKUY7j8;}&1tYb z4HnX1XBzBEgWYMcCk<{&gQID1YZ}~^2FKE1IStOG!PzvJq`^_i9Y5N(H4Sb{gPH(% z2F(CGC<}lGwIKJPP8QcsbZaK8XOX7}m*&c+!PYd`k_Ow;ApOC9Kc+PPNl)=G?=8p*)%wp25T7gy%lw7Fq;Nj z(_lUgwx_|)G}x5}d(vPr4VKg3SQ^}x29q>6n+E67U=95u;+qDuX)u=to6=x&8f-~} zt!Xfy2D{T>PZ}(y!GSb5k_I=W!O=9hH4Sd_pagO&ElQ4j24yh3y@$EfjRhKoB(-W@ z6@vLR*q#OpX|OX5c6l(__6gJf+8~J_H>KG|)8L`Zc)g;-(_mv7Y)^xQG}xU6d(z-Y z8r+lyN7LX~8Z4*52@fXw|I)D5u8j?25TczHIDUmR*qH{q(_l{;ET+MMG&qt5H>E-C zeRvhy(%@Jc)K-XRm`sCHX>d9XCTVcigUOMhS=-dC9Drz+HevK5IFbgn8KYnFOuG@H zDd&Vprb9&XP9iiV7G+4(k66n+Ee#r=My|gM~C$ zPJ8-m#wjJG(IwB}e=W-Xw7dNMb~99;R623yi# zYZ}a_!S*z`H4SPd<27$egXJ_hkp?Hz;8Yr%PJ@XD$4f6L1g0S#!K??9cbsAz z?dCm_q9x6yYg6Ar?5->VOFe0@my_&bch|1ogd+qqS;WdSQbZD%~BfL(Kzt$jmVjycr} zSh6Rc<&ZK~E0?tDwuRftqv_daTeNBS)$Ex1opiRYxzAkxgWvI*x$(k(=5glon={8J znd@&}KJm5JpP9LFhG6E#Q_ftz>-@^=&Qsc#@5-Dqqlsq z7GM1B#_BjKi>$V%NN}$Opdc?-_ubWgnuUi?7_0Q-hCq z@+a>hvTht|2fC7zxlqh$VoDr zwArI}U!H@!pPbajC#$~Q_rHz;9H3TU=k8P3PV})QNMHBA#1KY4ty>n{Oj`z%Z$0<& zaQA|hE&EnvKC-WM;Orw>GuQ2dAm3R|R-WJcGoHyqC)*A@_MNkjpuCnj$?X=m_N2=C zoIShGtQ?%S?fn&}??FC3U7q=47U;g-8fra+DiMc`pi(x{&HToadm#+84Z!UpwsHf8C@1$9!A(i#zlS146NWkuLOfu-wzdn zKbadx{>y~ogtuod+np(WC&bqcwKmq)u&;L94{*}XTyPC}c5cI$A=!Me?kKw1u4TTN zSUkCsC4WSxAAIl385ABF`udAR%eZ_4s%+inNQf@Qgm5! z`rV`_AEF9#K0{`--3_`_*F<&H^c`;X4R^rpl~~jy+3MV$FSx3mqpa(I81(U~AK7%} z#-BWQ>aVt3a#L=_j~38@quIALKXeM74XlAboU55<*lCerr(@j*$t(pY9n~_KIezzv z%Wgq~%J#7AH()u?{~hxi>7RN+Y#PavKfkwsnumS_6A$j~U#ONTa@XSr@9o!}jrKM; zNzxnq<+(>GqOT(K+uJ|tMfUb+!*h2kifP`!9pp;Kg(HU*B5{UcAQs z*HLcpV!4Fw?Vqg;F!uKA5Ig<$_P19;ogQMs^!PINidPO^xXaGr$S(Tww{tb){d;&* z^u-_g%`2|}&2dJp8JY5fAL#-4Ddplva54=}cyPS`gA`sc-rvfD>R0L!a_2ornle+q zs1$w#Cuo=l%V}^d4K_sj?CsaL>-z2O&v}SZ^TKw(^ZZD6vhrSBlZLl%60PtZT)gr_ zxWASjn_ID6qM_+W1#C%nSpAmF4G*YKa~Q#{nS*8d8ocj^t$?Te!uK_sEi8@s?P2p` z#!Dkw@K9>mU4}A5yyVMN!c23MOevTOEnf99ew|PlFWJrT;4l!Gk#4G&E7AJHSO#(^M(yw&*|x5DMfB0@~*$uCoX(KO`|x*v+Y?1+-) z0LM$)#HP&kCmiP2+Jc=o6q)=vq$PKi6{X6yQe{QyNy#*l1}D;Bm2s}hWLIU#t1`}2 zne3_zc@t4c_Le3+$d;9A*jxIkS2SJ<7t+?3CTQPysa>tyTUzCfd~-tTL}u8C{|wg<@6al`5l4cMeSW?Jf1>ETHO(9vm+X zC`8PN#}M39N!;d%V;)2Q&w@CQX?Q1X5FRxlvKiYjk-D~!N4vjKR&U|a86KlNsHx0D zKlc?R zZcT&R(%@JOvS|5(d};f%-nrmbjT+wG4(au=27R`y-kTr3NVXiXob+-_p3j#aR#%?z zh;_S0LyodX(2vJUQ+gp+o;3XkM*C10Y6gEsluCMPH0>RS>he5 zrZm`^2J;@IlcbUDfbmkD9;Bak8SsHLZ6pnDN`s?maH|K=XbO$nz1loJpm7cplqVA#Bt2Lqpl79P!CtSXrCn{yc;Wv?`el;RfnU zZVKUUg~t?*epE=w@S<e^dHy~ZM7|J_RU%4cOLQ4;X{5cU~Nkt z$`8Nqb_L~9KCq858)fi;kM%vW=Kc9WoSqKBiMwd&dymiAv$VS_s`I-`8q>JlMbHAd9?k z>yxa0`@6&HBhL$j?=NPJ0sYzf@SOGcNuKG%c)Y&{Ab|XlPqe2=HY}OGr@^^2n54lv zKzrUA503Z$40us0z~jO)fCu`stU5Gt>)+0+(CY-v@%~L(XpHxN7zsii`s31oU=QgI zyE_ebc~Beeg240JN*?boPyr%xu@)Mc`fpG3NIv|*R8sydgiTV8Cd|e6gBM9Q%pWTF zLu9VIOPk*8@i*ZQ*DvGRyoDgXK-k1S!R|hv7_kDr=JnH5s&64ac(T5UcvNC>C&Bri z5^FJf+|(o|iKKC>w%7xISFHMfU!Md>_1*T-N`3$H|Ea!fzFSq_yzd>>JvjiQpx^cF zOs075?BZF~+}=h>1}z@y?>pi}NV>T(bWp$i{JT*ibH{ahM@D3dEppN-GTzgd=9|tSWr4 z$dQyOse|Sy`AJGL@@lGY4kVnHp1f0lhiZQ`l4E7}B;Tq$ri+BPNw@OL4`0!2x&2~d zlD5Vq!lNF3h1+z=J^zth@E$O){9DbzQ_;`Sj9DS2HMb`f3yJdiR3g%tWP9rdq8m00> zwkO;+?6DjeGYaz1D6=G-kDKR`-!f5j#E_OekQbHglb13SU;L)8<2(KZx+P2c;+15D zgxBxS`L`m!xxf%O;w7}v&c7#@inK2=ht5Ue*&*v|smIV-ZL@J~t$emtf4E#YpJ2#3 z|2N4N;Arr=r)}`5wn5aE&PC2DM|SDDbvd}>r+j6ymjxN9Z)^k(-;mgMBlqy69?oUU z6o#~-Au=bb> za{_)-@`;Z~#I|?QFiG5HypmqhZsN0<^A|t+&&rowblFSLDzi!-wM?AzR^`wpV~ol4 zzaWw#3EglUMya@}In;`uUQ*|R*-Q@9JCk34kdf%QKy1TlE!#G@ z-=(mAw|{LF3LqS~95LKz36rV6Oly|p_7epU2&Sbr8v)oJnFmZv-9X$9tYG-qrE5=y2>bbk13I=@Dt9HdnY!7eQl53En!fNv1QU@)vI&Cwa=s zWQVpwHS(jGh>-58d^h%w?^G|Zmm~IHv2}7f-x@XTPCm#75LAB%9&LR4N5{~{O7d=E zH5BHcQ!9!W;vlNfP887$hzGQq6ditaf+YE(F{KQjjaS^$$#;p0mxlHIThKBk*=|f# zu%q|X)e>?BeZ#!=@ILuFpRl_nj7Qb$d zeh(vEZQD>zRH;4W?f!)fapm9VT$3+rF@eH|qAu=ZH3}&r7On}3n zD5Y6W#))2C&io`=nVH=fnM{lfy$!V3EHhEUcVUmoOK38x`yXh1%PHXJkN2 za`2QAHPC{S)Ml?CFEFzPCX~3uN+>rOdO#x6+eP13HnEAa>-|a>yH>^6NaW)89%(+9 z`nGg^W07(+Gc%a0DSq{E8v$DYqMt@X9dTu0MlYL+5Z4sr2+Ia*>4fuD;r6OXd@JyI%19cx~eK?O8tmV_x1V&22bIot~^ zg^<&@DT`r)G=*CKCl?`phb}Uc!EmK7~qNAH3*y@!1S= zQJa|iZJ4s~j(mVCGC`*)3~4fIzPJ~Blk8eHCu6^AsF~@tZ*C-4wb?)9d#xna&*fuQ zb;siDZ*$f1R?y+N8%(xlzRea>GJ5In(Aa;t|D?g$6@#}7-rI8Pxp|f*=06La?uF#6 zFvCAJ zbKU**Fdr46Lz3r?d`UwWLq7kx!%Ggunfi?agfDU{k2R}&J-Z@v-Givt6{Wok z27j3x{l|yZ$kX^SP3r5Cckr4YTBGm49|vxJa8Gh+0Bv5)2LruLR-}`&D_g#H__rV^_ufj))L%8iL&Hba;yeQ}@>LUx zyz3X8-V)y{|Dy_v<-iE+d}pj^TR(7 zXm_V>K*_zQS5lfiv1aEdSh+G1v6pzWfJwDaCPQD=h|iZj$zaVoW570>J#;E@zaO%LGD_oA~;;6A=zQ` zdROwH1Hoa|xk7ted?TFc+Z6`#McV+=HaM+G!H?A6K|X87iY&C?>#qJU5sR0}tt&Gh zc|2b$Ugei3YabK}KYz1W)3G~w%eO=y``mW%=Z;Zh13Ej0jbHj`fulFF3mZ>bcatC( ze*gXzn^%N1#!oT*q~%Yp{gL69z{BEpKhW$2E0bOP1uBFNU0J8Y&hJ**uNi~4K3N$c z+qhpPOq496gp7habxNPJw5sGAUsX~V-Cj8(e<8$B%l~7s31vy}cK*OYCAamMEcTID ziIh-yt+tmM1pPnAsTA$5(zzS_V+7Ybngh*@$d}?BMOqF|N?Aq;CW={jT-D>WytaNz zPt_qnJaq044;?3zUp~3^=M>U0Z>*_w991~KB|rR+b@{*Q;)h)oe`V_rI0b z|7(8A!{>`%<{M}i*#F-cdIIyCj^YNI4MjJp`TPiugph&*9+Y<=lrnRtC?-0E5s!5% z;-mLGvNH2)n;QqK9fevoMwe$UK`o`Evw5xNi>E@w2eg||dXn=>K9WUNE|h00&;C(r z-nkv^o!MF3Mi{+&Ctj#ipnOEJGp7jvC*c(ME?c*o=!5WN=F2u{5!|U0iGVUB=UCw; zXuOxUI;2plaCdTTT4tA*kr%DXD6h)I+AC$&SsA7>WMF^@-!I$zm)X_lT5YzQAO5Qx z6Nr16`T*nLowou!U)mGCS|{O%$8$bOIwn9nVXkfYuh!nyHvG2*lE)9VG3?--w;fRK zS`tFHd*L5!nDTN|a$;fU9pnZ=H*bqC3LqBgnIGOPP9}RP1N0uEEHBMGv7n-zaVqw= z75JAJ{Osb-DDz~X&7x27qC%Z2)RmkYa5%9ms0CGfsU~}Ok^LkV2{3=7ramwa$JWyp zUH^Bvn&fyDLSL+Gv?kxg!eCUC;`VNsQ7~ZU95-tDmSKx=Ku$@zmV{G|Q5;^i6!3_wWwEX95F;{Jw z48?bP9fYu`zBIFKpy$%BcPVYy#n3}e|^Z(+?~;yTc5xJHhI z`P3^j@6ep&9j(58Ya2c#mmj`(1fH$N-)^c1B(l*Ekqp~U$iNo3hA}q_=u*3oV%EnP*lNYWK_c+s=MH;rE$C7U}V;>qW zC9B+1Rc?vhYgLoYTZ?otdK=kf?oXk>t9g)JmhYgv4@C;J>XQGfP%+?zmdep1f|c zY*@0iv<+Xaj~|mm-zcoxl!KKC#bx#yyd&WF82c|)Stt`0wW{wA>$Oi((wCH&`1P4( zGDKb_ec@o+f>)fVvPK}Zip9wGO7iH@4iHdhH0Eq=Thiy2nfl8Notu{nK{g1`%kVC_ zdG~zoKz*S#KXgKSo7qG`{W&9hW(k}WF}jmew2vet zpsvpKuf6V^T!mhNxyi|(Mw0QTaP4{uaPBE46%nOW8BWl(3+8i{mG&6{UH}5R0;`5sK01>oiI;RFamAsDz&74Yg z$z9)I!8H=cw{m{)S)BuCTHF4vTupLvzgDT)+BaoP6c;w) zeNad9M3aM+u>TJ%0Rj_)OT3LdmHi7Ff8zOp>z*uAa9-~mBLZLLjktSr=)e+@R8dtV z-5^c5?k1JAuL95*n*U&u%U%95W|{LBZ(SqYzm@}=zAog4=WsVq^{!@$S)fG$?V?nA zAuqSu4yRK1$%>}wlU#YawaHi{QqK{8j_P^A_xYd4GSr+`_u_=3{4kfs>wER?4+2IS2lkh8y?xiI0NB}aPJm4cFRf*0s!25*T4MA%(a@>7@gXN>0f#6 zbAVqs=%@{!_QfD--JS^!+YVqVgfmNY2fc7Zs zVkB8N5YGq1YIANboDs=a_EOG>Rd*GiIm1yZ*i-}O3uM)8O}YMkEjt%sOkDGUc|+y9 zL2sjGU7UBQsSoxx(Vz1UxAA!5gTBsnILCfZ#N_aRNaN&~{}i!kJaE`;3B?$A0+6SZ zt2y<7>^iv{Gh1Bf68`_N&dm?^b#+cD69SA zTNUwh{nPCm+>Mf1{S46tp68EsznR_s#%A{FXDDQq-3}T{&wst?jGr)_>Cnx=&nWM0 zycKkD7>D%o&+oelcOY?)F?W0X1o|AJZSC9nqdqR_rHEZhf}L$Or!d;REoX5GlP+V{ znXcT+dyi_-y&Iee!@vFdXLo~KEK4If!7p4>r^aNzn;a}ga2Fb|6Mz_bRDctjITRNX zSc9|Q&RIqpz&#;*iM`7Rri|*)$9>)iDiN*|^eFC21ePn)ny_;c#!adPKoQb1_7h?>`xj{>vO%C#lO zzgb!sy-!@X#q}hoAMw&FCl4Qb-AP#P`L43|jXza3$8sXS(Uy=E=N!FP#r28bkAmzZqFaJq?NaR`B zcpm>ZG!~s3cyoau~EezkP*C)@cqTsCYJ zQE%Z)?*(gBP!@b<)o-;Iw~v?pK`ECAWTy8VUdH=2^Ri&PPriOs-KQO6M#v_BrbZIc zJpbDE(A~0!?$FH=gO4j4-OLQ3*Xo9c{N6s@Orama0b=x%tx~r{P>t?ha6{SPbAvNv zQi6U2^CVhOb~Wt1y3QeHzHjhxawx`f?Cq7x_7XD(Iw;07PsE_pLG+KApVky)-t;5v;IMY5Hpy6+j$~_({0fVJM>!ojb6uZA zM;}_g^be99eT7vs&?gbf^xoZV9bt3MR!iAWGTY!f&$Fv+B>61N{R-^7hT3t+&HE81i^>N$7`41{78AmU8hS>>OlHVdz zg8X&mPh!_)X0j)9BH~)jr?s+}s-=7Y(c36%v7|=+p=H9N7(PCjz5q zvp>x?&3ilV0y*s<6;7(cb5-FQ^6IBNbyeX`4=496tW3b4d_Imb$upZ7EAS%}PB!d3 zmppZeQXiI?09DjY`Q!nj@x#hb;al_&z2Hf|$u zW?SZqdq(oZ=d;9oCcl>$GOimh>w$#k_kMVe;DP%{CoP}lo&msOV6XJMu=|v$|9aTK z`noo-Y(Hi@=%~iUYhTPEp>nSYbe7jjruWG&TIxpW&&+ijr523~`ZB!tuC<@f4-e-_ zVm%-uvOZ=#fAPs@<^*xkduud{$>OkmL+$evbcZ|^^M83(O^ptETugHB%{50F(ASOk zS~l8N<{;Z$4K!6_S-v!P@Y?IiS^LJf7-01Y28Q8owtW=X+!49@jD=0H43r9*u;F08n_HHlhtfRx5{ww9XCRYu0Q~%j{Pdj#Gh4TK@&*L zo8_8Pzos#-q)C!Ad7BQaWY(P z(GIy#)tccEB7dz~I2tZ{RTDd6RD6v&3IUf}?=svv+Zo!s`d36{H|L}fNYkx*L@^=O z@+G^aS%rCfSOnMPb&ECvLyLs#fZoWrRn!6dGa9qX`6#uYcGTKcIYnkScNzDxUMbnu zH@13(S}$obq8u~|)M1zQ;)plrTwUzQ3d;(02Oc=iP4jV9Mco1u3UWDgrT{u%x5FrE zS6mdfBmv{Awh5M+5TMzzn{kT`0WnlG3d7<$N7)o1XsRx{M)wkqfwIH(RF`Rc9SD zkrfiPdVdnhFE^h?U7x!NW`-)HYhut)kO}xqZekoe-0$M-s{HzE+?;6p*C#2+pkX zW7rENiXxk5W{ty=n8f+8SlQUEPi7`2FM5-iIl za#e5>=@&iLlC*sM#203fmf_35vDRRXV8FMC^+dBwX`wDNF^4mRMs=1&P*5RHeqc z2&=miH5H?pE0m~-1!pT!buntXLY%o6l~kf?LjG*uY$d8LM!87PplmGI69PoFL?l`& zH8#XtHj6jnRBF?XLe&sNhTjUm4Plx>zrT+{1&=d@ryIr% zGN|53-oh`19J6Ytc+hD?ZLsg70<>&EI2dRrr9&PL38r|+e0k%P%2VOJ(ip#0mU|7~ zpv0)mbX>sIT14Ilh1|1fuxl!H1p}E%YGeaBk=+nC3K*)R-g7QBmv^#t+^$%Jfq zXcIInz|Hu1ZKsn<_mCH!5%3V-?Yz^>5UQcK1Mg9Ul{`jjaMc_pfO9dhI8c^y z_N&!qbN;bHM%eX@?WzQ$?)|D_cv_UC=&b=o$$xv__nw z3?iCZul}t_9@yj3QP6GMOz(|HWi^W0!muyYGy-AIrxfcs_%y8?;_iUh34wm9{9C;J zg$-dwLYYU>#5jBWRT^bIk@h}D6lP*TXj(`yjsFFzVr&Pa4d$S4wTlvlrB|WGsN6)dTB%BfXnuVFeL>^+g*{J z&>8IbKpF>T`x*|&*g$*KMai#*SPwUrYLY2b0{e}T#`H9Y>ji|Wf|_-DLn9L0moLO= zFJ-lD3_U1vYJbJ?i2cR!uK42F35+vU9LdmKYi;t5oyK3g@ed-dw7tw7yCuB8TQ*Qb)jFip=G#LcCP~M`&?Sf+?0Sh*6e56SMU=%yqTs$fYhW6&7b~lv>+3yIW zgwW25%c|ETfbPaug+!?~v%0X7?RY+g8b!XUqDYIhqG98MfSL-2`dU`g)2%LA+^#?c z(}+9^ZT9%8^b#f=HUcx*^H}hbo6S;fpBAn%4I`sTw+1zADkcwhJ7x#QC6SFb&qySO zBf`chQ7ptW(go_8nQHY6V6O~@AK+Wx7yO<8|H{Uqm=ciL5gNy?WoEUI+u@b(kMAaN znT{7ie!v=mGT9q!5l!q%l;R6ABL>!$=|Ghm!oWm3*@m@d?+EQoYYKR=IqWr?7*%Sb zf}+}F6#zF0aCb~-IxjPhkphIvF=E!TXLqJ5#fUS!VNO_6|Pc8B~^4aQc_F%TSA z-8KZ!I!%>TOWt$1Yb#&PdqhplVce(4wpdGZm}awe*C2vU_$%Le2L#PB0qBB5Dtm@C ztf1j>Z!miyX4+I@H_Ee(DVt9n(2q(AyrRXi>O28;1_U6xV}L2OrW6Pwf<{*h@B+iL zJBl`42THq@&hF@m5n~at2(}P&2nAKFuW?jGF-CNHj@Aexq#)~^^td@^F)||(&?h0p3-=5yZ(`@@RZtaQ;!Xe6M(^- zaO}rhbD&yyT1hXe$P22=oFt%9{nDpyeSc6!%0Qo#A=JAm28{~pp&`#lNOQu5-A{7F zo^wO6^;zQr1aGd1v~@0gy#R0)mML;Ulz`Qo-snZjQor;}@UaFrG0P!VDKsBZ>M%DE z`~v81qk(34fY6vk$n@IWT7kLOA8YNsKWR`1h2`X_&X6)vRz!Pm9gzA@ftx!=Y>!r6Tq!swSvoP}s(P zi(vSWFj%dryhH)9k=gT^Tv67BXL0Z>1P_oEI}5|HNzls19>J3{MUcNWkd}fpP*tfZ z)_VOzVb?GH<%IFWNv>ha+ka)F6PF__@*)lmGUu1TA)~VHJ2vVVgN(>jev>c@1}{}@ zc3k6)T+zVm$&hXcS@x87#s$h$^Rp;fh;2%Q^WznqLz_B&lM-HnB-W*9*?g4p<7vyL z)t)dUN9h`nQlMrzOEscxvIjENIx9-hJf^r*IrGBIN?lj& z@Bu_Ks`{nZRS*i9n8~YbSY@m>4OAuQVGh?ZBQiMKG&_~-RLhCY%!sQNYMV_F=V;oD z%WBf-!MFk*y$@vi{g=F@pC0uf2gN~e}5kw79Zt{HC z$`pd6zlV^xp^T??Gz!hBbvX!t|#`#>d3*%(d0YxUBP=W`~A8p;@2*vgdW zUYMv(7!GLfOueD0`6;MPhG@oO=!Xp3N)F6a5yP{hoOVfQL?||;7sD4+uWXzM=ocOr z=BrS{=usNr*ebT3HGkl9;TMLJEtf?%RiWh<^q3Y@1GvfCJ|)4Dhh6Lx+d>xW{ltYC z1P2=_zxnR@ynN0$!m1%FmLmb8AY&WVG6`d9qiQue7v`V{^U)v~u&hZKT+>(+B7o4~ zN%HGEjsr>|q4xV*6_lt9y#Dn4dSgtk(;E|g}`))2@6fEp*vLu}%oAI2m><|A}r zB~{t+viA4o*%(Y)_bOeJNO6yzfh-{?TB{cB;~y&)Yp`KH7f1xfT@G!?hAl1R?0^rX zs~&l7GK04=qfT#I^S`J8(rUcMPIw5lXj#yrY&2Eo8k=kFSMgPi?J6PNf@3CiJgQes z+HT;oTS^cmx@aB;sYgV8CJQoj6y$tzp0@L>chs-3y_&FjcxmGRv=gYGsqinXu+O+@ za5uQ9880Y@ZOzN$)8vG1F%TMrZ1x14O#ny`UsXcWK{1=wFs`DmTNQhc5HnG+3D56C zPDuT@V4Ij~_CbX8NDQG~4+0ZHRN*WSWS0&A`zsr#La~}6wRbZ8Y zZ;&M1Qi+RY6=!Tn`ET z@!q$5K;lki#ULJN&@lmGtG)VMsMLll7WtO1+4J2}l`re^V6^dkO&)iv8XBA9aZjib zW_np4c4Pw0afD9u=9CwCvW1ik48~*uV*cA2kf3R!E<}7H6_O@BX@l*jh?b)2>ZRi= za;C?_nRY}$R38k`@`X@pwWjMNq4jvcFp~$y5(j#D452Vv96_1JY)XTrJwSDo+RO@# z5ZibLxDAz!P~Zf?rs{TxEPCuyYwv_j(y)aGfMv#V(6r%#@}TK?ZA|mgSiRQ@sJ~1H zuo%U)t}%3MsBjcPyUBU_h~(I3SY?$m*)}Yjl?7zXYW}!{>mCy>8*Qmd_Iz7KAQ)7^ z+Bfi(2F9UqvI^XU*C>aZFj9{whMr)CRd35C&t>L(kE;>c)m0(SZwa8VglQm=Xhq-J zgytrRPYih3Ceo`P)TtyjAUHm$un|Z^iAdP+VvbLqqg5Da1{sUARM50CT0U6yR5V&$ z>sYLH)RG;ST#U^cT$tnP6+Y%2GU%o3hSNs8( zXd`iKuQSP~Ix*I}ICYl|-!MR28a9MQ(uvp%>vQu++HfFRrU$A?YMrnLp3Rm9wgmBCzIrcxh_&*y@-Cs=B&iU`t?+xq$a}Xa0mEM z?AGC&$|}s7DXak$5PhV6ipsi6RpXoJRc{C@!Ze|!l8|*|rNLsgHcbMRJFBX- z4n~~qMmj3i3lBhfF2JMHhhB^Xm?)Tjov#A(WYvJB?PB@@*x_x5GV?x4Thl&hl$;A# z^NE15(>hn+q&Mf%ID-g#J&_+_G>gqiId0t*{Hr-`eL59otEe0V7vIoIr?qbEbkDAj z<0)#TMjW6N1D#hpAn*RN!&8T{EMxQP$wX9cm(*ex9n$vwG%K z;T3v#SMQh*N?|sm{H6<{5~C8IOOL3W(rwT(lGg>|LB=GI2cQlfBc$XAEUG6BG25lV z9+3j~E*vszX$_Mm9VSXoAp-@W9UULk$!Dp?%;`{qxw0hGl#Z1OQ_^~jB;ND19;Bq_ zCn4(s;p@1_ov0)j(}Go1rshbHFcI*v&Xj=Zb!TkoSdajo+uWU%L3Qmcmn(I~t~?vG zy>ZRDZNwv6VPWKpF~T?!JW!k}Q32TU)ZKKW%n8s z)Ff|AC}+Z;a;@ND^ZY;wN7kh)sN+Cds69eUyyk#MphCApmqiU9#}vKu2my*(s_4k;aO*CLCUKki^iHtW8o0RvKCKJQJ#r zI62W}*GKQnjztfDFK0?2tTb#mB*W#wQH0v6P|cbQV%ea57y#AvAZs-uHUO&aMjRxQ zamq%`iXg<6Vl?(1YE%!nJF3=;4nW^DkwG<`=U@fjTo_W`h}j~K^}MEl@ioycPfQ6i zDzY2>HN4P@G-XV*7H2dP1dOO^adlX`r$2J3ym$$Dkz+*HQu+A>>2qZgyj^ z#9&yrYPFn3yR7M7fHnd2EZYFp`3c~Z58&7cQQvZUb*e4%S=Ao$p}3VsR@2uNIl}^F z4WTyZY@aWsmyZdw%jRmnJxhCK zVSbw_O*Nffjak%e#^>m_S8}Tx25FiUZBi*|u4M6clcXU5b{LspWS78Ki`_Prk@c{1 zUUWG|ccsx}>b9;m>h-KLTO*xzu2L}{^9Pxh%=u!*`t@ujOOqPPkSWEG>IoY_jAxxy zEi$EQv0YVpZE&!TYTVium}g@&TB=Um@NfDkDvNSjjj5xw8t2hykS7Ww`H;&b+q9$@ z49Co(Xe)T=$&k^dI#$#Cl=x+}2gsK<78Qy^%A{WC2<{xFao9);5cMUqw1lD1ggUx% z1&v1T#DF1PvWwFgQ4fmyXrmcqwE<$Qa$7#5qR+T;6@D2NJvOUYsAy9d-wFSf8szC3 zWd#f8T7|&X5>^GL=v8drq>Z;>oV;g9A3?xYYa{a3EqO~tzAQ+VuSo!HqVIF0Slud! zOOnS9cmYJs_@LHrXzca|Icn+-5xuZ4S81191=Cg~6H1qMq9B4p>1kmQ zc}@d6g@?fsItlm^oMXG|^v{|rkcd?q2z86P3M zM~93iOIrRE)jnwAdAAw>pwU)_J8-TEw1fL5$X21cylpSgWg}7Gf@@$=gWidLqWo;Zal&sqp zyr_3^Z)VxL~4DFnq&~DCa zy(h?_;b*!5(E8pe_K<1G3JqiDN+FPN!H+$ejuA*7Kvc2^X$v#|*xSTr&CpC%aw_J7 zd!WCmF;l+<8Kh-*4&cDo206pSTN4KX;?i%Gy`ot)?tq5ORWO^^5bxLbncN#u)Rhc3 z=TB3GKh;h0dE2Z*+-FLdaG6b@+ z68#uUwP+4qdeSNd;bw8hp_T)zFsjDsR~4HLQ>dfw!mC#i#(t`{0|^2zp42qP_643W zGmD67GwH_yf4uqdqTQ(!zG_x&`qt(5RcNIhht()brWk~lF=xUDNf(CLP5cXH$R=>! zIO{C}Yz;7(GvNX6Re@~|rN-y5K#>-TQ^sIUVwyS^h#5!wVpKNZrm4SHT4iN1oiimm zTV=D(gXofux3?;SD~buz(gx8&Q{e$6#hSZ=GSp^e71_^FT|S-dF+?d>S1HF_V#Hq1 zrWMq)7E{0UoPT$}(+Nik?X8vkfoP0XzyZb35ONIx?hTDO3otG?p;D{HbSxN}N9hWR zO)*K+opJzGg<`YC)Gxg#qL}yAJBskX#j;eYJrL=nQb9G+N#JFQVpe<$=p9JK*^pOD zOw8Sm(C&y(dqjwC7Yt5LU%rYEIc<2wRY%JsXD9*H7THyyx1}-&kdm&W3I;%iWAnO?1JInJEo=2UG7uxeg!JCwriDMRwp9|;4R7*6G81Ch z#s_(7p@B`I^?XjD02#H3;9rCof$NuE99dNilH%??GJQm|+h~Pm2+4@ijJ0r`;Az1T zXkQbGyFXH8VPb7|sS6!W1n@FrfwpW9Sz%=Z=}~*3s%;VEm?2QV^x1#&u2{ARm=Zdv zffGjRaii7J6Hu@8Lq}v=D1ME1N{$4(Aq~5WwLN9c|dFYj26TQ&)4n!~XJ&(067q>;6 zu~-``;G{BPZbOtv?^ic8wp*6^rJsuEsr$i6vpTtjSDfXGCK4pt5_|Jy+~932t9@oR+Ii@)F}a1@x9?pM>Ln=o&3VD9~dC%#1ASfZ%r< zFz-*r*q^$qGqPL|A_3VjU#U~`oIs)b2HG)i$}}=$nW2j@bOP7_UasP51_!>p;2*;*!Tn65HfJh6gUTtJ#Gq1oP^3dU2R z02n6?jj`z-%RC=rO8MH(RLN^#S7)`?FD*xO#uQptnTM#fkkth{E>m6;8lLti(9uh}mR>ZZC$c9t&x zqPl8UP2i_O@_LSQ0cdx5FqM<2)17SM?z^BZYNIvENNi0O7E~mAiI6enVGOh-kW>Vs@g( zt*Xmc`WsCjkj?yh;?NPu8$Obd`*X)_5i6&-bCaQy@1H{tv^{BtB+Umyd3~86v)yUD7>qk^P|1TPLgK{7hFlmj>Iv}x^)Tvb*Hif*<=0LAWCu@@Dk^FOFi z<9^2$YjkMJRbx&7!&=QS86hjmV6`>Fstwr8M{-^>Cj^IdTFCUoIvf}k6-)L0A&;d4 zJ5D*m4wL1UD5xxpE$6+RoT3#rsMRn1^+k-0KpGx!kZ0MKR9ESwNzlI5^bF}6^A(N8 zTVI`zTbpy7BC7IRnnR$T(|rOVIk<=@QR*cjVI)exiPrO)h+?KvUs7>*1|?4ODELek z@tKb?FmDE}Jfb=?9cBQs408IkP6{)DaaK4VMHENm>W};8KL@2ZMNDUSEhDP%#l|Tmg5X`s1d&=9gp)m<1U0dhu(j`eZxI|9l1Xu$|(O2z#f zOy69U7i$qOQ9jJ$wzPz(I37C7?cAj>tJ>UJk%zI+^HGDD`eTm+737MQUWheYk5q=a zX>{y}@`g8g(9771wN-#GqEVOTwXrOxdAEuun%x#$3nql6MO1vvI&PO3nwn}e zW0ERlG2kLC@5q9uHbH=EZQe(N#mr+*cH;RU-Cij~^}Z*@KyEt?;q&$#Huy(6c0uzU z+f3(p9!=?Y%nD3Y;6>4b$Zqw)2ugdBLDAMnU-QD{=_ za`kOhD5LdrDC8M!uY{#o;0C!fg&hMy7|<@(SV-#wg9a>MxZ#!f^}*yF+hGI+YjwY4 z@1_$d_pp&eRjbWngj3QOOi@KSmNtYat5E_hHMp zYm+xh)?ylCGXj8b_KI=yQ@4XgaowZ*WY}WFba{7VBW9ajPZq{QOW19@Ng!sWv2GS3 zKAdL?*XHdQ2g5&z6kYLaq6!0KUFaU!zHQ$1_06--6iocUgAtzLl4vxTdS(5wuLPQA zhexWkHI3V7j6z*c`cT!E1*}lgE&*ppsy1+wiwzpuD5UtL(n-sq?b*$l1Odbfv&=WoZOp1^6V?bG0;H#w9fU=?Ys@jQAGlTkm=U}M*MX7J|;+h6~ zbF(t+Ma6k!sB!K2>ncnmjY9&VBmSr*Y z$Wbp>8BAQ4o3d8^cBp0&=|$v^Xf#H4+H4mv*gkI)J*CM*UteRsYs~iT)EkD1g2=0` z5cJG>=E;K}E>x4qXf}Cmkd5q)5zAYD?Bt7#6X)*rju+2{qjyue1YtWc|s zbe*03#ILC>Vn*UtmafQ@7HdI^n&L{@Q8S8ePGT7o8kP(^EVysGU-dP}7}3nr0P zXL{!DmZ<&L2VX5v)3>=c@Mbq|lZe>P&!o`c^U9yA_A{710&kD#Yw-BC*wNf0r&MsDJFDe-2t(I$j_?NY5OxYg0XutGJ;U`;`I>W@7v z$iTI6JnI`%y^x|x*P7f|6s+#knfNAYU~eG)RUoLRugAN%eW^;4q>j;<(Q-1DvAFtU zkNk#pmunkBW!b(>uB(R&Hs)t{Oi4*YNIN0@ZsDx+8aZ?VBHk^Xqy0m3e&&_bU+DE` zqJRXFkxWe`#J=^M)Aj+S{!FQSA*#6lP282hM^R+`3CTb}pl5_=L;?eZmBXw=&2DhX zI%5(ukswj7prCj~Tn|uZ09TR0nStpYXN?EydhFuOswlfI;ZPt4Bmu7gx}vxmL8QmX zp=b=}eE;{Vx~C_H#~!~A&2)G5tEyM8Uj6IUtD})Tx$pEC%Vf!U{|%=yO<2pkHJmrL zr`_fU>>+pBj}F@b%*X_H$jIc~DU0(lNQKza!Lm zP(UMgaGmAnWUe@tOb zlzbDSArIW)JYP{$Wn1xRPunWFdk;@gbSJY#_c)eKHewoF36pC{18F9bV*HjSh|UJ- zD7IUhD-#t=Vayu+$WiH1qk@qz$9QrzB`kZ&6JUwVi7E;M%X~8B9%77-RH3;ogg&R2 zLk6<_%p38j#MnGNkErSpZ5jsz4DS(HG7A9DuK53bn9XM+ZbB!H0z?xodd^ z8omlRgP!68&l)}cRMu~DqR@miLZ@w{RI7=+MA)+t$uSPo=fK%S3?yc60ca&o_@s11 z8$&`eoLoZ`gV~o!q*B1UNCF2+Q8bxjS@2QPAziwLnP|5T7R8$SB)40z5iBFr;hN*N z4$CG)DZz4QcJ;st8ORME6-DNh-g&J{C%8ave8v)E%uNu(_LBgvd}`*IlC={&43cYuO%wPIA0dF<1m6nGANL+ZAp`^ zOyAxuSP19`L!omJC9+!|U7){vRJ1p{wa^E|Ff0;@w9sElj>Z5>sV>lXtsjGsatb>5 z6$uaZC+cnLx}_9TH$O@db7d28ENYatEPzqk2}H4II{+SGl*<8~n;yx$#EdbG9|h4& zgrb(w4-Hy~tVtN@q$->+mm8WSy`(d!X_$wh(nt|G$mM8=%WNVaaseWB?qDP0#AxOP zrZyJ@%Ux0>BSw%^dql%{(w&jfz?;Z05yiGdqZ`yS_4DHNGAxjzd-g&~qdr$81Lycs zlvT98c=}X3T>a1_llCs7ND11j#kKbhapV!L*&;<1?islagB|8Kn;rvJ9ub zPg-&difLkEl;n=q|05;~TCDhId_Ye!lcEMWdk_$4Kp%W43WqbJ$bi-UIX=ZaPQ^us zI5c8G)*)wzFm}7M-aa8YlJa6GCj(t7>`E#AvL)nwB|hOaC(Ck?~NdNiOqx1@Qkx^3Tg0n?@+meI2;y!za zPF*D`)1Gz7@AaUNp4|x}Xto~lr8{*hXM&DWhO|-!7pYZEBxSasZ~`5PMz1SFdz>a& zOXW?(;}t}jpwS288Z8Ha>nk^AZh#4bo-6H_cp78`Q&8P+HPoVDf%xX+G zve+ygZblLuc+|$8Y1V35uATF)E=x9W!M;>qr>;D&NVvqwgQQ}J^0B~Fd)5Tmsbk7g zsINWC0@WVVQ(1g9JJ0|iGoTJ@@KFlOYWi_UGVY#pmZkYr`mUBz`L$A6?T(yVNq?x& zltb=o4*Ino{^}(6qav&mBTdcp(%hupS4vVt*ER;YuuoRnh zhxaUeS*+)#RHV0oe(;&GQYs3ya%8+3?;(pIbxXyg4|^tx?`@~_cB`!=Y7JfmdeJ*7 zCzY(L+g}4^vIndb>b6!P89ZLl>Kx)szL&^u9{pRvzz-#lpb= zA_c2F-ThjU$`AA^5W*+O@bPN04NV`fF2n~$@fAyQ5P~ZHAb@{t0igx1l;;^_+!5 z`VbG|tMS+1i|Y6yStD1!Jy7eUnuw%0-PKJ<#TKwOpd?7HAUQX830LLj>}~DiS8yF6 zz6A*-#BbE&J7sO^YU%#Pt3*(H%@NRrebs@-Ah&?Bbl+lix4l6$`&NFu}xhA76d{YOzt@C~KPsGDU}JAx=Biij^=TPGl* zh_acZ*!YW`_^Mp559tlQo90^=N(a-prAcV0ahY`h=SHa`q{>Ub))C8?103Wf>nXDV zH_=&8C4+kv+!NQ#sT;r8K17TZ;1-65b|F{*PjfkW^gkd$XGGQ!nI(`hFA1iD#j2vO zSC|qW-+@?ik&?G1Q7n7*kywy2i)BNp!4JGQQYd2(?YD@=LP5cBY7N9{(}m7YsoE2q zkdOe9v&pYg;w^S73jx4Gr{65)8(QpuA}kZ3`2LZ8vl=(ib0XZX_@k;Muni;Q%uz&B zy_JB)$G_9-&2C~vW-(7s*{9!xD2v5^pe*niT}pnak-Rx+HBqTbWB-BIF@sZF|5_T5pBv@0dXFqhV&e13eLZTDU z3o;v9j90pin>BZyPQ6qwZl+;Jvdf+LpE}E+B5vW*a0+4CvrZVV*f=BVm!t?WMIp*& z&nhzn-K6trHKdxV2mRd$(sapPDTTS*Vu(pE^KzNGu(Ml;5R6$;&64v`N25#bL8=9i zuuDx(1*;|X>|Yadg31U35950&YyC@FS*3;q4~mW^XFZWnslPK`t{ySsJ3UF zdW$Ye>AG3z)+PCd@rp-ml;#bFaHW>mvraLDyF=%@)(CPCQxtJ_T;94QGo)~r>z-9M z^4OeP-e3q9>hcdFgqZZHB0)l@9{ z79hKsaz~Fabse{V%vXu4JtyZT;f9f>cRUZukOvs_hVq~j@;P_7{%GmGc%VULLLNLW zfsEPn^oUFy`OBOs1AX$GGtiT1lL3{8bK|2jPzX8j$))^S@q=Lzgx*3KfI&K}i9Li5 z>09Ti%zB4NqB_5Ov3w@YLMG&0+@Tjtp^;eE6 zg~LOZovQ(=Drd}?ZRGPlGAmnRBa8#j55z^cj`<@_I8CqzPNmmknGotqZXROlm6qm# zhTV)M7$PEKglk3AQ{4S6<;^Y>=!Nhi(b|ob6#@`!5h+T0TE0N5sc#c+l|r5?OJz^S zb$ykDxFsAJ7}H24A;9V;Ku5OZ<+3#Pj9CKPxZw7zr*sTsaUpC?@j+YTF`ZI(R%PzMp7&u8eR4;$jq8p8h`ok91aq zvX$a$&#}z>UxLTgGIa=KoyhUO3?9{#fdL*ur}UhD7G$9MSaC+(z|}{K*U+@e2tS~* z0+I;GQIa@#JlYv}NGXd(nr@^d8`sZ(k{xC!N!OudhlG-R!K?%hrqx?r95{j;4xp+t zu#sUy@c6^9u_F!}?1P%RP8L~qXmPYaL-Y!6+#VC_5EGYpJ z_lgNI!UkhWr}exMb&TYe$X5bK<_PvzmI*US z071qK^iG5uLr*1`(Y2(^h(2oyVXia#@;*mF*imR3;O&zSI{+Cip~83ZJTb@Jp=9ZqKGW{5+m5x!Uc zU$RBYRyvTms2H|t>^bYN;i7riNa5Fd$NcZuA?ql8G#s`Q*bo_Tt&u)=D5zt~AKic4 zkRp4)Fb>F4_=z^iJxDtaBSwRl4MykXX90>CCzcXU=(_Vyy&QxvD`ybGNXsw5{t)Gl zPp13~&}cG)hC>I9CJ7p+Tqos7xWxG<+8-QSZ=i7)(dT6hzDVC@Q)fjhN!v}+G;#Gw zTPzhht&>8~DcJ~tq=OtT8?2l)BGbb`O$(@U2H2&lVPA5PnIkNtAoftxg3`A32e%MV z@wB}OPz3K{nucu*N=2^o)&1NN$vGP$3CJR=iY-DmOqS}%B4un(TU!p<60*ow0$DPJ z#8_$hJ^^6xGe~fJa+ySt<-~xY~23T=~B=T-M0cA>VZ($N#e7l0L(XIMQ&D zIsGi0(P3pV5@c<0Qe&I>!-mVU&I}hRWns9uDJ9JS6IAbykAaqG3^Ua5QCEDA8e|iQ zc|wbRQgAA*7EZr&xJh7$afEr-5r@9~#tj`}V1x){`e+bBz@m|s>V$H07lq5h8zVck zM{rdyD@5Q7a}~##wg98+y;#kTiDGKM9RQBt{zm|Z`IKEi0^kUNnMOj(biiT3qDiJ* zavvb&T4hno6x)In1_o<=>8t~cYaV!c_Z>88vHdW*VVZmxNI)(Zqx z6fDGN&v}@#2K)@u;ipi7-*Ua8{~>`)(a`4nJ%2>$?@Roqhec`lbxqBmP9uJ)W= zm;Eonr{HptI)RVK@xKf{&rk;F`Z{sB$UJ`*3{gMjB)phS$fGOQk$6esqox&|fsd53 z349Lz4DewLEn7KCnmOlBV;z%j7Ul}tyW}8VC)zulN9O>Pz!U=z^RMH|4*}4@P5?*> zzzje<11~L}LU2yCBan#Miz5-r(2>Q%O{4<=65Rg?05P8(0T4?~nr3YAtk407r3_?Y z56na%>XkGpV^n>N0tuojr*lO}hszR90&V}GjyDezSP`&rNeQS@(D@=nx?+As07dUv zY=mFWiud-co%$U|8=m3la_c|CsL_r}IhzPBnw?(uajByzV zMdnQXke%4Mi3u;I{-aFQ5yjruih7iC|?CIxA*`V!O+@ zqE@y_n95is@C+@SGzRopdj!2bV;bQM=YWX!5u=o@U<|Xt5^XB4kSR)QC}R)9lRalT z!5I*7wS=Kw(t4XGVQ8Iv&Xq89v$WV+<#PrwZ%mr9C~c>htO{1~bQaKnC##lNbdd7t z{^qI#tI4NZO-@p9;c}r*XZ+h%6HX9l3sBXUa2X{)(Q7^Ze+!^Q0>C~UpaxxPr2n4* zlwOS$dV)M#b&y)=4_Hi+pPva*ag(TubP8Fs3;KOMYbRlZk04Aceu9HY=`3odJg9))KS#qX5MXqyvBw-0J{^JVhsq)@<@TGoKwHk*uk>f2c~gmRPuiVrwTt zy1LnvB}BcF*URXYzk>pi;S!DvRImtx!k%$rl6dnZmyrPLW$Kl6J1JuTAr=7-3yc7& zgb)xn8MXQ=W|2Z}C6v+|&*#JyvT{nK>Pyf_SxZ3LD4(n3vxk5W?|l-WGNt|Jlz{Y} ze70aMBw=Yl+F@1l`CLLma2k;dUu?mUM5g7b604RpNIUAu5YWk}hUeT2Q4DPosJ?3h zBm%X_D@?v$ZnT(9kI$%^XS=b#S^^cJ5dQ2rj&WQz2~_l2PoIn}qk&WUhNGFh&OFEc zkxnaTyrE*m1Py4`iKGN%(Oy#8#$eC6HJ%-U44)*qt|`BWnE^3_5354K1fuBl335Um<3nBqri;-jRw%+GnC|wp>H@-`qYkiy9`);fEU??*i-*QE;V!kiXu>a|;E>e&-+fqm@y5<9_k zAtD6?$zb+dBS*;-yNp06wU2hU3fVa55@`^5t)%sABqOSLk$fsLd(%i}8JCs#uF|J?q)t;1U*p$g=YT~!@TKIDGMt$qs06wug-Rwd#$ z1!p{6Me79fc>yd4Xu&9H7OKJSU%}IDcKMtLKhG@?6<5(eM3$MT$Tgn$NQD0N74R;JgOp(eAp+bII$VjOj#Ptvau(6tCGu8JH z3J6B4WL#YB{?!bacE67su-)(G9$hTOrKZJ1a;<`&=Nu7fDQZ+_lZmi0atau6*ZT>> z=^t*Xp7>VvH}w}BNe7-^j+p&qqPoMV5o1}n7YoogIxer(&j0LCto)bCzyPPg>o=)> zU6WiBCvheFzj7zkYHoIw_M+`X47H)vj6EI;RCzL#O8=grl*OH?v^d-MM*USl>@Lb8 zJF18XHxCdIzCLoCBi?aBTo;*Wg+S=23$F zjqU=qNvveAEw2baxcYR9CG1Z<1&iXhDS>;@c@1yO+l$Mb4anUc!KMi9`QcceTAAO^ z9iEVib?}huW|A%buxuR*(jzJNpwdDXFpjG)MO-V6fg@BP1E8JuxRP>?(&j~u#b~oY z`V0p)3tWb*L}J5eE%7$M?wjt&osR5%+N(2;#oYDzr6k_$7UHHp-%SrCk(V5#WcB$@ zdc<|6yv~r40 z8Mw!*nTkE^6v1Q55Ihg}pe*G}cqT5MDRO@Tb{u?Hq8`8!e{HiTof3M65>)Jz&r6hu zVxMWl{c9rjYzlv!@=@&bM&bVP*?eE-be?x(|Jzm|MCXWEsPj{ENODK~Ovy1DI}9;Ff6AHZmcs1MMWHRxWTy6UPT1R$`Uf;4Tq}IX zND~Usp!YN#LapANHh&dCGq#(L;rqrUJo8(rHYiGIBQJ@3bs*_034``oGCgeJxeSg}Cm~Y)y z5MzJQAMi_o7o1C*b0(s+*qoD&rS_>|-!Z&XgR4>C>9yrt{xCm*V!t~)E;W2VQ4FtH zc!Yp_&POe-UnP0p)AlYW!H!E`55ObAdau+4J1*SCQWs=)k!L+81{%xsXg(IzgKy%* zJr4VE05=D;^;6M<;`;D3!T2kmi|g}$7X|v|bn!fSZazVih-#=g})5&udcdaVItYHrB-TvY`U6 zv;n_394l7q+^C=4B*A*^jrm9n=_{31HRG3-67~BM_1xOxaMxn>meg3OEl{Nd$-%Ew zrrm(|?(mrHZne=JjCpMCaJN`#DqfV*3k24uY)2-RF;->qB`8N>(&sM!z9c2+jKyLb z9F+f`haN_K)gyl;FwrXdm9>tGk-Q!MJ8kZWb@zQEEamEy{%*A!p5BJqAcy_^DTi6; z+s154!VY`1R^jp^iDDHSazIw1WV7<6GR&iVINIWyHaS;6T)?5;&W-hoNRK7y(=w%GyYDONnlPiLM7;2_4Yx0Oir+ zthXD|iLPZxyhM*f|LXvuD8d=ukyI+&t@QMxdYMezCDhA%oQ#v?IT|myZbsoI`h`rN z`FI%V>-^q>7wbvwiRtOY%4{YLAjo3LBb&u@$DH%?EF`ADL_FqM0O(5a36O1A0UE8y zl-xN8rIa2#8!7z)4+59+d?55p%_G%Nf>%*gQWdSIDQYVql%meeMAT-+Xp5lwVsM<_ zZIY@BWw42}+4IvjI}0)^+5p(5R3r^7w^pb~U|cWl>dwgVqr{`w@B zKju&Z?<0vq<(U(=ej@gEw@9h% z)j%)8W8QSD4G9gj*Q*?(0ebW%%8Yh0$Ja)eAS5Agq`wf!V$!9X#W@3BE0lrLvsynIQ_EjRYW@@eUvla*@U^_P~U=rO#fF(}m`l*$%e-ZtO{(oHi(75I+# zHqbkLe5*Z!DulM)6(XSeR4Zsgn*O}6kdejP-K}Qq#@*$$?nvI*QypZ&?0yR%DdN*; zz?V0bNb9YO>4JaCaBBr_arqN2-fmH-ajd+;)Yq{dQT~(Mk*rJ*O~~Gf?u~ko-gpXZ z^9(7kP%2U9cWtte0*{1t`)iY8rRgAPKINB|-0io0T5nAQG5v!Ir(Ukx9iYS8>gFbM zX;EL4A7U>@Y}dqM^%&*73=hZ~84gXzZwT@$QNQ3U9f&kfWce{+F3{FTnTmWi%OKI8 zyQW}7cNqP+dIDX!`W^al^*zeye36kXOl>fm>*w(>+@Ad}d}Fq>w{FrV?ue zjR|gKx(AF8V^5~{wPEW{lxSqtW6>H zgOez-A%r_^)mw*Rb^d!vKQ2#Dc%dH?)}pHr^b5voe_-N;M6CV!O~s=6sU{K6Xdlj& zPtvRWP067mXRVM|krSKY$8=F1u1ZK=>NonH9Iy@*ZEs&vd{dl?f9E;ct^Z-zv_4{) z;=98|slIs^pf`RPA-X38?Ra)!c9k4aN^XKzy~Z%+^9!=%hd$|XdoJX8}aMJu!x_5rF?_WCt0)lJEfz7b-hJ5+3f z&EM41zw1!G}`-u1@S5J%evy*|LN-!CO+Ap>M%vMcsjLh#py74wA zTqicv|9hZNtE-}2{GTP|ZdC$gTKRV+`J0Yb@9M(2EK5-WH3+TG?+c`jX`gIH{pI%$ z=l2a(c~ek_722B!Lb7=aVEHMF_kmcgUX5R$`-aT}gUy$?tD{4=YeVw;a;8ga)N0CY zi>C(S=-x;U9F#_>ya;=t(_VNH7Dafi5Z$RI;R_&-t;>?U-Lkg@HbX!pwaZ;(;Ug0i zU;qkG6-{CGy@kHKG(5xFp>p{0j@juUPzt_5j}lO**56bDC2$^IMn~f(jxSXH1J%1y zMEPw>K*4K{?cAq*0>3QEA3cg*O6V_@3Y9w&r7_j2^;WsQC*@z5-Qw~ew|dgxo9l^D{KpdkMGurkT5mJrLH%oO6gD~*NLK^*AXn$JbODytBvtio%hvH=4bjjG1&2ir;H zZcHu5ZAv$#(n1jlc>J1U%oTGQAQ#3Tl)sqDkFr~vE_GNgM6riau~WF%UCqVri~Rn* z^77FURNji{45(9^J|ZqnQQz>^(ui0+1Q9qA{I&4H`|?gxerf5dEN($z02e*+gduRn zB@WXNIG$ojq}N!yGV~iUcJ`)m-{;gzmqe_Ec)JFpP61r&=?-Eng#~nfJ!S|hx0k4& zWw%87K7bK_Wa7z?^)_t^WL$z2AYhXh+Jj;_q@e(hXs@?R9hT<%B#z>F;3Yh$;VT|nGk*xzkP5FTgKJjO5- zEHtl`&o}X8Dl}jYQ-Na`RCs<5rN1dt!DDtyN#xp0n|AZ>T9KV~CbDKB;Z>m;WsGN0 zF$|M?Q@f^)rG<#c(~)tip0MT0<7 zfS}F>0Bs}bIJ65Wkt9}El&h}rw3OzDwdH6-@x}=Jp#Ir4F}sCYI9ecd!layN-e{Ow zEc zF9Y!gA|BLz81h(~%WPtJ5$%gu+I?sU0JjQ5qxlC>a6*6 zt5g>C^Jb0d;_2-UFA#pY^t$|hU1(tUI1BGi+vRMwTVhS3pB|IsDTovM@;>N}bUel2 z@1wCOOeQl%@$bYijwU~lUQ#>_qes^5Rvu8VLL##LBB5s!6FM6SHLv9QCXc7+(b~be z+rPkOVHELXy2BG0Py6z$s}g(>rkjqbG!BBnU?~Y_Eqn^L1+*uU_9=!ft~ba!C=Sn; zt{0nobfXfy4pFmrmPB&i15?d|;zEWTfYbAB7VkKWU;IZMN?;IZUCJ{b-wqdcA*@$vfYgFPu=2C$SBDe&mjI# z#Ak?r_fe*ymsmY8JzB0Dmid!@VPc-zKa`@?9a)f$sd*dH;}AJDPwDGZ^9dYqdsDZT zFFfJ5%pFngKXU%uOtn#2)#CrG8+SV8)mrlQUCOGe8>#|GG3lWD(bS3EY~Yn1MSIob zpULrm(Q*9mx5ZO%PzpkRt|{5@xE%oQ#YAs~X(OP`EF0N>GZWCUEW2toc}D@ey=^6! zaqLOGLC+G*2*Z&+Ez>UKNbhY<0`5y_de=@rgXkxleq2&tiy>9aF`$#o-t2E!!6V!f z6}Irkq!5Pm1Re`FQ4ujH!_?fQd+{^<36SG@-OI|V!Z)%vugzxx%!=Fvt)K)I`vhBw zx?izh?ojL}DfVkdm80*NZf~@8DtnC)t}pkGsPC6rZR$QN=z|vEOb} z>~|ue{81tWm+x4r63k~kFUTx2I#{m)keF%eS+!qR)7lOnxa0cuZJ_$McutD`(a>8| zpz)s23HCG&s!NB^bE&VhUesp&2kfT0luV0z^+zXv`1P~Tzq*22rhRo6C?3_qX^9yl`$e&8^gdMQwBixON6uCrTWHm2sP!pf7irz2EI zgu`9xCYc6DhWD&6u+Mu241B^9lhKt=MpuEVkyFXgUrwS#-Q}taWO6G6Ck>F&dYYx- zbW598q20!|Mdv{B+Q%ErU6x_5PjH9Na@S)e3T7U1A#Cm0lgP8mvoUipwKZuD;lWHy z=+wK_bZrrGfW3KgiCFnyYLYYw17s&BGMrAs0OsB^na5(af2Ile$Pmr`T$_$;^h6j> zM0l*R`B^tkx%&$c9r+%>AWf%=cLfIi0B??ae->U5z9it)I>i40ysGT+!+3R&Y!v*{ zml9F>KZsZU6AR{^!EiIEW4Nhq>Skb7yvU-yfL9cMIL9B-as2PM$rJ=u8U4SDZR?+k zR#1pK0mg(^-GNNqVe#sCg`Td*Aj^Wm)PQ<3YEctv3s?dt8LvXuX7=W0u$DAU!j;>< z&nKD#aAcehKa(m1#!O#|hwD}_#t3*iX{`$p38n-_T_d3dbT<>Sc^gH{`Av8zJZOqJ zQpW5Ul&<&*p!D<`XgS*Z^8$|sBV7__2Ji^t zJ?&M<7m^*=tt~kHkj8O)qqY_YCu`Ss;B*hNY7b5hg#IWv4Q>xkzfA-u*ew7^iA&tt zfJ;?vaOn+!OLr136}(Q6@3e^V1-vJ5JW7YKwZ7dF@Tk{qKM#-6Fp&5uc=UGH{{kMF z;E?qtyDD_wW00#ebg*vm~aybo5qIjx*LI*aNO9YjQ`!=Etz4 zB$D+9XjR-r*ls{t4*%Q9WM1Ltrp&&CV>oludhDSr48u;sU;xHE+4RDo$Nb1cnNNU! zcX&2hk2LFHxsStHwp1=M@6&O$lohLQaL8rjF!MX8n7lCc=%;wr*Ql`4)Z(xpLy!_E zq!E#BFx=XuU7MUk!yYymWF(rp@ln1dqctUXK3)S2`ks$81dbvAb+I3EbE);@B76%0 zC`3W#i0o}NfbwM8Lp6}@DWN(tDdEMQn4#BIi_Y5*RMtlwSC(C`EG0nx6F0_UZvW9_ z?@~QUymyBy1m|BW!QCJtGf6jbbTS}>uv8+wuIAAfRG_puJKp2zgi>mHe9mxmvl7fk z?PCtR&A9yvXzZ{8wbf))N_%mA58|XzPd2(7@d%K}VFIV`n#h9?xL{wOhX`;AO#Uhv4rEUc+`ja6vc=VX zBM+YM^6oA#41TTzXdM!K-XFVKHe$+U2L>rEwOy3p3w)EJ1n2M#toK5`u_?j6eB(gP zLIqoDol5ZUeB)Ds3+bjF>6G#f(izA%NM}FtX{kp#_ZNjl+9=OTE*3UUjqL z?S-z7!G`gThV<)gAi~Txt#42&OE1*GD9>n+k7rqeA39rE}1npg9CTHJ;FQuX)O^Lw}&rl2yL(QP?JemwQsnh+1>5`N{c_JNIV@QwIH*h)T5?!rN3FIWwiFK8E2Qi_~bmN)MsRXcc z+RUF-q}QO+oxyaF-*&WdQ#r_rLcU9Ny4X?57xH^Lk&diu(9P57K43b?@76>*=p@mV z>U6I%9pvXsq=PyV-7uYQG1EbQ3e&}#tFZT?t4_3<$D$`uUOP@Q5cUHAjJ#jj+sF|{L+>?Cut6S= zHvU0$v=2tIc*uZ5?lE7Z9{AsMtV>X(vWtlHNYbxHHB05n6{n62$vX=DE-}J7(!GRw4 zROZK_Q*atyF1T_(r7kybVmOf z?Sn_?3q}gjQ~5RkQgprBqVoV27!-=<^@J6s{&+rKk{)-^ld>t;|JC;X3sO91f-##* z#_Us+pAy(izmn8$V1t5_TNLJPV#7N>1UpeK_u^_$|pioqx{|+C=(-3Bi#m>|*DQGtSFv zwXUx~DhA#Fp9q@PjK_}&pOUbG0MO9oV?cw+oFJ%*BcAZbvLguY*jlzHa04?L^V7OP8DtR5~8 zZdL*(&{86<7_GiKsD1zl3IB}}nKYr?-`ZPQ^c7yC5_Z9m{Rn@WTir2E-R)Mt#FrXU zi>r61mUM3_?%wRK-i2|62yu7+$lYBl?!MC;Skir$yZerD-FNF$dOSUjh@d}pM2Q@_ ze_4WxX{3bdW(Q@3A$kMngqwqI^&sU$+;j(vbOFW0%qIHL)Gg)JU#9rK#9{<&?&*6e z2vXdUiKmR>`hv5vAQK12&niK}*zth7iJ1*pTivMG-Ec{k9;8F-KUBB)cO7i0R+PYB zfe`AO!?#EBV-QwXWzpLZ90^HTRf9VD5^}>lY=5U))wtA2hf2Eh9m-AtkP=-w3oKTX zOGM0{MlaH8DpvC$oS%|`j38M-Je#`1-_)8^Q$D&@3DA016ofZHB^@jX*$P6=Bxh(| zm&gT4<)f>WMK3ZzRYwF}n1D=KxcfUINCv^2n>u-!LNCX6^3qB#&&ErCP1p7*myg~$ zCyi@2r*%C1PZHz*>}}EE68E_MMXb+# zsQ2GXQ66JB+41<_)O_38{|gZtM*rldxc$FJxBnL&B?$I5bu0bb@CnC^G- z4NUio_y(r?X?%kr03Eo_Lx5F$gCW2ox}hP!B)-8AAd_#9&LQN*sZ92%90yo* zx(!SRJND8-yIJNDZ|`&o_yLONX$)4`6dO{A0K zfEha7K&FEo`#>U{90%m;bl)GO@?sotRU(}n2iSDFcZrV10izP>K++=#yGX>5g*(As7vInH@^m>aGfZt{6s}d82UQ33!cUt zcG!B(J+zADS=OLWAa>$G0)Jz zk+&4D*>6=zH}L4FdteW)y@Z}%$*XnRx&tt^C87Eee7yHUht}K9U~;%}>UdXZlJ?x( zWa9FRUpg#ecOGxcQzmtxgtSKv9*Hp$(h34{Jc<Ei_t^yhVJG7^dj`0USRdO?&}$yQbwd9)G*cSy z5q-TOSB{!!Pr0VRL*<%W%*)N!z4YRXFVfC2YLt`KorhntUojnOT1ey0u2NR9O1Q(k z%OsNGi}d%g4T!l$tQlDA zk%5u?vtOqy{Y~A-5tuQ26W0DJmHS-7zly#B{gU>Y+URd^MkX8?{r=p3uE@m9BR6ar zKJC7mg@>P+o!3KIoP(x?;Z0=1QJvsuBEb_(V2eyRrV|`XBuGXh_BW(PCLGrZjwcd) z$pk5p2`6-d6NvK*6gwnkenT+Z1o(`w)#6T|`f)g`S);b^r zcAgf8*Du9A?frEK>$(8ymy*4$VDxq+a659zt{VL>W$|JVxo&ui#K1}_WHIMiwAoqfdAo>i6!*m<7ej>$z@}Rq&TD=mLu#Q#{Vl zU6}(xyvYTkYArJ|#;G<`?@b=ws=m91stQXN{Cg3hASGk?;q9&drX+tY7OQSdRsX3} zHb%xCuHMy6Z5;i!vUn`;*%c|sJbXigskRoKgH~GFnUTZl7PtDr&u8R)mkLI{Bt|ZUQLHmkV=(e1*a9OH z`(|uEg2mvNXaFN6U_{tm>i-)bSdkswgK4P$Z$6U2$KC($e1M5*V4~vxuRgFtAo>WF zDg6J|N76R1kqtIvJHh^*eiE3l@RM=M1W-J=q|J;{r(2NejynQq2~C-4wnO{&$@qM# z7;9jkCRX(E{3?dsZ;MS&>UXp(kz8}m+_|TFvfbfij3wX3-+O@1@35dSR$7LcgPzXN zji(ocuIXP8x-mn{K=5FuB6muE@0Q&08Qx9Jn&E%MZjj2&U>`}e#AcMmdqd$*Mdwzz z832-w3DN4$Y@zpH_jGS4=w783jWUg8;{FWqH!7ij945B3xRN{rNf4OylO7Qz7$ivd zZyY84uS(_Qz#aeg<_@8_B05u~PI0Jy8RLJXeYuco!HfY9NyKSD<)FxNJu8=?)V|zM+$O_ z&hXw}kUM^uH_Qp;77h0zZaZ$^APXL1?PFs@IGH~-uz+SrAj6Ebe=bVxOYi&1KFD>Kk{&0Dhm9t zUS6^xN=deO8EKE|+f zW-%5^6&0K}>vYfX0_q;I?1@Tv5=wP?XgZqSb>^lg>gl{I`+K()oOgYO_pRn#;9K{* zQ5!`fl118b6t6E@AouJL2N|#b+Dx;Ib4R#UtS~9!rE`zrO=t?%?-jX;@Ns$^eLq5I*eQ;MtcX_kul@hGx zhu?{ZH~8TS@$f1?TqYi#=7-7RL9F|}h#vy0`ORQF;1r_aD15lc*q^$ri+7AKkKS24 zx38tr3C@yOF6xw11Zz0}6u}yeZt9Bqik&9q6)ceThE&w?LMZCoQ<^uC{K7@ES&reN zTzMTMuQU1TTW~Up=tFb#VIenWadFoijw3ee?)IIuR3gob3pTD_?900bcNW^OHkEI{ z|3to-+5I+H`0-y3^~>rf*JY z(-j5hjqC4y|GaS--p1xH(4OISU#($0^QZ3*tF_vI`xVT(jVwG@{qXxkgsB7@Tce}5 zD)-zDy#NpW!2{vQ6yN;QEuPUdTSQ9>B$Paa22gl98bD$H<`DO<#1x<+j%M=w5#Rj& z7H_q0eul;Sdh{}+E%8kx*!-s6zSy1+`vVBpAR${xcvdP5h(Z@F!=Kj0Vp%YPX3qxW zZVX(4x8aH`c|j3%PSHO><&6GhOfuFDfWnve^$yfuNjT@yTeB>$Ph3`-qdf?01bSJ%dW_gc-)U?Buj9{Bf{APzlf3L%H3F?6g6RNs5bfLp9~1x6{_=|?4ykc zJ$>_m9)WF$OZ(vqPZ^V?$hcDd8RPZ)2Y^|JGN_To&SpzPd9XM8w=Dg)LLiA zI{>q&{@qA`5LTPF7=xs`n9U;bWin( zA>ZZGyVsG$;Z)YQpkinIIf)N$C_Ken-+-M0;D2G7Mdv$8Yr>^|X>YbMf#eet2IzQ1-sOHR7Qgl+c&AQ9RI;V0Nso&_Ujha&`Uy+VyQH zVht2AlN526p@_RelZIxum^Bc3hm}Qz**mj0NAH7(q@5JkC|7J-*=5nc@+-nt%D#}Z z5A4PRGET^}TG#&1j7&ev-WD1M?f(Ya|4w4w4qac$)k)L@qCJsMtg$3~b1G@aNie1W z|L@60fADCxE(>cP$i!hFsd%H-P}#b1V?ra_mAx}G$pL;s+e06etJD8IVZfeqsc%LD zNMFZ8@HPOA`(q?cqNd_@EmU_;i2r!=oNlZ zsD2zh3yBu0AA;59?eQ*&=Xcl?GTB#cpG{pD(?`GGnYexh{=wCgkntLtO*7W7e1;F( z!X*4%75th0yr;KA?cmJh!$ls(10OE3?lcFyV%nmRLR)eRg#C{$@$^tv{PquZ!EZ(= ziI@}hPyGY-_9r~I<8MkLe{#2(7?&!mcsWWrEuS0!eMSTQLQHc;ojk>~t1BALs(L(N zn(0YAz+?TBov5?wv$WFe5M=f&nVM*XetjZ85R`|4}Z z{UuHZ7L>ppXphY+SufW25_B7hZmyZmp#*4Cv`#1I&YmE;@n$+q{|q$I$+wo+GU%X~Bo61KmK5%zJyj$DHBc<2=mKYBemX{E3bo+SJ2(&vA>hJ#c@qpqMZR<9ZTmYJZ z-z3JH+CCmNBJEEJ@lbt7X=ighzd`NeQKQnXN{EN*dp$8;^s9E|qei9;Pl$)=qb=E{ z{QlNH9yL1c>#gSUQF}{_cSrkp)CjdT9FN+RTyjfdbeQsC~Zm2sR2H(C#{; zAC{Bytn%7xINSZ$ccJaMhfZ`liU2I&$=fba2A$IaBn_SX?%vNNL4Za$2fSEXK@WsiL zxiw&pj))jV9%e`#K4vT=MBo}C)Ykt21J{VxvGyG#NyR(fNX7hKTk?y3mbC*wLe76| zv)rpCQwf8zgnPAX7h(rO17(K!Fn9(6D*XMGM_DE~M8ZA%2-b~JrX@*xwR#X6adBYi z7ut2%B%K3V2E^*d))wMEE})Zf+65Id?%=G|o(a-~0_#)sg{=wpB=$Scb*y~~Nyy2B zc9n>Q0~m8^15rA62iWlB#-GFTflBu5U5F?Qc2>r$a^3K1Sak zDzvdT!L7YB5(XG%)v@0@=fHh~&}izlj|O+c3BB;VAzv+Tfr6oNUz|IUM(0+lh2%>| z0iC1RvC);(gcOUFh8htnk(5*0_>NGVX_@`_u#ptI139fEjm_TXUVZH~;y=aCRwH?C zzp;Trz0l!SCl6EX7xJn07_?k?HPZaPT)l7x0!QJ`iN8{*JzCaTLT~mUyXb0^O$*=6 z91j4;j&>Y-XLro)DU#b)hCmMlm*v<*Pn?ds_=2J$aP3x?EaeL`Obp`BAze{U#LBs& z7Zu<@tT9US+=ktdGtme?l^FaI4JVFCZTwYyMp3(sa9ZVjI$;(r`d%gH(MH36y0O}~ zr64;s$&(zK-bb$%tmF($?^_Z+*N)N;MrSK4%6luFPlR?|61jN>V;!~NL2nBPTQis- zjEg0kE6&cT*9PBhYNQNdRapYU<{@I6R&p*{iQz#5azjNDR?hUL_t;8|YtlXi z4#Y)ajNjyVs~z}?d5jC-L`}>c$8$JPL2(eJ{MF-{?=F&>w+~iZ#5{fB^z7^DJ+d%8 zuMyq8viLmut+bxIiQLFa@HhN8&W@md2%SkT?5oL|^!YCDnoZ zOJO9nSR;6gG1MMd6jfRZQhFW%NZXlP=NSnAQG#0#2g}Eiy|4xLa1C1g+^}&^O^! z;-m{gF<{&Ywm|c3EofkR{S`Xz%R7uGixTK&2PBNRlN(qvRBQu!a9#IwNcf~bEvs&? zZLe(++BVi90HKyzg=lIL1mK0BMh67JWXi=esO9U;4A*u||Ll=M8^1)tU^t%`hLN&{ z8FmYXU$KGVJATg$Z^K^V6j9Tni#5uyOYMFH-qK>?r&H5eQ$Lq+@^#y&i@STL2g5U=Q9L2)vl zXDA;kC=S)b+v#`=k))v*l_HPLXA11$o2lBhqVJk(G8nBp8B zCglD%BufHj?gxVV#;7Q7I`e)UOCf4PlWbUlwhN89KU9e+TdPQ<;*3YnX-vxJJL zja&ukFzx$H+bwsiClhO<{7nm3fM}bc3d~L-^S-%-eJ}t3y=c$`CTU9%ORd(q8DVfk zSVK;n^PwR|+*a(O(BpER)6M*y5$BI%gSo$(V_%RaVz*e65zPVrJeq&l+Oi?b@>fe$ z5@2eGz=JOkLV5oKXhaSq?4Z-NlU|W_c4g@)fh#c#;%qlm@4~7p(io=_C`PEZe~w~V zJ8&SRBMb?6C;LDd=6-8*RZ8$UP^lv=xUEiTL681I3$}GP+N041XIV>nI2bj^q9_&j z4!WNx?y;ZYKvncJm@Tq@)-DH2t~I?O6dWtE|B#`TXu9M2i2f5hvA%=)cEr@bHVLM@ zrwgWT2DGF3cdVNP20x~p(_m;*=iC>i)i!v!y`&^G6mT=X6K=*!Zua&Q+#Kj;h$uT| z2#H$B-7~=AkMYttRPYi)vN%CCd3}~88UupTJS3UVP8^pNUBdwY13N~RFf6V-G!lXNBq54EBL$Vw0X!rkDOz(K8!UdV;CXgA)@^2Z_kX_gMkSBjpXqw;-QBg%Jgx=^iu zSdDTSr9lr^f1z#2xfU#0x)80H3VNXff1{$an6m<^|JwiovbildXb6~*fNcoq_qBaG zW@46PqMKwQmhvBU1P96Rg%T`7vf2djg^^CXwzd*L-H||cR||pMd8!bI|3Bm9TFFa) z@Pg`Gx|W7?y(;)J$sWx>cPageIj$s98H_VPHwOe!eEub_zhSsMP!6D3n&W^WUZZ{O zgv+v{;`Eipc^O|cAwB#&*{I*>gZTtA2U>Ke@NL1@qBnL^5INfU?rb8%3g?8g?mQN4Te=wB* zt&K|Xu1Uqbu69dK{EBGvfbE_?%zwbmXOC+D4_Z58J1wIow6z9VcJjIcvQ!d|z@k?9=ku2Ft z(dRKKNBFM|5&WG7{#Jk0p1;oY?B(@Bjs=pxd%<5v^$h4EFuC9YivcF(@w#VFX)Dn| zlGhKBg>UG&tFkOdqf;662zPG3h2@D)Yo(=jz%Nj-L!CUfPVoCsA0f}TNYSMq z_6@ay*H5F#%&3p~%oltTj_!!I=kvNw_bcZaq70 zr!TJ&z^cZA=uOzFHon;aT?%bU?(i+NS5F3CB(DmC>;gy zA9UaUfC)-W-h_ms>!C&3$;@Cc-~t$YZcir+-hknBNBI5FDk0M|!Jv8k@D(Ya=x^Ms zhvd5Wf1^fcSwCjwjE^70^G_H*9D?1-_=k+SrWHa{DAqSCZ-^WWt<&M-!6?zHlYD3Q`2F zl(h`BMC;l0!RsV%-EC@nYA4*^v{Fbqg}MK?ZRGD@#uA^)ksR5`(fK6N@zo2x|4K2drg%04w>#k zQ@RzXR?Q;PCCBrU4$^HwH{KDys!Vqf(j_R^NwzwMWVgoC|3UXNYU>K!WzeCLw!)UB z%3pzuqRHr-waM48WO0^6T60r-2{dB{L~_crN5m2i^|*P4_OHJS8F*8LY}b8f$QE21 zIMv=WQ2rx4PLw?M1dqPFJMbYO%s)&)hlrlL3{TN~+{?jbE?72dOY4-^Y{~29ZV8io zCO+dlb!w2k0sE6==RsoJaL9<2e60A?#K-tJ9|^N=Fa1qOEFWBuq17Su{G|C0$;p>U zkU2S*IWbSWDZvtO0jRNj1E`rsz0^%taZUF}O(%ifw!_NTQ;eEU;QG52g6l|EQO`Nw zb_(#^#giZCSIAoWfqtmF{~au4lIUQRgCX;kc+Fn%iAkd8cEa0K$=lafA<>RHo}XaK z?t;Zhd_0Ea;Ce~J7l+7|$)f!u`WG#G28)icvF=|Th%UKf(XD+|i0)EmZMO4YzrgXEZSBd0&d;nQVPtnE8*rW7YzQCjOCiOOv zoR@Tx=n+6H0zN30aiUei{5|zxJdsacK+C%lwhajH)x)Frp%e(X%SdVq3^oLm7!;4g z(~E$ZPQmpYAX_t%lVeadi*zD7Rn#MRyub+f3iS|QfPmrf<#Bgx8)V9VMTmW8@_*3U z-+_foI9tuB7 z;cd)?5N0coM$JC7;YUR!`Q!0m4c#v)WR)q<9z7@mOAt${04RSW0-x0>qbZ^e-qxw2 zf1*?9A~{V)zyi$MAfW16T`k^*O9cTZ>uGRZ-Y3d)qaKX||1JV2Cj?$60w2%=qxYa| zl*NlPI#*DAXi$A71UcGZqdP5ch~x}20&WqEhV&@R!qp<3E(X*XRYO<*?eBSDBYAi1k1?8}Uyt5_#EL=#j^88@i9SS;;e%Ov}v#Jr=cp z_W%~EsaOG&c(!53=P7}H6X<{VJj7>SHqLv&`UyS{5nam~T2^m5jTpzv(SdWOm0|_> z3P{*Ge+-@4LJN7sKGXlrsfaOTP5YuE8P`3BWw&(x?t!)FCLoGBt;>sT4*lbEhWQ-C zcR_-K2LXf@{^YmT^4t+R?|%Ze;^1Uq?2_)A1ZPn8X8lA!TBX*P4=TiY5o!241%K@i zKqOwoamL8TJCVL~a26dU4*$(V;D%P2VCk5?Ob^Qe=@4H{uGAC$T0KY88HB~6lyq?L z$_jCAU?YDvRe*6g~wO zCO+8462MV`an-Z12(YdMrMKb@sit_s?uf;tvr+*?AcR3DUMDWD@mk5RU#p!1-oQ8U z1NDNJ+=BCheYi~E4IA_;qC zj|*lB)VC)TsI>)QPv$7?kBhjFzwVHyI^?*Lc`7pV)FY86rik-Yr}g_Gp2Yr}xyusQ zOS)EqfL%WAkjcmI*=llZ~XTId9SJD1bbzn4SiED-arX(O;{nCJiMi*ljY z@RJv1y45`GFX-V;pNVaW#*$o)k3Blw)w#K7(AoOYRKTJ0EuJ1S8|dAb9&^8e;kD;W zpt0%8^v3@34Rq+6cJ~W(P}L@?ud}J%)K9dRU^PM=KR*@g<|31(F^?*Zw}W3HMulSU z;`Z0{r9%zBb*m%kBOiZY3j-57_(ZZ`fG4wrerYd_5CTv)HE#o7ZmeyMgeGP&fYp>1f*r>(9}-Br>Vb8)lPIKL5O4E+sG- zZz*jo(W8&8i|?!%0@Yp`YNT@(D780#OV694136J{zrF?CEuP8z1ufpwgw>$u$Bz$7 z*W8on6Qt+jt6k2#Ll6?a$(gD=EIu$A$`>DC(ze5Qh<(SWLPGK^e#R@T{quoi0Lz_D zcjU$%8XfYaY`DFrvTAIPa<_6fdzZgaY#AS&JJ5n_+L!rs9Z{!#gI<8noxoW|4p83m zj%Rf#c7`u zy;~$*fL-lUFS!4Z%d&IvQIy^ZrU<@@q}azh!WY_b^omw>DW7zr?YQrIjL2?x6ojFa zk+EkISCI*sC6Tc*rNYDNxRjP1WhrY z?&77z;kh^vPD`6Yy(7xW{dL%S{IM)5vXh@pb;fx2W6yxAUVk9_a4ul59!m;~4o1&) zfyGYJqc568pWzi2GXJ7fDl>FB?XE8dKntC{4=E$?Jk?6iLb0b>ZTknHXNf9D z`tDNds+yF(+m)#sm8n~lVU5bPtx8!n2y2u+)LGc{@BEp{ZpcgOV=3t))V|w#%UGPj zT^EVWb}7^qvK!33`ZwIlzn(2m}4f7vAaFo2)E)8u!9LDu~RBm1BwgA8$es42RL}tVC}^SR5r9~_x=hW{QzT+`Zb&g zfU|;!*SN32M^dUD#Ey0BBX=Yl?Q+f)Vu2cc`<>FJpx}%li550hZf(K|y+bG#JQxR>R!+q_Tv` zDclS{)&7sPH-V3;Iv@Ts$xH~Ca0f{wE9sy^oKeF zw2BVQL~=Ww8f&e#YD;UiR&BM_CWs0NO9HsDC?dE3D%>$D2$faH`+d&2vjnXF-~0ag ze8}A8+_OCA*`Mc}b1L>0^UywaIt^vPaD!bHa--fSQ-V^Sxh~|n7z_c~_~dJQ1!c!h zm(lGpYQdadW2eiL8QfJk>mp-=4tX{sak?M~Cx_Dk$v|e4q2|x{mH!-OKb@nHm(=ut zi1PP%jX|G*O7i;=6t$ZFh>6J`8iicmTXg+AhH{O%oL=5o_I49bqa}{D!H0U@EQiJ73ynN?J4d5&hLC%CNCk@@P_}SQVEyuc5pVeUX|> zbzNn?S7p8#FjrXFrbg6*uP8+Ad&L&v% zmWP#D!ez&=H_k4)P9FAQ9r{ZGB5(M}u$eccRUmBJoXgVPwl(Kx$rKY4Pz zd@f^?&yD*(roVv0UX*5U*cIks23*|}=&qbi;8)*P>g$7I~E_F&8>(i{;%WzDyxB2=tk2+GCB

Jq32(rQ`Hp^*!2q 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 z

!*h2M_RDW06KOW!p&d(AC1`5tMD*8A@WldB#C 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

  • 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 z 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%0DX{@o-rqK}?xQ4YW`WeqDIwc~rYN#q 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

    DPi&2L9&{C`XE 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

    ^7CeY)X`=8vX0I>kR0q=t>ug1Ays=UWXo zwQR9Aa<_O;!~R`r$d;}|gUa^bTcBo#b+eQLOYsu7Kuc-NPZTx;w1T z>f=?PP5$j5O4sCEvW9*Fnfla{A3XVs$O2;L)JC45J|eSUV`#7{S+n#h^*PPT=m#Yk ze8mC2;UT`5>)ZgJIKuDK37JJ$43CfBBA z>N8w;TIXleN1sw3?#A!o_c!cw|2^^+N(c&R9c`e78=;*)eTBh3KUV8cawmovJxbW0P z_Z+2_zU_CDAQy;J{HwS-%v-rcJ7nI<`?P1KJdf)}G4$WOv~p87npL~qDX;ru1HSpVmw2*6_+V2w|_;=6T!wtf(xy{O^!o{ByvY6GSWCzkU?RWa4ug|7w^S=B6 z_F+%D9yDqD)rbiXji9!{X(t@onpSS1`E*8SPZL}$Mm4;J(~f_A+fE(Ex>Llnh!uZT zqgNzFb!SeH0m+OA_8_Ii9;8LsgQk6Z&^&Dqnpo{YGod|b-m(YHGWH<3%fs*;fk#2z z%(&ma+JCi5Myd9C z|4&P^J4pS5{qQ!@;=8&TGhe^1XiHtMpd2ytqNU#x`)y8q&$u|N`&|5t5#t|XD>+AQ z#X(mE-o<;JU>Vi$raW@qd1WWp(5th$IcGM!c|&Xe#b-p>#$5zqadMkbgpK`1_dI1N zc6K*vE!mGcPs&?s*-r;cB;7?tWO-qdrv)6Fjm~rew^S~r)-@aMb zXz}996hOysI7Vj--ti~zU0|LVKu#(C2iNYayb0R0`_jLJP7p(Ft~g6fH3fU~@Q${u zrD^EDW%pztm#EcVVFVO-RmPPlHP=}TOn3a|7T$kr*O(_?ycjZ85-3zZxTvu) zh0SPxKX$BL`_@=uRF1;^@n4Y}^KiGd`^B5|h?lO13Q=|v5nH}t*}mqV@UkLXzWoqp zNr@7F)L(e-?4G3)O6;xpAN+b>?Qc1YoT=NM*kk*#im(1AAG+5n9%qucxAp%BhAxq)SL=y)Dp1JhngX#<}=G{^*gNm&oe(IrG!V{wgr0W=nI@+O zlPjA8j6bPPeGYx3b+(qRlbtj8m8Je8w7wJWw|;4@&G8f9ZuwS_2?T|YTS|3Yi2NBr z$>*wM^~U7XeUCHy;7?Gp&UMf2?p^c(9d;qpo zk{a>5L)9sp?fUR_Z3+dmIPwyh+@%{iq{5?P53xCm|(x&2S z43zF3k<}-f|M*4vTxE@>GWP55zF2(jUX!Oa7mE z@gH_MA@ZB}Kegd@&(=DULiy{?rNDIFUu5UKM0sQ670-}y3*J?c+4HqWO|(V#&Bi@J zh`7w93jIR6*Qp6+#%A8bo1tS{d$QU6KIj+!O74@Py!2M?mYC$sr^ytyM*P0tQtw4- zyB{X8$O+&af9PPwW@F^6Md~yRyvgCvTmN{}7O*`w9Y5$k4a1~_l>h#3ECNg9i2=?R zbTBArWF#LPLd$jqf;IK*cQo2V`8YuVx5;h8f`ZKJ4++Qp_P~)HD`(_9FnV$M^YLN8 z8a7Di4K}nbE@U)+I=XGkFF?XqIp;>>_WpHNdMQ)j^ME zz)k-PwE_S4C+fu7eKs%=^xKZM5wt{0Qt=SZ0$zNBqv%ZUVSa{Jq6S-VH~3Fa!A7gt&SyrZle^IN_}?t3hE zwD7Z}QL$Vr*PyqqaR{K9ZB|Dk&l-%mP*IEmepT~pXQ3QdBZ;N6v=--r&HFnKScmWshC65v;digJafc z{!3q{X^#g@TkunB8tw2OzR+lrX;KeW5)M<}(;S_2$WrjE|6*63l~Z?6tmQ3ems5MP zj#DqwW8Eb1^Ljm_(B3#bBCO1s>xg)po{>IKhZf*%bJ<^yFDleD}; zg%u%4KZInYt%c_$kUTwIt#5yr91MMWn6TLDrnQDbGR#@s`QFFhb7Xpyt~nUm#I?T) z^nkB{i@Z8xD`t=8KT@m@uD8R{T0=05>woHo=@n!rolkC@e$Zc}-Zpm-AFT#i;|&Tj zY9!Se!NF97eK<2-*}`(;b(*V&9cRiyK!bt-J935<@6J21WA%R=vHks580o26<|%}Q zqp$Q4e~{5*K>s+kFZtY!*WnQ2vf}=!PxcrEvd61j->^LoUSS7Sau zj;HwjkQQ#7K!SSl(kojIKyCI)o`H}2GfnX5Dg`IP=zsEDK(JZo>-9Zywe&Ep+sQL^ zq<^pzS3I`lT3WPlD&@IMQ`;c$`4q6x|8Qo8mD|F2LXDF(d<$Rx8kl>N+vUo_zM5P_ zIeWZizW{f4aKrp?Y_x(0H=X%Q9dctV2~GMxbr^&-{hssfW13c0!ll}lW#Rd@ZRrnt zQKOGrZvSFKVx#^(IQ@3G1E7!LgY;)5~+@qk~j`F`fSd&9*J$i+h$gd_~7Ao7!L5sEcTi)LrY< zJx6#g_!FfErTM|0H9NyEY~_!NZ)VcLm*Bgh7r=;yS8LxI;obg{PJ%|&dNy(EN9o6f3u2np?LJ0c>!T32r5|17 z?{|T^xjL?~KN*S3dUd7A9G23_?N{tKibQ?k_7V(>P;^+oJxy# zA}pqm`g7Lp=^&VXpT@$M+78b-Z2bw_YEO-=UQBvk?Fn?ExfY{t-1g(ckx7N){wll4 zsvAi+e6i(vI$>MgO#8mTFi+#melqsq8iyg&pizx&glbgc5R($Kuf2oz;L z65`I1n^vm{{;S(R>3B#xO(Rz6?~DdB-lXP1vv53fnpxCO_g7%qQ60(~)=!?&dBImo zVc~ixr%vl3qe;`1rEqGLisavHI&So?Wt0yWF$$b8)ns78^zI|NED5$>VKN}czvO&% zOijGavP$-~9B*Svyr?c6-p?TOkK@-bGw1??rnWXsma9y6AA{->Oe^kQj9|JEFRY?~ z+CrYL846cu#RB@OGZ~ZXVykV$P}jK9fQf$rblq(9(|qag8Uwncdy;*}zj&;Lab76n zZ>xQKV(XZb*`+%)wqPv7u+&-*HEgUxRJ3>XQGDE7b{0GA>3X-;t33VFfx=Ss;Amkp zO0veAJNsd`H$LUnzv{YNa%t+0lXB-h1T*dT23E5y!%(RL$F)%d{L9}3FNI0%gGk}` zI{Yo$oyw0iLW_n1cOUJVT=;{_Md*Sh8Z`U{-%-c%I+}M-MXejHJ9GV)26pMr9+nq> z+uP1Faq8Sao#PxOv0!1Z+4th#fCe;fyEkNsik-V(tNFKz0-J4ZpObo>XWBki)YOre zBC;qz#EtyQ=T=6fy>j9FEgbv{sT1>Cab9a&4JXeJU`Liy zuDZCr^++_qN;tsHu=k<=mX;;2kQqKEIb^+A~sJQ zYyu|+8sWCqim!tf8(FQ4_spr%;OtaL;zbI|ZjoyTIBBFBp?(Y-lG+3?`en3HGMN;D zZffQK`al>rze~Q2z#do_f4`$6Fa^2^DP~j23ERA68}$ri- z{#_4h?o{NO!uQ^@D(niY@E#8$-?pj3UCn*%mnlabIrRC#;B#Obn;Lw+E%+SR#zqRi zs{GYAyHxpzu*w^!x=O9hx8+Wr*~hf>-=DlrFAc1KBKp|_KD8s;{{ue9l{xe3lyD0l zRIexI87X81^cGG*?MjW6?v=53`S-2b(~;`srfT?wdHcISG$SPxn1GU(D@94G)Z{?dAjV;s&8(yi+S2fEU zURRYl{1p0tzFgk$cFXDN#9jB&EzDy2Fp3XyoJqaN#|%1KU)p|K7~dA#i)v(g3Tu~} z7k(n6U1obK@Yf+cr|Pfs^*=X|x|eY$Qcfwj>N8rOf6D&WO@%A?ol)L!x6-MuYo{Gk z-&X3~uvwcN{@ zys3(cm-arg&j@~lE4<@l#6TLsyC|L3wDCitjEaXz{!GVaB!{ll*I3-tBy zeDP4S>~+4FU9X;A{Y^@0%I^y%@k6$|IO8|)<7YpV$E@=K?t9wrpZR>>=LmxD%wGG- z?{-u7#`{Qa8a}Z9x%p%t=b?UkN}spXANNoZsXhesC9$8r&1)o>^6CwFJ@iF>osb(X&YH;C5==A&L}0oBgfq&$i#Vr32nTmoN>v*CK~Dx# z$qqTyZsh&=sZ^od8^4MF_<4c__Bm)UyUOv%BpG~O{pS!r>K*OX+i9qBueudHHQNLp`3dtjo~4g@^`?i=Ryw8T z4Qhp7YBe?^DmucOxVGGz*y{Crj)P)ry@QBCbv#xs>dumiMM(E1aI?W z9U@cVc5nQb5Xu{m4dR?V{Ld`~xF?@O2GmNF_aR&7_R$^ZC9io4rMbWZFPZ9xuI-Ll zp%ilVD0=+s5&B}h?+y8cl+i<-*D(qCuaVHQoxH=|4{imIE@?AVy6@~9RS&SjKLFR0;zCpC`B-OO!v(#^-B9uVLnm1BJDME&^?&DlvYJn1h^E~Q-cls#9V;Dv4i;q3gdef<`0#C#an2k(WsX_6m0ct% zJX3*>)P6os(&wfJrUlh}k|O$=*#|} z{H-|u*2f5<^KWewjl$d;vS-bIsjp!i3&)F_|8ICYYyO|$!rPe=Y8b!0+%%;Hi|nBJ zu-#5QeeI9Td9)(Olv97ZUNt|rjNy;JL9Z57#9p8I3$J3i76qmE?@XuK>k3liUt$tj zN+J_65k}&-@uSMSb9=6g-`&NcV6Iyfg#E|@*5FjD^D1M+o6HbdwUn7L$M0SXRlc>6B>Uae$H*R}s`g z3oNV`i+J;o0G3Z=i>+?vgVG%)ODES&^Z8s`N)8+4Q)xVMT{OnSfpqS$Dfv68Us2H~ zy?%eEDNgWgiu#Q~p&!$|j{q=qM#d%H-4xlHB^A zjnf!O$fvhEHME?ns>=7c&tato2cNHVpTmY7l-00S8(_kj>MzNZ-keFxXKitg6C zLSC}KANh*Pj`V+{h&_r6wZ5-x=;377dw1{Yn9PSMMhdO>`H;cc?A9+*Dh!^8PO|)W zS~lR;DZQ;12ekb6kw&bB`{?qvUaO%+&eL!3-H`j+T;c(iXp6+B+j?)%ob~qe9UZ-Q zbP2kZ<+t~T3(5-E0smKN`_Ec79XkVNLT-_fGqlcl-KF54q|CZ5s(C=r*USg(2ksRO9dW z!e?8OcWM5?7q&JZ*HOCwGR6m{?8sB69iB6)VHa!N^5#{H@K!9;BZkH29?#xV8PWTq`NLk6J?{3GFFnYaO{mTzBBW|_J_E|C z60LhVQ{GOjyRN*Pu)GWOV6%97KXb;2c*ikw->pc#S^HKd?|ohK)^4%5(WxWBkQo3j z^PiP@c_#DRy)rjGBxNHd|03hl4D9J$VZFp;#_dD7f?va*45%)X>fD~hP=QLFOLJ^E%`$_HYFNwO2g7Q|y$XXp_$OtD%aTMqwb;Evd%~8wK@dow6v161Zv%VQ zqlMVdTysUxr{8egGv|KL+PU9tN%n@6T9mU5)U*L>b_{I zEhueq?0(Yvlu%}HFlbpyn|lw z3eLF4GMzbQ*)8^m*Je*7n4om zJO#kwjfh^w#qI0D`kMTj;H1-t@dzp{4s6ol zKj^>Ofw7ib$(>Vc@lIN{%M9AFY*nX9WzBV&`ZY!#z}JDMIDVjg_p*>mzq`O6s0u7` zKJr$q%w@dQ_J}{(-30=%=iFF}4rSPLUaUnXOM8ySTI@uo;EQ4{I-OzPOJgl|^079z zH1=dH*3!okdS3OU4dxa*VpywJDiUjPQ5y7$l#I3L*hY?}B95TEV!wU4{(qiYr)FSL(6C_4;P z!N*zl@gV!?8p=nDR+SiJA6<+2c#%P#WFKAA`FOE?Jkvfp67X@heN+I!*cwL&K3-xU z>+GW=2OsCyN3B3&YaCJf48O&0&`jLKN5?SM&syp;Sw9mRblC9;+Uq5xHriH~+5ZDL zFvEx1844nGcnM7?sgIHL*>IZXLOAPnFYyr|sn@!|(Q#=wBb1lWu375IE^wOLLVQL$ zFR@i{tGmEyVhiDnoZN~axaD2oG_i$nMqw}U2fWYI}6VG z!AryhCtW9-F8gJ{S=V@pp9!ue12T>Oe~B zLq-OezRP$u{R)x6qJE{$$8pIp&1q~I4j0JarNJEIlgWE&qFzD$4$}DX-OnC=*pHNa z3r&V$e4E5wbe>n=0L1@q!@VRIsEx#1SR?7i>A*OQ9a27dn!N<^7JA!@i3KmY6=DbC zz)R}F?ARK|-N_%>i(}zrp}jahO^WbAd>SvQaT*MB;)U3YW2>a%X$QmFv&~-3VP=gg zw{Sza=G33TkPQ07OTI%B(pBEbKnh2Aa*4eJRleE4+*nOsXfHvPPqdey%DwF+tg^M) zji2OQ_TmOfa<07uRj#m?fZhKJr?XN{PN(f~x&PGDC?!n~)Y2@y{^%cYv+jdT%O?Q` zsb-QaRR-D|4v~xnH!}bv*OYIz!)p2R$oEJv{>(I-lIj|cD+fO-3x3CT;Dd4P;OFlJ zKQjw{x!?nN;o$9V&ra=_o&`T&@PQn1@Ly>VcY>dm1z#!nK)yNnb$h{^`8F`!_7{90 zHywOpFZik~{QgtG)4S>h2S0Kz`0-irs{~KaX5jbR3*K2KoGE#c;OX=X{1dDuI=6RB z7XB*1^PYik-V44m3%&$+9hnO%f3^cofB=?v@uG8YDUV_2k1VAttW>`uv819fp4%cserqduegRV<0 zA}uS@)X#YpOHU)evit@QV#ZCt;r`c^} z6F32@`L8K$H=OH_bO~XmElSu%f-)WD(!!eGqqI+gG|#1lHEveg)*$VlbPK%{*0fe> zw+Cs@xwK%6_*F{#1!?NR(x9dHJ!$zvnBxR9$|68SlR7!Cx?SU7!UjbJ(?4kJrLK&S zOFo7!sVjo=C%UwdJ9a2-LXh@-mlkrx!%90kNITS}h1{@AX+46p9xg59f`rmufKxJ} z+2ot_3HCv80l4U~V4X6F8ROFYMbpFl=b{f_1wNeE^GY@HQR*3YN@6M{C5Ei!Mq2P7Jt((kQ!KvTS1zyxvW zSe)dB0qJj@JYIEwp6}dq1$8u;Fl<1fQ2&%U^AH+c~kwu|L4V z&l{JzRCp`!2i}~pKxyos*m);A_oxj39F5j;>Mzp$1GiZBe?Be z;$$HA1-&1@odujOQhU|FmIDSqgRnJmcOHER!GA!?(z|z%Qci?}nSAsK?8=<}Wu&%{ z9e7SEZ0r-(KT(PwYSIrwY`!L!`8-IBm%s;!-K7* zx`QjdM|OKFT*Lx45PFNpR*J1U88Do^A{Yr#*f0N%H~NM;09ne-M_l(k=w!syb+z)X zxSE3ndnXnqcOX#iZc4`8LmRy*s4RpZ70xMm-~N(*8`Im|Z)z|-~t zth98rz(Oay2o^hRyI1lQ@k+z+ir=9N5^;4mQR9fxEf$%3aNx4f>Ds#dMe#dG4diYZ z2(a!Ed@?uqY`8AG6%psHSRd@`tc8m}GId?-v&h_^bENLED#FUm4xIgUNvwJOQ)>P_ zLvat{Jm@T5ZaSJ8IvHxRn4RZbf8{3W20Fv*4S|L2uBpiB6iNo56jMB!h1gCRAUQd1 z!uma$KgQvovrOyR;IP3`SAMtlMyH1Zw`7@7FWNZWer+7AgADRwiz_X)Udy1gsWd&G z%RYcXxXAZZPaK}k=%>FExSQz{P+Y3h;5$fiJ_bn{|3IY6t4eT9GY11+ z4KHqSUiEdNvmjKWSN#f))e6=4tT%)+7ggKvIXFWRykF(avOPyR){oSkVkuf8H)`h?}1YInq& zyjIAzzT!G{>oC0ZO5`z-e=G@!?OyU&6bL~MzKsv<-^9lO|GTN{@nGiblszGzdI{|h z#U74G*U72%L6JxXbM(@r=5&+;7?wYHF{#g^OU*Drc^}cDL~=MBfK%j$6$DG4x17%( z157M+2=@{0g~uOG`Ez1?|HOhhG$>Jz~@ zO}7}`BWMwLae%B^YAvE^?!lZOhtPJr+;VO-vAs5Lcv2(2R$h1;6p2AYu_I z$*3s8jL<2zzF}crvVi*7_@I(c@qZh_QFMLH8}bit;RW=WH{=Uqlv!8RAE`c6nB5`t zOV#thwKAbX|X^ZH()n^MVpHD0j#u8UpL_K1{7^7 z-UqPKg5|vFvJYUTg;sjQToV8vy$@ie#e%hf0Z$8nhwcMdX`xlWh)!ub&Hdh)Fc&57$8yZ zaq@wIw~nD({jP@lCPp3!QsI$G^3=@;2FAd%^F{_^<_DG>3W$#-Ai7bUceVCQBqTJd z0|8OtP5mS-AiB)2UUCw$;y+0VlMV=>w)B{+F8o9Pe(9Dup+QZa$w-aFM%fH#ij#4A z8hq~aCTU-%Ca)pm-t+2pT^@v8Pg7n8r0QlTF(~Uz0N(PhKEt);Ey#mEH8SZPo~9ZG zN}ciy?c6TXNdhQz$F|fMPzLiRavE1}T+N-JPVFa|*sQ7?v2#aX(P&4iCyV(&PL{ly z+Mne#G6O&D$aQVZf(X`iDrYT~Ov{e?plQ`x+CAob#LPU6YXWI-)92^&R+6jcQF7I! zydf`p3s+JhW;$lKms5AEa(2JscR{a6qo-+J@Pet0s0n07hwkH_HVF6RGxBu)PghoJ zW`cEW2E^wLWNo|-?ng7!9&)74ai)tqH8IKwol1=;Yot`DHPB(n-iWSWj7Yi zG$v;J?G-F?vtL28n3?Z4N^CA#>doXQ^~r1LezNl@xBjUxCx~BH*$HE+L<~}d?Z&~r-aBaAP@0AV7RlqvW04j*DL*yiVZ#w>`tCU=?WdDGV zIyzQSot*aP!g0_P`Cf&NpC8{n3-0X?L%6?W;QkdmNN~Shk-_&!8m>MAcR5E9fIB7& z?)nfeRin|yzAyFr+www|PPb8;uzp;PP31P%8#RaRZmkz7pSy2LOKZJ|N!C+ZZ5v5> zTI)qnWY!Nh*Ndjz{AIZR#?}}@FZn7-o0GD~b_;F2t;x%H{mz>2-`ASFho`??GrOfV z`4UfH;Ym}K;Y(_hwue798{ah~ZMLfdyZt}r-UU3$;`$#?NPL-M+;q@vZfc&YbRtyU>PKuEYGAXX7k5h@^} zylc3rT;esq&*#kh?hU>v{r- zCKwC1cXp1GuH>uW4F=a!i_5&-+j437RC*GbxHotGl8TM`ZuM z(eu@9k-BMh`>}R79-6KYzj6pYHNHWwOP-T)GW7K*Uw;9sf)F?S5@n*|*RP%xxIZq8 z!Yz-$1)^}96x`P__s z8no5yEOW$HgwE~v8t#>>qq!O0ZxEG`dXSju>bwEIdAc1xS@za|JOq-A$3m=;1+n$e zV;qF|nERM1&;pNbModHCOpZF^{7-0r`5sR--cCy`oaA6+gAwy7GOBlOcno5r?Ab_p z%Ja=>JwSE(1>(F!jJ)fGO#Yuv5_y+~b{|XLJ@8DV1K_qr1D?1mM*7pm^w7l{UyXnn zm$b8Lt8=7J2_D=3mpVjV4UK{C-WB{~PTU0+I`_3#NN$tP=9QR%X1pr^#y*PDbTo>m z_1Pli+5%6+()tOD)=yZpenQduY@zjvtwQTGaa{7=XclVG9A>Nf@E!~UlOHOc7CQX( zZ&5n*$03n8Iy9mu<|}%g69d;h5iUY6_8;;*3*5(=uTGNw)1?1&z#Oap-gzoJX`I`d zuqeLNd^H#G=(j;HN9%hB>JgQ4X1nTPc?H~SFGb<5JQiH}y{8;&Jbd?JHtzd4s)zO` z^w0lhES$YX`sW01rqw6bIA~OyC$d`fGth7}Eat};uUnuBRB!mN)NeN2oOvu5V--xA zSVxRi#75`wj6X|%{6^FZr9W)Lp`xSuW0dN*otVxoJ!28zq{ZPLf>P%D3t%ceMtg}L z{s!RN|4N&Ko2@qAgCdS@^F+iZ$S3qoFSZ>{%SsC)SDRwW|I^7eXFwV2cruZ>Bl2h8 z6A?m)e4@`D7&h%C#)mGxo?_qB#~#2TD4`PuCBcMF&*KR=$}dh!CY#^Wk9~ZcOG58)o z3NA7qe1p=hW5MvujhPe91oi6z^j;Uz3iq1ZJXj~B zJsOoL2xfn>zBlFfVX&=Mw+hHfci}ym2s7-m31Mwt#qTbu?I})+FPaj1uIx881k`rZ znIDqJe(dSJLx~fvtWJ`94@`c$sRZ&RmJSa^B_`?6>wKBVt_G`Dudwu?|06nN z!`X&(&;q|g?Yf}F5AVg%;`U2pX|eqrSm$I{C6*TJkVOdR0B`~=hFG)+Qy;{*i}2TT zkNr>l^)s2XlD&PPcz91OY_2=31!%`7V~IzjIWBJnhB$hQ(^h{}CZSijG+4vkf6zb+c)I4Nm)?z|!V%=ju{963s2$Bu z_aKYV;Xu(*bcpiPH&K29Gr}7P+lX4;J}vJHJj1EweTY)hI$L4ZP=1fTW!P1jt@}+QfA87Vc$) zFR-xBeP z@=AGLvplZE6Ut*0%j42q)uXDGi}Tp>R9dDPZ>!}J6X}ui81^j@$4OOQs#zXa>IvmB zisf|2tKTuG{ZcC)+&L?yJ3Q7n&hgH@g(-_ib4X_>Vu-d3BFP#(j+CE~8B z%3HWvwQugxa)`cQBzmm6lnn;%&9c-XATG zVc(JrcyR%KJ#l3z+3Sd31S&(^^eFG zm6lnn;%&8R<048=hJ8y+pT{G3v4RMnQHayhrR=CcV|=*nbP)P%Q$p^;ewRqdFb?5E zXhK3xIhz<$0h;8k0JgN1EsA2(BGvrgiAPHe3eww6q%#tbs_^m4KugvM(i{`1F9E3v zAHSfp1ezdS)vTHyNI$1lw+sU=A7Fp)MSAXVYx7g?5Q5~Qb@NarRXRpH~8OP2f* zq^nn`<~JrFRpH|oK9-OXq<5M~l|+d$=zl6IDT1S$pk@qmx)vffM`wsQ-Kf}_&?!5OYFecq<|=58TeP9#q(M++SB2z zuSWZ7Jb`PC_9BkZWS_9{`0mmCV`4uy>8U^IDs@k^`GOM&q ziMP04GT&`xR@|;KZ%D|j(lToqAK~&G92p^t7Mcji)s|kjDFJ~>%dBO**p-Cub5bq7 zhc8Wp@2?@!e=UjfeMArGn)Q*bOMPGP228wU`xv}kjSAxJO0O5Z1twmOh#0)DCeVS& z7_#O->RNvnyqn%obl_l#!MiX4FO!K^#docz3*H$fUXG&}yj=}5(xEGTT=3dWyc}XN zc)J>b#M_nLEqLEvtmwee7lXH1+8vc@i0!XZ1`OH<_)fL;Dq+{- zU-Adc{E_jm@-s*}bv4cXS!`PKO9dR(dYFI4SU<0?{rH8sYKAE|%rdQ-LE%&*2zr2Y)D{W0T2>d&w> zTdMY(`6J^*)nAQ^e={C-t3uL}OdN{m6#{;Tw&idX(=iqE8bb zWy}(w=S?8R%?dHUExk^FYE2-;vI>abmi{I{H<&<*FBK5KEj>+uicKKJda0@!Qgu1ZcJi zq(IF+UZMcmSVfth(mOy++jWL9ZP8dy_= zlzfw!Sq*DdvKrdal2w`-^48QLna?pZtFfyxtMMDntkTrDwx$%x{P|0&&1!(E%v}v$ zYpRjVFPNFtC{&sEB(ynpgj!ROWS(qhRzpo??rIoXQl%&gd7RlBR95n1}5`K=6r zv`b6`YA7fKCfi5GmP%7YV3oz-GB`W_sv7Kh|WHmmAKZ0=0v7*g@aF&RE-;(aL| z@4pi8GMRW){BcZ%ZWHgT@p#RV5vebeiC4uR$7FcmFNzKe2nj=0!2PPBmaZQH34=G7dVB+2+nJEcK zfXw?D4)5!LW3;IT%PQ)p=h#AJ&XbWZhHTTY-Sr5U{L9V!FIg>7`5ELY?%%HBXPNn5 zjnB^@^Z(mb{N-l;h4J|rWd47~8bMu;9LfLFGphZOk)!gfk<#@DQSCSLM@ERsuSP`I zBSE#_%pVyED!=0Vf3u43i!&?effn?O5M z%LRzvaT2QYaaOj<)MRA{$akEC+F}BkOedK5Z84hE=^rML$y@@&Z;PP>sL=#6nMi>6 zZ844jO*Vl{W)UEMTMQyVSDHX3QwR{httFWN^)-Ra&KDql$4RIk9#bSRJ6VAE9qHI5 zIPyaY^}Y$1XibPnD4Eb+Hlf&QN}&>r3<61)+oF>Hb~8WwGbTTS%>Qo{ste5g?CO~O ziVKcIq1wA3$`LX7m9#nzh3aK9KN%z@zv7+aP^fM<^OJXC@+-DF4u$FhGe6lXCcomi z<4~yf{z3Pyv0~{y)M`xo#~U>WOgm87wwku)&pCO2(B9nGZ6`l1c(Y))aT= zC=8=4p(HTW=M!KUWyvIgq0SD^X|t@&DC>`mvP6==aCZ$3)+Wpjz&sV}kSZ`-)hY@^ zs1>`=6_{LsiE9_5EO{g_c7chj52Gw`BrxpOg!(Ybl12iY2m zr*Eum8&w z-*-KUn8nTbUk-4nAK-N`F2@7%eZhkkhOLT}}g!2I14ur;{H8c zxi{OU?%MlWt9yf>i@f%e^soJIbt?-T*2=!-XKGnsulbpdhb_!cn1!qUcNBD8FdOfGv;RpAoU~yv zPJhRVT3`(#@P+e5*C`JAZuluYd~?HOo=q_ifIT%}fP7QT1OXR6Rq^iT=0if7=s@^$%Z$6E>*UZ*P%mO$H0ZQnZ(OU&w!% zuA3e|s$NfnT*B{>`@+qK0^*(s`2Wcbo5t&pp#l1Syh^A4mQ68Vr8Cb@XIIC(KL?3s zy*JC7+0Dy2)w_X&r^L^Vd-5nJ<_h*-W9FV0;3(i5511@%^)nD^!wEtlOOkh9w5%4b zw>t;~tMT3Ov44Z=HN zMyOl-gOJc#&iW1r(jJ0>iswDNC-dYU?oCOqChoLfKG-|MVD-|(8G@# zrAG`0v4s9nfjHzfTBga0LoNVexUWhcX(m5qCQFAQxtmHJYbN{6WWk2^0E4u2`qbE# zqU<_B7z0rSh`81gNYKUr6#)n+qb*jXlyYz=RW5Pj?W_fjy^~^Tz=L#HYNn+kUeUvP z#&ULjD*lL;3dzVm=oFUfdsyIgZ9 zrQ6P(5466e9FVL$FI~!)n+2<&W>-xf3~Ue=tk8aMFTQVlSQ~SY!Na%*%;>&#Kkk*< zk2|TZpU-Bap4le@Azw|b?6o<>5;OhNfE*C(@a#Aq4<3rMIL7VY?`Fnb+JH$o+MH+H zE$;lmb7QDNQZs-6FwJ`^9^&ReHgq}Wjjh1&r%i=|af1)(hdcRH? zi%2*Ye2+W*zTr)d%zDF55@{P!gJN((vkg~HjbDZ9$(pq}9LXr-pSW@AYn+ok&5)ZL zn|a1t4t>l#pw(MnYvZjaj@|}!)=uSN@Ld>NJJ^C8pw{wQwaT;y=Hd%SJ?GpY zsClmoE-gg0VT~AjP|KTvZX5HHHURB;SDTX~Kx5wqjz6*bs0*40d5`Cc!Eu?T1LdjX zD)YffTtCTJxwv^Oj;YEu&R_(@Sx-_*7aEJd-OW)c;L-`|<~nrFy0BR|>Sx#CphRgkvqi;&LJRAp^as?m>7Y>EZd%Yu+&AR?DoSfh!-`c_;>!G4QOpB#YK%5Bi;X2 zZzeU2N)P`WK~pcw!ze|?Q^717SMVBgZ4BQmH@?A;Btban!Vkfv#)4lPHgH9cb^f38 zDW>ZbucyY&Y1?}x{&uUr6_Y7mhfx<%#lAa_)YNKu{|Tu;4ef=m-ACl7HGix8k$3MS z>md`bygng0WA3t2{lfc#_`Z^UsPHh=1mlf|BBC7cS26&}f%$K{@dN^RQVq+)Qr^f8 zNf*75eLi4t-?_Yf16Z|ETbzt4%k(8;ywxvva(Q%rD&ma^MID`d7i+TlIL3D4auk4W zO8dDECZI+FE*C*;O#q)Sav-DkbI(vPQ`tO#A$X*!R6~*Ugk%-1Y=y{MgPqEg7L>(s9BtlNY{$sDo*q_xrNl^ROahg>xlGaIp`+ zxJo8?YUjz$R+qgvDSQ>+qwO7o2@dx{-?7g53%*$p+x}vAaCZFKArH(1Yeq4iCVLln z^+O}{HTpXv^mp8KomyZLm=?9Gu;-5mRoF+u(h-=0sKTwtC8Tk#K+&D;KR5Zs6|6iv zy{zP;sokA=bD92;++w@RQQV>h{tWCT-m_Dyx0Ym`UHzduG{c^|WGf;oP?kQ}ZrGgA zg@S|aH6e!z0|H{j><4<1Q2wJEI_on^H3}F8wET1 zO@uq;1sdVqWL!BE9TZHpi=hOM-9?B=^5rGr(NKQmC$;}2u2!&S;qjlrc0Bq3{&1mZ z&Ne1Hcm*XBP*Z1d1?4nWO17!zf=uJ>`JvKec459-Td~#M@>zFj3=pJ*`+-i4u$cji zvt+;KzZhZU+1$Pf;~bUJp|k)n)vi}SFDr!*F2{p}xj>(4=ZlR&C@k!gy4xV#!$06p zTxF$_QeC6%iv2LN%|OdoNwt#G>c*qIa5J(QyASRLxA;JM2rP^b=(FSzOQ)R{x3;_m zoEEyxKCl9RGWf7=dUyvin)%(q=>zdZpbIq}XuPuXdunTZy>=a+r^Hyw)mFIdE=1s2 z$^CqkGS7u}j6JgXYuvc3HM#6VsSEz(r_S1MEh8L==(SfxG~+w%Q~ACg$|E!o&STIT zGBfOIWue}VXvJj8urXr4s2=hJg}VM4^J)b+7mo~oi!0di{v+fy&{Tv_HUOy+J)U7QMGbc&=IlzfFtbH)Gy6&{iW;S z2$g4)>qkiDa{WiSDD4A?zx7zi179%p+&oZ}YJq)f28rzbqBzy zD@I>l5zK8&A*n*>YUHV4n`D1u_>n;GJ zA8q68VEhqf&~0vj+P+Dv{U_kH0sj(x({@4IeNf11X~zZZ#p@8F0);!DPKH~5Sq1K; zMiNTFUnpYlX;~YbC1qJtPOzeSk1Bvnsn9#M{M$r71t}*M?B!IQf%+p(G0&_~+%O!n zSqc~r#W%AQ>p2iv?oR1wD=m@|#^YUg$Ube(7|Iy5d2ECSw7R#H+_@!&4=8uA7@2aB zEBPxldM{d~EdtZ_3qw6C2# zpcY6sdazb|4hkm8YEQ!l=<^|a$bl@RH|dOP`n5THTo+^kNK*Jcd`t7dJ9)w{WGP5j zT>V`}=CM^^fEI&;T*(K>7y}zp?TU-iKs{|ymYp{Z4vcaU``!qbAHc})+Ka(Ak~GqI z4$sk(C&(bsf_a;|t<23k%WpO-Bf4RD8-$#ir;%67FR&ZShT|6dyaEU<+YpDM5SJ_U zby9cRa26uN-*^y^fZ|ZU5fsZDUKE}ngz~Y|f>ZLsKI*aPho8BUzXnm7v7^8WqZ8oT zGJbJWN($z-NA8>c3B$_=^3)-Y5n{bNcQ{Yw$r`<;55;lka_u9BHqQ=S8JNt?F_XpFz(@o!WJc)hp2K>^2Fp+fli7&Tg@YE%!CR162XN_J|Y+YrU-)Q!Uj z79=uC(zWGNE~BnLGQF*|0O&v~nq1L{@Fm0{^mF>LGxtD=%IDI*#9YffHodeU{4>NF zXQ*1?W#T%#&hS3?IouQRmb@^|IG0=rb-&GM{u?<+3tY(b6{SNtCh(t<$;AgSs?xec z@kVIvV#*7x|5}$e%m}Bjn1y@Tp$^rb5ltcYC~Y#Qu-P}Ay5#r3AR6RVBzLfMpl|Ue zHqzSz?@nv7nTUoM3ozAUVcQS&YM4MsZTSIr%NO9yDY;Bv#xZQBb76vX!`<>Z(kJJ7 z?={Zcoq`#0b+9b24h?GqKwGJe#ejUEG4BQR0f%8IDyGd(yWH8`pO zirUFy3&&F@OfJwf>VQks_dNA}gGF8<6t<}9q z5Zb`4`%9sBZZ+Py6bgSZr4>^Z8Uxio7hq~)M7Ot=LgQSd`k8IL3+vPHZjne}G+W)q z>Oz-3(H0&U)1QRPABcD?LG>eiVZ*Fd%z<6Tm!NWm@0*VWO$(wS!T;xqU)onDK{Q zDR{g6(-Ha(mmbzz)id-k(Ek>Ws^P=Zoenh=!le9?i^&sZkl|#C{qDB1TsA_qB{D@> zev)YE7GLZ)ig8=I+dq^2-2e>Xr-JMo zl6rm_l;27AT#t6AC~``<=d9YV8N3PsLv1G)vufHk)5P9}i3@`RW~MP|Axz2CQ!$t@ zLW+&OH8KfjKMY7Q=BD-J*MJREK}bk5pn(N2k4l7F$TgB|5!Iiny%;nTWYAdcg?!sD zpc%$Ig&nu`sW?bS*e8v=sZuDGL}U=Cvsj(EMRi1fj5JD+?1m(VO04t|8mBAlF5}he z19;()((H@fWR}SM6kY!uV{*sb6e@RF(s-Tt}mU@F7jPd?y0}+^9WgZzpJ% zb$%%|Y6xvx_SrS0x*?##kG3=CPDNDf-p{qX&$Y@`=m=?h`qWdk%Fm!XPSv!^_1b{< zlxzV1h`zDksJjme8+djvNQCu>-L01;p|EtlEM3G8h!r50q9$KsC1TV;EVBlWp*Z}W znT=ocLm317lQ|+?6+iVX#-y5oOsn*dWmrHzK*t*CD4f4{v48mHlX2x2vHb%>$jifH z>_=Rw`etW9Bt3u{!HT3G!T@j#sS#Mw4u={biw zebY0NsvlTz~k>o_V_n+dh~9Hy%&m}M<3eF2p zs`9qF^v}rQ6`=yhRiV_EfkI?Xy4JJ?&ucg^$#kO(vZ0*S6`>5r)uDnAf!fD<8qe*7 zTIdW0>KhTEJ-uPdrRBldc^r=EG7?fz{s|1CH;YcFNZxO3nI+PMTigR6@o#F;hP6YK z$;I_+GCaa*G1?j-lx*45A_9Q*)N-^rq-MG5oRAyzgZit_V{d3p7539X zhFXuF?$K}QW)T}u5^I8a^gNGCzblgLfqqnX4aOGWhu!OJ9X2f)7{LJk)p?d8%>5AP zO;91=gydhH>}mNj?fozA+ewlh`Ow*S;Ugp}`>J{~Fx->e{+Gr`qh7pQcCWDN+%WaQ zNIU9_!MajfLP3^1;rhTd1Q%nBePFDAJ0)o`{Vu@*%^1QSy>tdlpjnVrZGIB|V6qL* z#`~pz@lG5`lIed{{WRmpDA{+gQ)>!RHu%HIb?av3%IkZ|-qjY6oTybN-`#6kS+aIU zyL(~_G7z~;-tX_k5=VbX0LL9`|3TTxjx|^KXXhn(f0iiy`I0)Ne?;|hfI)uLR?JRa z!j={uHtJSkS5hxah1nQJYqiFBG+BdUTl1IN`pjOu%G==DS zZ5eFV!NpGk4x2gH{=t+FoeY{_mYBJ!Pa!F|jtONyewy+ObK==qs5Hwr>Jm1!a>x6eC_5@+TazeiSg@XZ}aG47Y|*u{4BGf49>SELWZ zlK^FO_B#wt88J|68hs&+ggM%xYN#4*&c)#PB%^WPq0aU|RCl)4KNvw5TKX&b7j7mQ zSea)8$K=#)^qzUym_FY0!e&5V-e?;pO+X+3l&r#@9NkNW1_tk&wqWfY9BhZ0nxPNN zfufP3*Vxq~7Uuo|@keo(>#x!JhH|~bSqW`>^e7!W%1w`a3EcXJ_}c31vC8AR>=E|6 zQ=8x7DcPd^zS)`H;>{{6TsO|8uN4EiRsRve33*x*j8e7|eTzHfx?NsSDo+Jcn=@TM zQXWbT@ZGz-cj?szuspm@^&b9zjQ=|jc5vY|0kXLj4<;R;e1>i117_n+H`I^u>HHW= zjN>OjV`C9o)kcBP#vkNcOL!U+`^n?;@So`9?WMO7n2^rYtuU!W%*fkKhw(8MR-CG4 z{NKyKR($LN?{Zh3o6_XtE%?70|2KO|TD3VdL5cirTGQUp)jvt`TGKj~?oNh1&UP2( z1=}rbM6NrOQBHsqrj~~)=H}pjz`WJ!MaNtLlYM#Q!6nSl(73HW9?w0F#|_O=Bi0O> z8J{!c?)ccv?vl0D%Um!rJGHED%Y!fMkX|{Z!&8RUdf-G1erM<^C_e_J9qNTD=+MqX zS?x}xCwNM>Pd&#|@~%Uh-|8uOOZ$C`Bln$ZCwjH!6r`bp9mQXHd!j6d%_**is9IKe z$!hPpS`&I@Y&Ybpc>|zRw&LsVh1_ibUjo6@742&q>CzhD)T0eprPY4|wXX0mEG$rA z+a2V0mfsKMD^_Cp&fIlc9XFE6S@kpIgY|F~uk-%a2_}K5$>S>daEcu~0euia{VVa4D_R+ zX*(;+^|!GehK2sVJ)DPQ)=~jGw=wpmW1UR*V_8i+JzBP*74zl>gU;l=S1(?{u^;P_jQ8NA$Ew5dxyx~v2WHG231LqQ?kC#VZ=Ss7T zO#s9?%&l*$2rV<4o;lYp3Xk?-Kx%CaAW$e^rwcMxK^1yi1@ur*7my3sd_pqOC{yKP zM+tS2?j36_P$w9-Se44MD#bhzEOdQgey(BfvRG%DAi2wU$-{&h_8DL+$-!ww(qHO6%O9!X88$zh@a5NWPL5vIIZbxk3OFXC0}Xtxc?)nnygeL8crI7$4Vwenm-#m# zLaY50e+xIhK?MqWH1_rKI7`VYBKcc)GM+E;o^a5e+-4kr%^NLG#kQBY)TPjFv~_qk z=?g=TV!G=ykj$N~p%f`iQmEGSI%@{mV^0O`LnD!}(YUswla_yYer!M@TA(VZOY;o> zd(n2!NvA9l`9wlT?TXb`D7Bf&fYKj;7-H@^cgv^U+@Wg^%BC{qG_Y?(DP~z92HW2L zcjJc-V|zr&yWp_&7NeX0K(c>Fa-4dLc|q*;mVTQD)7Z@!i9Lt26Vt^THh~#9Rwy=?eJdTu5Da7P`x53e>7ppwP^>75>HN^@ehoqzd3~wY4ToAcO4Pb^ zZ4qpVRO`|JWW2HKP-l2Bdk=I&v6$!Xu`jvru*G4{L(5{*Fo7DPb1Oz(fG1m1^GFC1pXYYL1_av*A#dzD;+px z0^|TkEt~7nM_p(V3Dlv3h%GoeT_2h5y&E+%-dYBw+P@n6C_7@-Tj1o0y}-HNsZ2wc zLlfR%X~N)p=4?bx3$A*z@#$Gn@|El12ot4}c;1~@8$9Z1G?pF{3KnSNT7ZOqW75}{ ze@r;%VoX~}#?JwoSmyu|%<)(WXE(J-PW1a%dynZ@GR2Ps!`_pYNw{FN8Rc#5oqY{# z7+`5SyYO%!7MfEogvjCo*`rUN=HHiGcX-wrh3g78dK%jT^Eqpv)}8(q$gKBDzMjz@ zyEt}FJpBI7!gaDjex0DmrO&5jqOJ5^{53@oFbAovx!Xi8F#)o$Z-RKc5RJCBOjLWN z&fCSl2r03_82rzaq}I}mWWChZT6$7)`*Ne-#@GQW<5Tt*o%+Gi)Y<4%cJvM-&mNrU zn|%_DhJQd^X!Fl-_T7skVb%7;<@$IkH1QjRQ5i#Xd4%4^n?3eW!6TV>u4xy;p!ZcC zE(@HI%ob~b-uN}9!l)r&+tCgT72{cKdogtcQnAOA6`p4DiBtc;TL04Koa06)htxB! zLs8~NUJZ(p{?uEsZHk=eyUxOmh0Pv)IC@r0AJVg8{y2?t?mxAA&}4#H23AR<{GVM6=hfko*=>c|KikKw$132I0M>||JOnm|Cqc!ee z*6(1ZLdkW1qh4hUttD3togqsU{l$>2(@bdc7$B{ z2VD7wJvv&TBVI3?fhHT7O(}p2Q7n;{mF=#NNvAedAZTpa?OJ9lyIqLYi?!QH&05Ru z!CEEO3Z&H;0K~YCbrEbd*0&|vZU52=3qRXbSAfzgu(vE)zVTkpVT7RXTP7pZT69e) zqu99^oseYQ2$QdD`9fH{DsZ(Zx`925xD!tGch0?8p z<84(uBWCQ{3eI}j(+D02(^tkw`KQd^arS@g4*K_u^}zmA5U12(i`N|*20g8fcJ*AN z?H?&g*c$IoURw`_0uzaW$pfRs!!4e=t=hxQxh?RH8~|yG^w3baDmLvvJ*Z%F$#0qH zLqmTm501(60Bt{tCv=Ev5BtXEPR1#jf$pF?6^5&^)D0XNFdBqz#IAtXeioS(wkiD7 zx^=Fy9GKKM=N~|IYA!^M9mLm1KcIi*%HL74W@fe4w94t5-3yy)Mcfpiks|5pP)0v3 za4~A>O8y+o>B|4YJ#jCr3%5gGr+QUfu9pNI=}z5=j$Ku9U}k?;@(!)(d%(IMb%zGe zW;O7;gy0oHXbL9)TpuRTt+O|3@LBBRDOs!euVo=x6Kd{BMnlW;x4{9-?Z-g@820sR zF2sHnAZWnvXOc@S7CNkEGakU2mUbD~Nia^<*L0`vn2s{s-6VX1gx%d}-Eo(+ReuC? z$SV}Yn4`zr3*3G+i5nMobtz2XA>lj#;{SkDJ-IaH+MsP{(kAY!s z&6``3YCd+s4J=1djviv^pq;Tc`!Kf=t{I3wV=i=xvk3MsYclBag~ex^@r#cSfg{F1 zj|G_tidm`M1&=|zTTYq}yh<;64OG;cz8b2#`laiT2k1d<1Emwi5*V7+&hr_tk|eQ&p^g<txzb*SPsE-iSvjftv{m7DteUac!wo9fsFT7l=P817zZkH7MiyrTvFh)C+Ttl2e4l7_10ol1Q-v3=HlP;C43 zuSDNfEree5$o)Xd7NRBHv^mcsWIVVNdRQ}tk-YDUs}b0(W`9HV?XP;AL^FFFo5r?A z#UXPL3kR|4b!K)4GL8WsyyYDLJ{Sr<*cjmh_By#he-D&q_Y29%5bX;{Z$(P)KbCWA ziTJ`DxGmJ;chVIFKVpTAad?+-tAyuJ$u5Pe?2XMb*Z# z=?||^EAcvH*ADV;auGK3@jDT-I~MJOkQ^+{!BYSH%S!urPYaHM^KTQ@wA+m7)%oP`Hks>;pydJs(uY#5LsUv$B%(Z(v5o+7f38&W1JyTOs`B zfnWyhu=s29G`fm^)B;bTLSpDWV$3*843uY9j^_3$JaXLHEbQgIr&VURRKnM$#mJ?b zp*CR4RJeWI0jJgMzaSprnwyOMt=!Xt+xy{X<$NX13SPffPVkLKolzt_XC(bYq@$9U zBk&iIbbrAtEhPT^W)1AfJwL01fxO_f?6L&5T zK%5O!SfDiEAcP_lCUTd(IO6eDeHxh09a)9TtU~={SNlhXXEoMvGXBY5G`Hb6&*uDd zFgAu2VF55K7j?njSss57#Kg#8g&7>Lf|JakR|RLNU_FNz|FzXWq&|S5ezEzfW!686 zPyD=qpX%P&TCV!)EU?Fr>rs68$9E5Qj>KW6W&7|}ZnN<>SOktGZ)WEtdDDbXVHc7G zCu~e73{Lju4u&hL510o-9PQxmiQWnhLYyI%_O5Uv()fi2A24-bs4qAZR%hd)bhI>- zmhtsj&=-fILS;#9Wzuf9J{cR6DeVh6E>;vX|0&V@J&_qGjHf|7Lbm@-l>;Y)BxB!6 zk#gQJ%UOQ{Bo_%DN}GU&x4{by|5%*6txl$L1l#JG$qo3YW!A05Cw?}o9|J$(Tfq&g z|5i|eFy=(c!IBnfW?46(ER>Uja+J4Q8ALdjKm)$Pg~Mn@>UHvU;);}g|Fv{cJET>vGl80QGYWjwzDxs(ooF ztvZ+X3xkX#?tlhD2UG}R=m7Ks!Mi1j*VP6wGBPXZ=tB`}s9cc42T%}msQR)YCrj20 zD{Iiz<^VpXM`SuT@HpCISV`^VM7U`$Qh^L&TMK-OZ)mYaJm9L$c^@Iipr#f^23qkq zbR}3Go3yqumHJouN_wP@1UtF>JAZOC2weVqTI^l#d@FrKoBs-jZD>tzP<53=JK7qT*e_=5=M>GNZ z$m~R{0t!}^>mP|+lHJfwW6dcCIP+KW$lQ6Z{C3~>AUQ24GMNDVKMVK5|7$HuOv55UJV3hk;pIq)=lWt5o^+2bm6t16Nq&te+Yd&-~Jl>3g!)E{q_}&>R18f^6 zuTQ*}I`uW}bCkT&H-ztn))5^qTT$55BF7-F{pVW!KaeEHWQ^5sLZxTr+P5Dyo@k?i zn{*D(7M|^!iG|2%@N|KfA@rUb!uP^p6wQLGBO=1i(x=?PVL62x={=JT-)gWjF5-HG zm3N0^a`Nb>fc#27vG|!Habyf1V-+WPwZJHLA7!J6M4s0)PJo@r5+hnYm!+WN#9aKD zOc^&k4`(T6?dG3-D*Elk6f3% zxA=lPf!}u-MoAKD0z%;8qv<&;5@1+xodLJYA}ufgsf8N}Shk^|(%y&0g>5LwH+_&y zNFqy0>8tCqp9vSuz&c61E+(;368mzFT_}maiAlUo63=CW2B&y4eM@TrlH`Tp#zg`6 z;`x#7{PUrfg(G9Dv{P2HsC?tw?pP-Bi3}GL4$!ERwHqV|W{o8Kp~i z!=xMDNM?<2kdkk1_`~ML_`_m~z4($`Ycg@`aJotxKY**?8nEQBEaT?84*{3lA%^C` zXUxbR#lzdBxnx32FE9~8A>Azy;LPAyw=v&Ci2Xc{zL{d7bBDA~W}Rq-l)Qz*#6e3D zf)u(FGzVo z#f5H?_*2|w&!BHm)*7vMX;zrWs)Rlqub4nmYCO?16}F1t%@9Ohdr?h#=t?;rT!eW5 zcMF0_8AjDYjH`*?2%$1?YMN6p3}`83x(kM! ze<6g_xFKBA!D$Y4!cZPlfC~Tvrz2`KHqZ7(^nF!dOi8qHB{yq})?#Yc76npX1ziFg zy+wmc2YRo>O^Due2bH?Dz!F6JaCYp}L8TM4z#<8yczX;gou&m|L&#D5!QFr7HdRk! z80w-+T|jRx9SS#woZUkAq)=*Ti@t_kaw29YRg|`9*<~!UWk-6;Zd;Fz&^^iimQ(<^ zC$6*7v_*4!5~fE-%cr=*VSA6Y-?+iy7#3;g$xdaP~q%e=PE#cl}n5j{HlJs)x9cZ>Tr-)=+q~NsMfC|wzhgZuSIRU8PJL9O(r&R(KipX?~_t8f5w4l0c znq$yi6Yef&^`sfBW9@h}#pFZwR1J$P>_mArjmYcmffA-Uir=~WWLSe70i49oX4_3Z zx^wIV)aNcHHQa?y$Bf`&&O6$o26LU_+MlJM`fbT?(Od zE)qvM7t?+P-(BG|P_-HVH)x9%oXQa$8rhAW{}XXnDn|Q55(lCRMbMJpnbo4EnAVx{?+q51-wmM!?-oL*M^mR866Pkk%M)Jfj%LkY&)+! zy?C1ZJk5@*2wiX%LhTn?`l$cgM%F2U>24VG;4G+nz?AF)90j_Rc^=t56Os%<5Yg+4`2sdUps9)assqec}aQFfW z#g%R99*1aYL_FpBs7ROP2@UI~VE*D^-@e zh9c`>Zp3%I0rjh{x%vZ-f9Y$;d~(ftxEJ!Pd?H-AE0T@Nxf<{hiMA+63(dmV8a7Sz}1lP9{+c#)%DSOhf5hL^33<$Fln7ucP`?Ns#}XlV$4&%?>Yh3 z{-ISRt-gqpM^jK$E8~HR>OEc>-{6QZ#3(gnt*PLRK8{}%@pr5kcEKT>*s-ms%b7D}E z&Cgj5F-xN{PpX(Vtr)Y$x}S5078uS_FK4NcL*!@CSAX^b_0@rBQ=GoablNADS0eAI zrL>7d^@oif98VhsRyZ?rdF`6@ZC=vGAo0g0``VMMaf#^6+~uQ*Mh^2}ZEsy_>O-U& zUs(UC+qH7zEEM$eo$)+x;=)=Pnk(=*IgANeXW7hSmRuxcfC zC~%OXiaQ$3_{IORat2%LzgDZK#o-(6T26$phv9FfeGnK|R&me(dp%uBMPOF;HCuaw zGi?-88w3jLoSW8yS9{>n!4`?R6p~RDUmOQ{i9iVmZ=cwVFPHstC0f@5A*3p%Mul~- zHf|j*X+#q@O0JfU^dp<0r))sQv)6Bd?t%l=TtrpkmXP%a{RvPHbLvg-e=QHa zWdAdQnA>R)gmi2y4=qUjn?#jiz8T$(^g|Qja)SO`)61$Wk`7vB@)Q_KOshhPhL>l? zOFpSyK|4m&Q5PE?e$(U5`0AD2onf-H@zG!7_OE#W;)l^(>V$5(8r+jhnx+72V(-Gv z(GAOlWY7Z@0#O(BmdfZYE#IaONt)2jrv(;EBTCZ%ml}l|m7)M!TYjWyS$gc4KO+-K-^B-<(r<@y=EKQpXZ)f`7p%) zm$>=fl(VkTgieU$Ces*#iDo{}lzZ;`t~03yS24cT;Od#r6OD_4{TZ*Tu zlAq-?lokMOTA0FH=#iLwK9WgOqEPid14Y6N2cY^1_cq^BpIh{NK%<+J|M5Kx2`eG&w+; zQ2Js$mfX@HgbiP&!p752QT`T#2IfsP=ODodAr@J6Nigoj91=be@ll;bj%Y1UhCo&I z9t}TPRc~BaL|;Rb{uYgV(z;ZT3jgy`!n_Y9icQ%AWj^T5`jon&lYydlEPvu!2rLbT z6=;jDxgc&R<9-Nj(d?nF!WOP-1H;g$(6G+ICuwu$W3i8=c4>e78P#9^$^XRxk2Ym9 z&qAzJ7f4L`7<*^?A)9%d#FURIs3HMqbqvgE2I9kQniklL9(3y8I`hABhMb*)yHA|~ zow^mnETume8GE>)QCx^iZeWEje9Nu3@GH;V61MRpHxiYDDA+Mz_=!ZNBP!Rer`lCa zOE}N^P?&Ir3=qZs9UX=5CAT_@Tf7rl_JtKG{b3Dr6n9J+1@Wtb-53O^%wP(G7e|7r z4E{V4Ok?m=1pTeuncY$R)0A|eK73)tMg0Tos!w`(r)Kr8p=oclgM%cs!D0ZrdP#-)K{ye zGZtL$`?JDNe2MYIt1jW>_zw&O7n96l)=}`E}Ig)T?rw3PadWS`2G>$Ux?x!2zYE%td->9LXtCAar4{dPu z?q59o0&kk{+pOxfs3x)+br2nvn#~(N-$1w0kk<%-Nmjw}8!*L#&G^Q`w=}PPo;mIZ zXE&5ya9T6WaflUrTXeKr?Nj>S;~eir#~km``%GlLGc9hg-vX`di^u3fgY5o}9yJA= z=5C2$!>cgpQQv8tYs{-OL9761NdLw~lW`TKm-j)=z!6BCnZ!;Ts@qUH&={~0-tgF{ zhN73Y^gZ%vCv-VSF7DmgfH((yKTmN$b*f5x7^&DA#5u_?n&q%rk@59=k{NoEE$zye zWG~;1iCK2x9f&P>5C0)!IFn!RfD21i+BLueFyWdotcnGr3nFO}wo&tO zw;|rQffX?i!%M6G8m*u?EI=)iY(5fI>ow!lY+MgyOMAO-7KazkckF>EcHkSwG&_y7 zPsI5ipW>D8Dc5GLHV*u2PbYT$T^0Hyp7X=S%y({J{fLy!=rykpt=w=v?i%8V?JWl} z`!$2wmHE^SmAYanCuo)#lWTMzz@vJ2M+PSgFlOM5Qy^`!8+{DSO`yEp*m&6iTt-Cz zqaN=Ak!q%ZKK$mF7Mu1r@B2%H~Nq_IlHVUzDcQ`zK?f2Nvz-=}*z!x=J> zqumx^Mww8r=PIaig!+PWn#}hRxXVsa1Pq$kE+QQ5m&QF$inEX6pUC>9^m8^OZScEv zzDY6cGrQxrH1AmVEy!FSVt0At$gtmN)5t-Uwr(g&+2+e^nPIDT;J zBK@-;JAKoVlc0{Ld(+`I3QKa$)&Q1A53P;?jo=Rs%Yd0N+8@}dGS3&?x5vgof%TaW z)vnOz%DGppQZS4Hau`<2pKE^-X1eaWdB#uC>Y%TUQ$KES9OK{Cy zp|3*^+_`5TZoa|RYI-i>U}64QX$C?W0~zYTVF$I&JPmFLP!;GhF~R?N8Us1T&+a0g6GlvtX{eAuS%GtL@8kKworsxsgjL86G_ZM^(g{Dgz~685EEz<&gWdHs<1^Z57N z71vq{+(T=`5exSiXS~ou3w#KKloaat*1*E8+o+JD-(t|2aFq)BR$%WEdImp%c z++O-}xNx)YK&bA&LkgCqAK>D#<>>--1V?0!+>6y8?|*OiQhwo0E^W?7NFDT84%Q)B z;B$P_wH=O|%@6GDEZ(fm=|B{i>$CEStKo-H{WjL1KCD4U!tkH!dvhDIB?SX%d+_5O z$pXtj$Yd!Jqb<~H?#bvl+=%se%*gcbOPo#ysp;gd7+1jPev!YU+pHH|)D3X{?isdE ztGfX*D83w^M?n{%AY(X6Y5zlHe6!9o($KKFE0N1=WF4JA;xR}~+cH&6PXLbab%4S7 zz3<;|?>y{VkV@N7;4!q3R)h>z=a-L3bprJ6W%w&IyvhvU7gE(F+p}Y3d?`1|za-m8 zYhJxabh*ra@&bj91|}L4a#_LUNdQ!>+k(ouLJoN68aG3GkSXeKM1Z`PAaD532rv&Q zF+??_uvvP+xReW(S|pRF1Z|WbCIVChC}vIWHuog#FQTY=Al+gg19u&FhD(sBEvh5C z$av&RJBA~$5}2DtmeKNY!K-oETYEZHXHClx9Z_9q*mYjLb_Hr8})v{rqw;dUl=l9!LPJ6 z%-gDkAD3q%j)z-&87 zNLqf1nf|(&o@}O1GSg{?B>wqk`WA#yez-!V(?uFAg7VwIM|WUJ0>^0j;Pk#;uDcz> zfm>-$R_@YnNO#~DcbXpjrJ(Eu-x&?>5qxt{q{sKdc)gZt7*4pmGs&SwZ*MVuhra_$ zQ7(elewzUC6;2+&^L;ZQP$*|^wJSfxB6Adj4ajvqzu!bUgX3s z6B^6(ugZ9!sn>keS^si5sE_X74WafR4i-pHwa=x09&U*NRGB~lK;;u~z5YGK$w>o^Gv&72FPBsCV6#6tXOFto(JS|v7DrY|)kSD})Vn>RPic$ZAE6s)+3US1 z3--&ko~RA(=<94>X59X8tS|!|tp2n*Q?({x#Ri4#g-qDL!1_kJhYv=Tx2_tl-QYoPsu~U ze0Fi6#{H~V+GN=2sA?0-ZGrJ)e=%3!mUdjRQ9m0P$tZC6%y7YfDo2|`bz1lo@1y1K z2TOXl$(1J*AshNKGZ#yAL&D^w)=c2=Zq@ZzUG-XjXYV9Au@&Vg^cOly%b;QaE?ti4 zI0^3~V01zaj9nC8!`5L@9RHAKBcS@w1IZ2|{$nKTi$`*_`hN=lpg+o4N3HG~kde2q zW~j$K|B{@Pp5$F%TwU{nbSBm@XUaXSqVd8<*2wbyVD)W2^NQz781K25>n>IASv}+G zJplDqdu!1}g|yEZ4|f9Ls3YNiD@lJYE*&RVj9uRVq=TA(vImPq0}nW$YvHtwQ@gqq z-H(RjXhNM={QOfLl{zQqf< zM$+omOTv&ndtmB;KmQqMv&{Z@4Z*nPx81Q_v6>U?+W<2LguWNToE(3beKQal{`y0m z!6YmU2(QP;|Dpp*b5v*Pv8#g#BaYQaS{?Q0WAu}68pLei5)3CLvo7zRofM|m zf+_zItMr;jaOE2Mad|G%3Y)RqH{Jlb+aERIjOlZ5^jqH*;dgN7+PXuX#ze&9Q0Oh` zMistB=%0c!fG3zppIunRn?{eR5)pQ5-MQ~Lh<2K zEO-U-8-Pfvz_F59ggOu>|5bb1ZdL6eE->ewJ%C#aIAdin!k@Tb2GjdK#h=i$k5V?v zvBs@^_eT+@rp1P;G`7|9ahn*%t=M+(WF{0%BfsfKa~NG^yo_V2zG-JBRsYghITROB zpmUOzpNc=oZ4B&p2pw5{Tf#7#W_Dk6#fotTOOpN-=(s4As|>85V6VXLqfucN;C%vu z=r59p?KKQTQME~#@30HhexD^@f#MGl6rjgTKmsW7oikp!|CsZYc_w%ihaxl}@AQh` zxqUDcabc|YP8@Q=i$}cvYd20g-v0TQY*LQ@`($sWTw0>yM@zid!1a4DzMr>?P~I&n zbSu*E>JhThOZ5X6t^-}3L~V>0Wc4}?wM9LP*ot&dqf>0HxZLT0MV{!~W$mAc^?;R4 zMP*^6;ECw>#(KcvJtdeF+l=jiMHT**k_}Ie>H^~x z6UU{0J!JNc$5v}&yrVk=DxI1mBV z9xU|uP0D7)t$ygYw_`EI=r%m3hMg<7z7lUgq`C7~VsuRUf26$$c$C!@@Sl(j1WbGb zBoZr2&{2be5S11LG-DE(NYE%Ct6M=_(26nv6p&~VU>pZ=t+uwc)oQKQwT4B71SEh< zjUX1qDkAC~!d6ihQS$$tbKltl^!uLg&-0LZ-}~P6+;h)%&pr2%%QWuMFtTd2e5-85 zSHo^u2Sss(OP>0fC$8mM0!w0p$&LJ)M#O-Wp41X5#UmA*5X``ME{Ds~sWj6xp3JR5 zi)$rt6Ne3?WpRcgenF7SiF&Urh>9Q`UdvO{x)B zF&X+3limJScC)0WV;d16WkE5EDdq+CXVks`YlKXknXaeCo!TFyJV%HUji8cGs9-qv zx2bL=W-yvBIMKW!PIp0pCAlKZ#u^z)Bh7!X_D15aX%$b!syHZaY}Py@^>6Sk6*^9F z-;yaZf#Iw_kypE`(wN%YxDig*c{Cmz<%X*s|Li1fTC=mx-XmY6hf>=rYL)t_aBoT? z5QM6*F>Af-%$@TRiAJKnD-pXy3^^J_H4ii%S+0YYlXO& z&Titn_uItRz$0^37|9~I3TE!q%mN5zCsvJpML9)It=QNR{pJG+05XdoynK9b3XC)= zD&MB=WxJ9Hsp{2`?<`K6?A+X-3qqF0x#CT=fE!3eYbJyO#);ZL>S7u)irUOQG^LP8 z_u`9tZa&hDFFd`a2u}k}+#z0EGP!ytQBtTXBXFS^A=$%Oy@LtxL&nFw#9UAcP}B-E9!VpT0g_6^O+cWUHP zLi70pnuC#~g{LBewTt(TtCZ-SQ!Avz)RAxbhm;kt_j=J*D?pWv3zPTw{ua*o%{!47 zhA_1yN0y%UEZ$LbA$^SO6D3RZ%a$gQr@rOYZkk8=nHfe?dJt6&TNMSihJ06`= zX`wGIfZKbvQ96%C(IZG*dAN1EQp&s|xg=1swu^i4V)B`7i(J^~>wd7rC3>KwOK{wA%^=diE?Wy8L^mIZyiYck;C~iFrH2KX9c} zBhpf&3xCX^dlHwQ@Y!jx5jc6OIQg$mPVe%r$Z~piL z0_(RX`)QX=R<7P(YPs>7c6x*(MhE-J&wzIn;bWTrN`1=S1#8Y3_G3$A2BVJi${2qi z3CO+?(jsF-oAw2|RSkJ#bx&ELS%09u%D&(xyG|_?MT{-moW>$oG0f_`(qp&(6qt4> z2X>9ejL_dAL4h@ddXYTt+55P$CBdGj9gSM`SO&XBAPHflMTI#owYe~gpOZ@m4R14J zcF6Pl&w65rd+Gpzn`i>pMvgsTBCS5e+WJvaLb(UXg2C1mx#qmj&0i-(QT^Gn;3kl&;!3WA4~i)6YEtI*Euc8@%d;L(d~>Dre3})0 zI+Cw$6!R*QBrP%)V49QW9=X1e2VIC1wKj_@$9HvRdq&5~X+TC6jp{0en>prCOfQl( zZF9}v*rFNFAOFM+OiG)XgAo>2(U}=H%6aWicp98u*$0P|XHJPJtliO#qC%i~ae&oo z1);575JjMJns!QvmlzXrT#0Evd6@O0C^v_iK<5W%RK7<8k7T3@?+~{4R$>Eh<)w-! z{+yLv#{3vvxyw`XS+@=-z`2n}pd+e#*kB}0r*uw*!Gh)JC;S; zbZScZkl60)Bc)xZwh!sH?R^K6+kS}p*j*Au)n;gHmEm@q;fKRa>P2&yRPC3=?`1zg z5X->a@C?7ston83B~32W$SuJ68L55g6mu{zpA*e z?*I2&i`fY|H6tdcRt}VP7L!q-*Gk4#oWWd}2kwx~EN)c75Bb&T`fDsMN(C32UosEQ zrq3>aS(b$rIBH^|&k(-s)}6&jAcW>5Iy>OXzSHsh-rQKyt#=zqe3ZmiJrn0^YfCf* zv=nXM!lx{_aoI0u64+QEiHn?2+ha8POyjPWq5)I-P9FwkUfo!d)|>O3I|JQ0Fqj(n zRZ-Q?sew*av-+e4&g8jGpl#Kxvr+>+a0O)WErAn+`2KR40EKNybH|KtTZ$Io6-USa zL&dE+E*nKI=>nekhDI<}J!FY&?YI5fNYWm7Us##ofJKNRI^ zLh2+G^{vUPI}bw6AchkRVnB+$TmowH)qcf8m7er!BGdje2qDuBaAN97F;W@*EGP*k zO3$nl34E6=XtzuZ`|c&f8RojxyU+kf_0@=foJ|_Vo`GB(u}@-}WKA2>Ii>j|yIxZ( zkFz@YfGhh2e6Y0v8>XG;)UASmcsNs7`MGd9d#-oG?cbKx?5hmuKGaiy#!C7$YHDdO zGL*GLI8H86V_O#?T^FiGB{cmvBacP9peVYO`aVs!Brw(F9Zjq zS?jRVQUSh*=T6U6CP0|JlAe2`?~KdBG`dj0X#j~d)=okOK{I48eMf-a-$=< zs-2?dI7Vb^HATBbcyJr+jFuaHv90-SYgM#HoarI=z6BUrt+{dg^$+SHP$SZ%TP6Np zt!e?gYzwy1G0|7uzhgHUmf5&m(}f>jJ$Qk80XgiB(|5D{bIec zvv;%jbB2np(Yd`^6wmFeW4tro^{?NsjPq3HP(X@Hol_%jALgWy5`o&BA z)ubUpdlOAVvjtw5hHRV_akx&{AG0=6S*nq0l(a>3@F212VjaxX4mLj@r$@5c@^UPT zX+}LP+^q2$gwEN5EloXFMgEBn%YAP$Ql$kgO~F->?ldC#TAC2)Y9BfTc80Sa-5r%> z(16&vM*7@mR&IoR%28{j^VXPt;eVqUl?DU3CnT4nM7BzRZ#RST>!U+3!)*U{y6w{W z|L%!?qNixb4__-qG)( z+AU9^81?M~rm=c}n?J^iEm3`HZDN*6Z<>_57{Ksp$dWhlhH5ZOUZd-E)r5@i_Mj!pcjhr`kFT zFX4soou%2tFfKjbx&Jo(IHUr8(}Mk=@DAWGg>&T^jY(~_w? zN=Yhp+x#}MWCtLSP%_+ycdV4+YU_Faa3_%(KGaE%D z)45;j86KMC&7+ywULD)%BGjLI@-yBa;fxv@A6edR(2v1G#I9a zzR;6#JJh&DPufO%B8%!4I+6sHh2lpUc@$t-IVM{E7qRk>v({Z>&_2`09f%9?h4)iB zTI5@h#14K|Vv!#|v}4bX{92Zo_U=uaRsGgZNzD8{nIqkFIo8l8K{Z?A{#fOEcP8}b z59F6=5`f*`JE1dI$MS!YnE#e&XJoFAcf#!{5~*N%qx3D>-j_c`XR^PaUo2f)WZNXShP38@1NJf)|pCq(9 z`#-w9$UJXm#$xkSOQ{$p-Ct*0rG?=(y8^yGvA{?QL>4CY$HKkK_UNQ8Pt1O*_9|hG zEc}d>uIDk5@#x=?X!*&B<-h(QiWKve*2oHC(5?ZDjz0Yv;|gb$QAqIib@CsH?Im&i z2uOZid54+#7#!xYB z9LKBV{D<8RnPBnD?D&u1K=T(-{84?83)k?IPP{K9KS@zUlcJtpcI!5KO}h7~N0y@h z-jqhLx_pLF;!V?51J`1&KQ2Tp&%qI9k z5;c;wq@=z?jwC%yoeJ~SVJ6yNb0%)}95&0410I16Toy>!zk{hW=5c`H;dSs5l+5fg$v=7m#!qPxZUh*l-;K&m8{w$@T{gNVOR z@=gV*qQ|kc0nZm^5)0j}u=yY8omhLS_>^May;QoO@~y{we#sA7yIV8(CG`Y%sVwkC z^}f_1c0-Jq@ZGwKYNq5nHDV}Zmc%(j!cmyh&j*jfxqk!qbzh76VVMt{#ElDQscu(< zc%BydlzRSu;LEi)9Dy%m1z!s5gOLP8xw9@AQO1QplY$MQ8vAB1fuj~u|*NZ z!YK`B`J>>;LdBEj`DX7;f+SWS#X5)yK@Jq%%7LPtm7S;!o37CyNR~bX7cZc7aHsma z)J6;yL>&XjW+x!=RsYm;?)B_$%{)U_0rv&_mu>muTf!Yv{2R9TYnuXN%u}y(i^hVL z%x}8LlV;*230U$>&!1XM&my~_aF1*#IJGl@yzDx!F=Nibv@aos=`W27S(kl)Qx5M5<>>EN;21XHULqmgJ zgxWqH-7X{Xkk^WQfMl+CJ*KpES;j!Y@G-<6BsxdfbH>-~J`uw)I7@1&TsB_Ep;3=a z_jtK4q{tE}ivdZ>{aOdoZq3lV>Ax8_sCh*k9JXgTGLE5{+H?*^yf9cOgbJt>`2W)MsvJ8LFSd|kidS{d8# zaCxOV;{SCl&PhJb$9lE%V*zv=0BX4=U)zbUclj>X^Q&P3Ka2=&5Il_nl-T107ll|U zzAEks&DZkG@xYRvmQAsbkyZN*e9c-pf^Fcn883_E=8k_D=Rp+cpsmf<(sfJu-q5la?L*1PF3KE_V!dkcL$31O2h|Rm~ZW z`bCKN5?EbVidB~LWes_3*m>f3sy#zOdYC(}Wni^cJj$k1o(_)YG}b3UI|YNvH7-46 zi=0OrOJIpzN0bB)mIS}Ur0N@`H2v*LXkc~H-97GnNWYLQXq+lrK9rHV0I-#licd)7 z7Xk=bS-V@Bvs3&BR-Vr3!{Cd0L7j{*oIgz_Z@IvtZFGH{#+8(oSHo4pDA z0k4V9r;eDBt*)9?p2A>u2GXkEZ&NjEc#1rvSIxRaALw;4&eC#}KYKipZnJYMe&{5( zG54M_fw!V`*y^P^%C62x&(q)Y%{gN&7a&|L2ZwDz4UH#Z`3RGjJ)*+N;W>K*_YXHY zCw%DiBDCgv%!X5t<0XB9IOvb$9GV1*_ATYSYKm{k$^2a^f0p+-MYs-IgMK~D!Vd4W2~~nBD3oUqr&P)8lW_{Pm1pk*c1A0yp-9p;wth> zh;YKu{JU-;R?7CRSW{0E`b|Wv-dyBSeIP3^p|N-{LWl4r*uoC(ug4-1I6rlfAAeT19xOm82qXyT#$jJKS+VS|Z|QV{l~E+`&6xbuv~vC@?*T}cAMQ9Rfmo>fq| zZek_o*5Y_ zNEFM^A)29$n;{T6Cn1;@?C*16!k?+Q&Y%T~K^WL_%tDt&CRVasE_%bL1sb2y%OqO-qmb$-duU-_s(Z zM8*dJVb?wu3oj|26uFJB!QyLd=2TT8B{Rnahg}mLPA7)rbR1SBC1y(~k*Q9{5f$d@ zD-kR0ga(!LMZD5f>;3d-Jcm4U76qt$GsmnS68w^I5nN+Dw%e(N5-y@!r|&wYOjk}7 z)R@n*q^iX2q~?2atFXDER>}#n$TXLVK0y{;44Gt14GiVED90&ySA^1+>bSXy=9~iJ zMH#N%IP1SME!m!D_;vcOoPHS?pT~W@E5=ai_$woaxsE8xkBFz5+Z_W;lq&p%EasL8 zQL13uw4{EX_yJ2tn(ubIlQl+L>Ugu#M^ED(ZTFgV^V9k6O&*y}-#$I08wH!3>PnEr z8QpF7fllt-3^5R@i@1*2T#LdaGozg~Bk1ay;v5b!F!+`x+d~o9#nmus zM=biX7Y%gXLk5K)*_Y#* z>{#ZD&UgX|OvUmP#6^+H{1U>hC?#1yDPmaNe`FLxyC(2w?OWtz0iV0S$<$&_gy+V> zUiVAl1_cS+Ku)>a(QSETKO(wu0Wz#B?SN`Idgsf#=4?avOs% zpIoJz%@*D&Z`jiTh+f&|v*$$j7=^Ci|4SwgDZ?_@xD-(tU>w7BFxgJs82C9SuwZ5) zIY|5m-X%1*l{@jexWxiv!^8Xeq*1#?01(tcFue(t;}f{PQ@2NByKhDuk;|LR+qWqH zkLo;ve$)y!wBq<+-&!}8O%;H*{NC2hU)v4^n;%WUpD2APF#j5(^kpaXWkjA3m+hc+ zpS8V(xb%5_r%POR28;7#5}mq=Oo?M4{GQ5(Ood-Ny#{+F=JTy22pxH!r9@w4O0Ins z^p#=-=X#+iWXQUmD*5#szBWgGuSs`CfA180ZcZ4qyTyX(1-Zw_t|025H#ZRXe9RP{ zI!+OOTc8WKh>C^YT*AVztwpJhoR_mT{Thcx+MpI$((?s2tYuP$EJ2pgdu41<83M_6 zT}zYEbv^n=r{Dv#Y)EWPYma12JK&L}dxiUKYv$OP4OXl*M*KW0A@5BJYDK zQGG2=4_?Ia@JM#%uO2itjkmKK)p-S^) zvp)NV?*$^Bz+P;L;r?Y$T6ea`pZmULO=;Kn-+OO}KRlw`=As_5&(x=H16y9G8K5Qg{rTTLWd2LoIwZ1N&Vls~x9{4ff> zQ|uigU7oSle8VfOU_D6)Jtcza;N#fb&wJtQE1OOBvU-GJ^M+x%!?Omk|EFj4vOyBW zcykKr08i!RTgS`w-F%i?owManN4d~BdpOH}EH|Z05cz&AvZ%yzgol#l54~8%Y)>$Y=8Tv z>H|HUno$gGh?vs?SGfHR*_vbI+o}DT-31PHNeAroy0=kOk-)j!z!Oz-$D{-rL!-T1 z(^;EFZi#YJ+@|?8^d8zzTXH2C%keJ0W+`aER@@qYxH5CVO20F-39Zln{L*VkUc+Hd z1mL0RlEL)8QoImKIB_WMx#9qby7y1-n`H6rYsBkI4rl{P&nZS{v4jJ6AW*-;^@w>B z1uY~1Q$Jx<1DMS{X4t(uh|7Hm_8+>UgSjn=(xL5nMgh| zTrIg&Qe?xnXuwJ+fou&|kdh*h;8~=(6jL}s(Ce-eFOj6~s-Nsk-SjmNpAzP><|+t} z3<8ud?ni$LoEq^D_fHIX%eg-T$N3xgT|as9JyU zjK(MLn?Z!F-2@e@peU8O#3~bj}Jchu<#p-f3ZJzjFuo?UXt{(!B zegXu32PiNk9*6nh&zx~1;1%_YPk;t>EkS!MF9}WQjh&diw5}ygk)KsQqKH4k27f1f zn$Wyo zq(&Fx2npLY(p#YiQh6-*`uWR@nqH5ps8AGHBAc6sDlFxbdjXyK+hrHzN!`-0^jM~> z!ga1ba@PJhpCDGH!eyfLdrfhXz{9_$Sm6?xtfFX9ij)0M@5Ax|e<{LSLzM-u@H8OA z0NyU<+%@(}i%>DVl|U@LC4O1Uwob&}V<18oI~I?OoKJ14rLbE_oXx8L$zOKuVm#2G?0b`s5xffX=?2swn28f)-)Gcd!g9R;kWeF z|0Zl>#Xbnax#!1s`l0H<<4QlMR^SXh`k4!Rc0#A%wo5s3+tS1EVG zJd@a}MkQrK~{8N-jmA^FpAnvMSFMAJYY;>`2W&-0R zx`J%Uvo;8SWPZ3C*W#)7O7s`q0?5sg=r5H6h0?4ko&aXS%xHhaH6rockRb8ABy=}9 zSfR*~5}mL@BKQ5Cnq@r_pzkomO(T>Vk+dE0$%XaMM;259g%jS{};0tNKz+BDBl@Zvc={~@f z4irek{3?kx>r`kLz}M8XKSY?+4%8##By8YeS||&S61q6p7aWygp8s6LZ^onXSLjo> z$G3EXyII-m)J*N1okfJOvY?v!hD-T;naz=_d{F5Or|%YumZned;*8wn^!;i&@h=t1 zZtPs}ZR|Qa11{Lu+h%VcUBSco(y@4g7B;tDE}G+R?iA3RzMH1w>@3yj{LvE199`=;iDOo;Le8-*JZ~Pk*m4<_ub(jUcm*(<6Xfen zK(gCi-K~7hRIpO8LFJh7|Je=Buw^j|b`P56lU@$)tolshO%?>HS^q=6Ugh-Sifd|r zm*ov?kgpftZ#5R6k`?+~uyw4;<5UJ$LM$lpiiW3*nOmD=k|{jFH6o9D4?#_26sc?_ zf}0m9jV6%12YbzU>ZU9(AcxqhJ-ws_pUCYZ?sM0cmD_!kv{z$B?gbNK^PN3WW@}1L zj4-ow}+#Q7sZ;y!lg&8~D$uThg8N5vtljPl~uGxLv^Y=f)juZkBI3 zB~wZU>?v_B+GAd-fq;i6dB-ffm{f@&6@FRdGmy@l^INvyn9z|T+MF<|S&#^E*ct5^ zh_u2KdA{6?#qhpi=o@6a2FC2iPdGz1Kn|FVvjlLwO6dbxHpHBtjzt62;SY90;s~g{ z#-kfC=TRdFZKMn! zAvve)FC=8}zvQW?kRZVy%F_TF*qXQ&u_TFgO~g8gbu39@UFS4D@ENO^P zxNwhvZ0dp<@7>X^=2aDE5Wl|FWuKKNqd-1Jo&*Kb;xo?eg*)xd_v^28ChT6ze$5T3GsXPl zFGyf6YkV`UL~i56Uk)Gj~|g*&*oOZ>$G28)S=G< zd@5n`JC-b%U^c#3XNGT7Gc??CrAYuRLPjOF(r|om2yI-IDK!2zT15A^!64r$q!b` z(ukxYESOy27Tcd@hVj_M~_ zw!+OPZE~sZ-l4LLqSq@(mM7dSzG#*vvItY)W9Vu7G0V$GEhg3-CXdgKxDgui?f`X-j`?kwL`%vHWm-g@%3QXWoGHpK&nCfGn^akigcC}m`N zddl>4U)I4+&&f>3Dg5{H|5W~;#?+kdPEDz-6J)aZ)W}gIYbZBw$&g~3DaZjrUv$8l z!C^M>8U5imUWT2hVriyGLdY}eK2fmW5NB?GuzCkJA9Gou2135=g`T*^oF=kzxc`-J z_ee43^6$})ic-1MhJ38AZkLcpaCa3k4E>GjEK_{}8_O0xqtqYfXKsGFW3Z>Pk9n-4 zG*Wwj!m^C7qWSR2aJq2+Us4t?jVd}Wa#@#_PX5qaHeXBNmrT&I@q8lV56}06M;1|X zgqF;G_z__UasF8Kq-11!;e6RUDgwS(dlMRsP&Cgr`ts`5jW!2k@VC|o#IfAJ5Ma`` zR2Jh+slFvC01yWL<2yOH#*Y~%ja2bT@xeEmyXpjz%YF@Yibg}R3gA&xo=IvOFefkC z)ncwJ!bfb#FM@#Fsj0$#6>K;&^d5i;R?FY0eiY2aC~`9l1M*;%hPMNv)}XS8Y{44H zFt3urXRq|ioH~aUK9kgYzUW=KxbGs-iJgUsu&-}G*bBo4FIEfG| zFG)1q>aX$kMy$Ja@qN6B5ku4|SylOF^zdeVB7|Fu`E;|?wVObM#7h+(Pjq7Q!=H8& z@HIQP8?a_aMkG^$xivZSYv>b{U?();W^Z~37fbX9mV5PQ3^!_rMq(Sc9_o|(%O0IY z<|D(HhnggV(@}rTs1l_{T8fi6J9dx~u%l4MuYS=*XX^&m}*X?m_?*OfEB$Y#`+GuT*_ zdcpK==1N|4{Mpreq~$B!obtjkH{0ZvXp>$u$8A!Q%offeC>c|Zrj*d!+;j+QU-kEV z7o%Ty2v-TwnZHvhW__ooo4l`R?9~)p z$;FsuD~GJ5=v{YKz3~D$7-qSAuX{r};al?j-~ax18sZ}KqLlE39Kl^#=Db9tS#xqY zvnbe;8VpGw8HGxwGGq^uP4!G$x?B2rJi?AVFVY0)0q+xcmG9h|D44iM?RAGV{{Q z51N|oEIbVOqOh!$*iv?Q%0zAds%8O;GbRt3cHwL{xQ#8}Cb9gMSoy8d^4k*1b5L_YtbCd+pO#p@9>y>IAN1Nvp0xe9 zd5E^p1v3XQDB1SYZTa-X@=M@kKu1nGP{%UfockK>%bW5N=ByiDPXa`bQ}aTsE|0Ct z6M0-RNAa!Nq=Tcu27kksZT-C(s@{B8`{&f0M6Spfn-#ipw0ZAbL_c063yWI7Y!~YS zUEq;NCA~+=n(CKj=J*%sNy;K~=0Myeg7s%=x<>GE=1Dwvr|vbWV}-lOK6dfQt~0;$ z(wZaJS!1Bb;ItWij=jcK+BH_fMTu0c`v%7tZ{WAh8&s~V-Y(axih`#A`OqJJ_+1gz zA~)-qGT0IO)1!#5Am>*_P!IPxktY@6)YWx`ia#RIaTfx_}h z{87mj7mGJyc?VRzu~y(Dht#8~IJpq}&;;IYX=<*I&KF{x@e^Z8ey>3=bwSS!&=Axa zH$ogXQVo=JB}qbU;OA*5v9C!}=J-M}sHFvdmt2g!nPU_apUCoo2EvJ!($b^>6_Vg2 zZGbpUgyC8xaB6Z4IO9`XJ8I4%nv6?kGhk)t9KA7ABV3}$Vej`ROXkF7l#>*7bz z{b3036&;ckSS*Tc+{SliFN*HW4mt5m5VvL>@ECHEJl6h^N6M!y5wTDL_GYMnC}NqU zAaL%s+o}HQ#!R#40+cdzk>e#!MrUZu;I@ulLW8=Ip{_on6Nzy;+qYD9PZFGcmUpE= z2TD#4&sfzhNyz9CF-c7Ip`}IBeI}sTIdaS8>tn zId+-b_!#M`WsB&3V!21VX}OarXT!g%!sC{^gO8DIAcxsKFi|*BJQVyvHJJ0KWdCf> z+I5}e0D#lJ!}CCvGJ5W(?y^pCA?h_~_> zR7vZMZ~2|{7a{6j}d(7U5JGQ>mlpZ%i7MRPRZJPjGZ0_F31n5=S{yAyjdyKg7WZo)#^j!}2md z(&b+qI*P+H(xv7I_?p+)^_5PZg)qHbEIk`d#3OHAapy5a2}VR4=zD9i=Df48pV{1wm^Xif(!K z2`SZwGH(ABNLj=)PDgC;eS5$!w&YMrcOFW*@yGak9SCQp`Fk}sMAG*9|0*zN`)$#_ zRq6IV2;$r|W9$0KIU!|1Y0AD;Z33S;i%Ys6MvdrpxVb65{`wzWoFh$6^HR2QF6CaM z+%^*3a!)rm#wUbst>e@Gxm&@t4JIwv5bv6$>mkog^howDOS=C=SAL3I$cm2F&v&X% z{C;xMcZFx1TV4vH-7S0{MqY{2AdE;NEyBOPvzox{jsp_YT%HyxNhLY!C2TMfOA=eW zQ!9R&uuSZFxzCc08Z3)U9r{=E;M6UaMJ5Qxs$mNj3=~Uh3>~X@G2wo?@l%h_d490| zJN&A!d5!h#t7A;>@YgGFV5y@)q)ZE)%B^5H*D{o+QcPly_y#2@f(>+ z3oo(qPs0^`e-bL=`KG{l-gz)`$D z_e2Kp5S@R4r`#_E1yVjBjC4uW4t4ZowG31W6!vUf+yi?)9ve6RA$E+bw_Qf>Jn<8` zv2D8RXt-TRf{^9*jw-dsyw+CNQP0|6&on!*e0g(9L2GUYp!GRR@K@XfcRY}hinJ>-fK4PU4GQ~!fnd}XGu`scLD zb~s{BephxU?G|6AS#q{$$=RcHFJnv8wJyUvNqV#^V#_uDRElH|JC}`GHCv>cIb^{b z088f{;->{}x%{czqg0tUxisx`?)up1tk}oTPo{4!PA5LjlHnnc zWNI$rdaU$HgL!96j};d)3OZ}P?97fMn|$q>KZvhKU+4nDl$E4@YgXpSJreDj*$ri0 zxR8GN1#Vk>byl>P2Fb9XUGoF+(!}G9?HvHZ&#RkLgP#EP0si1%Z;}vJP*|_<6}Zk9 zxN^%P@n(1s!&jad!tx8(gCkgN*b+xd5r&D!)#j*N#BaVNnX$!ey@?v%L8d31KHj}Y z6oEP2i&&ms9v+<0e3o5bY6hZ0c741h!Aah(Y$WBE$gzKOZG~IUN^13mhK@Xk7M^46 z%&o*DSqwAmP|o&x%>XijMzX`P5^=~|*6?k5dD>vFFF150@7xbDlsNqB19P-9f_G`@ z-jIJ}LnQ0&FI%`CIOy-~EG`=9EYAAJbhai=ZAqOxaP72!v$!7Zzeu|5Ps=)kPvUJO zl{kybvK4_-_e>7@`*Cgy9#i2*lpLSd6oCY!SAXd&@SojSazb{>-Pf?~ky6#l$UP3E zaNR@`{RnBZ*ILzxqV0B~-R61G^##CX>;P595e~Gg00!+wnsYCe{mzw<9N=T-_ev^H$FYKPc{X0#U9M=+bC6${HMuB2fO?FcW-v?i z^-Zq`0J{HZo^ex_NQ$!5hust-DI$oPd)$;f8dmomGu2IzeZ=Ju*A#P=n=(^UG9;zk zP5GOoU=b$XI4R)rYPls^29a8}rpEgj5AqMl6hW1lH_tt<2%GFp#4lMdNVgbC33JHF z-PM_96jSNTYflJG;vC13vMoZ$_MVPd^cH`uRMtL8VmkK~n5#VL8_7B;sydu8<3u_tceE(AV`sKq0maQGmJXy@<8dneA06C-)jIgG zgbnoJvE%YrKPxmxO^CW%S-3v*TN!83fWXYDXcltTzL&)G-mW|}CJzYh=B?Z*S(`je{Lat=8LA&s^auR^ zi2wV>;}qC6vvbOoh4s-bGhfSBa{mUGsiq3T0(eleJUk(-Kn>#M;>n1^n2B_uI@VzZ z6O&dRx(RB()2Wg8BcY2cB)(Zbc$@~z>dS-gFi8^9E00i)+xX2`%HBna`Q_=d!l?{R zrXMcIbstD1usrD)|BL0o{K9w0NLR|)5xKfMgY|S_c$}GbmLKpFW|qxl4&cs0yhtw^ z9zK^X%JNVTU&{#bH_MRNm^B{)Bxn9Vq?!X*p=2*XsQU2X&WhoJaqmwqB}~x*xsiuP zugEMxYFXHYH>tKPbVc^^&XkosKF@a@@G}W@xg?bN4n6R-T%H$OzciPq9|kZz39OUY zgWxN5YE_rLsH31ZsV3IhZPM9!cS&afEWDqnsjeHUy)wp1DE;W!x*s#iY9^i$qgO<&H&6d+e@l3pZk&V!+1;4dot?#FIv`kvt7jpTPae|A zGd)Z6E;?u7YmPflkBIb`eD|Twp6OpL0TsBa{?OBHr+=~p+*V6C_-u-4fNNe)s_KcA zY&|i%s{-$7J`P&jvQ6R-s`OCKU${Hy8Rk6j4D*OnH#N;IRpK9=97OTrj8fpr^cOTt@%$8H+&AWnfJ zSG^@1-AzNWEz~sO>28|Gsl7nc@~GKO!w587(}b_PY3;b{QPXC|)3`wKMokmm?&fQc zlOTNG_OyeNq1oizX|R4cquzaHSLq}O~)Q32qyd=EDD zhN#aWWr2cWa0jQR3mIE8Fm5v~z|!~=?NNkEE>0>UTLs4`vd$KPlXOWc^2)J`JZg)u zXRwVaiFfR-V;7ldi(t`wC8@};V;AXXi(oLkE2&7{v5Wi+EE#?~uGvf~@-^wl82&r9 zNQP6BmsI4{V;A|YEz+J_ahZwu@aG=8$Rt~Y$$K@ah~4N*mPOpDETl-)_T!d_FN#yr zv_Mx%xWO2F3vw5NF7g1x{NASETThu4H` zv$X**@){llt=WohVSfcop1+Y6Ec^mUPDcSlE#*0hYBTq;z$bSj=oyrZdO12LiuzYV1ze#-S`d9^RbZ#TRB*EgP&ie`q z5GW~W-Vg1fk{>$|P>V$uk=v`4tK2Nh|Nh^QrnwahUZw+)AGBk58-Pc*y7htCDa|ix z(u9Ph$dl39inO+TsZH`~ZNHYM{^to&z6CIHb;@=xEIba_)M|a6F zF`7fq)7`&Ja=@=`j-TjH#23wxsdYRiIpC}|$ET8`M>K~-vT*L7E;-<{Hpddl@iU!g z`8qXsvO5`F!bM!C`M=liV6R=jPal88`sMJWQin(ZHQITO!CLqDmFAs8SM<<>o5O`) z<<^M!OSp+H$SU8DRK*irC{-?rOo=DDfT?^+@7Q*WyRfKS81cn(#)dD!8}w>QH#ab} zaG4+<97+h$Khe3Lcv&sW#0H`Bdk>?EtfBXAvDk-GrI_4e9Niz~L|2MaBYOELVpz%9 z>7SjNr+77=|5Ie!HRjQ|at6k!`G&Ub3Q>X0sePRUk<^^pkUUut&8fXYUsN`8YJ2L7 z3S~~MxQSOu6n>_;R&<=Iw^R&sYVXk(mA@*-x@)o$)79{voYBmON@`%dDmDJR zzgzxV`M#HR8WD)w^-R8BkW4#*^|l>hm-6IixY`#><_mt$53*ck< zWCF;yG?wo}p3E%C_f}%Qdu_g8EZ?6c-w4UKAR*uIalmb?wpe+aIafYU;Iqs3fa@82 z?`6OHOpbg%JN}(?vq$bk&5v|#eSIREJ^By-JeI>kP~2g#oV4`^v%$n_s-!8C}hTr*$4#KHRNQ{6MoY!X)u12 z|8Qx`;0$NJoR>tm=Z?5T)jL!D6L)eP?3NTU3tt?beL;a44e7WzG<%RADa5IHP9~bo z^L|USdAc|p7$mkR?CsyPJ5X{9rf2R*4v)MgO--)YcGYGmcVQN#_)|A=6rppvFLYNP zPNIOS2>;_Eu~W%9*AN+70S!*m;<_!qkR6ZiYhbqSu^__g7j+!GhzT8&WEr9}>atlc z4RE-9tGFi!b>ss*NcZxJ<1JK#Hq}9)WApuH#xIiW!J`mvgFh%OCUo99ajlfIk{M?A z?Q}Zid2(S6M@^=jNc@OfJ5`^@9xd_d^2AJ~`(iOMhQK;toUvPFHJuP=bAw z5_CzoQ4&zx+6&~?3D;&SLH6>^KDZJ(`b}aR1gi(Poqnr7Gyec*~vae+zzosbSi z8m|#TrE

    ;KmI0e>$wuKs*vVmiMeN|5P{DfcR>DNGvb8s$#U$Syu*5v`p=k9DrkQ z$8gubm>k&weCuMO8``Bqe2~mGRd+}*q^XcED)!-L&jDGsMVQIr%;q=HNBrSga=1+o zgn}^{X8b7{B!fpvkj${SXSn0AOmb%PAbEa89@2?_h1%34|uPyZb%KTys`fM_fk?COlOJNH8;XEeknFYYV5X@@FYH5oe%3t zd3RS0e`i*xPO_VifH+RU0qqeWIYW=8jl;{`>AS|6ufh#`TyrQyomrmOh?Mjqq>q;l z{Lk&DIp1;S9mi})tHrd60g@03O8@pcSFK{FmY`2Fz86lp&Cb=SPduyH=lIDr05I4BO=2Whs?bpdXas~q7TFATemZiKV`MNHEIhTV zF>pxeKABzfpA&U{a{qjVvp9F+ zc&^G0{xoWYvv_E4yQQ|$nO6#6leg72jO!`1y2RVZ$C<9)1oY;pQj=-eo&^oKn<(jN zDGggX5%gj4W!b_1HhkHoVQZK6P3(S-^mb_2+Nu3JzT@Z{2M^j$uHEMZ)r|`x*js>5 z#@1y)S$KlCw*-a2+x!dj=4s#SZaK7|zH($_4!IP+v{NpNOY@vhr`QpcDBdin%3QaD zP92RZaU$Hus92p#&WYCs4v!9rIEtS}TH{Jdu_2VxP+a~d+dCuc=^Y46(>0W!3 z!<`qHWN#>8k&2I5s zco4}?qi>}Ad^E~E70xlgqg)OooP`b6bYd?HAdRPwyBGT&6Bx?zRt;h?6z2y=^k&l1 zgChz8+0by^TofpumiK*2(Rowy0-fL^Y&Ffw(@*AjNyq+rBj}m+^LtcuSa?B_H194hW@Z!wF`7PQ6t^}`XZ3#3$IO*!8nTu=9u}% z353$UDh2r#ql#j?go`d1!;Pd~iBzsg zv(&!-iuW9Of6l)9qVkgBAs?jrDcPoj*2#T+nk}#{`X$HgLE@AOZm?fgNCoKia0Bzf`pQg!Bt+x^F4Qhs5;LZF-5VM?Ttm9GgDW4l%O&lw+ z^{|3Yx33f2*X!-;)l0>ukkFq?ZThdHRmsGf^K9aE(MCC6$oVsycms(F8_h|G2EmFc zwjWZr1O=b)a9>y2*BS2XYxea{_w{M}I>&u|L|@;kqD?oY z+NM;;Q*N^<^CV@ToeCYxSeqV<=NxKN?z1_?uCMrS`r7pS<2k$86!9&jPR*%xdTjb5 z@tk|F6Ck|xSUlxRn<5N?KJOz4;s-Y6kMTTj*_1!WQ=YdePsdXpw<*uYQ|8;0ze~!# zrDC13{lC?wiwgqjI{7ktX0%OzS<)@Sl-iWn;wk6Ylsa2hY-4I@G$+|~v3j^=+mjMs z=8XAGzFADzHL2C76|qknT7Oy@`?RF>r`54fe`x(_ZS2!Mtv|gR`*b~@AbhyvzV)D- ze-&1#um5_0kbaR(!hjRv`Az0d=SJs*i!$Wyz69kkN-zDP(ZZNe{@R{$dwOyNdFy{; z&y0$=DpC>taU4j`5XZM<_EvydU|2CHJLNR0p6qOlp6vW+l$`9`uU=_papz|4Bnh}t zwYwJXBg(>tzjR7b<8WE1t&0C$%R@8s%7ni;%V(Zz(ss((&D@(W=q|E5UTd%mXGJ~A z;YyM#r}iXSO$c=<&hoBpw4m0frC0CJ(#JBJ1W-;`5*x7I`K(a-SCuy9C_N=ku4 zf$Jzx#=aTQ({7*wk6SCPulNm-EyJFHR6tV|UbXAtIznp=G$oZbKW{$F_|~4E5o_0B zy+Sq$u_G?;G&zf# zEWWO0>)!;-7lDFzQH05^%gUvn{ABY(KmEA*cj1QaqONQya$xxCwdy>R8WG?#EB?IF zn)%j0tI%6%vz5D?g?p3%Vpmg^|i4<3)f(D=S+f{;bmz4xR!Ewbx zGr=x+DbQ3?ir&N)=q`Dw?OSRqtiP;q9c9K|)%=dDms2b84#s9Z@vuzgn5-uV$t>e* zkZsV&H6q#G(M}Zo1bQK>JsBg9gzrCJ|9^vTru2jM_n23o75IvmhM=t=Nyq=f% zQJB<8sGQ65ttSu=9k-TF?*mj|9bO#;4Hi#aTx4I>^TYj#D3}1WtR$eBd2Myb(e;N@ z;YaFnf}_uISL25R2{>Pt+8=+-3%x@Y{|Fq=fDX0wGtZz)0`|uQDg1O-+78pU1Ov89 zAm*pS9UFX{E+5xjDf#orFJ4N%3F3{lHBlRl_QyhBFUEP_9%4DdE^W^FXERrV)qSLD zsPy%_XXKE$tS_fVI54oQGVo47$@%ng;Fq{&3#8)H-oSi=wLxWqKJytk)sxlz@V*RJTFEUu}~_lC25$ygzd%dYfO|6@XKZAp*+;T z-O!#XNj!|bhvBvR0%!Pxhve+SN5*rwO^WZ#c`~Q?s}U~{CSTP1#(KlFlngX;3j}}s zF;;5B-Z7?RYd`CyEIj>EalX%X?-nI69$eeh9{#3f`8m`MpEh}{c7G7xdfC1`M542p z6CL6ZFFQJmaYzlMcXa8c92+o;p@^Imz%$m&KJ<J#B24Usk;)b@;&jmH+lv z5BC1TnJ4LRYj3cjB<%YpT%PiA*~HbphM#-*Z>;Z8+kBa`_`juMqi8sAT1hYS`2NGe ze@*`IaQMPQy*`{g@Z*x;O6StG$UiF%nv=KfYFT)_;`h~eeoQE%0fe}aCh2Q8e~VeZa{UY zSkBu(mD46;FH9F|j7dM+5BiR2C=1=1%_SJJd~w&!`UrHDt7-*DaodFj-vGz9)jIQp z4w`jaRrWiZ?j^~LK03o*R4Od|T;#=}d2w;^QHs#w|EWJBNwA&eiivWtkT~AK-IjD+ z!D6~E$fl07Tq8!y8rnGas`$dxV-4m^+q;L)ZPmM{t~+M$4t)84)jNTf`HY32-4sI! za!Bub?XORIcW{AHFxx>oho}*w8t$13D8i}j>4^%N=}1dv7{u5T6Im9!#G(#QBg>K} z(KpG#Ob0#xnMAOwEvy}zH6jQ275|i8=y?m5=fcvrS+Vyh!Js%Ek&<5lmFcyl>I?2;kH`EawbKS26i zfrO4_gXvuBCxB1pK6FDiZ;AOE@N)2Ajhud4l%We5j?i03Fa6CL`3SHWEyubfkrmfr zUr{=)csFa`vvc$Aw|jm4*xOhUp&@fQgAs5>!yrmQizYh$0(0$wZvdQZ!ewWj814j# z$UT3R?r2Stu!$TI>#A}Dv9(y)P#PT9`{{W`xu;Z0U45TS&`PIZhclAUpb@99apsA? zBx3VNKDjCv{9@|`LY1BSJJy=M375-#lcM@2+k&~v+j7%-2dnSWobWpum1%bhz7%Rhpdyc@$8rdJ=xm@$oJHVYhz!{-i`B`7z-NYH7)GKlNv*IL376!W=h1Qk~Uc>6qA`so}}7f;v{tu9({#uJIHv6 z&FzdP#1uGE5UB#mE#3kV*}7&s$-Vjpgv{17N&rXVl}FZ)+dOv=qLL&pLr==X{R_|P zo}!^W{8zK3C_0ZaJbVM9_Wm7cv_nB9wWEm9W#Q&s)??2yPENu$!ZFjJ*|R;cU6IdpAQ5O-=$Vn! zC&MUV+uPOz;{5q;27~OTaO}GlP^Mc@;sBtuEIaG78gPp9duE{`W`@W|2$HYHewM1Z!(R?TC5VIHTmcc1~(lzCt-F+DG|9QNR8 z5_w-tC8qmQiE2rN)qOQy3Bs0IIXXe1RHLcz;I>yPY52CcXv7c)!F>tEb~QB$D@~+2 zdlAuEQ60he;o%yu1a{Mg*OUiY-KMB87G!n5AQnt?E#OA0HLC~hAfDS;&wse(0ln38 zi|VYs5BSb}(<`AK>DAX}&&L{F)pOGXw%$bps@v-eHmKaf6nTO~K!03%yZ=BCzY6Cp zB-9dT=vty$A=iC)pd?j|RlO*Uj8nMoaWd)=v=^#!QrhHpCf!-S{&M68cdZi`B|NQ- zD^G|haVyJn%(#dIelltM5X{{3ka2#m9sx9WL(u}H%A`3PQ&^8q=m%U9n!8+n&F6iX zxk=2N%kw1=X+qGweB!wYT65z8vW;oFPiC(&BU%k<@~s@%{fA!NQ%wHh?O0?=lsVIq zi_}B_TFlo3+@ASw#cfu&%mS;N6~2mjT@9umMP8>uca_EJ5JtrqF#CRH`80Kzp8u=b zHnQl1TV%LB9Mho3T}a6q@S%{3{;!Tptg`*z2)b@sf4~j=PO-VxDzzWGfRIE zkr?gI7ao;{B;h&GBx{sdqOz*EM>ae+9Z9QzrO6WRUEiF+JXNnw4Q>kiGlyeV$o5bC zq%73Qf8*wX3%?pr9vYX2+VdkfX&gGa*M@M;=G67QJ`BFgS$pma5uO?z^6_0P+sAz2 zk$upu*@bNflVFuM_L8H2gi!xCZDqC?p>1=7Xd<8pI&<=KrVh1g>Svp+l>&w6$aT zvEb-qc~m0w<(o<8+oeAyLEzZWw6OGVh|}s-i{f^BG0skqu=oI6*-Yw2!R7upovtMM zy4hl<5NawEXZ094e4gG2G@Uy9WtOM6tzfjQKqL{h1W7OCh-?8cW)1$NigFQj0F

    +op!+O! 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
  • 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𝔷+0#247YO+QLor5$LbRCt!91^Y;>a>I&2s2XZZT zGwwJonr;WO;>cvM;8-zm+Nlk79EAuj!V30b8yMPqm`JUHS9Zsbf_9DRlm%9>$i9ss;o{~=)egHoqCZB8qqDdV&bh`(;pn!i zaW;J}f}qnPD;Z&)zE4z2^eIS)WtgVI@WX>=_K0mky2vB@nn`#?rz%IP=D1@OKJb4~ z%0onP_>aG8JsTs zHh#O3PMO;!J8y_Mw@T)8LWlSo@Q14d!QsaUQC<<0N6)#|w4KPLW*f5U?cffI z-pD`43ndmV@It3M=|WI>?NGC@He2P9#jCu6XnE`8CW?7Kf*aTOiW66*M&QIb4B}kL zQ5;kNJ)z6tR4#M~CkGqLz-nwX94+2QsP|=64PBc=4aP&^0-u|RR-7D>b%LMBUqmn= zV(`w33h$eX3Y752@)5D%R0UKCt|8-DnRpTQc9f%#168ipVBRw$sRxGP=wIccKZd($ z_=YJ^>{h~$#6@#AhlydRB)#M5!A(hD@^}@dL{?cVdS~?4-d?Y`0=cY}*o!wZ$X-BhbG4q0TVsPAq{bupUMC z%Q1z&O*VEKUezfC>g&;+i7S5K1m>@nwxQ&CtI!yp#5absnEtg4ZR}VJ6a(=P8CIQl~G{Q%;*< zF~&sNJP_#;!n(8;7MMs+z~&7tEHjYCn@B4$;FfDnUh(^zNN+ZgzUqtgK?7;&enb3+ z0+HgPbuXuXG&ID|@YP{tI5E;h z-ZT*T;vR+?Uew6tO!;B7=2ejf@`eG(>zl||{T84Or-}Rqjl7hc&n9xt+*zEj1*k9Q z@BU(_WoRJs>P&<4pQDsol8O9kB5!CQpBR9=mx;UIrA@)pW=c>&eLqT$VU7N>18{A&9J(g;zI9uieN~urfOz$lH!J z25X9*kz_yZ(Sb@#SCW^sB%|)sK2x|LTP9|}`3=MLi1K;{d~Xe}`uo(nk0|*5q2OC- z_(mGPhQBNn{PFs-noHPCgP-nG6@EtlLHQ}u@HAucui+~~!9T0v8z}e!4gY*7_`Ce@ zKc@H@6$(DZmw%jkCG~ktDEM#@kI0_*8|N#2dW3?H)9|`}>uPvz?F-8P-bf#N zu<#$m=rSn$hZd{B)sg?>$1n$NA#l zVA+2t_`P+MyxKlL*6;_hTP~=)A8L5*5BFL29}0fDhS&C1SKH5wQ1HEjFpR>N!k6x^rU@AIMH@A8HJSi_GB z1)rkfwLNe6Uh#iTDEM$+cng2MQ1IU%lZX1z_O?OuvlFulLG|;RhS&9L;eRs}`~(dz z0~dGdB8`7iDEM>@ulx6p$7uf_3O-K5>;7ob{R+NmDEPg#@Kcai#~Y2uD)@t#dkre@ zhZ_Do-9Kvh<)PrGYj|B>Cp7$wQ1HEd`KkMW;-`No_*NR;icd8BWuf4Y|E=U@fDZdF z(D0`)R~J;?G7Yco;p6X=y;WH7{~SJc`m2g-T@FN#P_n4AH6V7}=@&bu_tn851JT~% zCXknDH{f-^1nPpBf>_ZM8Q=h^Wisl{L?T-=Eah0W*#1h)*MZ(0hyoF04n}Y)15H2V z2hIVxR@@^KP2`7=s1bl%yZ9W992XV;6Y^O^uC4H#jCw83pZo{pS8L>p5ucfyQyXH& z2IQ1%&TU4~9>Ft};f_Do#Su2lRpGhpBnB>hGO-aEuZzcb5-)%4Hz)y$?gol$Z4@OM z#l90j5vx!*mXD7Xy}t@X5oVw`S#EJLS)*7;6kp={RB!!#^Tn(nD6Tb7w6#&ZuTkv!9Vj9c3aB$t zWP1gXwNX=M$^NJ=@&<~)P9Milq@_AAhGZ(uakaS4`{QuzQRFmyMP)qj z4XH59oUX?i+F2*6Fa!3>I_X(a<2{HSOMlGePf_a0p*VW4HR7!U3Nd-;IZ@Zvkwpq0zzCq zSoe5X*kC#w?G4mmx8OId4YauMTlkEkJ$W%uXDo-ao@g*4wU6_?nExuCCTGP3d`1P; z=ENf7uwXWRd0(ou!`d8d5XaU@<(D@wi~b=ln0? z8UKR##R0_6_a{CFFT6r($>;qq;+0#1N-lHZ)m@TEux+t$doy!mEvC$|QiY1RjEhlG z_O6D!N1;R>y?aM07Qdjz^kJS?Fv`(NS|V%cHw^P^K97P=&Nk!J*q_Cp)Ayq_9Zg4? zrm8{IQA#Ot6?4_TG5{SFO~J6NCblz@w%gedG)B@_goD)J_uGO?fqXR|DaOzgAjONF zloX!tFcR^p=wwp{TA3}wjI;Z_(&39TGRZj)%lD-O=kVt5l4*a-v-IB|>C~5kZJZ03 z7d=R;^a4wzz1&Naq)zAIO&0c;D6^+h)1Sn47z8vvZxgT}1syt;pAgfK4m#L2cifpS z(*;bjOTY0W%bTgB7HqPu0?5)Sj<{P^qicgj8(IKKR$kOUQiZFfv0V+qJ|6df7~AhS zV?b+$_dfX;+vDIlxUoGj>t7h#I~Adf?Z~nJVQdd<^>-I{dYMzc>KDAQnNwD@It{Uo zxa*n&#)lyODh_-F^H;EzKfZ1jCVeJNCUywScv}iOT=>ey7;mZ7ko(9<9qr=pLm%kc zfGmhfP2h?50NDOC8B>r}C1z<`Lp8#@P@k;oc^4h9?M{A37?M(IyHC@ahJ!61Bfg#7 zu-~+;X*=Fn)Zhj{g(O-J4rxs#a0UNt!{RGHsy|>%Y&o^0KqIcG<22}Rvh8);)o;}a6mq}=7`l;063N(6NlgI$qpsMhr-*fZOcw1hrlgg>#f7-p&MNv@+L_M}Pd zNk3wLwl|19e+YiWbri!n#0fY~_?Sf-tM8)Pm%MZ;{o$W4`a*fODD+33iKHzpy9uZ| zmVcZ92Sz29lvx#OhjQ>vKYwm`rv~)eo)luBGZNdZCzjuaIMB5L2T#P{0MNoDqV2L_ z8eLRpQ-U1`P_??26vJyOGhMg|$A4u8`pCSI;;K9Ew(I?B4 zB5xGuD0&99p<|%8+v*tTTVxU`MYT1#Z5xu?XHn9!O3_|&yIqD!Y3SFrIEtBphO{0&O327?%}Or$U}=1GJw?9NJe$Yc&i@Z~G5 zW@U9$cDuX|SnPJ$!A7zNPiU73;G6PIw-K0u)8FL*PUW|1%M@NDE~}1Tgnnq|4>yHE zaJr#ajc@;m4aE-f8w-9hb=_sd<9i&-_c-s{vkb~j&tH@D6P1@<{7G{(?y%g3MW;BVQ6rUz zQf-N@yVQ_qC#D&dL^p1?C8B{xXanzw*TEX^*5#orJbv##TKJ^0|1RI(e{1=k^;q&9 zvLvN^hY&^D@(sSkkna@I{FQvew*{5&ExZmU-!UWt2alsttNu~G=S%;)d@U{cJ`|RG z^-cNeoAN!<%8;+AE#I_ng34DvgnY3f|Wei57YFEaW zi3YRxeQ#C9H(PCH*?chIR4oWc%EcBoN466#Q2r#aoq&&P1Nmre^Rdl(A|KljRoZ-H zntbg2&f+8MANfF9YM40maZo-!SQns=R}NW~ceBaI%_bjfFE;cs$mXN$>)`sp$nBHn zEy>2x;A|uZveDFLV}tcXb!^yYsN))wjcvOvbzB#cjTN6X$I4rnXdRr5*VYDT1J}an zpyvjYjT=lhK4@uZ;})BZkG~3~4Y1LS+IaP&pq0`rkc}vtjZdv7YU9&i3~eNvY;4?R zX`|ggvBAxd;)398Jhvu58`BS1+UQ`i(ZOWnwHAgpy4q|k{xXy{U>i4(jT30gzLBiz zQaJU4CKCa6g7qku`p%{2^+#{QwTIbf8p)ZTr2XI-_>tER?(I3BZ}%7;(>v#L-iM(a zX2c%pP!g=}9D5U`qqe) zo&h8lQ@o&mUj$J0@U)?q2pXY(jFh08yrA0&YJD9?P;$a@T_k9Q7xZm{T3<5&ie~>6 z{`(gHopdZeD}JeWSkGf|%cdM_KmnLY3Zj4sKxQf6ZX8ss6tL1#E*V$}g_;UTCVfjg z8+RBAcp8vC3OLuyP{4}>wL}~tK@A0LBdGQDL4sN$c9x)q0^TC1^|d=d{S`1hPyx!s z8C(99dXbEoV+W!B9|kIj@40s`M3=_97D`~q_Db^;*6h|D?}rRAKL9d@m^f9^o!Sn_ zFhz&6BQ&lFz=cS2Sp!v*7ub00NYe^Pa;Bm94Z6rIJH#A`*O`q;FmmoEMT>; z{Vv~T?Hk74+bKA^0aImj*(y{RyEZ`&cHaFNdXjBFjHc?wc=C+r1RucsD4;KO`C(5`QL8w>8_9n$G$R*OIljx;*Rd9;SFAR`z z_K%iUvrLLvJ``8S8!`^?Qap02sz+$G^qrtGW&~1fX;a)~JyFJ82rRuaW|7f}5hr+L42npcAwdyh6GCmqn^l-KI< zzkY-J6RkOTY!{tdF8aTH#Op+w_frOgbgnqW3Na*LCCZXOYp~IhBgi^MNIzgy>)hwhTW-1WKvV)2-s53CV>+xw*i~! zRph<}hYMSQ>pQ!^4`WABOU|qwu@<2r4N0*x0R`+&F<{5G`tv)SXNR8Yu1%tnAtmLg zeN3)@vY-{2?${y?Bg3^f!-c~dPK(T9Zh=0E6@t!aJhqRrBX6n9&J@8{nGJwdD)YCU zmNIVw^Xe2J=}QJPL_r<{8z+~U&xg)%j4*U2W@`|?@gk2fgCQaT#C2y`5Qqagz?{f8L z(?mMPi-F6o`_&r_k9w~vfA~XQ9)Y6+V;#vgs{Bs8a$H#{%m0jvWo#$>D9cAEe#GUf z{D(NF4kwwbl7Ee0$#S{ww3sC|FbMR;nGx5cJd}q=2r6d>B57ONEsvdAlW)j3T zFN2nr9ZFsW2>GRnnA|^5-?Cm(P8ID*bIj#ETO*U2pnmW$ly_c%BF-Pj?K8}LhNfzB zMg!%QLGV~DbRygW>Mb!?y)mo{Xr#B7Dl@&pcLvT;^eolISvc89?`WW${mWZXvxfhy z{s!*k)qWualg$nZ!L_qz0~_1i#2}!7ZSL>+q1s&c%3uMjT(A-|*DFzs7KgJrREyj9 zwVcP37R45KHTbs8D;|-btfOeLy>AFnR0Xi@%$^5XPz`Sf0kx{(w}t=Qd}77->jId? z)x?U~Yrw2!yJU6-m2UaL(TwY^j2wKIHvcHwh}-s8M$G0@1zdKKsbxmeV}ZN$FyVzdj~2ZP_hXxhLUXghJP(t_3D2m zSxtnJtkW01byf&T#kE1$^^>edOBNjjG*Ge^(2|2Mto~5`uO*8MCE07>#p^&@YRLwF z?km~5kW>uI39JaOWLN>mG->T@?6i~yd1Vl2EnFg+shT=n{eo<>IF1_*T)c;0!KY4t zFAE`QvQJk5{NnNwqYlxNw2f$;3>h6o2;(Vfvg#^2)m3#k{xe@mOChcb@Dml?q8lRHtJ)oUhogk7%<>Ngq7~ta6$o9`fN)d)ZB*it^G+2v(P9O7^`y z9^x!fSFumw%Cdv=-`C_{GF@If`)%MuwY!6qvAVl&;B+8F$jCZYtY01=NR^dUbCDK= zjI)yO->i*}mE3ECu99eRUJwqXM}dYRAhfPdEC;hyw*(4kF`M*H%!;O(QENuvI&jIB zF{#4K6q&35)0T0G3NYz1W(2N5A^YRDm8g%~f-od`R}8W+dp;nCtirEa^8wVa`0D0Bjacrub~e@mSjX=K0kRl44DaI4fV41atzx;MAF;fg z=xR3?)HvkK)@4Y*vGq~D!fTr1DL}##cFhL^67=jjfNH}PF8~y4l{+|qb9bGXcu|hIZ84)O7i1q4$08qXk#5sj{Zbo=)=){CP$Gz9PPar9KGS?XbV=`{B$%x z9S1D$ag&^%F>k~0vtS7G%lT3mZJm+8L_Hr^Z`JHH zxP)kSEu;|t)a=@UA_a@4U=&B(&HAzgyBqrnsC`?oZ%!M6J%IEmHoJOc?TO!gnw^z3 zzPUJ5vn%`5x7n%YMnf7EN8QWRm#09F{Eb~_@mFqfN&_#4HhuU@G5Py)8P{(PiPOB% z2++r#v}T=wGO)^z#*%DfUFGL%%D=A#W!d1JCS|8T~Tz z9P@bw<7HLl`7GvJHxmiQ?u%4GMA z4-9r61gPnse)_}9p?Cz4+CSX|#*B@K;Oc#cKUZI(EV+7bjito8CRcU+xq67SEaPir za#^!OtwHdG=zs(sP?oVZT-mr+be^_nwPk|csAG%E zZjv#%nxNvY_fHx!+zie{Wm=FhPUz0X8CUyO z;KOIC11A)4Ra#zFX0BSnqg%#xzTylrSTdeZ?(P_J#JW7rv#|x%v0iXVe}RnP7PE zI2(+oWTmD2SP0};-n|w4kn{f18|d2Vb`m3sEN84U$!u&nCboGB+gKZ0ITYoOt+R;t z$EJG|*he_fNz-6pk_B{hNX>104*?%y=iH=LY>Ca=$n8I3Q=!Ejpk-^a*$Y2m2>bUj zDeRXkEMYGNI#_qX^zlmwxa`Xs3>kHhT&RFY+h z0}z?AxhKk4a?4S}4DUgvm0T5tPoomA?ed2=0yol!#utRLtxw%EVC#X4t*Db69@^NKYNWo)s|^AqdK&cRz&(~x2fdG|kvwXVm%604~t*3OT7 z#k$NC>oOm)=2aVFbz1COTa!YF)$Q?6wN?0zzgSl8Rew>FsibJibQ$>kdqG+cMq86% zJtE|N#(74)h&)7n-g-FntHE%=8(>&ZUyELV;}7Ctzj`rZyiCW6{nGm##abwKd|k0o ze0Y;F^J0uP`iKFVL2J6R0;Jd}&HNDD=@^QRYL}s2u?tkZ++~^E9av;=_bg&B?T6QA z{9#7u>?nfu6NnS%A8v-BPb=SkB5x$d9o(?npR)`e&oW)vq8s?KPyRkC1}tT5VnL8` z+$|>#2lf5AkA<1R9-oB*n^CQ(tle!9m!z#Gj_u79Tb(NP? ztsZ;Nwn-g?e1=qiBTL(qYB@+#s<(c#NqvEa?Q&WS#{z-3l%yL0YfK zv+5L_i#$kzA=YMmkbV4tLq-dj{+hhTL|dmALDr0h)CFbH7UVGKMp^nTmevrWJ4&lL z<+ItilfLOmTY&Ry0Tgqpp_np+d1d$#V{$FSkoO@2r%T0$l*WouK7@))8Csb#tX=5U zrJ;2 zaZ`P9>rW2^?6Rz0VoA0cbj71VaLOamp1_7>%pnX3^4&6)1ychD(Dvv7)N9WL-&7ee zJyL*L(|tqj+-TV(J)gY`KG_UKBK2c6$V3Fu?6%Y_!T;?uTuO&m*l%F5R(Drv<_w|{ zvvrvqs_U5cntv2PC6+=ADV9AUFb-tde_UqsIF(wpc$|um*tJ3WuDa59RsUkJITJZ# zn!`pXj$1yy&!fS0i4Kt*keG`1a;FR`RxmQe6o=5R%k%Py%*eiS(aC=?)c; zp%ZUg)tY4~kCd|zn6g@>N$rsDP+A4iz0g?92O6y6iyRP^ zW$=Qz2(tTIcLHP|tiY@cUbfiKAv#Pn98kmgUED@yNomH4N-3?+)m7U;ts_(xgDSy2 zecyr_Se@cstD;yv??MKzLYk9DOIIsjG!!y&5e&#UHpMf~J2QRoXOtppOApavD$0U! ztou9G$&r4Go58%Q+neCfD2HFdsJfe6W&U%Y#ECAvOa4^e1)Pnk1_?`QTq!&AO$fuv z5I<5Zi{l@`B&UAyLDp|CGG=}B%rnIK7?7wKFX$zP3}PKYBa}d5mIO5xi%$Optk&1( z2&&CO43nUhT~RV0huFB|zaXgfbu>U(w^&z_>#wdFZn)U7F3K|cHgI2NK#)FMFT$o% zANx8t53+A$8z`W9xj(}*VKH<;#zZCcV+mgQx>s=S2U&sNrj{-zlXbPU8(uI(cLUN# zOMm@nh&~UXkmn1>^6f}+rz`_kD_O9M@6QQF1GaaMNN3A=z{|poU2e_50OkQddP6fU zqQE|kMM@wBJ}7T0oLlf1cuXlB>^~*8C(J!}p%WWbjD>1yAS$|JFy_|S z&WDBaIDlyiVN)Wcj>K3K;jIg$(aSH|DO`_NvK>dKl;Tyv6qLf>;#~YCPJ1>E&a^X# z`Sw4FAjj7F<|0cMe_5hH3h@_^d!6ZnKcF_OT5kA!NN4&@u2C1tXLv8imUsK2-)_I8 zmND7kyk_7s8IsQhcB9EPAx90VfiV_GoH8DxIZ_Vwhdr7jewu=G3#l3YNLrxn3P0#j zE5-SI!?uApQg_Wo?W=f27iqmp5Wn#ibK9*~O~iM66=l4N6%~Bdz<3ocT8+gk@{58+ zrRk2j8^tD7rk@8_TqKWTPQP z9{Kr5j+a@C-F4UE$J^Cwm=vkYtMp%K}*M z5#Zcxvbo;Wc%2pMGvDZ}<#|MHJGuLD`O_)ivCExw`2WkboO6+TTRX6Ce2ef#5pp4Cso6mBgV~1ul<(3XomX{ zNs>bql=n9|{CzefU!Jlgk5`(X17{*)@AubFKdshtq8Nw)t*5QTB1AI0`}Bv73}B9M z<|+k`)=@0p)uYva8mmVW!2)abr&qwW9JqG^T29F{>1m&@+-02AA^~bBL5~c^0HObq z1_vtsBZC3DtE%0pXpXUImO^K8zKw*3TxXnCYz&$r#)KL)WzA8efB^22(RYnKh5H;=I)F6mPRg-+~NLKj$1e~C9Bb*;KtLqteT-CYj)Iq(!*vTO&h-k zTEApQ_09Ojp^KLqhAwlSlT0TE4qXNx^>2HJzEv9QOrF@R#M9KB)xe%c)tesT?;VEa zzx1>{*qe?7A#jI1vk~CPZ`fkCyWK~Ob~gsZb-P>nGN{US*T|&b$dCRslYTSMw_DeK zhL&{0YLj_C0$MHaxSP2x>Qs=UA~i%ZlXU=Js$|i71mi}aBA1>f#!5IVKz92z>&N`tUe>tU-a++H%+A|c=s{Uud zohe%FHbb!e>9qO}SXZR&`BC0cAS(a;8$;a&~j_;Jp7H9IisMJ4moZ8J@cFRrSmzuJzFGfqap=FTCDopI9Y@;)2IaJOeT@VDw znnM}_zv9~#B&&@6Yj7onJ-6A3tV$Od2Uf+#7D4D@k}OBO8{~^MNmhK1Xmm*F`8PDLB}qvcM`N}P@Ex|kR%(4o89oJ03~>ryuw?ii zoIr+08`wfrjrJ3QmrhrG)d&FkD(4;Oj@iuQXfgS5^<(!cv>-iN;E$h!7b<~ z3HEm_YUUh<5pv9Kt-nAqZ$22Hm^oxjDkj}h5fzh;DAhiY@RP3%z2vy8Gv`)59^$aK z;`z;wk)Mv>1IWN+JeVx_s#ffL251xfrV==}7ahpipU+#Iy=C!8&fY>CX>-=hP%K*;G_C?%OJpa;_Wa~xfN3k{SVZ|16h=a0~_dtNcM%Zk{nry|IY!#sL>{fiS z&DP9m{tDA zwe{8%h8O6-DDx*vHS^7l==!kFE5fCwxdP4)JN%^IgtXn*CmvJIQ8xCrl6TJw&*`cV zham&-7Y|7imnx#?fhgXvF>FDnq^sAOCIMH!PQr~|@8c8m`SE+$=Z(TVuj=25tn$A< z=+=eBfxr8Pg<&c_*E&ez@c&7&s$GBRX&C0J>pvBvaG=S{rT`ozemLGSaXc|p&FXZI z^x{eHD{&}uyiFluJxx%E^4i%oa+1wUPxM^^k&?bJsw=Drt=6{Ut3fq=*3hIFHQJUw z-4yzeZX{s1fgi&)&l*Cn5fHjNq6l9n)WIW5$^NiZ}+yl5Wt zLo?PyvkS(h&?E#y)5MGB8b36xO*FG@G|hvd`BJw~Xy)kczC!&p+t5swjV3V|ni*a+ zZ~LKn!9-KXMw1i_O*b!^yZq4Pm}pkRu$69-gQ2NmqmlkhH1k8#z(kX4qiGim&4*qz z+k5-!ru-R0H|=dS9fP46<3;n7ADTx^GzSrpDWN(ALnA$b5-QUVO(zr00vk0M@nV1xqOIXwz+RM8*T2X>1LZ-|FmjzHyCZshtNY_LURHLUEoLP8I#bZ zK7{&fLR}3)X1i>t=GZ>m-ToKp3uca6h&4xd1qd9P!Z*A{z z8)&-OXa)vDGu4acRX;Rt6HN^QBE`*63k`hSvQ2Q?htL&S+p_xf4{+N({m@=xqJ7Om zTi3#B%7~ubY8c^uSdKkq$T-Bp(mf&=8tt~J@seA8RrQXEriqOvDj1q5FELIY(?5%qXomE!NdN z$J<+=0^it(3cL)Rle{a>?CbV;r7Z$}#7(?9HND`kI(eO}K9Av7=U>?IR=0!Qiqq9Z8Llc0a@APIo{UhIGXiui{A~2EKn;w6y2;7hi(qip zSFz+VIT8>DvJs@YN8?1KI=NBl1?TGI##i5>=GQR2m)kr-gbjo%7-&yFWC15uoxCe; zyPyX9YhR#6>C9PUn@41(9Ij5JXwyMM9$@9Fz&UO4wdIY}(PEbacyNYGs96&|Ix|8B zd4;8NgEs<&QX`oBt4?lgbs7?*Gl>1p0pRaOTd;R#O2~qmG%55g*d};f<=xEACi!UQj5(}L%gM0u+&1|QmBLO zWw6~bPgu4~$HBvgA4e97%$?vG?ReA^XNrEErL9V&X(Dnoh*UsMfI2ZvHoN*XXMaPP zCCdAlWj#1Onx$G}Dg+t3hMFL`f(pI$X0KVcqFLs3uxyOxm2y}tLhHZ`a9qUv>Z_H# zay~d>zKFm`McG{gATjK2W~sKj4;~4$JHM9nEo$3hiY=)Rnz@(dZ=gNvtGEl;$nwis zUY0MBEO+!{`B;HsIb(ju>P}vs@l)J}P*pMA7ibKox2@Mq|M~F$WIEB0=~tm5FVoFU zrk4U6nLgT{w{jgO_m(;We^t?>pi#oHu ziqlgR(o`?Qm-YCPK+jqKy0F>=xp z8-boEvfA118D5=;-H?TGTCKJJ87$Z;**}^6rPFn2RYTy+a_v8{MBLsmaEKm@nLgZ1 z&835{~98(c^SSESJc+nG=gS0;Wv%eY@3<$`Np9 z)0SmbSu1k3yK)mYhbRH=1?R0#I%=QxLVH0T~iCkt9St#u=u6soFMWE7M9@A6L zhfKYHBGbl8=I0DcmLO!hXfjcX4DTit3lLIzrCIRAKS)#V9TQFYCok}<}GW{P!-Q^vgxVu{#HF%J#T+0x+8a$kV*gib`KXLB@C+Bp=kIyFAWQCYT!m7|k zMAEpd5)ug}VRVq_xU5^Ldqh#e4k_6rI$1IuQ`?e?(l%{rqotyCNrQBfMrM`jx>Ogb z41#w%!B&YuD!=dddCocS`_4>4fB*mI|M#((_dS>AJh$_l=RD`~{w9dS0L5Ww2#1y} z;c$|V!&VN58d5zU&KD<0P0DVG;XMgw)tBm%bGJb1dVlWoi^*Y98%swiiPT-boz>ns*fKJirF{$qd_+W-rAs(XZx z7`G)PzTqRWT}>qRBoYUPk(dRCSXg0^NClC&@d`m=&kz!Sm>uQ>2E`GNU{Kr@W26dr5Knl&h7TDWId%eiP6hukBQSC-ePOWM`G?&?-esr>b_DhVzw$8Z4gfu5 z-ZiL;!9*@sexE~WlaKUaK-#U2`TOJST!OnfL#_di2z&nqD;*U}Fp9aeG||Tg1ChLb zi8!#fKMEeLjK5X!=gZnO{%qHBgkTlI_t1k!d>Ct=b0S^35#-oC_62u!-cpE)8v_uua;}59o$hxuu zj}B-f$@-BG>khyQlLgg%;15vU^HN52ox9@Az68Dm7EkO+vR^!?YYuSJUb#-&rIwR} zV@LyEs3O=*D89%uks7{;URH*kmDn5Ig$i&YepREK^+x`MzPe>^H8ZoK8D9_H z22Wj2pg+fLIfMU-okO%)01{9Fzt#gr5_RCEH^$UzLoK_R$1i$Auz`pvy7SZ00Bz3f z<2KXA)L_Me(a=V}VtjKIhXyNt9~I%E4Jkx;^I*#pc@M?HUIaYUch#H8~H_5Y55nPqJ-UfA=B%8W?JbD7V z&E+7l=7b)L{lEOWu4joK-|>L!7k{2MpMEuTo#dTMg?$Ppo|D6CO`=E;Lg`{M-QpS0~DL&wV z0+>CJTfk25@-~TLO^d!5XQ;zo>mO?7xL`9+d>U@%A-sc|Z05ZS9sWNywz zH$&?zVmK-3y=9q4g+E7uCbCW5kA0xWN~$i6+n^>a*jvAY1zUuXNe18Grh9HX^B$U} zhHO{aREBPx8~ft@R%YCg-n;cRAgMv^7diJ0qGIhC7O-`4W{A8ahT+qUhx}s5Q6mO< zJHv0o#gM=JQQ$W0cN=(|KySmo4ei-FutGRX;q7}d@#V1!s$xAFmyB(^34qU}fk@(r z{5bp|z7NtOyiKtQMJ&F!9L;OMI}G5NpW+~1*-!(fwa!yumB>?3Al1>p{(j$8Ip{(a zz)t3y2d6<^qH5US-=lB;;)u#!+6THut( z=#u1!a9oXY7WtcDAgaBUNmbf&%>`B3v+%x<_WZRCSZ)P;fj6~hSCHVe=XBVmAPL9t z-DnR<8P9i0Un&>8!w!dNDSEt9yKwjCWAwT9uRr?MfO7p{ps!qq0v%gLbZCIrJXQ3p}C@?vx{C>LwFCSC0 z4tTEP73^C(QFLwil+61_VIQMz86OIbnv^cqZAvBq_@Qz&U@Mi6F>mGW%9<)wC7V~y ztCG#e--cv!z*S&xpl4rCS=pZbILt{FGya80_hkt?B6}0KSzEyYchi_Pe#nqQTn_MZmJ}epJmeOv&+pYJWbu4v^5^-6|McgBbq89vt%h&-jmtzNfk@S#(FJ_p z@Xs^0;2X~L8@cnVwvigX;f714k&thAW~iAnx75sbelugY)XdGMnP8;qLnx6?&4-tV zsqr1E3m`Y=P%V-L!h%<*>lGJt34qjeLH7&R`j)A+VuSN5M`9{ov*L%K*EM&5skqdy z_)csy6(0*$EPtea<>ec;=6E{n?GNSGdX>8&&3ctrZ^xGg-^DETlhY(vN88}d3AYw< z7>`4P?5N^p--rhJLWLG{e~CJbhevuh>o8s!SBG(%({-5aodzKYIO{2TNT~7@AARNx zI8hu_OqTHz$DAoB&`DvaGskw*5ZT$w2IVRhoZtF*ITfJuw_JGMpM@1iAl!7CI!PVpgqp6pylSt)) zZ#b;Z2Ub(+-biF`IR|V4ZrNL=Ci7u>9d!uqo!|;(nC*ols0@(O22vD=TiF0r2jig6PHv_`W2A= z1!cO^DO;p8d77gXA3ObGGHpAzno{lOjJZK~{}Ze1R5yIfQJ|e_I!JO9*iN~WKBnO}<~;AuzL1F;Q5ja7K<6i2}Q|CWISB{1(s(FBb`&=IZKSr#6ltPN5yx{`ve zgA{xX?bM>+)hua=#ltH)0hVlO*s7Ln*HZ-PRa~8F2yfJsfvv75z3`suCXck@Y!!0VOpbt=^!@?YaH-6|U@Jq* zxx?|PWfHtOTZt9j+YhT?o;flm%nObR{oy-MpTNA6f99C?L&Rl7wLOn)v`X%sPp>~0 z`>#FzcPgs5-2a>g$0Iv$1P8;ZxqIa|Q5YcHg<^rxobW_yjVw58#A`J$N?;xQZEtJk zH3xGAhh8C9t|rL9Cr)wY!w*U0!E4- z!1ZxGjXv@uy=%O}xN06_a2mq*eodTC>1!9%Jl4k&K^4mEB1+3X(c8r6H4Va031w){3 zVE3Yf{bhwsWw^};__en{gD8V_^Np4Yf2}9o>@5T+$CDTS73RsezNu4|37{K=rX`}Y z0Y#4gcYodS=%=U!+{IiFcNq|yE4*Ysu1@wed(FXi&jbV_K}$fnPrz|F@=--aY39$bGXn-0a`+ZkoMaDfV99*9H%4KX+pG&H^kah1&(z6Z9({e_v4c z_5uvMyaE&Si+ykwWsfsBAno>v3woMa!*>p;9v|G`8XO;Pp+@QWaM0~;e7N!)gUXcL z1tS`)L-g3WLXS86M%>ry932d-;sCAn4%&HhLufNt?p*-WVx|q_5!>dF*bv=L=jc`Q zg{D($*lSg@?5=kltj>>GoFDqgs!ur-csl&Vr?kl8MHW0>@_Ya95ZjG5rf)+0%_8I5 zIJqbZcK9o3(2WxQ1h$DSQ^}_09+ctGyWOUc;FACvlUGEL{c#SwVw~7Z{Dr*wC^Q6e zlti`5T53j!Z3xUr__neCyM#}?%}KcPo3$kT^4TikLpy3qc#mVYDB(le=nL z#Ny!HXP?;iedvhJJ81q+6-U&24A@AVJpaGj{=M67It*RB$ zC;@Z;SL^TlpW7>R09zXvVyU|Qe6IF#UhQ@J&&?u8Zw}EM-Tn8*SphEoBovKa{Z$7^W z6Z)$wUS@W?$Y~M3s-Jas-gmuSZJo`h9LN=`X(LUBP*KoTz#Dw;cz+LtJ z&TmKoW%)vK(5C)YxlN-7hQEG`W%zIqVh#M1+@&KLI5u4bDS)M3;rcf>dE3`O(B760 z!?CH8f<&;w>s?z-E^uOqMr>_)itCAgMFe-tJ@MWXL@><(!T2}CdG8*hWZG4a7uAH6rw zZN+U)DAK*RpKf*jJ)rI^$9r%=?SU*_Hg@(810DEN>@$EUwX4iQyjY#pL}sOTC2si- z-Ag0l6^r4uN@Q7_YTOZHc8J&=iC@cJC7U^SL+2_T?eMq=ctE_lxsl$x#vT@V?wCtt zf7<21-j%r&=wPcJmcs%kDHbAp6FQy}JQMSjMvm#xT~P}YiK5=RR|u1TVn4280wfNL z+;z)~g2{#;V_wG&31G5K2$OBMgvlfylec%S!4m{=-tz{BF*(U%vi9!Tk;9fB_g~$! z*B->=G{pqxUIILshak~rdGZJ%#q6Kp$ypAQk+RXZ#j$$S?mTYtz5ZBU1mtw_v#q-4 z_b&~PeeXb2<>`*IG5PgZICj`lgGc)fu5YrWkCp}xaScAw9BgpK>;2NjPo>RfZ8MgC zw;$Vmd(U9IcOVqASwf#-&{+v>+ibf>RJ7YaUHqt`-TrL%@=&{bZmHc<{B}3)v^jbU zUk=kdAYFW~qTK;(_oF?6^!^qRmI`|56tLSRy`3Ng&?_C$dzL}lz(imL-i=4TH=Wqb zd+$fj$a_-&KD<8-%P@#?2uRreCT|5ubx^OXfO-oKiZYWm%v5YHk}!usU;@qYcJk;M zPvUQ-*LTyKaN;=`vlD>IrcMbq)mYKgsOqMMZLX;cb2Xas8TBr>=tx@3m~Vhl3-N9k z_0vwDQG238R4^(u`~ERt+7Zq>88ED7a~H+;fGA9gjV*n8Q^2U*b~H`NTO0_FZLf)*(a-8o0A-G`25%7?)Shy8nWl=%@iB;7@_`y5M4V zYx)jV3;eywODY^HIYzQh9jf3ll6xR(fNH_`{ygZAk+XLq;!;9A2lpl~ce0M`?|cUY z;m!l7g6vB|pe(fV;;nhN>|ftL86J?B3FDtnCLisW+ z6i|HX7#ZMO0t0-Q?ql!&-|2oOYw11;6T1N23%~{n^23>*L-z~iO1dW<<%ru6;p!mW z_aEW1+F$;HbU&Y{q&uiS)gIj|mJrHdK_6O?6)`I?Ovdpz6daCt^WmhVKF*WfDSt)t9k>8PN0WwKy2Cc(Bbo>#{?H2y}5@=acckZ z2Al8-i3WoLM#x%*le`yncC77wAMFI&o$a@~>bu%5!#Lh0euKNbz$!M{Wa63ds=98( zez_UPn1}`ESI_;n(ouWld!kjneV7@E@$ilYHr9-IM`I^(&{2DMe!z&FIGHE1=Dm{I z>zM4BBW57p(Y6aExff6~z3IwLHBd7b&uMf2z#LX6XU!u~d`h;NvEgla$PVo4O#m~? z5buLWtrWP0M57C|T=z6r8cNXrj~hsT!bWUlyf7Oo&keTvS7~*WES77d*!%qK@quPP zT&XV{ap-q{>+ZqW=t=Vlr}Uk)+r+&G(5Nt=le7zHyHK-aXkL@xyoRh7bp;0|`MAj1 zLc*P;OI;2Fi0y8i<17PZatIZO#*ZRS>!6!nJs>Gs-gF@4`imTM+X|URDkDM8A29-u z26Qs9`2V?!W{l0b3FLsdbmydR#=z7C9boD%*b&GunCsrS{c>B%DO>+h^OqvaHvx7c zJ9CCy>_OZ&rmMeQM^)jn0&w;;>(SV&*OQ~ z-oH;WoMy?9ur6F?7%H=sg(x8~nRO6$IP&A|z+_Vr3r&SYRu%>MJ$DJbZR+e4HK{BT z`k1?o!kwbi!FxcU>nnTv3ehA-a?vG#=TAT+{g>V`7E>}~7VJP!C)T5s(~0@mpd}5k zsrc!k)z*)b@*gY_v_bUMWAwtcL(qFFoeGJx zn7dnc19pzkR}p?T=FHx^)%i6;Dh(Q1*q<%rhV2CKNT8$icc^Z~onII&sW4`gew3oI z47d(WOvzRVZwwl7gx`*lP$oS39ge|ZkIVbj_>lBEm!g%R0D;+uv!U9PfKzCJ2j{u> z9dm2o^3x+nxk%}wN1N8Y?Se{V4&@%^PF>EO6ToCRF!64Gsyd$7XeMN5UBo+C|Lmn| zltIkVxmgz->^j1sfsPQ`5lE-+vRf)U=-j=vgMNx>k8sF4A;`xQ(7ny4LiB5|d2q&Y z^2~9-|E0gwz@OGGcNHxkcUo@3O8cL^B{d2LiTK4>M?{L9rAp&m$NC+Z?evXj`$EI# z9w5a#^6PS&t+#%=P^WTUiubJ`jQUC#uVOZY%IB{KPHSjE)W=W zOz+zqn6)}xRy%QRC76>4<^_Ywu3;D<8?lfgv|Z#t=_2Yr(?g;W-U^VM?5<&-{_|lA z8|*>cSpmVO4~FUG-3f0W@SK-Oh9j+~%4YXT++mvA_xsQX+zFoBs~r!xpmX0tf3;KO zq$#<_`_QWrnNLqdZ`$X&Z6n?&*rh4i6w=mC$!zdWg$Ye$Qw=;CyVkpZ2N*5L01ERu z-}7+5klUE(*w8jui)=cPqX2HMUYkfi(d1nOMo0}7-xowI2frF)!J` ziQ*_ulrb|GI-00se}tx4bdX&OB_Sb%_2DEx8)s9bgeX=PRu1BbwVWQ0xdF z(Rzz0)~<=@Bti7?xiFd)xRzjMd|Z#L!1ZMC%iy|w5Z9i80bJjLo8oYN5e|?t^}*3$ zTwlWw=8D~d2%}-@>8LJDC9bEbr{kX+62~sL@7$k@=G;dLs5w(`9j=O-tK42HN^qE@ zto5cM5a8H&oWOo3)eRo(I&5bM>+Tlx0uXF#dxxT`&w$BP9jh%vr1qPsZiAKGpz&rR z)83Owy#Oz$Cy|XcCo*v_-Tp#k_Mu4e64}OV{Ds8A#ERm8L|r#B%cfvsVtl-OF8-*;LNdwgwcw2$YYNE?COMG4U5N zXi%DtWMd8K@{X8s^9`fzM84uFi0zc6PwFim@PKsKH4CkSU& zvIy`l;bTknTLFZbpCmGGVpwwPqm9w`h#QSKmN@tn!^g2;5G0rca z&evz+A7oqCEsaf%Mn-p!kAEQbP%Tp0E0Jr}c5_4E48j0BLmW3;#o%`I);xFsj-=cB zB5j8OG|c8e<12JQj3d+4uYVY z*#@6o9}7Li9?^_G!-~ed)N)F5Uy|Urj2W##w;4QVyq+IcA6kA>K#E@ShTIso72Ss$eXA@ z{KWo9+*=bH!}SuG6_TK2K62CN7%$4AOzj0KN<-;m5SAt0L7cTM_5taKqPSs3HPeiu z6NP~Nl)xyQT>THQQ-y;?+ctnz7P6zI`lXO#P-kE*U;xmU*$WmXazmexZkDS*aoJ8_ z%Yc5Nu28ehuh=$CGvyuBFxJ$}ivAN4@oQy4UZg2wP=8E~Az7@pVWPBMe7!`NN;|+N zuV;Ef8Mtm;9WZTW&v5a?2U{w7Mor9TXoFN4!=Q9|K%1CLVGb00YVNwT*z7{-rPFww<&?k*w8!Vq4xt|E`NbVpZ+N z{9c}!`g9@AUG$LXZBzK~ob&N-q^$w} z*0t?cYOT@PpTx+TiLWn>uaWoLcQtR<8hK~Dr+Iaq+4%Zuej3MsU6?(sXoTGFUuOK{ z(AGw^K#6eopcF&!ET3SvySAiv7jM|I-g&;>p;4!Im%c89q}$hHteqBpFHaryF!pvu z+O|Tuu59c23{NW))v)0nwqJ#Meo<7He^`O)4w%FMCAv`t&89?ds-U@yYGKUp!vS0e z72=*`RbVPC4R@o<_N~CPxt7rxtw`B!1XBsQYmX||r3TA0+@-e7_oNmB7Lw`-b){!y zk(`4~u!qhFzV>e$4xaZ!+O|e&PohB5BGPGk=i^B=5F$`xv1_k$BATE;P1xl%n+6j3 z1@9XVupb3%^Vem)i35c3=5=d~93{5TchSpiD@MM4HYJ^J3Tb9dHolHU zbsfYEtw$i(-8KgQ%sDAt9@MrU{+V+OE!3cNxxQ_mlJPh>N(lmAwauYpz;kujG?hTA zq6Q+begJBluVq(iVl|}_t0*tE-5$84IL{D*)A>;)&MNrwg#rKP{c3VYUNbF&`2Wxj z$`Gb$1>$NLgE%k^dkD{POAg;eqbe;OVIK~*5Bu7O5%z)3Laf#w(_V;zjff~fi@LDmKb%@}90pR@5lJHHI@v?l zAPed3(e?>SP`QS5S1kH4>-S;);_9fs0xZOQ_edWL^fP1>y#L&1sHyB1Esg+srm5{L zRO9`ZP6ZkUW0@e0j;jKZWACJb2OZz>fPX)3VTUzhfL;6Sa8s(=$Q4toE*uJDy>i83cj{38q;B9NL4o;>EyiezpmKyd4&WQ2kpJsPCxtFDXS zjm&t0zC8fslAAyb)_#7kRfH7k3sjFCkP{{PK8^eVNz*n%lBo@({h>Y!Co; zmaQcM!Y*ACs0X6i49r)yl|u5AvkYVTX3SGFRt3qy$t76V=HnU0Hk$$=@vdVsWpe%b zS2z_hMKJN!SwzTCG&@6~Om2caV#YF*P4v9rJ$x5=ftjUFA&e2Z4zuMDFj^f(5kt=Z zkL8pXX@y_NP@eK%d_M7uO8X%Ts6!7J91xalZ-nrhUx^UNFfSm4QK1^XAW$wSh|>P9 zoH9#W$tB4wluZ$-9>c6(y)4Xfh-`*goS#C=ylm?Ss9aVZdl;v=lt082ycY|^8`^8~ z2l0>)i>{IC>wFWO9zBFo>SU;0A)^(tcsXY`V{qCWs< zl*AvpYA8*L+Pe7=#uhpP+OC{Ezv5LiuT6tm6-H5oaqG{w*k-_TfhCTP8aihCkd2w4 z8$Wob2wIpa9I)IFRDzBWMHPqEI8g=!%y9mkfplbM?+8ar6i@|3Q_-=|Nv8>IxQPg) zT=1T|D{Q^hwd=~HRu$rFsHEA}RcO+TV)wi)93#4(63F=hCJBSub|~$kOqMAbhAh&e92;@Ep7_38kMhz-!jYx{_yTp*YJZN zZTJd9L$VR5b8yMV*M$0Lj5Z9TJ6fVg%0H^Q_;;O?oFKYM8BE#s7)pv{fll!r#1krX zyU_%uT}G3ms2{+ccxq>zm)5e{r>s&k6nLD05Q+hEQsIgMyvt-PaOY5)7Tpow321`& ze@XBr2Hwap6$~U{U?U7|K>Dxt@7`<>$<69rIW%&8jss3(K|TZ;YsWh{jx=M8UwhH1 zBZa2LA+#DXN63oVo~lfZ!RzCnkoA>=*H%@b-ewMkmDXp?I#Fiu%|sAX^{sYE7}!942pmgUqBP z0KpBDb8rwbEY}v}M^uiJUzhsQ*{v(V{^z?Ay}wss0B`cd4V4@25Gk-#FD!)~Bet*< zSl@LpD+O0Hm}#Y8T0{f3_x&mr>V0T?OTCZ53vD3K`^0I~R2_9N3D+?>FbTJ{8nx}v zm<$;Pp;q}k*FG=uv>>#2O?k3oR1S^#*IeH)8X--A6^;L-s&UvPY5WF1$2CRG{$CoOzS+ia$LanOS86G^CYnHhWy6>h@_n4*W3}Dv zOrVR?mLTBhBXd`Q>}e3@IMZk|Q0azD@GH3T9X&SLBI+u$Im^&PE(A?GR;T|C>2N?c zr5N5Ly?{aQTAr~XV&zqKJ%GSb;KW8W&=59pGT0={t^;*kFu({H=!Zg6i64RH!gXhW zGfOk62Q#fpGE?sbV-`)xOkEfVrEn=Y-F|OGRJaQqh?GWUTki#mOSQiYd{vabn<+q^ z%)x#I@P(e2B!R~dns`GskBiW$g^{*Kmi2kuc6c_vBttI9ED?ZXRiqzE!uR^i0bnCljC)>uL-pPAz6zmk30a z$?)^lwkt#&gU}1DFBL1=@ete1#uo|!&MJ~eOJH6G&x4=yL%&E9ip9_*NQ*CZ zQH67Ets@?JR#K+$wF_wBkI5BtR$GX!x2&0S?qCud-D5gWj;0V%W}b9(P$t8~dANQy z8%I9~Gj+!uLQDsi~ZGsBk}C74y=xy z8tJ{!SpVf<3+OC(H|`1YVdIfo*L$(%_PE>=7Q&pLJ?Tml4Zw&*SCkD)k73t`VmaW zaWoFxkTF=@OoxR`2h2F741UnoC9C*nLdpW{CIC|;T1)ejr^>iA`znK0>%>8+i@C0UcVs z2?J2&N-ylQS#SZ(dne2ZpTPF8%2~nc9K1X zJaC2M9@Q0Pu=~f36`|1(8z4esVY3+v5hSgfy+deCF!>KGpIpf3Y3gj(fSIW2l51|r z-P73N#eewPSEbJZ)8IV0=KQS+R|7sISrAe1eh=3pJVaT9L#THCBgnM`cpx}fUR|L9 zxTy`l_890lHjPg~q4-~UMgf^p@t_={~XdHhWKEyPkWh|biWh+5h`$nXH-D4X454j4VkHVjO0rRRqPv9 zTL-pXl`fBrb~I@>M{A_1DEl%=Xpxo{+Kp|Gvj=PZ;e8-hdjn)qx16CNdW3mhpU#6c z;aaZ#`U|js^ACzv4S9_Wf$B4iPU6?qiJtxq>URh zD@zTf2$rhY`XI&AXi;_V7snJ>Iw4ti5VpzEJ=e&vx|^$i{(S5u)a@u$YXQbPsvH3e zadC!V5xapkEn^RVv#k#j4ON7a94SShCWkOk4hxdG)~;-72?`X=B=~UgT`0?T4_^H` zLLwE~vq1(a5?uiCqD7ilweW(H-LQ~tKvS#Rfh{`kW(C>}3H#f?+HJYujEU0)2OuFl zhaX291T3V>{~oI~rAbKWVPoUuAsex6$v!esEjq&Kl^8s`Q|MV-G9(D;9iuNY>WiKb zTpL@nb;ZajmJ|{4OsnofrOhiZr`e^Q`0GnJ@_<;NQPyF0_(E14=90Zwlq4(5W>0m& zyHhF*h;}?mF-`q|nac=GDckh&rcEG87S&yyyk
    iw6>R^NziR?ktbcy4Td{tb^Il@Y!OB%0U@OZKJ4l*{-GCZn;~dK;>IMVU)%-qo ztRXPeQ3u4N8wV^zcz?1-F7AZ-7*nL{vV-P^3=-T#*tZ^JB$XTXpL1};LHGX`yn_*x z#i)`?)BzW78TOnQLS0^MO025 zPWmva^(O$MG7oWH&87&-k-AoC_gunv(A|hvQt)!^UJD_zw%NE|@J>KEWhQ21)B{g7 zb3D_Da)@U-pl4F(j3NKzZXveq9Mmt%;OH9sj5i!))Q8FqS#`E0QDA#zB}R46;l6#P zAn$!1N^EQ>nvOL_A7+FN$C+scaJ!)VifI75#$GC|6tsy2XrgqjmWVZ>;>62jw*(3f zJ5CBpPyFUu6gw$c?8r8*pY>&v`$%eT277oJ^RCSMXk(XP8waor>5>4ty$^IN01b|^ z*RPkEROa#1AiD}9TIjd{iPZc;$8_^l+CD4K8OeM0Zl))43ufRaD;oo_x=v84alhDy zyVX-qm(I*CAS|t0hgsN)e|@>G``L1)@J+3TOs&3zy@WeivRh5L{M;uyBVP`|(&a}9BJGL-iHi5t#KoJexAq7`Pwf)z?2D3*@4|eA)-<7+&qTC#m zbGgH^k}Kq#Lc`=Rp>i3!vjKa_qYuY_tt%Rqu2cM)!&%cb2!=iRw@sVIh}hWsrMy~} z_76xu#RcP(S-=O^Ah-viVPWTQ-U~PrMB`1<5&(PU=D>~w*iQD);LiD52UKXG>3{4< znTJF-G7D;SMu(6P;O34o!HIIsv66N(AgBFu>^Hwbff>6KfmQF_7?P_N8!}aj$*6KT zE-nPl2nP%sFR3Dfca8N=-$xAV(vR~el7cx}FcVLvb-&&EV7v1%1oh5iyIF}=z&A-9 z9j3=fw6APOc_AQdw~xj^A?JFIJcC3jC>y_csET@xKK)qA8V1moB`U1Kfc_zQ=(NGZ zED#}kjVaT+vNC&<~%1$kp#J z_@KyMp&~y;5h`WejCC*KT|G)3a}Wm&Sd5JXsW~1lkq+1h!78GP;m;~JBLrMEGf1l5 z&yZGDhFm6w>%s%XB1$gvxUZlU!-SD!HYdufs;7wjawI!U+o`66Q;#82PIq?XnKAU- zXdV!kU6`;Ig+rTmRWrH`mnue(C&5`P?dISO8zh<3RJAz=A|K2Qb-Z2bLV~`2eNpKe zMg7e@)GR;$|88;1%EmNv(zW2tq@8iw-ULA{VO+A0#0}Lt^zt|;{Qf;st{dF&+D~4q zHo8S4Azp-)-g~XQc9WcrW2m96iCXD!+6zjj&e;s6v&jRf^|DQQOg6p|36nlq3y!V` z=ri;*b;G1B zd#bMdJbI)-Jiq#8xD$p26tWx-KSxC1lgsgh^Fw(DgD|k-cq<9l;11fLw~TZ-TJHEO zi>DeeSuTS=90q)^{LwDO(agg`l(m?c6-_4F3R$B=gi{8=)Uc}j>oIpC@tcR3!PH#z z3voUGhiL|4T#FZt{}4tUYd2~D#U88i`5uiu7*mLUz@nuCG50{g!JaeXgj|CT7!Zu^ zHEdc-2GpZu>7+Cc8*Z)&3OxW^%0vW{vIQqwbEf9!LCjRRCLJ`&gE6#)NNi>#vepi> zSx<-e^d!$i`sH7uH|v+oN{6v z012vC_X18;>JsE7!fRN z)TL7pQN-vmX;U`}^+5sqB3PwPw&%HH7#sWg3M zbL2@M1IMIu!*+9sdtZZUV-Px!cng&xGiw&4&5~2$KJ#D_M$#UMLY}!q0yTDACg#!x4y{p{Pr^+aiJMbCA zKG_G1Gbk-byDhx)!HV!8)J)SNl=||u&EdBJS+?@&ur6AXj7A(^87=46L>ZlWy@%nF z6_=6qF7-<*G}R?M_@_#2f@FXnLNuIMMrG0@vekVQzP29) zgXSw}NOfezF&w4-W}djS!-S5???BN>D8q z2Ny_SaHv`a!3Xq+>#SC|;$kJ6P@@mQqGtIOmF!CtVzewk1zA{bi(sS=9#GSuxI)U% z5z-D~dcnYo@{^?WI^Ek{POZ0O2IW!c-k(G(B ztM)SQMktU#RGBRJJ6Eyz#t`&t0V3VLG19gVrZ*u6;atF|hCHnY;=o|Oj!=}ggH{6s zVxV$wNeIMv6vm7yM7SuXzd$qd!q7N))nhvDnxULBP+>n0gA6W*e4m&9A!)$GoPu~1 znrOWMzv>@QEZkM8;=U=7VGz9nV6q4d%w`A$Pl@x@T8l=M^%!mGDCWVsHc;Q@JlDWL zf|=8q)3C^*UgfR@p(~bg$DPblz1O=NRI@Yv1O|4Ag!tlc%CxTWKI~n~xo*L`skB!5 zR(9$d)KYmWL!S9FM9fPHWN{?bhyDb_bRg0o)6`=E)7wYjK3O2t2Lu3tjRk zlx+}r7s5?VTdsZ^fherz=78#q`a4KQr;M8lu>?@J2Ff_1Gb??CS>yt8zOUIa+4}%9u0)~3LlL?}r4+)N(ugfQUiQ$Sx2x9K6FEJnuXV@x3^`#b|ps%jY_Z z{LwBy2anMFowJfC;c3ZTxO!fFAMyq-#Whcn=<@Dt2P^iIFVA2$L~?478M=!+mjalllttvQ<`Iu%%F{sP6jRq!@)2%F6dIL=0g*Tv@(pg}V1nBTm@q0%%t7ekEMO>|Ei%rjx1;gD{AmRp}C!Bb!wz;G z7_i53B1W!X4*QOt8k%FQg53<6Ffp$-ejXgX7Q+|wsreQF^@tfz?$5w=&3tv-`x~b1 zYBeI}%bSOp15sSidoLXPc(Wn!^vAr=t_uR3xN8tZ@jGKk5Ew-ayx&7dt|1aV#v zYZ-i`HDqd=cIFH<$jJyOt1*ur{I4xZP9qoq|I}nV`F|K)2et^;u0R;ziU?zS*jX-$ z?SYUgGf?9m)KK%K2+hZov9}-cLj?X7(!x4QblytviVrtqlO!Jcw|yD^L~rJn5$;yt zKBsiKE;^43Wxc#~I|QZ&V1U%PY6og3jIbHH;SA9oA~^X5d^B zzT`eYQMsf2?*hEj!wD7oJ-rqhWE<)nJ3tUJqu|p(i8r|E1y$kBSo}kU7GC>%nKNjo zcj|KmYK8iSm=8`q;hh;b3T(eMW+`2U1GJ^-g*ewSBc+{jrthPkARV7R2%O>@5xU(t zA--nTS}?N64H?;1@$1a!*Q7HVk6+CdpGJQ;W1l(gw0PL&HNTWe=o`3g$YG$ zR?gNB#baG}XzN~ZlrRzcz^Vh-bFIVAyS}(~Q=*RkB+hwYx6Hn{NHQJw>QI4wutX_I z#+X#SWO#pDhZ?d$j_GiT8QH1pjy^()(!~ad(`-!p8);v(rQ&-<8e|m{u7tD_U7k;S zExMUkfy2&k3tO7@4&ls-0F(gwpN)T%RPf&)<5cz8xhe*d&CR(Lft8bp{DW*DgfC8DB%;RJFg||4b5{cwyy>r!6R3{$E3p-73%&-o11=HF0Iam!^N58Gv0`0H!2NIn zbmp?1fQ35jW|L4UhMz(yc~b&?rs?8S3geM80}&1!eV^aBs%P z3i0nyr2trNN?9!L2;y?l8sZXSggJ%Z|p!U|OLF zeWAp^U~>@6P*PRPMC8rrbS-?UP~nm2WW4RIjgD~HEnJU+1?Q!YBW0@sjtn^{~3*kvI}KVTQXtqT46Hx+o^kJUR!bI?+jD6u;TW>H{P&9g>& z;!-3xYz}Q*=2^2oFm{JSsRjk_#~7PGM=vu}KN}MRG*89!CHlO2xvwMkEO;~G$;+rw zFGz-ukdp^YyBjzIc8F%eDpPx<+<{VFlN?Bq{9L{T>KX z_AI+1-@%RoW~+~7JI^f3f4VT_*N&)ZI67jy?MdD+@Perh+Ix#lF;tm>X>EuJ%@m7S zmlo%4fBak5#+!3|(rDl$!L~f_x1d#|zP%s-$Y)3^t={PH>H^`5#dGM~`I-Rp4O?DW zYiy#W_WMd4T;+oI*{`uzZ^mb6%A1lKayZBjPQmah?DzwsG#rwrs@Z~0ni%I06bKPr zE%`x;RK-f!Gw*LvldYOW&%qU@I(+Q@VRa3w_j-B|eE=gb{>Nff@P6oi*u(1kO#C8w z16W5ZfO%7pG@X%PbT5arz~^yB_tSu9NcbA9mWCO3~eSdlH-EWd=ic|0T{^)Zi{u6l9j(|3#ycOk%7W|T{f>C4vDN#k7k15a3Vwr(d#=g*7F)vb|v} z=8+A84i3u%U<3~n$i4@j=iw=$hKVCn2Mg@nuxC*lcr^315Zg!9f{!is5d--HTBwOp zQBH>3k}B99n@-(R!^IaK*x}9Vb67`awUY@Pr=2M;FC!b*@y7k@cx&NLHntCpvRwI2 zVpu)lS8rkwGz2hkzjDWpTQ-q`5_*Yu4@&nGxP}ptr&t3Y3vn()MN0eW32l4+Gz%o^x-q@U(b14=z(8}s z`}vu5k#zh)YNueFjSU|ke{j~yP9%g@>Kc32hRt6y*d{#_y087x1|2E%KGO^LB7TrJ zmmKKg-F+a{2WZqU!c*zkK+$xu8A9cne;;`q>c;f-kSd1)Jv^gf8BkxxYDlf!WifUL z$h0WS(bx=z!*g8-0FXny*Wq8lfMz2Ij)~cnba{02Mjockz?FB`d42)}?RB2-5^Zyx zXXs$ypAbap-HQO_e%fZh?FwN|MTbla-bJ5agx3B15Oq&x@~GZ-fDP*5K7zq0#nW7a z{cS}(^Cusqne2wlWH%g!=bqKEgDEilj*avh3kKccxsce_VnuuAC)r_5Vv^vIG`2Kb z(d4{T&;-vjD@*k{21%JiN@uVzRJs9fCbbiM6kbO#ZWHrFW^$txp)rHRILf2^u$K=I z%b>s^(Gz;9Wl2m z0TeI<8axh|0jB9V*4%8Op1K7roTH`wp&Q0#q8K`WMrc?A^ksQq90A0EuqY%~#yfT* zl05f8I@)<>{0%zkHe$=Xrs(T)mNdc@#An0;iT0GMNgna={W(w1ip@ z!Bf(pEDOs@@A4@I?iB_uocYj9_#n7qm3LINQ28+$;6fJ6D|$ez?S+i>fIeJj5iibN z_nA3Mi7`UQX?J7EfK&`6fiu=^WC0l5u%!RO+LM&X>y{ zs1%v~rN84;weLG++BarWWeIwe+XulbM908ZvyGvlC`L8F?y5{{9>QjsLVO*CV(t{P zN8-W4xirX37mvURa6GK=2JXcWFoX%eVRYN2{5N_df#GSd=#4My(}=5P z;vF}t#wL zhrq`*6XNCeR>*5YeAS$(^1E(!9KYCoP&y3G3*_)`xc1S92jIvVVp%aL=qPP7)f_YQ&I!l8)OM^P~K9)3YLX$>TMQ_SVhb{WD+#Na4K)?EFs_re&>XCt4=Gg`(~WiFyrC6H(*f zb8(yKjVqy%?B2c|e|bOOjz5EEwd1I^!h=+?zY-4vbqPG0yMYRg?RQwR$x1X9-4dZX zNVK<2AfxcMdvVDZ#>2wEJp;u-Da4i63*|lN23<NVP@Jt>r|NOlwD~9)``;&*U=|*x*7J+QgWOm_=Bw z=jvNo5I2TH=Zkfz1}VO6iQ}s2L1ZgbRegT+A}~cAdFI1l^f_xG_7WFs4@iB}R1anQ zRs#a(NdNj6jP&ERMZ-FHs^syy0QD1K$xwJX3qt{AypXk^kh0M%z!+h#9u_F=)$lUV zL2URRK9|}u6exJhG4(Q6M5viqAJQEdcMPm{y1?s>Y>@A{uZYG`t7UznT-~4-=ftT7Wg_-C-G<)*hA=QU>;>1}U+~n+ zz^WmxGz|}E9$y853s51*%k?<_o)3)rEzu_mY_qN>B?h`!o>^Z-h+Z}hgojUCp%f@uP4n?XmB z`ySuJTrz=<~HbWqB)_PC|L+|o_5xtxTqX4zcCD-6(1N?+VF@=+p9MwqW2imP3g@&k8(+@PZfX33!+{Mp=^vBdL z%(}Ni6FIXUN4p19^1*q7cR(J_NjEqPv}Ak-(O``qk}f)h_>OfV`QEftjWdBge4pA|~Md*VGP{%S2E{9(snOPOagFH-?| z`rNhAwg)f(78;?(;{A#Elp{(B(cZCG%aJM8$9p3c`Vrh%{qa+4!M{*gz#KgBg#MSbcfL%4Acau!FF_S&Xu3~|78I8X_5qdW*r-M2T7(_t^UD6^E9g$CJ}3k9NUl&! z7ipQ~vnX;2AYc3Ae2QQ|cg}1S%?-OnAPdK1;CKLTOGwEudk9JxmuCSOZ|Njp#utjZ zdbVBs1MN%XGQ4tbkHu0od6&lM4a*P>8X z@+W9AC67OdLb+3b24P_PGLlgPdXgJ*P(|CgB?pQ}AKDff`&B7oaDz$(ahn10Erwbw zf?6!hOue;|cXB(~ZfI*Et{R1~;!8|`K%{W^_o40$tK&4S;*V3Gks|RT@_UWguAu;QuF=Cek*jI$Tb0!$qlHkj{LQ08DjapM2~=Bj^e zjcTGLl#pUavpm|ACK_=taW*$=Nh#R0V=-C!f9?AKCv<=V?)w02J!H2hqFq4=?dJXk zW4pp8&Gn5dH8}hQ8_WgdXeKv(_hfB=(?BRiwH92U=)8NSx48(8P8aAH zNlYhQ{FB&-KHg{7dp*kfV0EQ|OG6xDE=7zi0JcZ99TYhRsi%e%6Pm4zWM`Ks)QRFUhxyhz*G#MFQUD{+tX_?1^P&V;Hlfx{3JUJ?oXqJ(W6$A{^j z^udSWH(VI|PJ3`kx?KEwLVP_BywQvEdqxLBP)P8b)Btl2ya$HG&lC1A3e;1Wn+FfT zF;gC><&s=xfGHFtl)+swpTVpKwBdirU6?4?$RxK6;sID-W*wM~!S*dpx33z|wl)48 z*fzQM25omKw2EBqQWc#mVi83%wpCidEFR;V{bUNlt_`KjP>Gd+50=nzpdGP+A(Qv8 zqlCB3TNFD6HyzkvVu>Jpn*H1T?|`f(T3iL@#5s0}#d%F^KBzy0V7DT>X=Y%tHf zx3Kozq1sxfKxMs5VbgQo&p@cNEZ48+&N7_HZy*wxha&Q`pp2F(N5^aj%i!KlPI0DX zI(EaGTVatr;Z4R`WPzAlpvEwHS|X2#JKkgYDHTLW8ZHA1G(XIp&RlYWl~DOmYk=P?j%zPz)>#EsP{w z*|KUe5@jIPc?~9?Ryt6i(s%UDt#CE?)uGN-d^S4(9J$b)fT87t;L8=zn#0hb5Y!;! z7RafmtN`N58XrK~ zg!snxfe7#ga`%yD8jg%gGdBT8X(l)9lwD~9i8*PFcz;KLM|b>s+VRh+pobbN7#f|@ z=Vn?Xxg?qLZQum?Dr1rG=7!3k3*|ZauCM) z#L5-r{$`(9I*&_39aF&z;VxTHjvppG;y^|N<2{RAa3$g=Z=CU7-@b7IxHqTSufs_` zqF*9h`Ek;yzKK!3Z56&_~0^1l=u736lHJ zQT%s74F6V}I+lRNUo6U_Hx{KIPa-jb3u?s=lJ8DM^)_HESPH0zXVe*(b*ax&+2S3ExgFc6*Ebd((wJV5ysofd&#{$61PcrVZDsS$PmD1n9Xh#0hQ+9 z)|INHwpF@#MY?!F#W!KhOzYFgolj)39#M*fRku`dF87H?~uQ0f#@JC)p_D zR_}*sE*oEh!gEeCi)?INSJwEUdacFQpnMcC={uhT5{`H+kPt{s zkRYhETSXPJ#%ZHjvsyCiE1dcMNgJVA=03V z;=D`1eZ8!hadgG~`Dl2Oe%9@HSf9|E$qbORnDMYo>zydKNIDtp+Q_!yyg>No zD==fn>UVUW%;w8Gw(Z#aO(d}>+h!;OyC>v}v67&hRu%)97L>uS8?SW?I$2YNxJ7hJ zbkc}|42s|naT|ILz^ULZI8<6%>;|lQu8#>=0bqJU6kQ#PYFv0U*4C^Apye4S~s4*WS5U2}RZ-pY0w?3W8&h zjD-_y@XO$njxbXUFvys(O3PG9L)K#8@U8*|<5$k9A(lP^y;>}vje{|e>q-`@^4Ki669CPt`t`FOD#k5K{^?Z_@a}(-d=ceAMY36W#L0{(2`=lPg>aexO>Yna zbg+O-L^YW|ish&&{m^)PaZppZRRb+h&1G71I@Clh?d?;hTV}nVS=3uHx6?qjZH}*mR>YUqnz+qhxIm}VUuzW>h zc;d6BS5&0z$`&J6tM_gvXXD?k^!}Tr0o~sT^lV+8O~;#=^anDg9ae~3P2*8!&p8oh zRpN0na3e{mr~?(URBlSmf?W%M(AcSk9UR`(cLW&OZfdGPts*`;e5-D84DbjQmp5R~ z;^7vO!SMzACET^{V%#vW0}f(`;*HObzb0?yJ2jd3>wLw0MV1iE*a9tE>b_zE17zJM z<;5rPmu%>FhSnCfkP%x(6`7s&7#;m8Bn5zFjYst;jGvZ-IyB56fUNZb!`9d4cRsC( zjBlc}zHX?MHXxes{M%LPGw5OJ9U7OM?BP%84nhgH$?>b@-2l|59VhjhwQ?f<0Cmu0 zsSo-$_P%YYe`eNw*HzLF%FAu|`LDn_%=#9`dXBU@q@rViV3?(2VW=7s9na}?;gX6@ zpF0+Qa-t#na6eeu61UAs1<<$WpSTxiy*Wyc`xDluCTn&gDLlvxJ4Emkl^kdk1fB9U zE!7}}l)<@E#RKl+7o*vLgRpUkb9`56zyY~46+$l2ETv_m9&5E6#jQS2ka%W=xr@FT zJDNdgA0&rAsE#s}o9=_Gxqkg33NrKfOrn{2XombOka=4s$LU%1%$Y^e(OvJ5t5uy2 z=pDbAc&DBIiDK(aPnW}~!f%F^$A!;$NF4bu|j zbymm-9T>at-dZzagv-$ZdB^oa40P#yi(aAPEgwmqf+?dKgz7#h3VJMke2t8k=ga=l z;Ld+P$moOYk8f94kk;P+oogd%rv#)ZY$4V}F$Tfwt>cK4+dUhF0ippY18bdWT?cdi zPgbt7A23L%qS+B&IuAv>KQ;rntbMyPPro`t&_EwSKfw%vPQN_608*p8W+P_$fVZOA zL6SQbK?B&x%+M~gFN8}Pc3;T%JA?hmuHV_K#M1c~sQ2WnreG`gpmfU~)4pC_oPt(x z#!;LcT7CStxO zfRezlC&iT%z5x+?J_42_ne>yn3D{wyJDX=rC50DrE9bIi z7KavoavCPRmr6lpO<5~}B+l>Yh@qTa)b2x2hsZ;_^rzy>6=(nzVf+GLu8>BJCA@rq z@48UrwV>3*(@cWFhC)e z8L?2w_fD}ThnhK5W+mG|!In_L)vn<1s>Tzcl6Sh2BPu~ALj|vL1sf|1o)#*2tP~VY zRvJYcsL3tJ32F?qMK@*JE%9FiASh5WiG>E!2##pPw!u!d_Pu#zNR9*0*EL$-m~| zlY!q8dTAiPmXHVC7|MuX#N@|*2k1Yj(!mK7C2MMhG? zL? zO$rcfzB~@1Lz^;n%U)hZt#s#AP)vh&k3&EM(&as(H};3pg|_ux-_PIHo5C|@(}!;Y zx8e#-mq_9US{JZvHhEhUDz;NElW)ny&AP1`$iWiZSK9))RR02 zA9}?=GQT1dPzmnSkyPzWs4AW5Wt}~IUZYLg=qTH0LQk4?3s8;X;hDlbv03$k+g#ub zu|zlGX6PDXN22o{GwKt>&V5D*niS9XPFJMJwHew1$8y>1N|I-kW+8R+xpwopt=kf+ z8>^_B2<7fkkqa1sc4hB*CyIm?nzsFUEw|bl^RrRhc8r zvYK=P^jwh~cV*JZ;|hX?*>_a9n-GFsOP;%s3`cJ&fe*5Gx!O)xm`}@^AdQREkj>hu zCo5pHUqjIF1nULtRUg{PkHHL<$CM60-v=TZ}UO`sXJSih;o_c!zNY%p!RH z1D?YqtIT!!(hVq0D9W`-8Z!wnW>!4^7Pe(`J*u9zLajHQ7VIWi0P}(+OvWHkSq8|y z-W!!#`T)=sZXf7l+t(l%TDn-?g6;>m=INZMLejKrCZiFLR@D7K8jfp4sD$wH{fsjK zADV=14D!uT91QGh77#cq75(ldkTwg0v{qbYNe%8Xk_AmNWP<{>f&v5?zHRDYO<}#+c;h+DP~&Ivb?FJs_d>lVaN-TvW^QgVaXr)zexVXG(O=d zCYq8r9lKKUOs0e@xkW`@C677u zR22!b?{2KbRcJy^>ljVA(@49bZ{P7B^zGRwDIM0K^uPA)k-8A*Yl^+EBBa(_kLwGI z{T&{B3yb}fYV%&fdF&5?h8|()8-+F)Jg&?2j+(Zlg05y@r-U zpM^u9E%qgZI4zn$Qculxl@>u>J{|g!Hs=WkIem(DtTss;yfFV;ehJ@UPEWjLEf?Cr z2p!m%ceTkoSo64d5#JCPgddzR93%^l=CnC*oIz}eUt0Iu#JlMrOAXGQfT**%Ph(N9 zgac3jBcEmo=52&ME*&C;-I!Oa8B%)04pozA=2fFr_NDvXhRiU8ph8;%8X!GhqOnN*anVz^ofB1{^ck#%Vzes65~T z$BbHeAu302rjRPFCHlG$3i$r-##uL1q7btv^rzzxMxipVCJL2>!YGun-sE$kxh4up zi-H_945Lt)R}+QGLSYnAAru&onZ=P4LTS>#IGz~u;u--}hSCyO3YYAdcgC;mvqq@= zJPkzQom##djwjSsbj$Y{=wU@AIGyij90t^E;I1~F0Ehn7C{W=wK>unL3hLkNKA-d8 znuf+V&YDXK&3kawVPS2wRnNdFVAf(^LPD?|t|`p*O*rak765w9z-wdo>6HUy9!4)! ztls4ST&C_ZZlWRKHqNlI4Q8d^r7EogbI9pvKy;yCE5dxYK?YbQovqA_Y3N~2`4R@5X z9hsM|xpFC=4UdYY!|{e8wE=bZ11Rd91$DfFVsNDB^G7VpyKf0oieyR=DUmES$rkW{@R8BAja-vwVuBm&ApdhkgOw*vIz=s7QKnruCl`yy6yiQaqnpLA_ zvJ^u4WI{NGAKK5(06*?`AgUD?99WHXYXXqCaB(Wot{#SFJw_N1mrQbWPk>v%PZg2r ze=Ko&6-FVt0Yt5(M$pGsTFaBx`_}Snc(&FOoL~o3EbqfLp}n7x1scY&=^vuMTWw>9 z383q?Fa)?r2L2HnO3hc+LrpYb*}wOW>L%X%1*!>Mx z`hW=AlQrBgvHl92_G0ZlSQJ`<%|=PM3>8KCp-6=>iv`UHD)$&wC*#=W$?3lS5^-B+ z6J*BPp9aIk2B1qf`h?)Zn9o4>tj#} zvo3}WAzMjBGlm*x9`i(WIQ9ToJs9Vx*``AaBNL8+Y{tyhLL+lC2!+0i-W3&N*%z;u zd752)Z_xDHAqK{)?PY)q2U9|DKrvm2=`3X!2U5{-j87Arm`h+0Et*(?^SEb0cmU1m&e7<~S*9g3Qw>q|vhwGllajajdvzv#RmBr+N(T-a*X@1mhm;4#q z1@Kcv)$hXFe0Q!XzIb))R0@&E!h&&SN$$7HV?b`8ie~Jt5-p+IPrA*9O7I81QAH8` zF4=s@jAXGIZXZo@;vmm+pQ)3BQ?|`ql3ZrixWs4*cD~*~8@R>z6k%Aw`^(?CLv4|T z6oUHJXBH}UVg5{aVP@lZiK;A~pFCCWt-LnfJ}=VNhUb2~LdH;yOCl`)2FP84hExyu zOGHU7dfDe~m}zk_xzvZMxgjGYiF+9((&ddkmizM-)k6!oksgJ#qnwIQvUK7#v~u=B zN3E4Jl=6(;xDW2qhWK~-&Xu(rUrF!`s>Uu4->6z3E$mqc& zW;)mmCg8bVYy!H>T^O*D+E+S(mD#n`ssmhOy8VSnikCUUOu)#~5TGgQ9#oS*efoxM z^G1WhM^->48kV=--)e*q6|?QD|PbDFoQGY-h8AJl9`yl5KMfyE7Di@*Eb$5eHr(LxxBK zI3fDzU=rmss}a4@aGO^U4oLB|dsR!5J&kj22|)K1ha~-<4Pj zE#QB161OKl!r(Z5MZ3&KOo@dFd?CUs4Gxr3D$tCX8F1f?@H6XR>w~6 zukD?pYLiQlzh0sMi^3iu`>0>lH35fBI5+Qd=Py#ls;K@m6bK_41I=A%2Y)iv0{=u* zGa(Wv0qAy~d%{!cOm=fYwMf1ws&W3f;*&P9-#j0LJ5WU7)c zx2{z%e4bYHpNojLY1J6y#U4s9qK`8aRKa`9mho{0b_MTwo1UFNSNYSk48IY>+##6t zD!BP3kQT~**X`(^E47`%&6U#XXp*F60Fm>i20dp=KhT9}T!gX&t-@+h(t_Ej0JWbX za3<*$*bnoupKq!Lv7hB<*TViRKU=VO%f+Hs+dJ9}>9(s#?gzFmc=%T=dJ#Jalm2&x z!+6j9E$~`IQoIkNgdNQiSx}%6NFmU=l?_7*}z#?fy~EkbD7Cx-XC>Lm6T7wmAo)4N$&f@t-?GHmzD`7l=nS- zh=|vgDs0*^qvixLV{4&r?+{#0%HC#di0hMfiMg<^!&>X>3o*=jyS|ujus)HmfFaYj z*7CWJ77c4RW$5#B`ph)cb07)}2}eFR*&{B|Vdug_Y!ZfYw;p68-D|G@iX(eklbQ)Z zj?i#vI!4qXxtbUq=1O)3pG7IUd7)M*ybE<)x7}7GSVJ8wx3(FR5){zfK%sx??@oU@ zU!7_8yP=9NHl8CkItOR%@88OFr+c-J^0}Dlp?*;UM9<+lAKZS#N@I)1f_ZI2A+>6+ zXYaUf>hNdpNM*WGZ~i5f8$6u7kwa5!|9N_f3nLltG#976bxO%){UxI$qv_lDr3-UM zxC2ZWMhj)bsCwT3MjNRpHyb3xbd%mGHZqwK7F*9FmSnVj>)cR(yCkkN=*Z$;_@QfC zWT!Luuc9ahob6Ho%^fBO=~d@H59=pI9GknnQGOuA`jy| zW)NV(&lkZE`-GE$U`>m0iW6DGgnFODOG&ZF_q^CphtPvRoxxr4aa*Tvjt-3#J4(Fi zDzXMRA87R%Oo4TNsq+OB&|5|(z=3RMMlnBa}WSSYSak;kJ2yrGU-x9wt%jNwQ3H<>1x|#5kI#< zLXreYquzQ>Bp7NfpCFSW9+dvKV*2Muw=;#y~1BJ$E+rhr)w3wO)oM zvs2A$ciZ1XvP4HrdY~s_-jCS_CSrEUqbzwN9(}SLQ#S~fz&G8iw%hqs3}h{m3DQn- zU(tNtKkHJJfpbQ+KE`1++=Xje1S5CU8A7S&!G2REU;k7Q*5YzlkpNO^-LoZxEE3sn z=nEUWX|$n~HLqOMd0z(AN=u*=?&nM4PKd!pLOX-A&I|9DuHv-Q#Qmn4%tmwO%Ws;? z7*GUG>HWp35K*mkStE)I*O>A!mwLSQCWHo66nqYx?^$jMt$8ncec#!6HkTLMWMxp1 z`sQPTBd^`+Zu4IAg{{=T*6b@2o|B(^#*~K>$2V>$pF61b9$+~uIcmeClbl|Cal2k} zqizRMbe85Umq8<*Dc`&!T%!u&B*dNUjKoM`)~|K%9=LFEDU4UYpl{$RC?SalITBIu zA`y7zgkYw@^Z*!<9sa>4I`)uVDGc+&T8SVMz4w07M6Y;->kX-r#_}pezDN#Uw^MfL zdn2EETI?(8ihHj&AkY`@&=sv1vGSp5qH^BV0QR?&Vvqr|Gq~o%zJ6QR$DOXW#xgJ# zn$i9=j-` z?pd0BtIK|6G5f1XKuj~#Nw7o93Ua4UMK9>&haH@<^%gv^>jYbG1e?dHHE%OYX=uY7(x-yL>M(+BkXW$I2zYNDa6RcC)(T zMPDaD{H}xx;8E-T;dH0$A`NulM;vNVj)%xW576XFw0`gRCE75}fT?tM2_jXRj=UH; zlp0+L{XuLrD-NdT|1$~|aeGBgH$}BAMm@Ry=LIP@>Mu`4P1@=uC|+Mb4HK)cbF$ST zIgK3xcPLF<$&`qZtY~tw0qtte%?(Gpma{+%JI87BXj!$oyRo+>L(L zAdSuHRO%O>_F678y=GUndB49q(*k2tw$h|^76-#MOR9-A%8u&rgT-u{6{dsKcDa0m zu!fOGgWY}w0%FGoUy@RF)`PSJ(M<$DaiC5WH*}4uVgRRk$L3E7KKYLMSo~$m;A{|x zdi;~>$!SjJGF9hkXtP&ovjD?^x$_g z{1gtw(YtSKNWRG;u4NIMUu)F0@uSHae2eh|3bXDQ;xYp3j6e)gS28!M&@F*7W9~B5 z8hv=N_~A@GK<Av-% zBLQ}BwzAkkQL(fg8d^2)GwIdFGrNp>5*XQ9!HGgG*CyWi`>3-H=rLhcoZnSM|5`r! z57BV+OQmHEgy*7NqjDNN&RTP%mTg!#q)zP;!IYD;)itzZ=4rry6d%{RU-Xr;@TYsb zMjfW~?E0zKY#l)B%0H8`F|{+;>k~3)c2LkF=?tx(lE!!Gqf?)V8uQNtmg|;Kw+SL9 zl^5d$;B19<>5t5PEBVQ^-NoMu+3XN)Omx3&o2pt=yI{3G?c~IamLsW6s7bg-eO$t= zEa}zyyR&JSdl=qKz(`v!Ne;TYb2lAFDPh);K5L>CYn4<{TGf1B2;k!$0M+&I1*iS> z?+Ymk$M#DwPiV_jHs{$O_-<}zmFq}mPk}EgtP@NZd@a&t#=AA3U?d%Tx`7PE!^dft z$-^=K8Iy+v+ZrocuB^=v{K}R(c9yV>H_|N_k1$HygaO9rtb5Z1rc@IRLNm`qyfUt( z9Iv58jay`OYQbtHs94i~m2hArlCU(zSb&hb1=^+|!OYK>5mhOUsZ84n;O!1=XWN|2 zvPTu0c-}4BE+jDL2z1#Toe_PrKl<+UIp(QRPn9U79l5S+m3QLVSHAru z4}N^4zZdkvt2N-;ZWZz?^I6L5P6>BvcKaz*&t(y3$5Qvegr^5Zt^n3PVIW5=PI!LF|tZIEr)CX7lZSsTCyp#3CkaG!FNU2xtne~lmP(}im}vaoP% zV#z`vqzhL!jpI+tm(zu_nx>=+mo%NDy+$!yzE!X)^Vfx_lya*UM8StW0Ul4o#v}VW z)}cNUZWn{t28+W@J_mRzP^rPAAzw#c2KiTO|4GRyAWg&5+8WV%8!UhzYs&vh)yO&+ z9q}O=SU&MNK#Wrf9X`zjh*G8w4nM()n{5091Cbb)@yU%PT04x9kYSY@bp%NHL0gx( z+9Z)+38$~DN#-zw?V>os_Tt})g>b|J%L?h1@K~Wbo6gF5eb!I;M@&{pn-cm7&@=wa zH50|x?U03dIEPUkFB+D9-4&wiX0B5%XXvN{TYZl@;vvUFx7`$?G7Xe*Smmx#!}N=| z{6XzcQ{8wDVv^_CPayvLM5LJv$kXKH_IaBf3bGsBoWfIgmGvR6*W$MM(&C>1ahj`! z4}Ewb>4n>?=S?+Zbv&2eGynE;J%`RhvWEfRxsk7SiZpT0k#@;vY2lQLtP!T_**iXH z@UhlN1U~t3|4jgj5<xC4&>$sgT=V9&u z^jpyS4z#YX;JPl?_5X>a(e)FpcY}!?kQaXW6d1sVld}z$y`%?!19g!R!#kLVRh3b^ zVtP$g{zH|8eswZuq$gf|^!3E~U00+M^Bz-q9#o@lNrc)pxC|h6Dp+q-(@3eo zd9nRKEPdu1Q@I&|ug0~+HCLJ}a)}9R)D}JdZWSeb-&jghT2uaiCfSCQh=pa+s&7iDg4@!nfQLc4G9g7cva|1oMJuo z0BRk$)2T%#=8ZeE4PApJuL6d1a9JD>4>LO zz%iP4t8bznRmkX$wv{!~4gIQ&8zZ2Dy_j}Gncx-H0|m>?#QTpIN|q$f%c8Saazk3F zD7zo7AVa<1_sgLlQrid8iUaA)123gV9R@z+Ck!b`W{F~t6X!SST)UcAI$imVN1_(E zT?=pkIeD5CbmS2%lr-?&mz1%v*q9XjnGO`>cRSI)y8v+Yt^wpmty&l1@(=PsMqy28 z5e}vADgjoG5-Y=@;ZsSMZb;Jqdj70-GkyIv`RxQF%=^Ola>qzrsKEg{h1#Q@F-Vde z`u1|89<_nUCflZh4x`HhTAFxCk%3FaZ4DR|Qbr+WDLQe(Eh8I{o}i=-3kj(86rLYe zr+^(7K^`&U?PFB6xk`)vz6R#{e!woeQYMlZkDiEHYt0!_Z=?1C_ba4wXte!3w^r$3 zq@p4|-3WCu0DGVNQ^el!v)v~Z9uJE>?%%OSRL8k(Z3#ooY3kZG1`3- zP7KfdM7>Ag{)Qx6k(k%PrC~$<1zzy0D{)R2NmAKC$i8Wmti-O!@DPU|cyN^K2>$ak zTMf2!rV>(_XM+Oc%w-nIX7gPeeXEy=Ka1()sQRd=GKv(Q0p!KMt2vGecm4FW3 zO+a5M1@yoGJle!4UCEW^@)lWk)R_pJS}YQ}uSPj`(7;Foi=<;|TpH*57ey4P zm923u*mcF_Hb>5_H$`%E^|2B@?5lo+^F1+N<0paYT;Ijq7h8uiJ#jCVpHW*rv>pv> zVyebC@OomOIDk!elx6b4kkFxI80^yMmee7J<1jTNu##2`w ziiX@B3AkXPsypmck{audFW7m*1Nq(hNATs>GEV6kNVpNpZ#3&%pQX zH|N^a(pxC^IqgJqEBN#cOb)s8}~&X4ZF|JaMwSO||y;dg3$59g@WSp4lOXfEE--df-!_RyopF zYWrVe=ta_;yD(y%;U;ZAT!6&vcj-P~g=(+GB2l{D(ip%9o7pjGUE&)o;dYC!u8A+I z)Kvq^>Ijddw`(K#f2EtWcC?Iky}u)v>hWhL()SbBEJeBQ{EVX%8(8eymN<6EUmqG- z_2u`6Z(Dh59u>k`J2PySm+}{eSvq0`eibXw7^#An@<)eIe(uJGNAL$&^M99jr@kL~ zJ#o=m(}Yfc^@Kw8ZF<3ZfP&U z>1T~)I2E$Z@~8w6PABaiPOA>zB~HOBAD3jl`sizkqq<&Wp!^_Qd5t!EjbYUoATC~d zsN4jDn$F=*%a<6?hoY>T#^tZ2SoBcpIZ*pFif1QouTt+qC%_-N3aCS6(As z#n@LVo|WC@D>KzyFi1LsNoQ}}8JyFwbpVG?Ww|Mbne(PO3112kq2D2u78$ zLuLiN;FCYur+>Ma-lcRq+A9LG`P|}U=Lm+dcOt{htrGAr?BA>Z)0JLzAdM2ut)9k| zQsp*QGq?J~v(en@iO;)F*-;xoD+Ke0BRvwiQ7Mw6dF?0MY_yOab$dzfdy2UaF3s)d zt~Rx9kuX11%=pjyO28IyQ5h#edcHE=SU$R(CyFn6z$=wxsuDt0pBkwj7#m*vMe3d`S1n&rlV$JJBASk@pw3{dPNe zfD(2k98SqST67;AYb;2;uDT;qwA=ZU$P~S!c5S)P4C~X#>?ip>=&X!QzXw+32+p;J zhgMGn6^khZ>sOh=gRZZGZ*%cms<3{uTvp|k+Vm@JW z&rvulAf3~8@)r)6Km2ljI;xud;al^&g*ig4P4UIsMYla|4Ys>5bre|78gWdG+pyRb zb|`Cj(#pS!c-31!QP%21B_Z;ex!ZgU0aohJSq$#m^3%2dv?H-L7>p%AV8LKMwaofU zK4IzAPX;cT^AWctX5}$lFm!#axpD+G!@7$burhNsSsyy@0Oji)%F+2ea0Q;$hSvW6 z#Y}g84-!iAM+jZBtvX*r{WWW^*;cb)?lx)NS+7zBEqN;~nYe#&E#?x%t4k`xman57 z3z_EanHl|=hHVJe$i&T$QCLzH#^~mT{P5Ss@cA~LVHIaeut|X$s=NEXZw2~UKN{EF z_jSG4m&85mZ0j=V{$6wEsrod2==?S1soe*VdY&tJSa-g`Jq_!|oovvK@6JzB8Qr@; z1KuPcW2s;M`!MkuCBBEZH+%AgQ1`z%;D+7_>Z(M9$YAQ_Ps3)M%p(#v4`Qs>xv)jL z|M;sS-B0uE=#~LTxtYn$GIsl(gkYca8J{Gj=aW9|lYU-Iy2vMK%u=q+tmlW*@MjyH zrI?@R%lphI#g5>pl>c~%|5!Wn6|hR2Cljk9|FLplN7>*$kEyPk?o$c&SOaKlCb9O$ zgbMHpO2iA?0Xt;=-vLb37t;+F!?dnU^LqMwJNQ1zM&j+pvlCzAV)EwUWOuJJK94 zGl-NP4qwhP*r_w+Ya>(vCEOok%$j-l?>ygqOduBRWNm#+>l?*8Dfb8-Yj(z4O6PK6= z=Z_yP_28g)k$g0>)+a`dnYg!Cm+TeQwP`i_7);1>>hlh6SWE}!6;-gbCw1{pkyulX zX(qPA-Yg(QkC|Gt74mjIw$C=cdEWuDK}_lS=Oz1HGcz_sM5SyUK0F?p^@k6Z@S}#nHp#s5u$@Fh ze1AB^m#u`&MOl?-kll!XBb3BqrgEcxc(;ro3*Fdo)>f7#T!317buD&#RTJE^1dyOX z*uCRX$g~dTdwRA0UfVp}$m>hcEwXJ&B4o#6>3lU#tJqb!85e=(W64uw@rX2sFWT-GtC?*yEZ_mUnzfC< zpPl53XouARD1NvU#ahJq=Y5NOJ)&g|2Ww5h-d->_czol=5jP&f!$uxv?S-VLJBDh` z=$ltV8cwoIH;3I-cVn1ihHS6y-d#jipIE{x^o%=@_L|;3pS(sRgief`^;;g^?6%vMlD(NHhplZ_sqtufwkH;g0kmY4 zNN>9i^p=6%(lSL(k)>H@|4guFPCH3<*h>8EE0~?0AY?Os4)zxPlraj+E0o!#GA!hx zCftgI#BFK2iKy$U1;ScVY%kl24P-aGL24yD=0k%rfTXFaw$BRvB;zqwBen;_AwTWxA&j4}vXs== z2z@$wwWyNNNE5>LjW*L{?VOZ;$u&biQmygMYCY7|%BXA`rTbm2+7DQ)wcj0rMUl>6 z#KQQ}@q%r(N1O9xXtDXJOdD&z_H*`$=)C@-okEs=^2$+&NUUaNMj3{>^PG_8$Pk@Q^hUv-{@G#5lC)%hAhKt-H(W?h5N}bpjvKO^F<2|Igm?o6n1B6jBBcakyus(4$^hr60}+3?WrhX-Q-Que9&)`uKIxyF8% zZiChQw`k8+W7hv=7g&joS((bo`KBO{#2x7Du}&R0f%)*Xtr$LR23e*7!cA+#?r<=J zV&5N)ssD#K5@ILxj4MwRWQKi@`-Z_rf0sR|;VU(6t!1iKKw5}h3mmk`f$t}|ktf|A zc81_meI(4TM1OT#+1$weqFjyxmo;INCvP3(Gs~2l-?yIfORa!AjFcwi>RtASk7KCk zmRWi07DfK(C3CEu=S#CRe=yW6^R2worcbeXDn0kss(JfmlecPcqPQb@8*Uv}5#t3X zOi6Wd0J+A7(!jmnO^yvX3%2!JE1E^m#t2P37zi%5pWK!FoRzU_B+ts^q+v0<>JsCU z^AqD5mL|r{Se_Vn;mX9g%R3U|uIWyUYwk^qo7-P9^tYxcb9_fB#daC$ZIOs${G;$w$|HQn{qRYF=WEcC^nc(gM6}$weS9?O?8x#m_Ic}V&$0H zEB=l;Whe8=Zo@8 zB@fA*E5(71)g)6K4@2JmoPu@gGEz`LyICoecI! zrLXDHe!+gmUm+!#0I3lOqKhZ<$p1(H^Wr?;*9^C2?+m_wlCc3Bg19QXJuf%%s$wl) z@U?IX{WU#u3>nfljAcaR;Q7O-0{+B|lBp`8e9+EyGPW~R=4}D=U_2i@kQ-}w>TxL* zP~KGQcqsfv40!DO5d$_Ui!q?&dwcQwy?h@iP|okX>tuJIF~eH8;1$Q5-eI`CBKJQM zYHnk<_E~T}ZNrvfjFpV}(4<4;aw9*wJjBYWg4>v?g*jZABjRxDfolhlX;nd7&{UXheu+WZnrea2<=%vG25_t8i%B0 zo@3?fY7Z+!YWCUxDkV=4!oiM_KAC1^p2Uhw~{{kCW zT{5ePmOhk@X#s^Q>i3xzGL6Ce`mlzC>{22p~+xB0u$a8IuKtmn})@^cu2eSS)g zfYlR~2&T2ggdOm&B|JIyCPE?m!~qJ zw5<^R2FMB0AD&mobc)(h`fQo@a0_GXoC1a-=T(_AA3>L-J^DtKJd zvNOh9iMFdJy6BQ7b_|9>Jeoql!^mAHTPQ$$kNLI}U%ENjJA?Phj*K!I!5XI4&5;c# z`9&54^tzb_!0}G%;-zI0Vu6X&#nvsM5Ko^Osf(G=Wa>ge3j?SN4T+{M2xCYWY7)1u zbrm*Rg&u!bQ0_U~qtKJJLp?w%Rhg?RJPtZL00?z~-hq_Q@%lh*(dnj5haz?~Vgt2A zonoR_KqJ3aPydB%a?$q)r(zfv|7C4v{$NP?H|E;Y0jU;%nkMXRL2LgnDAsUk}L>ACm;F9TAJ0w zV_ks>>sr0|f!-_1_acsH0mawNKHkyNv&JTt$W)F(IvO_7dNU{mB)iC3`0)Uz(?bdjhdN zaew0!XpzUh7l(yUtwsw>sT}_(VWlR9S}^gzd@X3ZQM_*YpUql6|5h=>V>3CT>H47Jp)2IgN4tJHD;;o-0|Mo?kg1VhWKMk!{~ zta6OkPF#0`g4(65>9-O(zrF1uI+Am|3RA3))M(|)no$85TnE=Fr3+?F{Ai{NGbr;K zhV=#C6fNGcKHyc8Oib13+K&p<)l%XY|7!W6Ec$s}^Ywc6 zjVIHB#=CJkX&O8BVI4*5{4~&5B~jI+b@R;DE;enyk+ICd5{r{4LYwoJj0$D09aQ=mPJKCgWv=nW?U_5wFvTlkGDOQx5W
      H`7bfM&Wxdexo7-Q-pL&*^u_ER;k2!{dnqv4HW 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

      6yU!?_Xhb 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

      ~pVz-TwbJP93q9xDmU0B=bk2P)=bYQ4 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 literal 0 HcmV?d00001 diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/images/rviz_example.png b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/images/rviz_example.png new file mode 100644 index 0000000000000000000000000000000000000000..e6a6116c20df6e71b415e3c96b05c224d1e9076d GIT binary patch literal 80383 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 $oa3;V&Jcz| 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 +#include +#include +#include +#include +#include +#include +#include + +namespace bt { + + class Condition { + private: + std_msgs::Bool success; + std::string label; + + ros::Publisher success_pub; + + public: + Condition(std::string label); + void set(bool b); + void publish(); + bool get(); + std::string get_label(); + + static std::string get_published_topic_name(std::string label); + }; + + + class Action { + private: + bool active, prev_active, active_changed; + behavior_tree_msgs::Status status; + std::string label; + + ros::Subscriber active_sub; + ros::Publisher status_pub; + + void active_callback(std_msgs::Bool msg); + public: + Action(std::string label); + + static std::string get_published_topic_name(std::string label); + static std::string get_subscribed_topic_name(std::string label); + + void set_success(); + void set_running(); + void set_failure(); + + bool is_active(); + bool active_has_changed(); + + bool is_success(); + bool is_running(); + bool is_failure(); + + std::string get_label(); + + void publish(); + }; + +}; + + +#endif diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/launch/behavior_tree.launch b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/launch/behavior_tree.launch new file mode 100644 index 000000000..b2b9e7100 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/launch/behavior_tree.launch @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/launch/parallel_state_machine.launch b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/launch/parallel_state_machine.launch new file mode 100644 index 000000000..198615ff2 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/launch/parallel_state_machine.launch @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/launch/state_machine.launch b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/launch/state_machine.launch new file mode 100644 index 000000000..402a6441c --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/launch/state_machine.launch @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/package.xml b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/package.xml new file mode 100755 index 000000000..153eecfda --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/package.xml @@ -0,0 +1,72 @@ + + + behavior_tree + 0.0.0 + The behavior_tree package + + + + + john + + + + + + TODO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + catkin + roscpp + rospy + std_msgs + behavior_tree_msgs + + roscpp + rospy + std_msgs + behavior_tree_msgs + + roscpp + rospy + std_msgs + behavior_tree_msgs + + + + + + + diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/plugin.xml b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/plugin.xml new file mode 100644 index 000000000..794676bf6 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/plugin.xml @@ -0,0 +1,15 @@ + + + + An example Python GUI plugin to create a great user interface. + + + + + + + system-help + Behavior tree interface. + + + diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/rqt_perspectives/behavior_tree.perspective b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/rqt_perspectives/behavior_tree.perspective new file mode 100644 index 000000000..cecd551f4 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/rqt_perspectives/behavior_tree.perspective @@ -0,0 +1,372 @@ +{ + "keys": {}, + "groups": { + "pluginmanager": { + "keys": { + "running-plugins": { + "type": "repr", + "repr": "{u'behavior_tree/BehaviorTreePlugin': [1]}" + } + }, + "groups": { + "plugin__state_machine__StateMachinePlugin__1": { + "keys": {}, + "groups": { + "dock_widget__": { + "keys": { + "dockable": { + "type": "repr", + "repr": "u'false'" + }, + "parent": { + "type": "repr", + "repr": "None" + }, + "dock_widget_title": { + "type": "repr", + "repr": "u''" + } + }, + "groups": {} + }, + "plugin": { + "keys": { + "config_filename": { + "type": "repr", + "repr": "u'/home/john/subt/ws/src/state_machine/config/parallel_state_machine.yaml'" + } + }, + "groups": {} + } + } + }, + "plugin__rqt_rviz__RViz__1": { + "keys": {}, + "groups": { + "dock_widget__": { + "keys": { + "dockable": { + "type": "repr", + "repr": "u'true'" + }, + "parent": { + "type": "repr", + "repr": "None" + }, + "dock_widget_title": { + "type": "repr", + "repr": "u'RViz[*]'" + } + }, + "groups": {} + }, + "plugin": { + "keys": { + "rviz_config_file": { + "type": "repr", + "repr": "u'/home/john/subt/temp.rviz'" + }, + "hide_menu": { + "type": "repr", + "repr": "u'false'" + } + }, + "groups": {} + } + } + }, + "plugin__state_machine__StateMachinePlugin__2": { + "keys": {}, + "groups": { + "dock_widget__": { + "keys": { + "dockable": { + "type": "repr", + "repr": "u'true'" + }, + "parent": { + "type": "repr", + "repr": "None" + }, + "dock_widget_title": { + "type": "repr", + "repr": "u'/home/john/subt/temp.rviz'" + } + }, + "groups": {} + }, + "plugin": { + "keys": { + "config_filename": { + "type": "repr", + "repr": "u'/home/john/subt/sim_ws/src/state_machine/config/state_machine.yaml'" + } + }, + "groups": {} + } + } + }, + "plugin__rqt_reconfigure__Param__1": { + "keys": {}, + "groups": { + "dock_widget___plugincontainer_top_widget": { + "keys": { + "dockable": { + "type": "repr", + "repr": "u'true'" + }, + "parent": { + "type": "repr", + "repr": "None" + }, + "dock_widget_title": { + "type": "repr", + "repr": "u'Dynamic Reconfigure'" + } + }, + "groups": {} + }, + "plugin": { + "keys": { + "splitter": { + "type": "repr(QByteArray.hex)", + "repr(QByteArray.hex)": "QtCore.QByteArray('000000ff0000000100000002000001120000029a01ffffffff010000000100')", + "pretty-print": " " + }, + "_splitter": { + "type": "repr(QByteArray.hex)", + "repr(QByteArray.hex)": "QtCore.QByteArray('000000ff0000000100000002000004d40000004b0100000009010000000200')", + "pretty-print": " K " + } + }, + "groups": {} + } + } + }, + "plugin__rqt_reconfigure__Param__2": { + "keys": {}, + "groups": { + "plugin": { + "keys": { + "splitter": { + "type": "repr(QByteArray.hex)", + "repr(QByteArray.hex)": "QtCore.QByteArray('000000ff0000000100000002000000ae0000006401ffffffff010000000100')", + "pretty-print": " d " + }, + "_splitter": { + "type": "repr(QByteArray.hex)", + "repr(QByteArray.hex)": "QtCore.QByteArray('000000ff00000001000000020000012c000000640100000009010000000200')", + "pretty-print": " , d " + } + }, + "groups": {} + } + } + }, + "plugin__MultiplotPlugin__1": { + "keys": {}, + "groups": { + "dock_widget__MultiplotWidget": { + "keys": { + "dockable": { + "type": "repr", + "repr": "u'true'" + }, + "parent": { + "type": "repr", + "repr": "None" + }, + "dock_widget_title": { + "type": "repr", + "repr": "u'Multiplot - [file:///home/john/subt/sim_ws/src/drone_main_launch/rqt_multiplot.xml]'" + } + }, + "groups": {} + }, + "plugin": { + "keys": {}, + "groups": { + "history": { + "keys": { + "max_length": { + "type": "repr", + "repr": "u'10'" + }, + "config_2": { + "type": "repr", + "repr": "u'file:///home/john/subt/ws/src/drone_main_launch/rqt_multiplot.xml'" + }, + "config_1": { + "type": "repr", + "repr": "u'file:///home/john/subt/sim_ws/src/drone_main_launch/hex_pose_rqt_multiplot.xml'" + }, + "config_0": { + "type": "repr", + "repr": "u'file:///home/john/subt/sim_ws/src/drone_main_launch/rqt_multiplot.xml'" + } + }, + "groups": {} + } + } + } + } + }, + "plugin__rosmon__1": { + "keys": {}, + "groups": { + "dock_widget__MonGUI": { + "keys": { + "dockable": { + "type": "repr", + "repr": "u'true'" + }, + "parent": { + "type": "repr", + "repr": "None" + }, + "dock_widget_title": { + "type": "repr", + "repr": "u'Node Monitor'" + } + }, + "groups": {} + }, + "plugin": { + "keys": { + "namespace": { + "type": "repr", + "repr": "u'/rosmon_1554213615858358785'" + }, + "viewState": { + "type": "repr(QByteArray.hex)", + "repr(QByteArray.hex)": "QtCore.QByteArray('000000ff000000000000000100000001000000020100000000000000000000000000000000000001f4000000040001010000000000000000000000000064ffffffff000000840000000000000004000000c80000000100000000000000640000000100000000000000640000000100000000000000640000000100000000000003e80000000000')", + "pretty-print": " d d d d " + } + }, + "groups": {} + } + } + }, + "plugin__basestation_gui_python__BasestationGuiPlugin__1": { + "keys": {}, + "groups": { + "dock_widget__": { + "keys": { + "dockable": { + "type": "repr", + "repr": "u'true'" + }, + "parent": { + "type": "repr", + "repr": "None" + }, + "dock_widget_title": { + "type": "repr", + "repr": "u''" + } + }, + "groups": {} + }, + "plugin": { + "keys": { + "config_filename": { + "type": "repr", + "repr": "u'/home/john/subt/ws/src/basestation_gui_python/config/gui_params.yaml'" + } + }, + "groups": {} + } + } + }, + "plugin__rqt_robot_monitor__RobotMonitor__1": { + "keys": {}, + "groups": { + "dock_widget__Robot Monitor": { + "keys": { + "dockable": { + "type": "repr", + "repr": "u'true'" + }, + "parent": { + "type": "repr", + "repr": "None" + }, + "dock_widget_title": { + "type": "repr", + "repr": "u'Robot Monitor'" + } + }, + "groups": {} + }, + "plugin": { + "keys": { + "splitter": { + "type": "repr(QByteArray.hex)", + "repr(QByteArray.hex)": "QtCore.QByteArray('000000ff00000001000000030000006400000064000000c80100000009010000000200')", + "pretty-print": " d d " + } + }, + "groups": {} + } + } + }, + "plugin__behavior_tree__BehaviorTreePlugin__1": { + "keys": {}, + "groups": { + "dock_widget__": { + "keys": { + "dockable": { + "type": "repr", + "repr": "True" + }, + "parent": { + "type": "repr", + "repr": "None" + }, + "dock_widget_title": { + "type": "repr", + "repr": "u''" + } + }, + "groups": {} + }, + "plugin": { + "keys": { + "config_filename": { + "type": "repr", + "repr": "u'/home/john/subt/ws/src/behavior_tree/config/drone_tree.tree'" + } + }, + "groups": {} + } + } + } + } + }, + "mainwindow": { + "keys": { + "geometry": { + "type": "repr(QByteArray.hex)", + "repr(QByteArray.hex)": "QtCore.QByteArray('01d9d0cb00020000000000430000001b00000d6f0000059f000000430000003700000d6f0000059f00000000000000000d70')", + "pretty-print": " C o C 7 o p" + }, + "state": { + "type": "repr(QByteArray.hex)", + "repr(QByteArray.hex)": "QtCore.QByteArray('000000ff00000000fd000000010000000300000d2d0000053dfc0100000005fb0000004c00730074006100740065005f006d0061006300680069006e0065005f005f00530074006100740065004d0061006300680069006e00650050006c007500670069006e005f005f0031005f005f0100000000000005400000000000000000fb00000062006200610073006500730074006100740069006f006e005f006700750069005f0070007900740068006f006e005f005f004200610073006500730074006100740069006f006e0047007500690050006c007500670069006e005f005f0031005f005f0100000000000005400000000000000000fb00000046004d0075006c007400690070006c006f00740050006c007500670069006e005f005f0031005f005f004d0075006c007400690070006c006f0074005700690064006700650074010000000000000d2d0000000000000000fb0000006c007200710074005f007200650063006f006e006600690067007500720065005f005f0050006100720061006d005f005f0031005f005f005f0070006c007500670069006e0063006f006e007400610069006e00650072005f0074006f0070005f00770069006400670065007401000007aa000005830000000000000000fb0000004c006200650068006100760069006f0072005f0074007200650065005f005f004200650068006100760069006f007200540072006500650050006c007500670069006e005f005f0031005f005f010000000000000d2d00000bf600ffffff00000d2d0000000000000004000000040000000800000008fc00000001000000030000000100000036004d0069006e0069006d0069007a006500640044006f0063006b00570069006400670065007400730054006f006f006c0062006100720000000000ffffffff0000000000000000')", + "pretty-print": " Lstate_machine__StateMachinePlugin__1__ bbasestation_gui_python__BasestationGuiPlugin__1__ FMultiplotPlugin__1__MultiplotWidget lrqt_reconfigure__Param__1___plugincontainer_top_widget Lbehavior_tree__BehaviorTreePlugin__1__ 6MinimizedDockWidgetsToolbar " + } + }, + "groups": { + "toolbar_areas": { + "keys": { + "MinimizedDockWidgetsToolbar": { + "type": "repr", + "repr": "8" + } + }, + "groups": {} + } + } + } + } +} \ No newline at end of file diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/rqt_perspectives/parallel_state_machine.perspective b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/rqt_perspectives/parallel_state_machine.perspective new file mode 100644 index 000000000..df70865e6 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/rqt_perspectives/parallel_state_machine.perspective @@ -0,0 +1,71 @@ +{ + "keys": {}, + "groups": { + "pluginmanager": { + "keys": { + "running-plugins": { + "type": "repr", + "repr": "{u'parallel_state_machine/ParallelStateMachinePlugin': [1]}" + } + }, + "groups": { + "plugin__parallel_state_machine__ParallelStateMachinePlugin__1": { + "keys": {}, + "groups": { + "dock_widget__": { + "keys": { + "dockable": { + "type": "repr", + "repr": "True" + }, + "parent": { + "type": "repr", + "repr": "None" + }, + "dock_widget_title": { + "type": "repr", + "repr": "u''" + } + }, + "groups": {} + }, + "plugin": { + "keys": { + "config_filename": { + "type": "repr", + "repr": "u'/home/john/subt/ws/src/parallel_state_machine/config/parallel_state_machine_drone.yaml'" + } + }, + "groups": {} + } + } + } + } + }, + "mainwindow": { + "keys": { + "geometry": { + "type": "repr(QByteArray.hex)", + "repr(QByteArray.hex)": "QtCore.QByteArray('01d9d0cb00020000000004f30000003c00000b09000004f7000004f30000005a00000b09000004f700000000000000000d70')", + "pretty-print": " < Z p" + }, + "state": { + "type": "repr(QByteArray.hex)", + "repr(QByteArray.hex)": "QtCore.QByteArray('000000ff00000000fd00000001000000030000061700000472fc0100000001fb0000006e0070006100720061006c006c0065006c005f00730074006100740065005f006d0061006300680069006e0065005f005f0050006100720061006c006c0065006c00530074006100740065004d0061006300680069006e00650050006c007500670069006e005f005f0031005f005f0100000000000006170000033b00ffffff000006170000000000000004000000040000000800000008fc00000001000000030000000100000036004d0069006e0069006d0069007a006500640044006f0063006b00570069006400670065007400730054006f006f006c0062006100720000000000ffffffff0000000000000000')", + "pretty-print": " nparallel_state_machine__ParallelStateMachinePlugin__1__ 6MinimizedDockWidgetsToolbar " + } + }, + "groups": { + "toolbar_areas": { + "keys": { + "MinimizedDockWidgetsToolbar": { + "type": "repr", + "repr": "8" + } + }, + "groups": {} + } + } + } + } +} \ No newline at end of file diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/scripts/rqt_state_machine b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/scripts/rqt_state_machine new file mode 100644 index 000000000..9ad1666f5 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/scripts/rqt_state_machine @@ -0,0 +1,10 @@ +#!/usr/bin/env python + +import sys + +from rqt_behavior_tree.rqt_behavior_tree import BehaviorTreePlugin +from rqt_gui.main import Main + +plugin = 'rqt_behavior_tree' +main = Main(filename=plugin) +sys.exit(main.main(standalone=plugin)) diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/setup.py b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/setup.py new file mode 100644 index 000000000..a181c35c1 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/setup.py @@ -0,0 +1,9 @@ +from distutils.core import setup +from catkin_pkg.python_setup import generate_distutils_setup + +d = generate_distutils_setup( + packages=['rqt_behavior_tree', 'behavior_tree'], + package_dir={'': 'src'}, +) + +setup(**d) diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree.cpp b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree.cpp new file mode 100644 index 000000000..ed54680dd --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree.cpp @@ -0,0 +1,121 @@ +#include + +namespace bt { + + // ============================================================================== + // -------------------------------- Condition ----------------------------------- + // ============================================================================== + + + std::string Condition::get_published_topic_name(std::string label){ + std::string topic_name = label; + std::transform(topic_name.begin(), topic_name.end(), topic_name.begin(), ::tolower); + std::replace(topic_name.begin(), topic_name.end(), ' ', '_'); + topic_name += "_success"; + return topic_name; + } + + + Condition::Condition(std::string label){ + ros::NodeHandle nh; + this->label = label; + success_pub = nh.advertise(Condition::get_published_topic_name(label), 10); + success.data = false; + } + + std::string Condition::get_label(){ + return label; + } + + void Condition::set(bool b){ + success.data = b; + } + + bool Condition::get(){ + return success.data; + } + + void Condition::publish(){ + success_pub.publish(success); + } + + // ============================================================================== + // --------------------------------- Action ------------------------------------- + // ============================================================================== + + std::string Action::get_published_topic_name(std::string label){ + std::string topic_name = label; + std::transform(topic_name.begin(), topic_name.end(), topic_name.begin(), ::tolower); + std::replace(topic_name.begin(), topic_name.end(), ' ', '_'); + topic_name += "_status"; + return topic_name; + } + + std::string Action::get_subscribed_topic_name(std::string label){ + std::string topic_name = label; + std::transform(topic_name.begin(), topic_name.end(), topic_name.begin(), ::tolower); + std::replace(topic_name.begin(), topic_name.end(), ' ', '_'); + topic_name += "_active"; + return topic_name; + } + + + Action::Action(std::string label){ + ros::NodeHandle nh; + active_sub = nh.subscribe(Action::get_subscribed_topic_name(label), 10, + &Action::active_callback, this); + status_pub = nh.advertise(Action::get_published_topic_name(label), 1); + + active = false; + prev_active = false; + active_changed = false; + status.status = behavior_tree_msgs::Status::FAILURE; + } + + void Action::active_callback(std_msgs::Bool msg){ + active = msg.data; + } + + void Action::set_success(){ + status.status = behavior_tree_msgs::Status::SUCCESS; + } + + void Action::set_running(){ + status.status = behavior_tree_msgs::Status::RUNNING; + } + + void Action::set_failure(){ + status.status = behavior_tree_msgs::Status::FAILURE; + } + + bool Action::is_active(){ + active_changed = prev_active != active; + prev_active = active; + return active; + } + + bool Action::active_has_changed(){ + return active_changed; + } + + bool Action::is_success(){ + return status.status == behavior_tree_msgs::Status::SUCCESS; + } + + bool Action::is_running(){ + return status.status == behavior_tree_msgs::Status::RUNNING; + } + + bool Action::is_failure(){ + return status.status == behavior_tree_msgs::Status::FAILURE; + } + + std::string Action::get_label(){ + return label; + } + + void Action::publish(){ + status_pub.publish(status); + } + +}; diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/__init__.py b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/behavior_tree.py b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/behavior_tree.py new file mode 100755 index 000000000..539f4eb4c --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/behavior_tree.py @@ -0,0 +1,417 @@ +#!/usr/bin/python +import rospy +from std_msgs.msg import Bool +from std_msgs.msg import String +from behavior_tree_msgs.msg import Status +import sys +import rospkg + +#================================================================================================================ +# ----------------------------------------------- Return Status ------------------------------------------------ +#================================================================================================================ + +class ReturnStatus: + def __init__(self, status): + if status == Status.FAILURE or status == Status.RUNNING or status == Status.SUCCESS: + self.status = status + else: + print('Invalid return status: ' + status +', defaulting to FAILURE.') + self.status = Status.FAILURE + + def __eq__(self, other): + return self.status == other.status + + def __ne__(self, other): + return self.status != other.status + + def __str__(self): + return self.status + +ReturnStatus.FAILURE = ReturnStatus(Status.FAILURE) +ReturnStatus.RUNNING = ReturnStatus(Status.RUNNING) +ReturnStatus.SUCCESS = ReturnStatus(Status.SUCCESS) + +#================================================================================================================ +# ----------------------------------------------- Base Node Class ----------------------------------------------- +#================================================================================================================ + +class Node(object): + def __init__(self, label): + self.label = label + self.children = [] + self.is_active = False + self.status = ReturnStatus.FAILURE + self.max_wait_time = 1.0 + + def add_child(self, node): + self.children.append(node) + + def tick(self, active, traversal_count): + print('tick not implemented for node ' + self.label) + + def init_ros(self): + pass + + +#================================================================================================================ +# ---------------------------------------------- Control Flow Nodes --------------------------------------------- +#================================================================================================================ + +class ControlFlowNode(Node): + label = 'Unlabeled Control Flow Node' + def __init__(self): + Node.__init__(self, self.label) + +class Fallback(ControlFlowNode): + label = '?' + + def __init__(self): + ControlFlowNode.__init__(self) + + def tick(self, active, traversal_count): + if not active: + for child in self.children: + child.tick(False, traversal_count) + else: + self.status = ReturnStatus.FAILURE + for child in self.children: + if self.status == ReturnStatus.FAILURE: + child.tick(True, traversal_count) + self.status = child.status + else: + child.tick(False, traversal_count) + + self.is_active = active + +class Sequence(ControlFlowNode): + label = u'\u2192' # arrow + + def __init__(self): + ControlFlowNode.__init__(self) + + def tick(self, active, traversal_count): + if not active: + for child in self.children: + child.tick(False, traversal_count) + else: + self.status = ReturnStatus.SUCCESS + for child in self.children: + if self.status == ReturnStatus.SUCCESS: + child.tick(True, traversal_count) + self.status = child.status + else: + child.tick(False, traversal_count) + + self.is_active = active + +class Parallel(ControlFlowNode): + label = '||' + + def __init__(self, child_success_threshold): + ControlFlowNode.__init__(self) + self.child_success_threshold = child_success_threshold + + def tick(self, active, traversal_count): + if not active: + for child in self.children: + child.tick(False, traversal_count) + else: + child_success_count = 0 + child_failure_count = 0 + for child in self.children: + child.tick(True, traversal_count) + if child.status == ReturnStatus.SUCCESS: + child_success_count += 1 + elif child.status == ReturnStatus.FAILURE: + child_failure_count += 1 + + if child_success_count >= self.child_success_threshold: + self.status = ReturnStatus.SUCCESS + elif child_failure_count >= len(self.children) - self.child_success_threshold + 1: + self.status = ReturnStatus.FAILURE + else: + self.status = ReturnStatus.RUNNING + + self.is_active = active + + +#================================================================================================================ +# ----------------------------------------------- Execution Nodes ----------------------------------------------- +#================================================================================================================ + +def get_condition_topic_name(name): + topic_name = name.lower().replace(' ', '_') + '_success' + return topic_name + +class ExecutionNode(Node): + def __init__(self, label): + Node.__init__(self, label) + self.publisher = None + self.subscriber = None + self.status_modification_time = None + + def callback(self, msg): + self.is_waiting = False + if isinstance(msg, Bool): + if msg.data: + self.set_status(ReturnStatus.SUCCESS) + else: + self.set_status(ReturnStatus.FAILURE) + elif isinstance(msg, Status): + self.set_status(ReturnStatus(msg.status)) + if msg.status != self.status.status: + print('Invalid return status "' + msg.status + '" for node ' + self.label) + else: + print('invalid message type received in callback for node ' + self.label) + + def init_ros(self): + self.init_publisher() + self.init_subscriber() + + def get_publisher_name(self): + pass + + def init_publisher(self): + pass + + def get_subscriber_name(self): + raise NotImplementedError + + def init_subscriber(self): + raise NotImplementedError + + def set_status(self, status): + self.status = status + self.status_modification_time = rospy.Time.now() + + def get_status_age(self): + if self.status_modification_time == None: + return float('inf') + else: + return (rospy.Time.now() - self.status_modification_time).to_sec() + +class Condition(ExecutionNode): + def __init__(self, label): + ExecutionNode.__init__(self, label) + self.current_traversal_count = -1 + + def tick(self, active, traversal_count): + if self.current_traversal_count != traversal_count: + self.current_traversal_count = traversal_count + else: + if self.is_active: + return + + if self.is_active == False and active == True and self.status == ReturnStatus.FAILURE: + self.set_status(ReturnStatus.FAILURE)#RUNNING) + if self.get_status_age() > self.max_wait_time: + self.set_status(ReturnStatus.FAILURE) + + self.is_active = active + + def get_subscriber_name(self): + #sub_name = self.label.lower().replace(' ', '_') + '_success' + sub_name = get_condition_topic_name(self.label) + return sub_name + + def init_subscriber(self): + self.subscriber = rospy.Subscriber(self.get_subscriber_name(), Bool, self.callback) + +class Action(ExecutionNode): + def __init__(self, label): + ExecutionNode.__init__(self, label) + self.current_traversal_count = -1 + + def tick(self, active, traversal_count): + if self.current_traversal_count != traversal_count: + self.current_traversal_count = traversal_count + else: + if self.is_active: + return + + if self.is_active == False and active == True and self.status == ReturnStatus.FAILURE: + self.set_status(ReturnStatus.RUNNING) + if self.get_status_age() > self.max_wait_time: + self.set_status(ReturnStatus.FAILURE) + + self.is_active = active + + def get_publisher_name(self): + pub_name = self.label.lower().replace(' ', '_') + '_active' + return pub_name + + def init_publisher(self): + self.publisher = rospy.Publisher(self.get_publisher_name(), Bool, queue_size=1) + + def get_subscriber_name(self): + sub_name = self.label.lower().replace(' ', '_') + '_status' + return sub_name + + def init_subscriber(self): + self.subscriber = rospy.Subscriber(self.get_subscriber_name(), Status, self.callback) + +#================================================================================================================ +# ----------------------------------------------- Decorator Nodes ----------------------------------------------- +#================================================================================================================ + +class Decorator(Node): + def __init__(self, label): + Node.__init__(self, label) + + def add_child(self, node): + if len(self.children) == 0: + self.children.append(node) + else: + raise Exception('A Decorator can have only one child.') + + +class NotDecorator(Decorator): + def __init__(self): + Decorator.__init__(self, '!') + + def add_child(self, node): + if isinstance(node, Condition): + super(NotDecorator, self).add_child(node) + else: + raise Exception('Not Decorators must have a Condition node child.') + + def tick(self, active, traversal_count): + child = self.children[0] + child.tick(active, traversal_count) + if child.status == ReturnStatus.SUCCESS: + self.status = ReturnStatus.FAILURE + elif child.status == ReturnStatus.FAILURE: + self.status = ReturnStatus.SUCCESS + + self.is_active = active + +def get_decorator(label): + if label == '!': + return NotDecorator() + +#================================================================================================================ +# ------------------------------------------------ Behavior Tree ------------------------------------------------ +#================================================================================================================ + +class BehaviorTree: + def __init__(self, config_filename): + self.root = None + self.nodes = [] + self.traversal_count = 0 + + self.parse_config(config_filename) + + self.active_actions_pub = rospy.Publisher('active_actions', String, queue_size=1) + + def parse_config(self, config_filename): + rospack = rospkg.RosPack() + + fin = open(config_filename) + nodes_worklist = [] + prev_tabs = 0 + + lines = fin.read().split('\n') + + include = 'include' + did_include = True + + while did_include: + did_include = False + for i in range(len(lines)): + line = lines[i] + tabs = len(line) - len(line.lstrip('\t')) + label = line.strip() + + if len(label) >= len(include) and label[:len(include)] == include: + did_include = True + filename = label.split(include)[-1].strip() + while True: + try: + start = filename.index('$(') + end = filename.index(')') + except: + break + find_statement = filename[start:end] + package_name = find_statement.split('find')[-1].strip() + filename = filename[0:start] + rospack.get_path(package_name) + filename[end+1:] + subtree_lines = open(filename).read().split('\n') + add_tabs = tabs*'\t' + subtree_lines = map(lambda x:add_tabs+x, subtree_lines) + del lines[i] + lines = lines[:i] + subtree_lines + lines[i:] + + + for line in lines: + if len(line) == 0: + continue + + tabs = len(line) - len(line.lstrip('\t')) + label = line.strip() + node = None + + if label[:2] == '->': + node = Sequence() + elif label[0] == '?': + node = Fallback() + elif label[:2] == '||': + arguments = map(lambda x:x.strip(), label[2:].split(',')) + node = Parallel(int(arguments[0])) + elif label[0] == '(': + node_label = label.replace('(', '').replace(')', '') + node = Condition(node_label) + elif label[0] == '[': + node_label = label.replace('[', '').replace(']', '') + node = Action(node_label) + elif label[0] == '<': + node_label = label.replace('<', '').replace('>', '') + node = get_decorator(node_label) + + self.nodes.append(node) + + if self.root == None: + self.root = node + nodes_worklist.append(node) + continue + + if tabs == prev_tabs+1: + parent = nodes_worklist[-1] + parent.add_child(node) + else: + for i in range(prev_tabs - tabs + 1): + nodes_worklist.pop() + parent = nodes_worklist[-1] + parent.add_child(node) + + + nodes_worklist.append(node) + prev_tabs = tabs + + def tick(self): + if self.root != None: + self.root.tick(True, self.traversal_count) + self.traversal_count += 1 + active_actions = String() + active_actions.data = '' + + # Make sure that if there are more than one of the same action, if any are active, then active should be published + unique_action_nodes = {} + for node in self.nodes: + if isinstance(node, Action): + if node.label in unique_action_nodes.keys(): + if node.is_active: + unique_action_nodes[node.label] = node + else: + unique_action_nodes[node.label] = node + + for label, node in unique_action_nodes.iteritems(): + active_msg = Bool() + active_msg.data = node.is_active + node.publisher.publish(active_msg) + + if node.is_active: + active_actions.data += label + ', ' + active_actions.data = active_actions.data[:-2] # strip the final comma and space + self.active_actions_pub.publish(active_actions) + +if __name__ == '__main__': + BehaviorTree(sys.argv[1]) diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/behavior_tree_graphviz.py b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/behavior_tree_graphviz.py new file mode 100755 index 000000000..5df4aad29 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/behavior_tree_graphviz.py @@ -0,0 +1,103 @@ +#!/usr/bin/python +#import graphviz +#import cv2 +import sys +import behavior_tree as bt +import os + +import sys +reload(sys) +sys.setdefaultencoding('utf8') + + +def get_graphviz(tree): + nodes_worklist = [tree.root] + + gv = 'digraph G {\n' + + counts = {bt.Condition: 0, bt.Action: 0, bt.Fallback: 0, bt.Sequence: 0, bt.Parallel: 0, bt.Decorator: 0} + node_names = {} + + while len(nodes_worklist) > 0: + node = nodes_worklist.pop() + + style = '' + if node.is_active: + style += 'penwidth=2 color=black style=filled ' + if node.status == bt.ReturnStatus.SUCCESS: + style += 'fillcolor=green' + elif node.status == bt.ReturnStatus.RUNNING: + style += 'fillcolor=blue' + elif node.status == bt.ReturnStatus.FAILURE: + style += 'fillcolor=red' + else: + style += 'penwidth=2 ' + if node.status == bt.ReturnStatus.SUCCESS: + style += 'color=green' + elif node.status == bt.ReturnStatus.RUNNING: + style += 'color=blue' + elif node.status == bt.ReturnStatus.FAILURE: + style += 'color=red' + + if isinstance(node, bt.Condition): + name = 'condition_%d' % (counts[bt.Condition]) + gv += '\t%s [label="%s" %s]\n' % (name, node.label, style) + counts[bt.Condition] += 1 + elif isinstance(node, bt.Action): + name = 'action_%d' % (counts[bt.Action]) + gv += '\t%s [label="%s" shape=square %s]\n' % (name, node.label, style) + counts[bt.Action] += 1 + elif isinstance(node, bt.Fallback): + name = 'fallback_%d' % (counts[bt.Fallback]) + gv += '\t%s [label="%s" shape=square %s]\n' % (name, node.label, style) + counts[bt.Fallback] += 1 + elif isinstance(node, bt.Sequence): + name = 'sequence_%d' % (counts[bt.Sequence]) + gv += '\t%s [label="%s" shape=square %s]\n' % (name, node.label, style) + counts[bt.Sequence] += 1 + elif isinstance(node, bt.Parallel): + name = 'parallel_%d' % (counts[bt.Parallel]) + gv += '\t%s [label="%s" shape=parallelogram %s]\n' % (name, node.label, style) + counts[bt.Parallel] += 1 + elif isinstance(node, bt.Decorator): + name = 'decorator_%d' % (counts[bt.Decorator]) + gv += '\t%s [label="%s" shape=diamond %s]\n' % (name, node.label, style) + counts[bt.Decorator] += 1 + + node_names[node] = name + + for child in node.children: + nodes_worklist.append(child) + + gv += '\n\tordering=out;\n\n' + + nodes_worklist.append(tree.root) + while len(nodes_worklist) > 0: + node = nodes_worklist.pop() + + for child in node.children: + gv += '\t%s -> %s;\n' % (node_names[node], node_names[child]) + nodes_worklist.append(child) + + + gv += '}\n' + + return gv + +''' +def get_graphviz_image(gv_source, filename='temp'): + s = graphviz.Source(gv_source, filename=filename, format='png', engine='dot') + s.render() + + img = cv2.imread(filename + '.png') + return img +''' + +if __name__ == '__main__': + tree = bt.BehaviorTree(sys.argv[1]) + source = get_graphviz(tree) + +''' + if (len(sys.argv)) > 2: + get_graphviz_image(source, os.path.basename(sys.argv[2]).split('.')[0]) +''' diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/behavior_tree_node.py b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/behavior_tree_node.py new file mode 100755 index 000000000..fc8782dea --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/behavior_tree_node.py @@ -0,0 +1,43 @@ +#!/usr/bin/python +import rospy +from std_msgs.msg import String, Bool +import behavior_tree as bt +import behavior_tree_graphviz as gv +#import cv2 +import zlib + +class BehaviorTreeNode: + def __init__(self, config_filename): + self.tree = bt.BehaviorTree(config_filename) + for node in self.tree.nodes: + node.init_ros() + +def timer_callback(event): + node.tree.tick()#root.tick(True) + + source = gv.get_graphviz(node.tree) + source_msg = String() + source_msg.data = source + graphviz_pub.publish(source_msg) + + compressed = String() + compressed.data = zlib.compress(source) + compressed_pub.publish(compressed) + ''' + img = gv.get_graphviz_image(source) + cv2.imshow('img', img) + cv2.waitKey(1) + ''' + +if __name__ == '__main__': + rospy.init_node('behavior_tree_node') + + config_filename = rospy.get_param('~config', '') + + node = BehaviorTreeNode(config_filename) + + graphviz_pub = rospy.Publisher('behavior_tree_graphviz', String, queue_size=1) + compressed_pub = rospy.Publisher('behavior_tree_graphviz_compressed', String, queue_size=1) + timer = rospy.Timer(rospy.Duration(0.05), timer_callback) + + rospy.spin() diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/parallel_state_machine.py b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/parallel_state_machine.py new file mode 100755 index 000000000..bae6c4957 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/parallel_state_machine.py @@ -0,0 +1,153 @@ +#!/usr/bin/python +import rospy +from std_msgs.msg import String +import yaml +import sys +import collections + +# Comments: +# 1. State names must be unique across all state machines +# - Would be confusing to interpret if you were reading what state the robot is in +# - Graphviz doesn't seem to support having the same name in different subgraphs +# 2. Can transition from state -> state (within a state machine), from state -> state machine and from state machine -> state machine, but not from a state machine -> state + +class State: + def __init__(self, name, state_machine): + self.name = name + self.state_machine = state_machine + self.transitions = collections.OrderedDict() + + def add_transition(self, transition, state): + self.transitions[transition] = state + + def transition(self, trans): + if trans in self.transitions.keys(): + print(self.name + ': transitioning to ' + self.transitions[trans].name) + return self.transitions[trans] + else: + print(self.name + ': invalid transition ' + trans) + return None + + def print_structure(self): + print('\t' + self.name) + for transition, state_or_state_machine in self.transitions.iteritems(): + print('\t\t' + transition + ': this -> ' + state_or_state_machine.name) + +class StateMachine: + def __init__(self, name): + self.name = name + self.states = collections.OrderedDict() + self.transitions = collections.OrderedDict() + self.current_state = None + + def add_state(self, state): + self.states[state.name] = state + if self.current_state == None: + self.current_state = state + + def add_transition(self, transition, state_machine): + self.transitions[transition] = state_machine + + def transition(self, trans): + if trans in self.transitions.keys(): + print(self.name + ': transitioning to new state machine ' + self.transitions[trans].name) + return self.transitions[trans] + else: + new_state_or_state_machine = self.current_state.transition(trans) + print(new_state_or_state_machine.name, isinstance(new_state_or_state_machine, State)) + if isinstance(new_state_or_state_machine, State): + self.current_state = new_state_or_state_machine + print(self.current_state.name) + return new_state_or_state_machine + + def print_structure(self): + print(self.name) + for transition, state_machine in self.transitions.iteritems(): + print('\t' + transition + ': this -> ' + state_machine.name) + for state_name, state in self.states.iteritems(): + state.print_structure() + +class ParallelStateMachine: + def __init__(self, config_filename): + self.states = collections.OrderedDict() + self.state_machines = collections.OrderedDict() + self.current_state_machine = None + + # parse the config file + config = yaml.load(open(config_filename, 'r').read()) + + # Do a first pass to initialize all of the state machines and states + for state_machine_dict in config['state_machines']: + name = state_machine_dict.keys()[0] + state_machine = StateMachine(name) + self.state_machines[name] = state_machine + + for state_name in state_machine_dict[name]['states']: # TODO: check that len(states) > 0 + state = State(state_name, state_machine) # TODO: check that name is unique + self.states[state_name] = state + state_machine.add_state(state) + # TODO: check that state names and state machines names are unique + + # Do a second pass to build the structure of the state machines + # TODO: check that transitions are valid according to rules above + for state_machine_dict in config['state_machines']: + name = state_machine_dict.keys()[0] + state_machine = self.state_machines[name] + + for transition in state_machine_dict[name]['transitions']: + transition_dict = state_machine_dict[name]['transitions'][transition] + to_name = transition_dict['to'] + + if to_name in self.states.keys(): + to = self.states[to_name] + elif to_name in self.state_machines.keys(): + to = self.state_machines[to_name] + + if 'from' in transition_dict.keys(): + from_states = transition_dict['from'] + if type(from_states) == str: + from_states = [from_states] + for from_state in from_states: + self.states[from_state].add_transition(transition, to) + else: + state_machine.add_transition(transition, to) + + self.current_state_machine = self.state_machines[self.state_machines.keys()[0]] + + self.print_structure() + + def print_structure(self): + for state_machine_name, state_machine in self.state_machines.iteritems(): + state_machine.print_structure() + + + def transition(self, trans): + state_or_state_machine = self.current_state_machine.transition(trans) + + if isinstance(state_or_state_machine, StateMachine): + self.current_state_machine = state_or_state_machine + + +def transition_callback(msg): + parallel_state_machine.transition(msg.data) + +def timer_callback(x): + state_pub.publish(parallel_state_machine.current_state_machine.current_state.name) + +if __name__ == '__main__': + #parallel_state_machine = ParallelStateMachine(sys.argv[1]) + #exit() + rospy.init_node('state_machine', anonymous=True) + + config_filename = rospy.get_param('~config', '') + state_pub_rate = 1./rospy.get_param('~state_pub_rate', 10.) + + parallel_state_machine = ParallelStateMachine(config_filename) + + + + transition_sub = rospy.Subscriber('/transition', String, transition_callback) + state_pub = rospy.Publisher('/state', String, queue_size=10) + state_pub_timer = rospy.Timer(rospy.Duration(state_pub_rate), timer_callback) + + rospy.spin() diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/pydot_test.py b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/pydot_test.py new file mode 100755 index 000000000..727e926ad --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/pydot_test.py @@ -0,0 +1,17 @@ +#!/usr/bin/python +import pydot + +graph = pydot.Dot(graph_type='digraph') +node_a = pydot.Node("Node A", style="filled", fillcolor="red") +node_b = pydot.Node("Node B", style="filled", fillcolor="green") +node_c = pydot.Node("Node C", style="filled", fillcolor="#0000ff") +node_d = pydot.Node("Node D", style="filled", fillcolor="#976856") +graph.add_node(node_a) +graph.add_node(node_b) +graph.add_node(node_c) +graph.add_node(node_d) +graph.add_edge(pydot.Edge(node_a, node_b)) +graph.add_edge(pydot.Edge(node_b, node_c)) +graph.add_edge(pydot.Edge(node_c, node_d)) +graph.add_edge(pydot.Edge(node_d, node_a, label="and back we go again", labelfontcolor="#009933", fontsize="10.0", color="blue")) +graph.write_png('rqt_test.png') diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/rc_to_state.py b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/rc_to_state.py new file mode 100755 index 000000000..ccb0c5c6f --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/rc_to_state.py @@ -0,0 +1,45 @@ +#!/usr/bin/python +import rospy +from mavros_msgs.msg import RCIn +from std_msgs.msg import String + +switch = None +prev_switch = None +channel_upper_bound = 2000 +channel_lower_bound = 1000 +toggles = 0 + + +def rc_callback(rc): + global prev_switch, switch, toggles + channel = rc.channels[8] + if channel >= channel_upper_bound: + switch = True + elif channel <= channel_lower_bound: + switch = False + + if prev_switch == None or switch == None: + prev_switch = switch + return + + if switch != prev_switch: + toggles += 1 + transition = String() + + if toggles == 1: + transition.data = 'rewind' + transition_pub.publish(transition) + elif toggles == 2: + transition.data = 'land' + transition_pub.publish(transition) + + prev_switch = switch + + +if __name__ == '__main__': + rospy.init_node('rc_to_state') + + rc_sub = rospy.Subscriber('/mavros/rc/in', RCIn, rc_callback) + transition_pub = rospy.Publisher('/transition', String, queue_size=1) + + rospy.spin() diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/rqt_test.png b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/rqt_test.png new file mode 100644 index 0000000000000000000000000000000000000000..c43adc852f91b303e482c763ebf8176975fed1e1 GIT binary patch literal 17804 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

      =W3D-qhlwe?Bka~Y_y-~FumRe+t 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. + +from xdot import * + +__all__ = ['WxDotWindow', 'WxDotFrame'] + +# We need to get the wx version with built-in cairo support +import wxversion +wxversion.select("2.8") +import wx +import wx.lib.wxcairo as wxcairo + +# This is a crazy hack to get this to work on 64-bit systems +if 'wxMac' in wx.PlatformInfo: + pass # Implement if necessary +elif 'wxMSW' in wx.PlatformInfo: + pass # Implement if necessary +elif 'wxGTK' in wx.PlatformInfo: + import ctypes + gdkLib = wx.lib.wxcairo._findGDKLib() + gdkLib.gdk_cairo_create.restype = ctypes.c_void_p + +class WxDragAction(object): + def __init__(self, dot_widget): + self.dot_widget = dot_widget + + def on_button_press(self, event): + x,y = event.GetPositionTuple() + self.startmousex = self.prevmousex = x + self.startmousey = self.prevmousey = y + self.start() + + def on_motion_notify(self, event): + x,y = event.GetPositionTuple() + deltax = self.prevmousex - x + deltay = self.prevmousey - y + self.drag(deltax, deltay) + self.prevmousex = x + self.prevmousey = y + + def on_button_release(self, event): + x,y = event.GetPositionTuple() + self.stopmousex = x + self.stopmousey = y + self.stop() + + def draw(self, cr): + pass + + def start(self): + pass + + def drag(self, deltax, deltay): + pass + + def stop(self): + pass + + def abort(self): + pass + +class WxNullAction(WxDragAction): + def on_motion_notify(self, event): + pass + +class WxPanAction(WxDragAction): + def start(self): + self.dot_widget.set_cursor(wx.CURSOR_SIZING) + + def drag(self, deltax, deltay): + self.dot_widget.x += deltax / self.dot_widget.zoom_ratio + self.dot_widget.y += deltay / self.dot_widget.zoom_ratio + self.dot_widget.Refresh() + + def stop(self): + self.dot_widget.set_cursor(wx.CURSOR_ARROW) + + abort = stop + +class WxZoomAction(WxDragAction): + def drag(self, deltax, deltay): + self.dot_widget.zoom_ratio *= 1.005 ** (deltax + deltay) + self.dot_widget.zoom_to_fit_on_resize = False + self.dot_widget.Refresh() + + def stop(self): + self.dot_widget.Refresh() + +class WxZoomAreaAction(WxDragAction): + def drag(self, deltax, deltay): + self.dot_widget.Refresh() + + def draw(self, cr): + cr.save() + cr.set_source_rgba(.5, .5, 1.0, 0.25) + cr.rectangle(self.startmousex, self.startmousey, + self.prevmousex - self.startmousex, + self.prevmousey - self.startmousey) + cr.fill() + cr.set_source_rgba(.5, .5, 1.0, 1.0) + cr.set_line_width(1) + cr.rectangle(self.startmousex - .5, self.startmousey - .5, + self.prevmousex - self.startmousex + 1, + self.prevmousey - self.startmousey + 1) + cr.stroke() + cr.restore() + + def stop(self): + x1, y1 = self.dot_widget.window2graph(self.startmousex, + self.startmousey) + x2, y2 = self.dot_widget.window2graph(self.stopmousex, + self.stopmousey) + self.dot_widget.zoom_to_area(x1, y1, x2, y2) + + def abort(self): + self.dot_widget.Refresh() + +class WxDotWindow(wx.Panel): + """wxpython Frame that draws dot graphs.""" + filter = 'dot' + + def __init__(self, parent, id): + """constructor""" + wx.Panel.__init__(self, parent, id) + + self.graph = Graph() + self.openfilename = None + + self.x, self.y = 0.0, 0.0 + self.zoom_ratio = 1.0 + self.zoom_to_fit_on_resize = False + self.animation = NoAnimation(self) + self.drag_action = WxNullAction(self) + self.presstime = None + self.highlight = None + + # Bind events + self.Bind(wx.EVT_PAINT, self.OnPaint) + self.Bind(wx.EVT_SIZE, self.OnResize) + + self.Bind(wx.EVT_MOUSEWHEEL, self.OnScroll) + + self.Bind(wx.EVT_MOUSE_EVENTS, self.OnMouse) + + self.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown) + + # Callback register + self.select_cbs = [] + self.dc = None + self.ctx = None + self.items_by_url = {} + + ### User callbacks + def register_select_callback(self, cb): + self.select_cbs.append(cb) + + ### Event handlers + def OnResize(self, event): + self.Refresh() + + def OnPaint(self, event): + """Redraw the graph.""" + dc = wx.PaintDC(self) + + #print dc + ctx = wxcairo.ContextFromDC(dc) + ctx = pangocairo.CairoContext(ctx) + #print "DRAW" + + # Get widget size + width, height = self.GetSize() + #width,height = self.dc.GetSizeTuple() + + ctx.rectangle(0,0,width,height) + ctx.clip() + + ctx.set_source_rgba(1.0, 1.0, 1.0, 1.0) + ctx.paint() + + ctx.save() + ctx.translate(0.5*width, 0.5*height) + + ctx.scale(self.zoom_ratio, self.zoom_ratio) + ctx.translate(-self.x, -self.y) + self.graph.draw(ctx, highlight_items=self.highlight) + ctx.restore() + + self.drag_action.draw(ctx) + + def OnScroll(self, event): + """Zoom the view.""" + if event.GetWheelRotation() > 0: + self.zoom_image(self.zoom_ratio * self.ZOOM_INCREMENT, + pos=(event.GetX(), event.GetY())) + else: + self.zoom_image(self.zoom_ratio / self.ZOOM_INCREMENT, + pos=(event.GetX(), event.GetY())) + + def OnKeyDown(self, event): + """Process key down event.""" + key = event.GetKeyCode() + if key == wx.WXK_LEFT: + self.x -= self.POS_INCREMENT/self.zoom_ratio + self.Refresh() + if key == wx.WXK_RIGHT: + self.x += self.POS_INCREMENT/self.zoom_ratio + self.Refresh() + if key == wx.WXK_UP: + self.y -= self.POS_INCREMENT/self.zoom_ratio + self.Refresh() + if key == wx.WXK_DOWN: + self.y += self.POS_INCREMENT/self.zoom_ratio + self.Refresh() + if key == wx.WXK_PAGEUP: + self.zoom_image(self.zoom_ratio * self.ZOOM_INCREMENT) + self.Refresh() + if key == wx.WXK_PAGEDOWN: + self.zoom_image(self.zoom_ratio / self.ZOOM_INCREMENT) + self.Refresh() + if key == wx.WXK_ESCAPE: + self.drag_action.abort() + self.drag_action = WxNullAction(self) + if key == ord('F'): + self.zoom_to_fit() + if key == ord('R'): + self.reload() + if key == ord('Q'): + self.reload() + exit(0) + + ### Helper functions + def get_current_pos(self): + """Get the current graph position.""" + return self.x, self.y + + def set_current_pos(self, x, y): + """Set the current graph position.""" + self.x = x + self.y = y + self.Refresh() + + def set_highlight(self, items): + """Set a number of items to be hilighted.""" + if self.highlight != items: + self.highlight = items + self.Refresh() + + ### Cursor manipulation + def set_cursor(self, cursor_type): + self.cursor = wx.StockCursor(cursor_type) + self.SetCursor(self.cursor) + + ### Zooming methods + def zoom_image(self, zoom_ratio, center=False, pos=None): + """Zoom the graph.""" + if center: + self.x = self.graph.width/2 + self.y = self.graph.height/2 + elif pos is not None: + width, height = self.GetSize() + x, y = pos + x -= 0.5*width + y -= 0.5*height + self.x += x / self.zoom_ratio - x / zoom_ratio + self.y += y / self.zoom_ratio - y / zoom_ratio + self.zoom_ratio = zoom_ratio + self.zoom_to_fit_on_resize = False + self.Refresh() + + def zoom_to_area(self, x1, y1, x2, y2): + """Zoom to an area of the graph.""" + width, height = self.GetSize() + area_width = abs(x1 - x2) + area_height = abs(y1 - y2) + self.zoom_ratio = min( + float(width)/float(area_width), + float(height)/float(area_height) + ) + self.zoom_to_fit_on_resize = False + self.x = (x1 + x2) / 2 + self.y = (y1 + y2) / 2 + self.Refresh() + + def zoom_to_fit(self): + """Zoom to fit the size of the graph.""" + width,height = self.GetSize() + x = self.ZOOM_TO_FIT_MARGIN + y = self.ZOOM_TO_FIT_MARGIN + width -= 2 * self.ZOOM_TO_FIT_MARGIN + height -= 2 * self.ZOOM_TO_FIT_MARGIN + + if float(self.graph.width) > 0 and float(self.graph.height) > 0 and width > 0 and height > 0: + zoom_ratio = min( + float(width)/float(self.graph.width), + float(height)/float(self.graph.height) + ) + self.zoom_image(zoom_ratio, center=True) + self.zoom_to_fit_on_resize = True + + ZOOM_INCREMENT = 1.25 + ZOOM_TO_FIT_MARGIN = 12 + + def on_zoom_in(self, action): + self.zoom_image(self.zoom_ratio * self.ZOOM_INCREMENT) + + def on_zoom_out(self, action): + self.zoom_image(self.zoom_ratio / self.ZOOM_INCREMENT) + + def on_zoom_fit(self, action): + self.zoom_to_fit() + + def on_zoom_100(self, action): + self.zoom_image(1.0) + + POS_INCREMENT = 100 + + def get_drag_action(self, event): + """Get a drag action for this click.""" + # Grab the button + button = event.GetButton() + # Grab modifier keys + control_down = event.ControlDown() + alt_down = event.AltDown() + shift_down = event.ShiftDown() + + drag = event.Dragging() + motion = event.Moving() + + # Get the correct drag action for this click + if button in (wx.MOUSE_BTN_LEFT, wx.MOUSE_BTN_MIDDLE): # left or middle button + if control_down: + if shift_down: + return WxZoomAreaAction(self) + else: + return WxZoomAction(self) + else: + return WxPanAction(self) + + return WxNullAction(self) + + def OnMouse(self, event): + x,y = event.GetPositionTuple() + + item = None + + # Get the item + if not event.Dragging(): + item = self.get_url(x, y) + if item is None: + item = self.get_jump(x, y) + + if item is not None: + self.set_cursor(wx.CURSOR_HAND) + self.set_highlight(item.highlight) + + for cb in self.select_cbs: + cb(item,event) + else: + self.set_cursor(wx.CURSOR_ARROW) + self.set_highlight(None) + + if item is None: + if event.ButtonDown(): + self.animation.stop() + self.drag_action.abort() + + # Get the drag action + self.drag_action = self.get_drag_action(event) + self.drag_action.on_button_press(event) + + self.pressx = x + self.pressy = y + + if event.Dragging() or event.Moving(): + self.drag_action.on_motion_notify(event) + + if event.ButtonUp(): + self.drag_action.on_button_release(event) + self.drag_action = WxNullAction(self) + + event.Skip() + + + def on_area_size_allocate(self, area, allocation): + if self.zoom_to_fit_on_resize: + self.zoom_to_fit() + + def animate_to(self, x, y): + self.animation = ZoomToAnimation(self, x, y) + self.animation.start() + + def window2graph(self, x, y): + "Get the x,y coordinates in the graph from the x,y coordinates in the window.""" + width, height = self.GetSize() + x -= 0.5*width + y -= 0.5*height + x /= self.zoom_ratio + y /= self.zoom_ratio + x += self.x + y += self.y + return x, y + + def get_url(self, x, y): + x, y = self.window2graph(x, y) + return self.graph.get_url(x, y) + + def get_jump(self, x, y): + x, y = self.window2graph(x, y) + return self.graph.get_jump(x, y) + + def set_filter(self, filter): + self.filter = filter + + def set_dotcode(self, dotcode, filename=''): + if isinstance(dotcode, unicode): + dotcode = dotcode.encode('utf8') + p = subprocess.Popen( + [self.filter, '-Txdot'], + stdin=subprocess.PIPE, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + shell=False, + universal_newlines=True + ) + xdotcode, error = p.communicate(dotcode) + if p.returncode != 0: + print "ERROR PARSING DOT CODE", error + dialog = gtk.MessageDialog(type=gtk.MESSAGE_ERROR, + message_format=error, + buttons=gtk.BUTTONS_OK) + dialog.set_title('Dot Viewer') + dialog.run() + dialog.destroy() + return False + try: + self.set_xdotcode(xdotcode) + + # Store references to all the items + self.items_by_url = {} + for item in self.graph.nodes + self.graph.edges: + if item.url is not None: + self.items_by_url[item.url] = item + + # Store references to subgraph states + self.subgraph_shapes = self.graph.subgraph_shapes + + except ParseError, ex: + print "ERROR PARSING XDOT CODE" + dialog = gtk.MessageDialog(type=gtk.MESSAGE_ERROR, + message_format=str(ex), + buttons=gtk.BUTTONS_OK) + dialog.set_title('Dot Viewer') + dialog.run() + dialog.destroy() + return False + else: + self.openfilename = filename + return True + + def set_xdotcode(self, xdotcode): + """Set xdot code.""" + #print xdotcode + parser = XDotParser(xdotcode) + self.graph = parser.parse() + self.highlight = None + #self.zoom_image(self.zoom_ratio, center=True) + + def reload(self): + if self.openfilename is not None: + try: + fp = file(self.openfilename, 'rt') + self.set_dotcode(fp.read(), self.openfilename) + fp.close() + except IOError: + pass + + +class WxDotFrame(wx.Frame): + def __init__(self): + wx.Frame.__init__(self, None, -1, "Dot Viewer", size=(512,512)) + + vbox = wx.BoxSizer(wx.VERTICAL) + + # Construct toolbar + toolbar = wx.ToolBar(self, -1) + toolbar.AddLabelTool(wx.ID_OPEN, 'Open File', + wx.ArtProvider.GetBitmap(wx.ART_FOLDER_OPEN,wx.ART_OTHER,(16,16))) + toolbar.AddLabelTool(wx.ID_HELP, 'Help', + wx.ArtProvider.GetBitmap(wx.ART_HELP,wx.ART_OTHER,(16,16)) ) + toolbar.Realize() + + self.Bind(wx.EVT_TOOL, self.DoOpenFile, id=wx.ID_OPEN) + self.Bind(wx.EVT_TOOL, self.ShowControlsDialog, id=wx.ID_HELP) + + # Create dot widge + self.widget = WxDotWindow(self, -1) + + # Add elements to sizer + vbox.Add(toolbar, 0, wx.EXPAND) + vbox.Add(self.widget, 100, wx.EXPAND | wx.ALL) + + self.SetSizer(vbox) + self.Center() + + def ShowControlsDialog(self,event): + dial = wx.MessageDialog(None, + "\ +Pan: Arrow Keys\n\ +Zoom: PageUp / PageDown\n\ +Zoom To Fit: F\n\ +Refresh: R", + 'Keyboard Controls', wx.OK) + dial.ShowModal() + + def DoOpenFile(self,event): + wcd = 'All files (*)|*|GraphViz Dot Files(*.dot)|*.dot|' + dir = os.getcwd() + open_dlg = wx.FileDialog(self, message='Choose a file', defaultDir=dir, defaultFile='', + wildcard=wcd, style=wx.OPEN|wx.CHANGE_DIR) + if open_dlg.ShowModal() == wx.ID_OK: + path = open_dlg.GetPath() + + try: + self.open_file(path) + + except IOError, error: + dlg = wx.MessageDialog(self, 'Error opening file\n' + str(error)) + dlg.ShowModal() + + except UnicodeDecodeError, error: + dlg = wx.MessageDialog(self, 'Error opening file\n' + str(error)) + dlg.ShowModal() + + open_dlg.Destroy() + + def OnExit(self, event): + pass + + def set_dotcode(self, dotcode, filename=''): + if self.widget.set_dotcode(dotcode, filename): + self.SetTitle(os.path.basename(filename) + ' - Dot Viewer') + self.widget.zoom_to_fit() + + def set_xdotcode(self, xdotcode, filename=''): + if self.widget.set_xdotcode(xdotcode): + self.SetTitle(os.path.basename(filename) + ' - Dot Viewer') + self.widget.zoom_to_fit() + + def open_file(self, filename): + try: + fp = file(filename, 'rt') + self.set_dotcode(fp.read(), filename) + fp.close() + except IOError, ex: + """ + dlg = gtk.MessageDialog(type=gtk.MESSAGE_ERROR, + message_format=str(ex), + buttons=gtk.BUTTONS_OK) + dlg.set_title('Dot Viewer') + dlg.run() + dlg.destroy() + """ + + def set_filter(self, filter): + self.widget.set_filter(filter) + diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/rqt_behavior_tree/xdot/xdot.py b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/rqt_behavior_tree/xdot/xdot.py new file mode 100755 index 000000000..092152d5b --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/rqt_behavior_tree/xdot/xdot.py @@ -0,0 +1,2174 @@ +#!/usr/bin/env python +# +# Copyright 2008 Jose Fonseca +# +# This program is free software: you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published +# by the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program. If not, see . +# + +'''Visualize dot graphs via the xdot format.''' + +__author__ = "Jose Fonseca" + +__version__ = "0.4" + + +import os +import sys +import subprocess +import math +import colorsys +import time +import re + +import gobject +import gtk +import gtk.gdk +import gtk.keysyms +import cairo +import pango +import pangocairo + + +# See http://www.graphviz.org/pub/scm/graphviz-cairo/plugin/cairo/gvrender_cairo.c + +# For pygtk inspiration and guidance see: +# - http://mirageiv.berlios.de/ +# - http://comix.sourceforge.net/ + + +class Pen: + """Store pen attributes.""" + + def __init__(self): + # set default attributes + self.color = (0.0, 0.0, 0.0, 1.0) + self.fillcolor = (0.0, 0.0, 0.0, 1.0) + self.linewidth = 1.0 + self.fontsize = 14.0 + self.fontname = "Times-Roman" + self.dash = () + + def copy(self): + """Create a copy of this pen.""" + pen = Pen() + pen.__dict__ = self.__dict__.copy() + return pen + + def highlighted(self): + pen = self.copy() + pen.color = (1, 0, 0, 1) + pen.fillcolor = (1, .8, .8, 1) + return pen + + +class Shape: + """Abstract base class for all the drawing shapes.""" + + def __init__(self): + pass + + def draw(self, cr, highlight=False): + """Draw this shape with the given cairo context""" + raise NotImplementedError + + def select_pen(self, highlight): + if highlight: + if not hasattr(self, 'highlight_pen'): + self.highlight_pen = self.pen.highlighted() + return self.highlight_pen + else: + return self.pen + + +class TextShape(Shape): + + #fontmap = pangocairo.CairoFontMap() + #fontmap.set_resolution(72) + #context = fontmap.create_context() + + LEFT, CENTER, RIGHT = -1, 0, 1 + + def __init__(self, pen, x, y, j, w, t): + Shape.__init__(self) + self.pen = pen.copy() + self.x = x + self.y = y + self.j = j + self.w = w + self.t = t + + def draw(self, cr, highlight=False): + + try: + layout = self.layout + except AttributeError: + layout = cr.create_layout() + + # set font options + # see http://lists.freedesktop.org/archives/cairo/2007-February/009688.html + context = layout.get_context() + fo = cairo.FontOptions() + fo.set_antialias(cairo.ANTIALIAS_DEFAULT) + fo.set_hint_style(cairo.HINT_STYLE_NONE) + fo.set_hint_metrics(cairo.HINT_METRICS_OFF) + try: + pangocairo.context_set_font_options(context, fo) + except TypeError: + # XXX: Some broken pangocairo bindings show the error + # 'TypeError: font_options must be a cairo.FontOptions or None' + pass + + # set font + font = pango.FontDescription() + font.set_family(self.pen.fontname) + font.set_absolute_size(self.pen.fontsize*pango.SCALE) + layout.set_font_description(font) + + # set text + layout.set_text(self.t) + + # cache it + self.layout = layout + else: + cr.update_layout(layout) + + descent = 2 # XXX get descender from font metrics + + width, height = layout.get_size() + width = float(width)/pango.SCALE + height = float(height)/pango.SCALE + # we know the width that dot thinks this text should have + # we do not necessarily have a font with the same metrics + # scale it so that the text fits inside its box + if width > self.w: + f = self.w / width + width = self.w # equivalent to width *= f + height *= f + descent *= f + else: + f = 1.0 + + if self.j == self.LEFT: + x = self.x + elif self.j == self.CENTER: + x = self.x - 0.5*width + elif self.j == self.RIGHT: + x = self.x - width + else: + assert 0 + + y = self.y - height + descent + + cr.move_to(x, y) + + cr.save() + cr.scale(f, f) + cr.set_source_rgba(*self.select_pen(highlight).color) + cr.show_layout(layout) + cr.restore() + + if 0: # DEBUG + # show where dot thinks the text should appear + cr.set_source_rgba(1, 0, 0, .9) + if self.j == self.LEFT: + x = self.x + elif self.j == self.CENTER: + x = self.x - 0.5*self.w + elif self.j == self.RIGHT: + x = self.x - self.w + cr.move_to(x, self.y) + cr.line_to(x+self.w, self.y) + cr.stroke() + + +class EllipseShape(Shape): + + def __init__(self, pen, x0, y0, w, h, filled=False): + Shape.__init__(self) + self.pen = pen.copy() + self.x0 = x0 + self.y0 = y0 + self.w = w + self.h = h + self.filled = filled + + def draw(self, cr, highlight=False): + cr.save() + cr.translate(self.x0, self.y0) + cr.scale(self.w, self.h) + cr.move_to(1.0, 0.0) + cr.arc(0.0, 0.0, 1.0, 0, 2.0*math.pi) + cr.restore() + pen = self.select_pen(highlight) + if self.filled: + cr.set_source_rgba(*pen.fillcolor) + cr.fill() + else: + cr.set_dash(pen.dash) + cr.set_line_width(pen.linewidth) + cr.set_source_rgba(*pen.color) + cr.stroke() + + +class PolygonShape(Shape): + + def __init__(self, pen, points, filled=False): + Shape.__init__(self) + self.pen = pen.copy() + self.points = points + self.filled = filled + + def draw(self, cr, highlight=False): + x0, y0 = self.points[-1] + cr.move_to(x0, y0) + for x, y in self.points: + cr.line_to(x, y) + cr.close_path() + pen = self.select_pen(highlight) + if self.filled: + cr.set_source_rgba(*pen.fillcolor) + cr.fill_preserve() + cr.fill() + else: + cr.set_dash(pen.dash) + cr.set_line_width(pen.linewidth) + cr.set_source_rgba(*pen.color) + cr.stroke() + + +class LineShape(Shape): + + def __init__(self, pen, points): + Shape.__init__(self) + self.pen = pen.copy() + self.points = points + + def draw(self, cr, highlight=False): + x0, y0 = self.points[0] + cr.move_to(x0, y0) + for x1, y1 in self.points[1:]: + cr.line_to(x1, y1) + pen = self.select_pen(highlight) + cr.set_dash(pen.dash) + cr.set_line_width(pen.linewidth) + cr.set_source_rgba(*pen.color) + cr.stroke() + + +class BezierShape(Shape): + + def __init__(self, pen, points, filled=False): + Shape.__init__(self) + self.pen = pen.copy() + self.points = points + self.filled = filled + + def draw(self, cr, highlight=False): + x0, y0 = self.points[0] + cr.move_to(x0, y0) + for i in xrange(1, len(self.points), 3): + x1, y1 = self.points[i] + x2, y2 = self.points[i + 1] + x3, y3 = self.points[i + 2] + cr.curve_to(x1, y1, x2, y2, x3, y3) + pen = self.select_pen(highlight) + if self.filled: + cr.set_source_rgba(*pen.fillcolor) + cr.fill_preserve() + cr.fill() + else: + cr.set_dash(pen.dash) + cr.set_line_width(pen.linewidth) + cr.set_source_rgba(*pen.color) + cr.stroke() + + +class CompoundShape(Shape): + + def __init__(self, shapes): + Shape.__init__(self) + self.shapes = shapes + + def draw(self, cr, highlight=False): + for shape in self.shapes: + shape.draw(cr, highlight=highlight) + + +class Url(object): + + def __init__(self, item, url, highlight=None): + self.item = item + self.url = url + if highlight is None: + highlight = set([item]) + self.highlight = highlight + + +class Jump(object): + + def __init__(self, item, x, y, highlight=None, url=None): + self.item = item + self.x = x + self.y = y + if highlight is None: + highlight = set([item]) + self.highlight = highlight + self.url = url + + +class Element(CompoundShape): + """Base class for graph nodes and edges.""" + + def __init__(self, shapes): + CompoundShape.__init__(self, shapes) + + def get_url(self, x, y): + return None + + def get_jump(self, x, y): + return None + + +class Node(Element): + + def __init__(self, x, y, w, h, shapes, url): + Element.__init__(self, shapes) + + self.x = x + self.y = y + + self.x1 = x - 0.5*w + self.y1 = y - 0.5*h + self.x2 = x + 0.5*w + self.y2 = y + 0.5*h + + self.url = url + + def is_inside(self, x, y): + return self.x1 <= x and x <= self.x2 and self.y1 <= y and y <= self.y2 + + def get_url(self, x, y): + if self.url is None: + return None + #print (x, y), (self.x1, self.y1), "-", (self.x2, self.y2) + if self.is_inside(x, y): + return Url(self, self.url) + return None + + def get_jump(self, x, y): + if self.is_inside(x, y): + return Jump(self, self.x, self.y) + return None + + +def square_distance(x1, y1, x2, y2): + deltax = x2 - x1 + deltay = y2 - y1 + return deltax*deltax + deltay*deltay + + +class Edge(Element): + + def __init__(self, src, dst, points, shapes, url): + Element.__init__(self, shapes) + self.src = src + self.dst = dst + self.points = points + self.url = url + + RADIUS = 10 + + def get_jump(self, x, y): + if square_distance(x, y, *self.points[0]) <= self.RADIUS*self.RADIUS: + return Jump(self, self.dst.x, self.dst.y, highlight=set([self, self.dst]),url=self.url) + if square_distance(x, y, *self.points[-1]) <= self.RADIUS*self.RADIUS: + return Jump(self, self.src.x, self.src.y, highlight=set([self, self.src]),url=self.url) + return None + + +class Graph(Shape): + + def __init__(self, width=1, height=1, shapes=(), nodes=(), edges=(), subgraph_shapes={}): + Shape.__init__(self) + + self.width = width + self.height = height + self.shapes = shapes + self.nodes = nodes + self.edges = edges + self.subgraph_shapes = subgraph_shapes + + def get_size(self): + return self.width, self.height + + def draw(self, cr, highlight_items=None): + if highlight_items is None: + highlight_items = () + cr.set_source_rgba(0.0, 0.0, 0.0, 1.0) + + cr.set_line_cap(cairo.LINE_CAP_BUTT) + cr.set_line_join(cairo.LINE_JOIN_MITER) + + for shape in self.shapes: + shape.draw(cr) + for edge in self.edges: + edge.draw(cr, highlight=(edge in highlight_items)) + for node in self.nodes: + node.draw(cr, highlight=(node in highlight_items)) + + def get_url(self, x, y): + for node in self.nodes: + url = node.get_url(x, y) + if url is not None: + return url + return None + + def get_jump(self, x, y): + for edge in self.edges: + jump = edge.get_jump(x, y) + if jump is not None: + return jump + for node in self.nodes: + jump = node.get_jump(x, y) + if jump is not None: + return jump + return None + + +class XDotAttrParser: + """Parser for xdot drawing attributes. + See also: + - http://www.graphviz.org/doc/info/output.html#d:xdot + """ + + def __init__(self, parser, buf): + self.parser = parser + self.buf = self.unescape(buf) + self.pos = 0 + + self.pen = Pen() + self.shapes = [] + + def __nonzero__(self): + return self.pos < len(self.buf) + + def unescape(self, buf): + buf = buf.replace('\\"', '"') + buf = buf.replace('\\n', '\n') + return buf + + def read_code(self): + pos = self.buf.find(" ", self.pos) + res = self.buf[self.pos:pos] + self.pos = pos + 1 + while self.pos < len(self.buf) and self.buf[self.pos].isspace(): + self.pos += 1 + return res + + def read_number(self): + return int(float(self.read_code())) + + def read_float(self): + return float(self.read_code()) + + def read_point(self): + x = self.read_number() + y = self.read_number() + return self.transform(x, y) + + def read_text(self): + num = self.read_number() + pos = self.buf.find("-", self.pos) + 1 + self.pos = pos + num + res = self.buf[pos:self.pos] + while self.pos < len(self.buf) and self.buf[self.pos].isspace(): + self.pos += 1 + return res + + def read_polygon(self): + n = self.read_number() + p = [] + for i in range(n): + x, y = self.read_point() + p.append((x, y)) + return p + + def read_color(self): + # See http://www.graphviz.org/doc/info/attrs.html#k:color + c = self.read_text() + c1 = c[:1] + if c1 == '#': + hex2float = lambda h: float(int(h, 16)/255.0) + r = hex2float(c[1:3]) + g = hex2float(c[3:5]) + b = hex2float(c[5:7]) + try: + a = hex2float(c[7:9]) + except (IndexError, ValueError): + a = 1.0 + return r, g, b, a + elif c1.isdigit() or c1 == ".": + # "H,S,V" or "H S V" or "H, S, V" or any other variation + h, s, v = map(float, c.replace(",", " ").split()) + r, g, b = colorsys.hsv_to_rgb(h, s, v) + a = 1.0 + return r, g, b, a + else: + return self.lookup_color(c) + + def lookup_color(self, c): + try: + color = gtk.gdk.color_parse(c) + except ValueError: + pass + else: + s = 1.0/65535.0 + r = color.red*s + g = color.green*s + b = color.blue*s + a = 1.0 + return r, g, b, a + + try: + dummy, scheme, index = c.split('/') + r, g, b = brewer_colors[scheme][int(index)] + except (ValueError, KeyError): + pass + else: + s = 1.0/255.0 + r = r*s + g = g*s + b = b*s + a = 1.0 + return r, g, b, a + + sys.stderr.write("unknown color '%s'\n" % c) + return None + + def parse(self): + s = self + + while s: + op = s.read_code() + if op == "c": + color = s.read_color() + if color is not None: + self.handle_color(color, filled=False) + elif op == "C": + color = s.read_color() + if color is not None: + self.handle_color(color, filled=True) + elif op == "S": + # http://www.graphviz.org/doc/info/attrs.html#k:style + style = s.read_text() + if style.startswith("setlinewidth("): + lw = style.split("(")[1].split(")")[0] + lw = float(lw) + self.handle_linewidth(lw) + elif style in ("solid", "dashed"): + self.handle_linestyle(style) + elif op == "F": + size = s.read_float() + name = s.read_text() + self.handle_font(size, name) + elif op == "T": + x, y = s.read_point() + j = s.read_number() + w = s.read_number() + t = s.read_text() + self.handle_text(x, y, j, w, t) + elif op == "E": + x0, y0 = s.read_point() + w = s.read_number() + h = s.read_number() + self.handle_ellipse(x0, y0, w, h, filled=True) + elif op == "e": + x0, y0 = s.read_point() + w = s.read_number() + h = s.read_number() + self.handle_ellipse(x0, y0, w, h, filled=False) + elif op == "L": + points = self.read_polygon() + self.handle_line(points) + elif op == "B": + points = self.read_polygon() + self.handle_bezier(points, filled=False) + elif op == "b": + points = self.read_polygon() + self.handle_bezier(points, filled=True) + elif op == "P": + points = self.read_polygon() + self.handle_polygon(points, filled=True) + elif op == "p": + points = self.read_polygon() + self.handle_polygon(points, filled=False) + else: + sys.stderr.write("unknown xdot opcode '%s'\n" % op) + break + + return self.shapes + + def transform(self, x, y): + return self.parser.transform(x, y) + + def handle_color(self, color, filled=False): + if filled: + self.pen.fillcolor = color + else: + self.pen.color = color + + def handle_linewidth(self, linewidth): + self.pen.linewidth = linewidth + + def handle_linestyle(self, style): + if style == "solid": + self.pen.dash = () + elif style == "dashed": + self.pen.dash = (6, ) # 6pt on, 6pt off + + def handle_font(self, size, name): + self.pen.fontsize = size + self.pen.fontname = name + + def handle_text(self, x, y, j, w, t): + self.shapes.append(TextShape(self.pen, x, y, j, w, t)) + + def handle_ellipse(self, x0, y0, w, h, filled=False): + if filled: + # xdot uses this to mean "draw a filled shape with an outline" + self.shapes.append(EllipseShape(self.pen, x0, y0, w, h, filled=True)) + self.shapes.append(EllipseShape(self.pen, x0, y0, w, h)) + + def handle_line(self, points): + self.shapes.append(LineShape(self.pen, points)) + + def handle_bezier(self, points, filled=False): + if filled: + # xdot uses this to mean "draw a filled shape with an outline" + self.shapes.append(BezierShape(self.pen, points, filled=True)) + self.shapes.append(BezierShape(self.pen, points)) + + def handle_polygon(self, points, filled=False): + if filled: + # xdot uses this to mean "draw a filled shape with an outline" + self.shapes.append(PolygonShape(self.pen, points, filled=True)) + self.shapes.append(PolygonShape(self.pen, points)) + + +EOF = -1 +SKIP = -2 + + +class ParseError(Exception): + + def __init__(self, msg=None, filename=None, line=None, col=None): + self.msg = msg + self.filename = filename + self.line = line + self.col = col + + def __str__(self): + return ':'.join([str(part) for part in (self.filename, self.line, self.col, self.msg) if part != None]) + + +class Scanner: + """Stateless scanner.""" + + # should be overriden by derived classes + tokens = [] + symbols = {} + literals = {} + ignorecase = False + + def __init__(self): + flags = re.DOTALL + if self.ignorecase: + flags |= re.IGNORECASE + self.tokens_re = re.compile( + '|'.join(['(' + regexp + ')' for type, regexp, test_lit in self.tokens]), + flags + ) + + def next(self, buf, pos): + if pos >= len(buf): + return EOF, '', pos + mo = self.tokens_re.match(buf, pos) + if mo: + text = mo.group() + type, regexp, test_lit = self.tokens[mo.lastindex - 1] + pos = mo.end() + if test_lit: + type = self.literals.get(text, type) + return type, text, pos + else: + c = buf[pos] + return self.symbols.get(c, None), c, pos + 1 + + +class Token: + + def __init__(self, type, text, line, col): + self.type = type + self.text = text + self.line = line + self.col = col + + +class Lexer: + + # should be overriden by derived classes + scanner = None + tabsize = 8 + + newline_re = re.compile(r'\r\n?|\n') + + def __init__(self, buf = None, pos = 0, filename = None, fp = None): + if fp is not None: + try: + fileno = fp.fileno() + length = os.path.getsize(fp.name) + import mmap + except: + # read whole file into memory + buf = fp.read() + pos = 0 + else: + # map the whole file into memory + if length: + # length must not be zero + buf = mmap.mmap(fileno, length, access = mmap.ACCESS_READ) + pos = os.lseek(fileno, 0, 1) + else: + buf = '' + pos = 0 + + if filename is None: + try: + filename = fp.name + except AttributeError: + filename = None + + self.buf = buf + self.pos = pos + self.line = 1 + self.col = 1 + self.filename = filename + + def next(self): + while True: + # save state + pos = self.pos + line = self.line + col = self.col + + type, text, endpos = self.scanner.next(self.buf, pos) + assert pos + len(text) == endpos + self.consume(text) + type, text = self.filter(type, text) + self.pos = endpos + + if type == SKIP: + continue + elif type is None: + msg = 'unexpected char ' + if text >= ' ' and text <= '~': + msg += "'%s'" % text + else: + msg += "0x%X" % ord(text) + raise ParseError(msg, self.filename, line, col) + else: + break + return Token(type = type, text = text, line = line, col = col) + + def consume(self, text): + # update line number + pos = 0 + for mo in self.newline_re.finditer(text, pos): + self.line += 1 + self.col = 1 + pos = mo.end() + + # update column number + while True: + tabpos = text.find('\t', pos) + if tabpos == -1: + break + self.col += tabpos - pos + self.col = ((self.col - 1)//self.tabsize + 1)*self.tabsize + 1 + pos = tabpos + 1 + self.col += len(text) - pos + + +class Parser: + + def __init__(self, lexer): + self.lexer = lexer + self.lookahead = self.lexer.next() + + def match(self, type): + if self.lookahead.type != type: + raise ParseError( + msg = 'unexpected token %r' % self.lookahead.text, + filename = self.lexer.filename, + line = self.lookahead.line, + col = self.lookahead.col) + + def skip(self, type): + while self.lookahead.type != type: + self.consume() + + def consume(self): + token = self.lookahead + self.lookahead = self.lexer.next() + return token + + +ID = 0 +STR_ID = 1 +HTML_ID = 2 +EDGE_OP = 3 + +LSQUARE = 4 +RSQUARE = 5 +LCURLY = 6 +RCURLY = 7 +COMMA = 8 +COLON = 9 +SEMI = 10 +EQUAL = 11 +PLUS = 12 + +STRICT = 13 +GRAPH = 14 +DIGRAPH = 15 +NODE = 16 +EDGE = 17 +SUBGRAPH = 18 + + +class DotScanner(Scanner): + + # token regular expression table + tokens = [ + # whitespace and comments + (SKIP, + r'[ \t\f\r\n\v]+|' + r'//[^\r\n]*|' + r'/\*.*?\*/|' + r'#[^\r\n]*', + False), + + # Alphanumeric IDs + (ID, r'[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*', True), + + # Numeric IDs + (ID, r'-?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)', False), + + # String IDs + (STR_ID, r'"[^"\\]*(?:\\.[^"\\]*)*"', False), + + # HTML IDs + (HTML_ID, r'<[^<>]*(?:<[^<>]*>[^<>]*)*>', False), + + # Edge operators + (EDGE_OP, r'-[>-]', False), + ] + + # symbol table + symbols = { + '[': LSQUARE, + ']': RSQUARE, + '{': LCURLY, + '}': RCURLY, + ',': COMMA, + ':': COLON, + ';': SEMI, + '=': EQUAL, + '+': PLUS, + } + + # literal table + literals = { + 'strict': STRICT, + 'graph': GRAPH, + 'digraph': DIGRAPH, + 'node': NODE, + 'edge': EDGE, + 'subgraph': SUBGRAPH, + } + + ignorecase = True + + +class DotLexer(Lexer): + + scanner = DotScanner() + + def filter(self, type, text): + # TODO: handle charset + if type == STR_ID: + text = text[1:-1] + + # line continuations + text = text.replace('\\\r\n', '') + text = text.replace('\\\r', '') + text = text.replace('\\\n', '') + + text = text.replace('\\r', '\r') + text = text.replace('\\n', '\n') + text = text.replace('\\t', '\t') + text = text.replace('\\', '') + + type = ID + + elif type == HTML_ID: + text = text[1:-1] + type = ID + + return type, text + + +class DotParser(Parser): + + def __init__(self, lexer): + Parser.__init__(self, lexer) + self.graph_attrs = {} + self.node_attrs = {} + self.edge_attrs = {} + + def parse(self): + self.parse_graph() + self.match(EOF) + + def parse_graph(self): + if self.lookahead.type == STRICT: + self.consume() + self.skip(LCURLY) + self.consume() + while self.lookahead.type != RCURLY: + self.parse_stmt() + self.consume() + + def parse_subgraph(self): + id = None + shapes_before = set(self.shapes) + if self.lookahead.type == SUBGRAPH: + self.consume() + if self.lookahead.type == ID: + id = self.lookahead.text + self.consume() + if self.lookahead.type == LCURLY: + self.consume() + while self.lookahead.type != RCURLY: + self.parse_stmt() + self.consume() + new_shapes = set(self.shapes) - shapes_before + self.subgraph_shapes[id] = [s for s in new_shapes if not any([s in ss for ss in self.subgraph_shapes.values()])] + return id + + def parse_stmt(self): + if self.lookahead.type == GRAPH: + self.consume() + attrs = self.parse_attrs() + self.graph_attrs.update(attrs) + self.handle_graph(attrs) + elif self.lookahead.type == NODE: + self.consume() + self.node_attrs.update(self.parse_attrs()) + elif self.lookahead.type == EDGE: + self.consume() + self.edge_attrs.update(self.parse_attrs()) + elif self.lookahead.type in (SUBGRAPH, LCURLY): + self.parse_subgraph() + else: + id = self.parse_node_id() + if self.lookahead.type == EDGE_OP: + self.consume() + node_ids = [id, self.parse_node_id()] + while self.lookahead.type == EDGE_OP: + node_ids.append(self.parse_node_id()) + attrs = self.parse_attrs() + for i in range(0, len(node_ids) - 1): + self.handle_edge(node_ids[i], node_ids[i + 1], attrs) + elif self.lookahead.type == EQUAL: + self.consume() + self.parse_id() + else: + attrs = self.parse_attrs() + self.handle_node(id, attrs) + if self.lookahead.type == SEMI: + self.consume() + + def parse_attrs(self): + attrs = {} + while self.lookahead.type == LSQUARE: + self.consume() + while self.lookahead.type != RSQUARE: + name, value = self.parse_attr() + attrs[name] = value + if self.lookahead.type == COMMA: + self.consume() + self.consume() + return attrs + + def parse_attr(self): + name = self.parse_id() + if self.lookahead.type == EQUAL: + self.consume() + value = self.parse_id() + else: + value = 'true' + return name, value + + def parse_node_id(self): + node_id = self.parse_id() + if self.lookahead.type == COLON: + self.consume() + port = self.parse_id() + if self.lookahead.type == COLON: + self.consume() + compass_pt = self.parse_id() + else: + compass_pt = None + else: + port = None + compass_pt = None + # XXX: we don't really care about port and compass point values when parsing xdot + return node_id + + def parse_id(self): + self.match(ID) + id = self.lookahead.text + self.consume() + return id + + def handle_graph(self, attrs): + pass + + def handle_node(self, id, attrs): + pass + + def handle_edge(self, src_id, dst_id, attrs): + pass + + +class XDotParser(DotParser): + + def __init__(self, xdotcode): + lexer = DotLexer(buf = xdotcode) + DotParser.__init__(self, lexer) + + self.nodes = [] + self.edges = [] + self.shapes = [] + self.node_by_name = {} + self.top_graph = True + self.subgraph_shapes = {} + + def handle_graph(self, attrs): + if self.top_graph: + try: + bb = attrs['bb'] + except KeyError: + return + + if not bb: + return + + xmin, ymin, xmax, ymax = map(float, bb.split(",")) + + self.xoffset = -xmin + self.yoffset = -ymax + self.xscale = 1.0 + self.yscale = -1.0 + # FIXME: scale from points to pixels + + self.width = xmax - xmin + self.height = ymax - ymin + + self.top_graph = False + + for attr in ("_draw_", "_ldraw_", "_hdraw_", "_tdraw_", "_hldraw_", "_tldraw_"): + if attr in attrs: + parser = XDotAttrParser(self, attrs[attr]) + self.shapes.extend(parser.parse()) + + def handle_node(self, id, attrs): + try: + pos = attrs['pos'] + except KeyError: + return + + x, y = self.parse_node_pos(pos) + w = float(attrs['width'])*72 + h = float(attrs['height'])*72 + shapes = [] + for attr in ("_draw_", "_ldraw_"): + if attr in attrs: + parser = XDotAttrParser(self, attrs[attr]) + shapes.extend(parser.parse()) + url = attrs.get('URL', None) + node = Node(x, y, w, h, shapes, url) + self.node_by_name[id] = node + if shapes: + self.nodes.append(node) + + def handle_edge(self, src_id, dst_id, attrs): + try: + pos = attrs['pos'] + except KeyError: + return + + points = self.parse_edge_pos(pos) + shapes = [] + for attr in ("_draw_", "_ldraw_", "_hdraw_", "_tdraw_", "_hldraw_", "_tldraw_"): + if attr in attrs: + parser = XDotAttrParser(self, attrs[attr]) + shapes.extend(parser.parse()) + url = attrs.get('URL', None) + if shapes: + src = self.node_by_name[src_id] + dst = self.node_by_name[dst_id] + self.edges.append(Edge(src, dst, points, shapes, url)) + + def parse(self): + DotParser.parse(self) + + """ + for k,shapes in self.subgraph_shapes.iteritems(): + self.shapes += shapes + """ + + return Graph(self.width, self.height, self.shapes, self.nodes, self.edges, self.subgraph_shapes) + + def parse_node_pos(self, pos): + x, y = pos.split(",") + return self.transform(float(x), float(y)) + + def parse_edge_pos(self, pos): + points = [] + for entry in pos.split(' '): + fields = entry.split(',') + try: + x, y = fields + except ValueError: + # TODO: handle start/end points + continue + else: + points.append(self.transform(float(x), float(y))) + return points + + def transform(self, x, y): + # XXX: this is not the right place for this code + x = (x + self.xoffset)*self.xscale + y = (y + self.yoffset)*self.yscale + return x, y + + +class Animation(object): + + step = 0.03 # seconds + + def __init__(self, dot_widget): + self.dot_widget = dot_widget + self.timeout_id = None + + def start(self): + self.timeout_id = gobject.timeout_add(int(self.step * 1000), self.tick) + + def stop(self): + self.dot_widget.animation = NoAnimation(self.dot_widget) + if self.timeout_id is not None: + gobject.source_remove(self.timeout_id) + self.timeout_id = None + + def tick(self): + self.stop() + + +class NoAnimation(Animation): + + def start(self): + pass + + def stop(self): + pass + + +class LinearAnimation(Animation): + + duration = 0.6 + + def start(self): + self.started = time.time() + Animation.start(self) + + def tick(self): + t = (time.time() - self.started) / self.duration + self.animate(max(0, min(t, 1))) + return (t < 1) + + def animate(self, t): + pass + + +class MoveToAnimation(LinearAnimation): + + def __init__(self, dot_widget, target_x, target_y): + Animation.__init__(self, dot_widget) + self.source_x = dot_widget.x + self.source_y = dot_widget.y + self.target_x = target_x + self.target_y = target_y + + def animate(self, t): + sx, sy = self.source_x, self.source_y + tx, ty = self.target_x, self.target_y + self.dot_widget.x = tx * t + sx * (1-t) + self.dot_widget.y = ty * t + sy * (1-t) + self.dot_widget.queue_draw() + + +class ZoomToAnimation(MoveToAnimation): + + def __init__(self, dot_widget, target_x, target_y): + MoveToAnimation.__init__(self, dot_widget, target_x, target_y) + self.source_zoom = dot_widget.zoom_ratio + self.target_zoom = self.source_zoom + self.extra_zoom = 0 + + middle_zoom = 0.5 * (self.source_zoom + self.target_zoom) + + distance = math.hypot(self.source_x - self.target_x, + self.source_y - self.target_y) + rect = self.dot_widget.get_allocation() + visible = min(rect.width, rect.height) / self.dot_widget.zoom_ratio + visible *= 0.9 + if distance > 0: + desired_middle_zoom = visible / distance + self.extra_zoom = min(0, 4 * (desired_middle_zoom - middle_zoom)) + + def animate(self, t): + a, b, c = self.source_zoom, self.extra_zoom, self.target_zoom + self.dot_widget.zoom_ratio = c*t + b*t*(1-t) + a*(1-t) + self.dot_widget.zoom_to_fit_on_resize = False + MoveToAnimation.animate(self, t) + + +class DragAction(object): + + def __init__(self, dot_widget): + self.dot_widget = dot_widget + + def on_button_press(self, event): + self.startmousex = self.prevmousex = event.x + self.startmousey = self.prevmousey = event.y + self.start() + + def on_motion_notify(self, event): + if event.is_hint: + x, y, state = event.window.get_pointer() + else: + x, y, state = event.x, event.y, event.state + deltax = self.prevmousex - x + deltay = self.prevmousey - y + self.drag(deltax, deltay) + self.prevmousex = x + self.prevmousey = y + + def on_button_release(self, event): + self.stopmousex = event.x + self.stopmousey = event.y + self.stop() + + def draw(self, cr): + pass + + def start(self): + pass + + def drag(self, deltax, deltay): + pass + + def stop(self): + pass + + def abort(self): + pass + + +class NullAction(DragAction): + + def on_motion_notify(self, event): + if event.is_hint: + x, y, state = event.window.get_pointer() + else: + x, y, state = event.x, event.y, event.state + dot_widget = self.dot_widget + item = dot_widget.get_url(x, y) + if item is None: + item = dot_widget.get_jump(x, y) + if item is not None: + dot_widget.window.set_cursor(gtk.gdk.Cursor(gtk.gdk.HAND2)) + dot_widget.set_highlight(item.highlight) + else: + dot_widget.window.set_cursor(gtk.gdk.Cursor(gtk.gdk.ARROW)) + dot_widget.set_highlight(None) + + +class PanAction(DragAction): + + def start(self): + self.dot_widget.window.set_cursor(gtk.gdk.Cursor(gtk.gdk.FLEUR)) + + def drag(self, deltax, deltay): + self.dot_widget.x += deltax / self.dot_widget.zoom_ratio + self.dot_widget.y += deltay / self.dot_widget.zoom_ratio + self.dot_widget.queue_draw() + + def stop(self): + self.dot_widget.window.set_cursor(gtk.gdk.Cursor(gtk.gdk.ARROW)) + + abort = stop + + +class ZoomAction(DragAction): + + def drag(self, deltax, deltay): + self.dot_widget.zoom_ratio *= 1.005 ** (deltax + deltay) + self.dot_widget.zoom_to_fit_on_resize = False + self.dot_widget.queue_draw() + + def stop(self): + self.dot_widget.queue_draw() + + +class ZoomAreaAction(DragAction): + + def drag(self, deltax, deltay): + self.dot_widget.queue_draw() + + def draw(self, cr): + cr.save() + cr.set_source_rgba(.5, .5, 1.0, 0.25) + cr.rectangle(self.startmousex, self.startmousey, + self.prevmousex - self.startmousex, + self.prevmousey - self.startmousey) + cr.fill() + cr.set_source_rgba(.5, .5, 1.0, 1.0) + cr.set_line_width(1) + cr.rectangle(self.startmousex - .5, self.startmousey - .5, + self.prevmousex - self.startmousex + 1, + self.prevmousey - self.startmousey + 1) + cr.stroke() + cr.restore() + + def stop(self): + x1, y1 = self.dot_widget.window2graph(self.startmousex, + self.startmousey) + x2, y2 = self.dot_widget.window2graph(self.stopmousex, + self.stopmousey) + self.dot_widget.zoom_to_area(x1, y1, x2, y2) + + def abort(self): + self.dot_widget.queue_draw() + + +class DotWidget(gtk.DrawingArea): + """PyGTK widget that draws dot graphs.""" + + __gsignals__ = { + 'expose-event': 'override', + 'clicked' : (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_STRING, gtk.gdk.Event)) + } + + filter = 'dot' + + def __init__(self): + gtk.DrawingArea.__init__(self) + + self.graph = Graph() + self.openfilename = None + + self.set_flags(gtk.CAN_FOCUS) + + self.add_events(gtk.gdk.BUTTON_PRESS_MASK | gtk.gdk.BUTTON_RELEASE_MASK) + self.connect("button-press-event", self.on_area_button_press) + self.connect("button-release-event", self.on_area_button_release) + self.add_events(gtk.gdk.POINTER_MOTION_MASK | gtk.gdk.POINTER_MOTION_HINT_MASK | gtk.gdk.BUTTON_RELEASE_MASK) + self.connect("motion-notify-event", self.on_area_motion_notify) + self.connect("scroll-event", self.on_area_scroll_event) + self.connect("size-allocate", self.on_area_size_allocate) + + self.connect('key-press-event', self.on_key_press_event) + + self.x, self.y = 0.0, 0.0 + self.zoom_ratio = 1.0 + self.zoom_to_fit_on_resize = False + self.animation = NoAnimation(self) + self.drag_action = NullAction(self) + self.presstime = None + self.highlight = None + + def set_filter(self, filter): + self.filter = filter + + def set_dotcode(self, dotcode, filename=''): + if isinstance(dotcode, unicode): + dotcode = dotcode.encode('utf8') + p = subprocess.Popen( + [self.filter, '-Txdot'], + stdin=subprocess.PIPE, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + shell=False, + universal_newlines=True + ) + xdotcode, error = p.communicate(dotcode) + if p.returncode != 0: + print "UNABLE TO SHELL TO DOT", error + dialog = gtk.MessageDialog(type=gtk.MESSAGE_ERROR, + message_format=error, + buttons=gtk.BUTTONS_OK) + dialog.set_title('Dot Viewer') + dialog.run() + dialog.destroy() + return False + try: + self.set_xdotcode(xdotcode) + except ParseError, ex: + dialog = gtk.MessageDialog(type=gtk.MESSAGE_ERROR, + message_format=str(ex), + buttons=gtk.BUTTONS_OK) + dialog.set_title('Dot Viewer') + dialog.run() + dialog.destroy() + return False + else: + self.openfilename = filename + return True + + def set_xdotcode(self, xdotcode): + #print xdotcode + parser = XDotParser(xdotcode) + self.graph = parser.parse() + self.zoom_image(self.zoom_ratio, center=False) + + def reload(self): + if self.openfilename is not None: + try: + fp = file(self.openfilename, 'rt') + self.set_dotcode(fp.read(), self.openfilename) + fp.close() + except IOError: + pass + + def do_expose_event(self, event): + cr = self.window.cairo_create() + + # set a clip region for the expose event + cr.rectangle( + event.area.x, event.area.y, + event.area.width, event.area.height + ) + cr.clip() + + cr.set_source_rgba(1.0, 1.0, 1.0, 1.0) + cr.paint() + + cr.save() + rect = self.get_allocation() + cr.translate(0.5*rect.width, 0.5*rect.height) + cr.scale(self.zoom_ratio, self.zoom_ratio) + cr.translate(-self.x, -self.y) + + self.graph.draw(cr, highlight_items=self.highlight) + cr.restore() + + self.drag_action.draw(cr) + + return False + + def get_current_pos(self): + return self.x, self.y + + def set_current_pos(self, x, y): + self.x = x + self.y = y + self.queue_draw() + + def set_highlight(self, items): + if self.highlight != items: + self.highlight = items + self.queue_draw() + + def zoom_image(self, zoom_ratio, center=False, pos=None): + if center: + self.x = self.graph.width/2 + self.y = self.graph.height/2 + elif pos is not None: + rect = self.get_allocation() + x, y = pos + x -= 0.5*rect.width + y -= 0.5*rect.height + self.x += x / self.zoom_ratio - x / zoom_ratio + self.y += y / self.zoom_ratio - y / zoom_ratio + self.zoom_ratio = zoom_ratio + self.zoom_to_fit_on_resize = False + self.queue_draw() + + def zoom_to_area(self, x1, y1, x2, y2): + rect = self.get_allocation() + width = abs(x1 - x2) + height = abs(y1 - y2) + self.zoom_ratio = min( + float(rect.width)/float(width), + float(rect.height)/float(height) + ) + self.zoom_to_fit_on_resize = False + self.x = (x1 + x2) / 2 + self.y = (y1 + y2) / 2 + self.queue_draw() + + def zoom_to_fit(self): + rect = self.get_allocation() + rect.x += self.ZOOM_TO_FIT_MARGIN + rect.y += self.ZOOM_TO_FIT_MARGIN + rect.width -= 2 * self.ZOOM_TO_FIT_MARGIN + rect.height -= 2 * self.ZOOM_TO_FIT_MARGIN + zoom_ratio = min( + float(rect.width)/float(self.graph.width), + float(rect.height)/float(self.graph.height) + ) + self.zoom_image(zoom_ratio, center=True) + self.zoom_to_fit_on_resize = True + + ZOOM_INCREMENT = 1.25 + ZOOM_TO_FIT_MARGIN = 12 + + def on_zoom_in(self, action): + self.zoom_image(self.zoom_ratio * self.ZOOM_INCREMENT) + + def on_zoom_out(self, action): + self.zoom_image(self.zoom_ratio / self.ZOOM_INCREMENT) + + def on_zoom_fit(self, action): + self.zoom_to_fit() + + def on_zoom_100(self, action): + self.zoom_image(1.0) + + POS_INCREMENT = 100 + + def on_key_press_event(self, widget, event): + if event.keyval == gtk.keysyms.Left: + self.x -= self.POS_INCREMENT/self.zoom_ratio + self.queue_draw() + return True + if event.keyval == gtk.keysyms.Right: + self.x += self.POS_INCREMENT/self.zoom_ratio + self.queue_draw() + return True + if event.keyval == gtk.keysyms.Up: + self.y -= self.POS_INCREMENT/self.zoom_ratio + self.queue_draw() + return True + if event.keyval == gtk.keysyms.Down: + self.y += self.POS_INCREMENT/self.zoom_ratio + self.queue_draw() + return True + if event.keyval == gtk.keysyms.Page_Up: + self.zoom_image(self.zoom_ratio * self.ZOOM_INCREMENT) + self.queue_draw() + return True + if event.keyval == gtk.keysyms.Page_Down: + self.zoom_image(self.zoom_ratio / self.ZOOM_INCREMENT) + self.queue_draw() + return True + if event.keyval == gtk.keysyms.Escape: + self.drag_action.abort() + self.drag_action = NullAction(self) + return True + if event.keyval == gtk.keysyms.r: + self.reload() + return True + if event.keyval == gtk.keysyms.q: + gtk.main_quit() + return True + return False + + def get_drag_action(self, event): + state = event.state + if event.button in (1, 2): # left or middle button + if state & gtk.gdk.CONTROL_MASK: + return ZoomAction + elif state & gtk.gdk.SHIFT_MASK: + return ZoomAreaAction + else: + return PanAction + return NullAction + + def on_area_button_press(self, area, event): + self.animation.stop() + self.drag_action.abort() + action_type = self.get_drag_action(event) + self.drag_action = action_type(self) + self.drag_action.on_button_press(event) + self.presstime = time.time() + self.pressx = event.x + self.pressy = event.y + return False + + def is_click(self, event, click_fuzz=4, click_timeout=1.0): + assert event.type == gtk.gdk.BUTTON_RELEASE + if self.presstime is None: + # got a button release without seeing the press? + return False + # XXX instead of doing this complicated logic, shouldn't we listen + # for gtk's clicked event instead? + deltax = self.pressx - event.x + deltay = self.pressy - event.y + return (time.time() < self.presstime + click_timeout + and math.hypot(deltax, deltay) < click_fuzz) + + def on_area_button_release(self, area, event): + self.drag_action.on_button_release(event) + self.drag_action = NullAction(self) + if event.button == 1 and self.is_click(event): + x, y = int(event.x), int(event.y) + url = self.get_url(x, y) + if url is not None: + self.emit('clicked', unicode(url.url), event) + else: + jump = self.get_jump(x, y) + if jump is not None: + self.animate_to(jump.x, jump.y) + + return True + if event.button == 1 or event.button == 2: + return True + return False + + def on_area_scroll_event(self, area, event): + if event.direction == gtk.gdk.SCROLL_UP: + self.zoom_image(self.zoom_ratio * self.ZOOM_INCREMENT, + pos=(event.x, event.y)) + return True + if event.direction == gtk.gdk.SCROLL_DOWN: + self.zoom_image(self.zoom_ratio / self.ZOOM_INCREMENT, + pos=(event.x, event.y)) + return True + return False + + def on_area_motion_notify(self, area, event): + self.drag_action.on_motion_notify(event) + return True + + def on_area_size_allocate(self, area, allocation): + if self.zoom_to_fit_on_resize: + self.zoom_to_fit() + + def animate_to(self, x, y): + self.animation = ZoomToAnimation(self, x, y) + self.animation.start() + + def window2graph(self, x, y): + rect = self.get_allocation() + x -= 0.5*rect.width + y -= 0.5*rect.height + x /= self.zoom_ratio + y /= self.zoom_ratio + x += self.x + y += self.y + return x, y + + def get_url(self, x, y): + x, y = self.window2graph(x, y) + return self.graph.get_url(x, y) + + def get_jump(self, x, y): + x, y = self.window2graph(x, y) + return self.graph.get_jump(x, y) + + +class DotWindow(gtk.Window): + + ui = ''' + + + + + + + + + + + + ''' + + def __init__(self): + gtk.Window.__init__(self) + + self.graph = Graph() + + window = self + + window.set_title('Dot Viewer') + window.set_default_size(512, 512) + vbox = gtk.VBox() + window.add(vbox) + + self.widget = DotWidget() + + # Create a UIManager instance + uimanager = self.uimanager = gtk.UIManager() + + # Add the accelerator group to the toplevel window + accelgroup = uimanager.get_accel_group() + window.add_accel_group(accelgroup) + + # Create an ActionGroup + actiongroup = gtk.ActionGroup('Actions') + self.actiongroup = actiongroup + + # Create actions + actiongroup.add_actions(( + ('Open', gtk.STOCK_OPEN, None, None, None, self.on_open), + ('Reload', gtk.STOCK_REFRESH, None, None, None, self.on_reload), + ('ZoomIn', gtk.STOCK_ZOOM_IN, None, None, None, self.widget.on_zoom_in), + ('ZoomOut', gtk.STOCK_ZOOM_OUT, None, None, None, self.widget.on_zoom_out), + ('ZoomFit', gtk.STOCK_ZOOM_FIT, None, None, None, self.widget.on_zoom_fit), + ('Zoom100', gtk.STOCK_ZOOM_100, None, None, None, self.widget.on_zoom_100), + )) + + # Add the actiongroup to the uimanager + uimanager.insert_action_group(actiongroup, 0) + + # Add a UI descrption + uimanager.add_ui_from_string(self.ui) + + # Create a Toolbar + toolbar = uimanager.get_widget('/ToolBar') + vbox.pack_start(toolbar, False) + + vbox.pack_start(self.widget) + + self.set_focus(self.widget) + + self.show_all() + + def update(self, filename): + import os + if not hasattr(self, "last_mtime"): + self.last_mtime = None + + current_mtime = os.stat(filename).st_mtime + if current_mtime != self.last_mtime: + self.last_mtime = current_mtime + self.open_file(filename,True) + + return True + + def set_filter(self, filter): + self.widget.set_filter(filter) + + def set_dotcode(self, dotcode, filename='',refresh=False): + if self.widget.set_dotcode(dotcode, filename): + self.set_title(os.path.basename(filename) + ' - Dot Viewer') + if not refresh: + self.widget.zoom_to_fit() + + def set_xdotcode(self, xdotcode, filename=''): + if self.widget.set_xdotcode(xdotcode): + self.set_title(os.path.basename(filename) + ' - Dot Viewer') + self.widget.zoom_to_fit() + + def open_file(self, filename, refresh=False): + try: + fp = file(filename, 'rt') + self.set_dotcode(fp.read(), filename ,refresh) + fp.close() + except IOError, ex: + dlg = gtk.MessageDialog(type=gtk.MESSAGE_ERROR, + message_format=str(ex), + buttons=gtk.BUTTONS_OK) + dlg.set_title('Dot Viewer') + dlg.run() + dlg.destroy() + + def on_open(self, action): + chooser = gtk.FileChooserDialog(title="Open dot File", + action=gtk.FILE_CHOOSER_ACTION_OPEN, + buttons=(gtk.STOCK_CANCEL, + gtk.RESPONSE_CANCEL, + gtk.STOCK_OPEN, + gtk.RESPONSE_OK)) + chooser.set_default_response(gtk.RESPONSE_OK) + filter = gtk.FileFilter() + filter.set_name("Graphviz dot files") + filter.add_pattern("*.dot") + chooser.add_filter(filter) + filter = gtk.FileFilter() + filter.set_name("All files") + filter.add_pattern("*") + chooser.add_filter(filter) + if chooser.run() == gtk.RESPONSE_OK: + filename = chooser.get_filename() + chooser.destroy() + self.open_file(filename) + else: + chooser.destroy() + + def on_reload(self, action): + self.widget.reload() + + +def main(): + import optparse + + parser = optparse.OptionParser( + usage='\n\t%prog [file]', + version='%%prog %s' % __version__) + parser.add_option( + '-f', '--filter', + type='choice', choices=('dot', 'neato', 'twopi', 'circo', 'fdp'), + dest='filter', default='dot', + help='graphviz filter: dot, neato, twopi, circo, or fdp [default: %default]') + + (options, args) = parser.parse_args(sys.argv[1:]) + if len(args) > 1: + parser.error('incorrect number of arguments') + + win = DotWindow() + win.connect('destroy', gtk.main_quit) + win.set_filter(options.filter) + if len(args) >= 1: + if args[0] == '-': + win.set_dotcode(sys.stdin.read()) + else: + win.open_file(args[0]) + gobject.timeout_add(1000, win.update, args[0]) + gtk.main() + + +# Apache-Style Software License for ColorBrewer software and ColorBrewer Color +# Schemes, Version 1.1 +# +# Copyright (c) 2002 Cynthia Brewer, Mark Harrower, and The Pennsylvania State +# University. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# 1. Redistributions as source code must retain the above copyright notice, +# this list of conditions and the following disclaimer. +# +# 2. The end-user documentation included with the redistribution, if any, +# must include the following acknowledgment: +# +# This product includes color specifications and designs developed by +# Cynthia Brewer (http://colorbrewer.org/). +# +# Alternately, this acknowledgment may appear in the software itself, if and +# wherever such third-party acknowledgments normally appear. +# +# 3. The name "ColorBrewer" must not be used to endorse or promote products +# derived from this software without prior written permission. For written +# permission, please contact Cynthia Brewer at cbrewer@psu.edu. +# +# 4. Products derived from this software may not be called "ColorBrewer", +# nor may "ColorBrewer" appear in their name, without prior written +# permission of Cynthia Brewer. +# +# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, +# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL CYNTHIA +# BREWER, MARK HARROWER, OR THE PENNSYLVANIA STATE UNIVERSITY BE LIABLE FOR ANY +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +brewer_colors = { + 'accent3': [(127, 201, 127), (190, 174, 212), (253, 192, 134)], + 'accent4': [(127, 201, 127), (190, 174, 212), (253, 192, 134), (255, 255, 153)], + 'accent5': [(127, 201, 127), (190, 174, 212), (253, 192, 134), (255, 255, 153), (56, 108, 176)], + 'accent6': [(127, 201, 127), (190, 174, 212), (253, 192, 134), (255, 255, 153), (56, 108, 176), (240, 2, 127)], + 'accent7': [(127, 201, 127), (190, 174, 212), (253, 192, 134), (255, 255, 153), (56, 108, 176), (240, 2, 127), (191, 91, 23)], + 'accent8': [(127, 201, 127), (190, 174, 212), (253, 192, 134), (255, 255, 153), (56, 108, 176), (240, 2, 127), (191, 91, 23), (102, 102, 102)], + 'blues3': [(222, 235, 247), (158, 202, 225), (49, 130, 189)], + 'blues4': [(239, 243, 255), (189, 215, 231), (107, 174, 214), (33, 113, 181)], + 'blues5': [(239, 243, 255), (189, 215, 231), (107, 174, 214), (49, 130, 189), (8, 81, 156)], + 'blues6': [(239, 243, 255), (198, 219, 239), (158, 202, 225), (107, 174, 214), (49, 130, 189), (8, 81, 156)], + 'blues7': [(239, 243, 255), (198, 219, 239), (158, 202, 225), (107, 174, 214), (66, 146, 198), (33, 113, 181), (8, 69, 148)], + 'blues8': [(247, 251, 255), (222, 235, 247), (198, 219, 239), (158, 202, 225), (107, 174, 214), (66, 146, 198), (33, 113, 181), (8, 69, 148)], + 'blues9': [(247, 251, 255), (222, 235, 247), (198, 219, 239), (158, 202, 225), (107, 174, 214), (66, 146, 198), (33, 113, 181), (8, 81, 156), (8, 48, 107)], + 'brbg10': [(84, 48, 5), (0, 60, 48), (140, 81, 10), (191, 129, 45), (223, 194, 125), (246, 232, 195), (199, 234, 229), (128, 205, 193), (53, 151, 143), (1, 102, 94)], + 'brbg11': [(84, 48, 5), (1, 102, 94), (0, 60, 48), (140, 81, 10), (191, 129, 45), (223, 194, 125), (246, 232, 195), (245, 245, 245), (199, 234, 229), (128, 205, 193), (53, 151, 143)], + 'brbg3': [(216, 179, 101), (245, 245, 245), (90, 180, 172)], + 'brbg4': [(166, 97, 26), (223, 194, 125), (128, 205, 193), (1, 133, 113)], + 'brbg5': [(166, 97, 26), (223, 194, 125), (245, 245, 245), (128, 205, 193), (1, 133, 113)], + 'brbg6': [(140, 81, 10), (216, 179, 101), (246, 232, 195), (199, 234, 229), (90, 180, 172), (1, 102, 94)], + 'brbg7': [(140, 81, 10), (216, 179, 101), (246, 232, 195), (245, 245, 245), (199, 234, 229), (90, 180, 172), (1, 102, 94)], + 'brbg8': [(140, 81, 10), (191, 129, 45), (223, 194, 125), (246, 232, 195), (199, 234, 229), (128, 205, 193), (53, 151, 143), (1, 102, 94)], + 'brbg9': [(140, 81, 10), (191, 129, 45), (223, 194, 125), (246, 232, 195), (245, 245, 245), (199, 234, 229), (128, 205, 193), (53, 151, 143), (1, 102, 94)], + 'bugn3': [(229, 245, 249), (153, 216, 201), (44, 162, 95)], + 'bugn4': [(237, 248, 251), (178, 226, 226), (102, 194, 164), (35, 139, 69)], + 'bugn5': [(237, 248, 251), (178, 226, 226), (102, 194, 164), (44, 162, 95), (0, 109, 44)], + 'bugn6': [(237, 248, 251), (204, 236, 230), (153, 216, 201), (102, 194, 164), (44, 162, 95), (0, 109, 44)], + 'bugn7': [(237, 248, 251), (204, 236, 230), (153, 216, 201), (102, 194, 164), (65, 174, 118), (35, 139, 69), (0, 88, 36)], + 'bugn8': [(247, 252, 253), (229, 245, 249), (204, 236, 230), (153, 216, 201), (102, 194, 164), (65, 174, 118), (35, 139, 69), (0, 88, 36)], + 'bugn9': [(247, 252, 253), (229, 245, 249), (204, 236, 230), (153, 216, 201), (102, 194, 164), (65, 174, 118), (35, 139, 69), (0, 109, 44), (0, 68, 27)], + 'bupu3': [(224, 236, 244), (158, 188, 218), (136, 86, 167)], + 'bupu4': [(237, 248, 251), (179, 205, 227), (140, 150, 198), (136, 65, 157)], + 'bupu5': [(237, 248, 251), (179, 205, 227), (140, 150, 198), (136, 86, 167), (129, 15, 124)], + 'bupu6': [(237, 248, 251), (191, 211, 230), (158, 188, 218), (140, 150, 198), (136, 86, 167), (129, 15, 124)], + 'bupu7': [(237, 248, 251), (191, 211, 230), (158, 188, 218), (140, 150, 198), (140, 107, 177), (136, 65, 157), (110, 1, 107)], + 'bupu8': [(247, 252, 253), (224, 236, 244), (191, 211, 230), (158, 188, 218), (140, 150, 198), (140, 107, 177), (136, 65, 157), (110, 1, 107)], + 'bupu9': [(247, 252, 253), (224, 236, 244), (191, 211, 230), (158, 188, 218), (140, 150, 198), (140, 107, 177), (136, 65, 157), (129, 15, 124), (77, 0, 75)], + 'dark23': [(27, 158, 119), (217, 95, 2), (117, 112, 179)], + 'dark24': [(27, 158, 119), (217, 95, 2), (117, 112, 179), (231, 41, 138)], + 'dark25': [(27, 158, 119), (217, 95, 2), (117, 112, 179), (231, 41, 138), (102, 166, 30)], + 'dark26': [(27, 158, 119), (217, 95, 2), (117, 112, 179), (231, 41, 138), (102, 166, 30), (230, 171, 2)], + 'dark27': [(27, 158, 119), (217, 95, 2), (117, 112, 179), (231, 41, 138), (102, 166, 30), (230, 171, 2), (166, 118, 29)], + 'dark28': [(27, 158, 119), (217, 95, 2), (117, 112, 179), (231, 41, 138), (102, 166, 30), (230, 171, 2), (166, 118, 29), (102, 102, 102)], + 'gnbu3': [(224, 243, 219), (168, 221, 181), (67, 162, 202)], + 'gnbu4': [(240, 249, 232), (186, 228, 188), (123, 204, 196), (43, 140, 190)], + 'gnbu5': [(240, 249, 232), (186, 228, 188), (123, 204, 196), (67, 162, 202), (8, 104, 172)], + 'gnbu6': [(240, 249, 232), (204, 235, 197), (168, 221, 181), (123, 204, 196), (67, 162, 202), (8, 104, 172)], + 'gnbu7': [(240, 249, 232), (204, 235, 197), (168, 221, 181), (123, 204, 196), (78, 179, 211), (43, 140, 190), (8, 88, 158)], + 'gnbu8': [(247, 252, 240), (224, 243, 219), (204, 235, 197), (168, 221, 181), (123, 204, 196), (78, 179, 211), (43, 140, 190), (8, 88, 158)], + 'gnbu9': [(247, 252, 240), (224, 243, 219), (204, 235, 197), (168, 221, 181), (123, 204, 196), (78, 179, 211), (43, 140, 190), (8, 104, 172), (8, 64, 129)], + 'greens3': [(229, 245, 224), (161, 217, 155), (49, 163, 84)], + 'greens4': [(237, 248, 233), (186, 228, 179), (116, 196, 118), (35, 139, 69)], + 'greens5': [(237, 248, 233), (186, 228, 179), (116, 196, 118), (49, 163, 84), (0, 109, 44)], + 'greens6': [(237, 248, 233), (199, 233, 192), (161, 217, 155), (116, 196, 118), (49, 163, 84), (0, 109, 44)], + 'greens7': [(237, 248, 233), (199, 233, 192), (161, 217, 155), (116, 196, 118), (65, 171, 93), (35, 139, 69), (0, 90, 50)], + 'greens8': [(247, 252, 245), (229, 245, 224), (199, 233, 192), (161, 217, 155), (116, 196, 118), (65, 171, 93), (35, 139, 69), (0, 90, 50)], + 'greens9': [(247, 252, 245), (229, 245, 224), (199, 233, 192), (161, 217, 155), (116, 196, 118), (65, 171, 93), (35, 139, 69), (0, 109, 44), (0, 68, 27)], + 'greys3': [(240, 240, 240), (189, 189, 189), (99, 99, 99)], + 'greys4': [(247, 247, 247), (204, 204, 204), (150, 150, 150), (82, 82, 82)], + 'greys5': [(247, 247, 247), (204, 204, 204), (150, 150, 150), (99, 99, 99), (37, 37, 37)], + 'greys6': [(247, 247, 247), (217, 217, 217), (189, 189, 189), (150, 150, 150), (99, 99, 99), (37, 37, 37)], + 'greys7': [(247, 247, 247), (217, 217, 217), (189, 189, 189), (150, 150, 150), (115, 115, 115), (82, 82, 82), (37, 37, 37)], + 'greys8': [(255, 255, 255), (240, 240, 240), (217, 217, 217), (189, 189, 189), (150, 150, 150), (115, 115, 115), (82, 82, 82), (37, 37, 37)], + 'greys9': [(255, 255, 255), (240, 240, 240), (217, 217, 217), (189, 189, 189), (150, 150, 150), (115, 115, 115), (82, 82, 82), (37, 37, 37), (0, 0, 0)], + 'oranges3': [(254, 230, 206), (253, 174, 107), (230, 85, 13)], + 'oranges4': [(254, 237, 222), (253, 190, 133), (253, 141, 60), (217, 71, 1)], + 'oranges5': [(254, 237, 222), (253, 190, 133), (253, 141, 60), (230, 85, 13), (166, 54, 3)], + 'oranges6': [(254, 237, 222), (253, 208, 162), (253, 174, 107), (253, 141, 60), (230, 85, 13), (166, 54, 3)], + 'oranges7': [(254, 237, 222), (253, 208, 162), (253, 174, 107), (253, 141, 60), (241, 105, 19), (217, 72, 1), (140, 45, 4)], + 'oranges8': [(255, 245, 235), (254, 230, 206), (253, 208, 162), (253, 174, 107), (253, 141, 60), (241, 105, 19), (217, 72, 1), (140, 45, 4)], + 'oranges9': [(255, 245, 235), (254, 230, 206), (253, 208, 162), (253, 174, 107), (253, 141, 60), (241, 105, 19), (217, 72, 1), (166, 54, 3), (127, 39, 4)], + 'orrd3': [(254, 232, 200), (253, 187, 132), (227, 74, 51)], + 'orrd4': [(254, 240, 217), (253, 204, 138), (252, 141, 89), (215, 48, 31)], + 'orrd5': [(254, 240, 217), (253, 204, 138), (252, 141, 89), (227, 74, 51), (179, 0, 0)], + 'orrd6': [(254, 240, 217), (253, 212, 158), (253, 187, 132), (252, 141, 89), (227, 74, 51), (179, 0, 0)], + 'orrd7': [(254, 240, 217), (253, 212, 158), (253, 187, 132), (252, 141, 89), (239, 101, 72), (215, 48, 31), (153, 0, 0)], + 'orrd8': [(255, 247, 236), (254, 232, 200), (253, 212, 158), (253, 187, 132), (252, 141, 89), (239, 101, 72), (215, 48, 31), (153, 0, 0)], + 'orrd9': [(255, 247, 236), (254, 232, 200), (253, 212, 158), (253, 187, 132), (252, 141, 89), (239, 101, 72), (215, 48, 31), (179, 0, 0), (127, 0, 0)], + 'paired10': [(166, 206, 227), (106, 61, 154), (31, 120, 180), (178, 223, 138), (51, 160, 44), (251, 154, 153), (227, 26, 28), (253, 191, 111), (255, 127, 0), (202, 178, 214)], + 'paired11': [(166, 206, 227), (106, 61, 154), (255, 255, 153), (31, 120, 180), (178, 223, 138), (51, 160, 44), (251, 154, 153), (227, 26, 28), (253, 191, 111), (255, 127, 0), (202, 178, 214)], + 'paired12': [(166, 206, 227), (106, 61, 154), (255, 255, 153), (177, 89, 40), (31, 120, 180), (178, 223, 138), (51, 160, 44), (251, 154, 153), (227, 26, 28), (253, 191, 111), (255, 127, 0), (202, 178, 214)], + 'paired3': [(166, 206, 227), (31, 120, 180), (178, 223, 138)], + 'paired4': [(166, 206, 227), (31, 120, 180), (178, 223, 138), (51, 160, 44)], + 'paired5': [(166, 206, 227), (31, 120, 180), (178, 223, 138), (51, 160, 44), (251, 154, 153)], + 'paired6': [(166, 206, 227), (31, 120, 180), (178, 223, 138), (51, 160, 44), (251, 154, 153), (227, 26, 28)], + 'paired7': [(166, 206, 227), (31, 120, 180), (178, 223, 138), (51, 160, 44), (251, 154, 153), (227, 26, 28), (253, 191, 111)], + 'paired8': [(166, 206, 227), (31, 120, 180), (178, 223, 138), (51, 160, 44), (251, 154, 153), (227, 26, 28), (253, 191, 111), (255, 127, 0)], + 'paired9': [(166, 206, 227), (31, 120, 180), (178, 223, 138), (51, 160, 44), (251, 154, 153), (227, 26, 28), (253, 191, 111), (255, 127, 0), (202, 178, 214)], + 'pastel13': [(251, 180, 174), (179, 205, 227), (204, 235, 197)], + 'pastel14': [(251, 180, 174), (179, 205, 227), (204, 235, 197), (222, 203, 228)], + 'pastel15': [(251, 180, 174), (179, 205, 227), (204, 235, 197), (222, 203, 228), (254, 217, 166)], + 'pastel16': [(251, 180, 174), (179, 205, 227), (204, 235, 197), (222, 203, 228), (254, 217, 166), (255, 255, 204)], + 'pastel17': [(251, 180, 174), (179, 205, 227), (204, 235, 197), (222, 203, 228), (254, 217, 166), (255, 255, 204), (229, 216, 189)], + 'pastel18': [(251, 180, 174), (179, 205, 227), (204, 235, 197), (222, 203, 228), (254, 217, 166), (255, 255, 204), (229, 216, 189), (253, 218, 236)], + 'pastel19': [(251, 180, 174), (179, 205, 227), (204, 235, 197), (222, 203, 228), (254, 217, 166), (255, 255, 204), (229, 216, 189), (253, 218, 236), (242, 242, 242)], + 'pastel23': [(179, 226, 205), (253, 205, 172), (203, 213, 232)], + 'pastel24': [(179, 226, 205), (253, 205, 172), (203, 213, 232), (244, 202, 228)], + 'pastel25': [(179, 226, 205), (253, 205, 172), (203, 213, 232), (244, 202, 228), (230, 245, 201)], + 'pastel26': [(179, 226, 205), (253, 205, 172), (203, 213, 232), (244, 202, 228), (230, 245, 201), (255, 242, 174)], + 'pastel27': [(179, 226, 205), (253, 205, 172), (203, 213, 232), (244, 202, 228), (230, 245, 201), (255, 242, 174), (241, 226, 204)], + 'pastel28': [(179, 226, 205), (253, 205, 172), (203, 213, 232), (244, 202, 228), (230, 245, 201), (255, 242, 174), (241, 226, 204), (204, 204, 204)], + 'piyg10': [(142, 1, 82), (39, 100, 25), (197, 27, 125), (222, 119, 174), (241, 182, 218), (253, 224, 239), (230, 245, 208), (184, 225, 134), (127, 188, 65), (77, 146, 33)], + 'piyg11': [(142, 1, 82), (77, 146, 33), (39, 100, 25), (197, 27, 125), (222, 119, 174), (241, 182, 218), (253, 224, 239), (247, 247, 247), (230, 245, 208), (184, 225, 134), (127, 188, 65)], + 'piyg3': [(233, 163, 201), (247, 247, 247), (161, 215, 106)], + 'piyg4': [(208, 28, 139), (241, 182, 218), (184, 225, 134), (77, 172, 38)], + 'piyg5': [(208, 28, 139), (241, 182, 218), (247, 247, 247), (184, 225, 134), (77, 172, 38)], + 'piyg6': [(197, 27, 125), (233, 163, 201), (253, 224, 239), (230, 245, 208), (161, 215, 106), (77, 146, 33)], + 'piyg7': [(197, 27, 125), (233, 163, 201), (253, 224, 239), (247, 247, 247), (230, 245, 208), (161, 215, 106), (77, 146, 33)], + 'piyg8': [(197, 27, 125), (222, 119, 174), (241, 182, 218), (253, 224, 239), (230, 245, 208), (184, 225, 134), (127, 188, 65), (77, 146, 33)], + 'piyg9': [(197, 27, 125), (222, 119, 174), (241, 182, 218), (253, 224, 239), (247, 247, 247), (230, 245, 208), (184, 225, 134), (127, 188, 65), (77, 146, 33)], + 'prgn10': [(64, 0, 75), (0, 68, 27), (118, 42, 131), (153, 112, 171), (194, 165, 207), (231, 212, 232), (217, 240, 211), (166, 219, 160), (90, 174, 97), (27, 120, 55)], + 'prgn11': [(64, 0, 75), (27, 120, 55), (0, 68, 27), (118, 42, 131), (153, 112, 171), (194, 165, 207), (231, 212, 232), (247, 247, 247), (217, 240, 211), (166, 219, 160), (90, 174, 97)], + 'prgn3': [(175, 141, 195), (247, 247, 247), (127, 191, 123)], + 'prgn4': [(123, 50, 148), (194, 165, 207), (166, 219, 160), (0, 136, 55)], + 'prgn5': [(123, 50, 148), (194, 165, 207), (247, 247, 247), (166, 219, 160), (0, 136, 55)], + 'prgn6': [(118, 42, 131), (175, 141, 195), (231, 212, 232), (217, 240, 211), (127, 191, 123), (27, 120, 55)], + 'prgn7': [(118, 42, 131), (175, 141, 195), (231, 212, 232), (247, 247, 247), (217, 240, 211), (127, 191, 123), (27, 120, 55)], + 'prgn8': [(118, 42, 131), (153, 112, 171), (194, 165, 207), (231, 212, 232), (217, 240, 211), (166, 219, 160), (90, 174, 97), (27, 120, 55)], + 'prgn9': [(118, 42, 131), (153, 112, 171), (194, 165, 207), (231, 212, 232), (247, 247, 247), (217, 240, 211), (166, 219, 160), (90, 174, 97), (27, 120, 55)], + 'pubu3': [(236, 231, 242), (166, 189, 219), (43, 140, 190)], + 'pubu4': [(241, 238, 246), (189, 201, 225), (116, 169, 207), (5, 112, 176)], + 'pubu5': [(241, 238, 246), (189, 201, 225), (116, 169, 207), (43, 140, 190), (4, 90, 141)], + 'pubu6': [(241, 238, 246), (208, 209, 230), (166, 189, 219), (116, 169, 207), (43, 140, 190), (4, 90, 141)], + 'pubu7': [(241, 238, 246), (208, 209, 230), (166, 189, 219), (116, 169, 207), (54, 144, 192), (5, 112, 176), (3, 78, 123)], + 'pubu8': [(255, 247, 251), (236, 231, 242), (208, 209, 230), (166, 189, 219), (116, 169, 207), (54, 144, 192), (5, 112, 176), (3, 78, 123)], + 'pubu9': [(255, 247, 251), (236, 231, 242), (208, 209, 230), (166, 189, 219), (116, 169, 207), (54, 144, 192), (5, 112, 176), (4, 90, 141), (2, 56, 88)], + 'pubugn3': [(236, 226, 240), (166, 189, 219), (28, 144, 153)], + 'pubugn4': [(246, 239, 247), (189, 201, 225), (103, 169, 207), (2, 129, 138)], + 'pubugn5': [(246, 239, 247), (189, 201, 225), (103, 169, 207), (28, 144, 153), (1, 108, 89)], + 'pubugn6': [(246, 239, 247), (208, 209, 230), (166, 189, 219), (103, 169, 207), (28, 144, 153), (1, 108, 89)], + 'pubugn7': [(246, 239, 247), (208, 209, 230), (166, 189, 219), (103, 169, 207), (54, 144, 192), (2, 129, 138), (1, 100, 80)], + 'pubugn8': [(255, 247, 251), (236, 226, 240), (208, 209, 230), (166, 189, 219), (103, 169, 207), (54, 144, 192), (2, 129, 138), (1, 100, 80)], + 'pubugn9': [(255, 247, 251), (236, 226, 240), (208, 209, 230), (166, 189, 219), (103, 169, 207), (54, 144, 192), (2, 129, 138), (1, 108, 89), (1, 70, 54)], + 'puor10': [(127, 59, 8), (45, 0, 75), (179, 88, 6), (224, 130, 20), (253, 184, 99), (254, 224, 182), (216, 218, 235), (178, 171, 210), (128, 115, 172), (84, 39, 136)], + 'puor11': [(127, 59, 8), (84, 39, 136), (45, 0, 75), (179, 88, 6), (224, 130, 20), (253, 184, 99), (254, 224, 182), (247, 247, 247), (216, 218, 235), (178, 171, 210), (128, 115, 172)], + 'puor3': [(241, 163, 64), (247, 247, 247), (153, 142, 195)], + 'puor4': [(230, 97, 1), (253, 184, 99), (178, 171, 210), (94, 60, 153)], + 'puor5': [(230, 97, 1), (253, 184, 99), (247, 247, 247), (178, 171, 210), (94, 60, 153)], + 'puor6': [(179, 88, 6), (241, 163, 64), (254, 224, 182), (216, 218, 235), (153, 142, 195), (84, 39, 136)], + 'puor7': [(179, 88, 6), (241, 163, 64), (254, 224, 182), (247, 247, 247), (216, 218, 235), (153, 142, 195), (84, 39, 136)], + 'puor8': [(179, 88, 6), (224, 130, 20), (253, 184, 99), (254, 224, 182), (216, 218, 235), (178, 171, 210), (128, 115, 172), (84, 39, 136)], + 'puor9': [(179, 88, 6), (224, 130, 20), (253, 184, 99), (254, 224, 182), (247, 247, 247), (216, 218, 235), (178, 171, 210), (128, 115, 172), (84, 39, 136)], + 'purd3': [(231, 225, 239), (201, 148, 199), (221, 28, 119)], + 'purd4': [(241, 238, 246), (215, 181, 216), (223, 101, 176), (206, 18, 86)], + 'purd5': [(241, 238, 246), (215, 181, 216), (223, 101, 176), (221, 28, 119), (152, 0, 67)], + 'purd6': [(241, 238, 246), (212, 185, 218), (201, 148, 199), (223, 101, 176), (221, 28, 119), (152, 0, 67)], + 'purd7': [(241, 238, 246), (212, 185, 218), (201, 148, 199), (223, 101, 176), (231, 41, 138), (206, 18, 86), (145, 0, 63)], + 'purd8': [(247, 244, 249), (231, 225, 239), (212, 185, 218), (201, 148, 199), (223, 101, 176), (231, 41, 138), (206, 18, 86), (145, 0, 63)], + 'purd9': [(247, 244, 249), (231, 225, 239), (212, 185, 218), (201, 148, 199), (223, 101, 176), (231, 41, 138), (206, 18, 86), (152, 0, 67), (103, 0, 31)], + 'purples3': [(239, 237, 245), (188, 189, 220), (117, 107, 177)], + 'purples4': [(242, 240, 247), (203, 201, 226), (158, 154, 200), (106, 81, 163)], + 'purples5': [(242, 240, 247), (203, 201, 226), (158, 154, 200), (117, 107, 177), (84, 39, 143)], + 'purples6': [(242, 240, 247), (218, 218, 235), (188, 189, 220), (158, 154, 200), (117, 107, 177), (84, 39, 143)], + 'purples7': [(242, 240, 247), (218, 218, 235), (188, 189, 220), (158, 154, 200), (128, 125, 186), (106, 81, 163), (74, 20, 134)], + 'purples8': [(252, 251, 253), (239, 237, 245), (218, 218, 235), (188, 189, 220), (158, 154, 200), (128, 125, 186), (106, 81, 163), (74, 20, 134)], + 'purples9': [(252, 251, 253), (239, 237, 245), (218, 218, 235), (188, 189, 220), (158, 154, 200), (128, 125, 186), (106, 81, 163), (84, 39, 143), (63, 0, 125)], + 'rdbu10': [(103, 0, 31), (5, 48, 97), (178, 24, 43), (214, 96, 77), (244, 165, 130), (253, 219, 199), (209, 229, 240), (146, 197, 222), (67, 147, 195), (33, 102, 172)], + 'rdbu11': [(103, 0, 31), (33, 102, 172), (5, 48, 97), (178, 24, 43), (214, 96, 77), (244, 165, 130), (253, 219, 199), (247, 247, 247), (209, 229, 240), (146, 197, 222), (67, 147, 195)], + 'rdbu3': [(239, 138, 98), (247, 247, 247), (103, 169, 207)], + 'rdbu4': [(202, 0, 32), (244, 165, 130), (146, 197, 222), (5, 113, 176)], + 'rdbu5': [(202, 0, 32), (244, 165, 130), (247, 247, 247), (146, 197, 222), (5, 113, 176)], + 'rdbu6': [(178, 24, 43), (239, 138, 98), (253, 219, 199), (209, 229, 240), (103, 169, 207), (33, 102, 172)], + 'rdbu7': [(178, 24, 43), (239, 138, 98), (253, 219, 199), (247, 247, 247), (209, 229, 240), (103, 169, 207), (33, 102, 172)], + 'rdbu8': [(178, 24, 43), (214, 96, 77), (244, 165, 130), (253, 219, 199), (209, 229, 240), (146, 197, 222), (67, 147, 195), (33, 102, 172)], + 'rdbu9': [(178, 24, 43), (214, 96, 77), (244, 165, 130), (253, 219, 199), (247, 247, 247), (209, 229, 240), (146, 197, 222), (67, 147, 195), (33, 102, 172)], + 'rdgy10': [(103, 0, 31), (26, 26, 26), (178, 24, 43), (214, 96, 77), (244, 165, 130), (253, 219, 199), (224, 224, 224), (186, 186, 186), (135, 135, 135), (77, 77, 77)], + 'rdgy11': [(103, 0, 31), (77, 77, 77), (26, 26, 26), (178, 24, 43), (214, 96, 77), (244, 165, 130), (253, 219, 199), (255, 255, 255), (224, 224, 224), (186, 186, 186), (135, 135, 135)], + 'rdgy3': [(239, 138, 98), (255, 255, 255), (153, 153, 153)], + 'rdgy4': [(202, 0, 32), (244, 165, 130), (186, 186, 186), (64, 64, 64)], + 'rdgy5': [(202, 0, 32), (244, 165, 130), (255, 255, 255), (186, 186, 186), (64, 64, 64)], + 'rdgy6': [(178, 24, 43), (239, 138, 98), (253, 219, 199), (224, 224, 224), (153, 153, 153), (77, 77, 77)], + 'rdgy7': [(178, 24, 43), (239, 138, 98), (253, 219, 199), (255, 255, 255), (224, 224, 224), (153, 153, 153), (77, 77, 77)], + 'rdgy8': [(178, 24, 43), (214, 96, 77), (244, 165, 130), (253, 219, 199), (224, 224, 224), (186, 186, 186), (135, 135, 135), (77, 77, 77)], + 'rdgy9': [(178, 24, 43), (214, 96, 77), (244, 165, 130), (253, 219, 199), (255, 255, 255), (224, 224, 224), (186, 186, 186), (135, 135, 135), (77, 77, 77)], + 'rdpu3': [(253, 224, 221), (250, 159, 181), (197, 27, 138)], + 'rdpu4': [(254, 235, 226), (251, 180, 185), (247, 104, 161), (174, 1, 126)], + 'rdpu5': [(254, 235, 226), (251, 180, 185), (247, 104, 161), (197, 27, 138), (122, 1, 119)], + 'rdpu6': [(254, 235, 226), (252, 197, 192), (250, 159, 181), (247, 104, 161), (197, 27, 138), (122, 1, 119)], + 'rdpu7': [(254, 235, 226), (252, 197, 192), (250, 159, 181), (247, 104, 161), (221, 52, 151), (174, 1, 126), (122, 1, 119)], + 'rdpu8': [(255, 247, 243), (253, 224, 221), (252, 197, 192), (250, 159, 181), (247, 104, 161), (221, 52, 151), (174, 1, 126), (122, 1, 119)], + 'rdpu9': [(255, 247, 243), (253, 224, 221), (252, 197, 192), (250, 159, 181), (247, 104, 161), (221, 52, 151), (174, 1, 126), (122, 1, 119), (73, 0, 106)], + 'rdylbu10': [(165, 0, 38), (49, 54, 149), (215, 48, 39), (244, 109, 67), (253, 174, 97), (254, 224, 144), (224, 243, 248), (171, 217, 233), (116, 173, 209), (69, 117, 180)], + 'rdylbu11': [(165, 0, 38), (69, 117, 180), (49, 54, 149), (215, 48, 39), (244, 109, 67), (253, 174, 97), (254, 224, 144), (255, 255, 191), (224, 243, 248), (171, 217, 233), (116, 173, 209)], + 'rdylbu3': [(252, 141, 89), (255, 255, 191), (145, 191, 219)], + 'rdylbu4': [(215, 25, 28), (253, 174, 97), (171, 217, 233), (44, 123, 182)], + 'rdylbu5': [(215, 25, 28), (253, 174, 97), (255, 255, 191), (171, 217, 233), (44, 123, 182)], + 'rdylbu6': [(215, 48, 39), (252, 141, 89), (254, 224, 144), (224, 243, 248), (145, 191, 219), (69, 117, 180)], + 'rdylbu7': [(215, 48, 39), (252, 141, 89), (254, 224, 144), (255, 255, 191), (224, 243, 248), (145, 191, 219), (69, 117, 180)], + 'rdylbu8': [(215, 48, 39), (244, 109, 67), (253, 174, 97), (254, 224, 144), (224, 243, 248), (171, 217, 233), (116, 173, 209), (69, 117, 180)], + 'rdylbu9': [(215, 48, 39), (244, 109, 67), (253, 174, 97), (254, 224, 144), (255, 255, 191), (224, 243, 248), (171, 217, 233), (116, 173, 209), (69, 117, 180)], + 'rdylgn10': [(165, 0, 38), (0, 104, 55), (215, 48, 39), (244, 109, 67), (253, 174, 97), (254, 224, 139), (217, 239, 139), (166, 217, 106), (102, 189, 99), (26, 152, 80)], + 'rdylgn11': [(165, 0, 38), (26, 152, 80), (0, 104, 55), (215, 48, 39), (244, 109, 67), (253, 174, 97), (254, 224, 139), (255, 255, 191), (217, 239, 139), (166, 217, 106), (102, 189, 99)], + 'rdylgn3': [(252, 141, 89), (255, 255, 191), (145, 207, 96)], + 'rdylgn4': [(215, 25, 28), (253, 174, 97), (166, 217, 106), (26, 150, 65)], + 'rdylgn5': [(215, 25, 28), (253, 174, 97), (255, 255, 191), (166, 217, 106), (26, 150, 65)], + 'rdylgn6': [(215, 48, 39), (252, 141, 89), (254, 224, 139), (217, 239, 139), (145, 207, 96), (26, 152, 80)], + 'rdylgn7': [(215, 48, 39), (252, 141, 89), (254, 224, 139), (255, 255, 191), (217, 239, 139), (145, 207, 96), (26, 152, 80)], + 'rdylgn8': [(215, 48, 39), (244, 109, 67), (253, 174, 97), (254, 224, 139), (217, 239, 139), (166, 217, 106), (102, 189, 99), (26, 152, 80)], + 'rdylgn9': [(215, 48, 39), (244, 109, 67), (253, 174, 97), (254, 224, 139), (255, 255, 191), (217, 239, 139), (166, 217, 106), (102, 189, 99), (26, 152, 80)], + 'reds3': [(254, 224, 210), (252, 146, 114), (222, 45, 38)], + 'reds4': [(254, 229, 217), (252, 174, 145), (251, 106, 74), (203, 24, 29)], + 'reds5': [(254, 229, 217), (252, 174, 145), (251, 106, 74), (222, 45, 38), (165, 15, 21)], + 'reds6': [(254, 229, 217), (252, 187, 161), (252, 146, 114), (251, 106, 74), (222, 45, 38), (165, 15, 21)], + 'reds7': [(254, 229, 217), (252, 187, 161), (252, 146, 114), (251, 106, 74), (239, 59, 44), (203, 24, 29), (153, 0, 13)], + 'reds8': [(255, 245, 240), (254, 224, 210), (252, 187, 161), (252, 146, 114), (251, 106, 74), (239, 59, 44), (203, 24, 29), (153, 0, 13)], + 'reds9': [(255, 245, 240), (254, 224, 210), (252, 187, 161), (252, 146, 114), (251, 106, 74), (239, 59, 44), (203, 24, 29), (165, 15, 21), (103, 0, 13)], + 'set13': [(228, 26, 28), (55, 126, 184), (77, 175, 74)], + 'set14': [(228, 26, 28), (55, 126, 184), (77, 175, 74), (152, 78, 163)], + 'set15': [(228, 26, 28), (55, 126, 184), (77, 175, 74), (152, 78, 163), (255, 127, 0)], + 'set16': [(228, 26, 28), (55, 126, 184), (77, 175, 74), (152, 78, 163), (255, 127, 0), (255, 255, 51)], + 'set17': [(228, 26, 28), (55, 126, 184), (77, 175, 74), (152, 78, 163), (255, 127, 0), (255, 255, 51), (166, 86, 40)], + 'set18': [(228, 26, 28), (55, 126, 184), (77, 175, 74), (152, 78, 163), (255, 127, 0), (255, 255, 51), (166, 86, 40), (247, 129, 191)], + 'set19': [(228, 26, 28), (55, 126, 184), (77, 175, 74), (152, 78, 163), (255, 127, 0), (255, 255, 51), (166, 86, 40), (247, 129, 191), (153, 153, 153)], + 'set23': [(102, 194, 165), (252, 141, 98), (141, 160, 203)], + 'set24': [(102, 194, 165), (252, 141, 98), (141, 160, 203), (231, 138, 195)], + 'set25': [(102, 194, 165), (252, 141, 98), (141, 160, 203), (231, 138, 195), (166, 216, 84)], + 'set26': [(102, 194, 165), (252, 141, 98), (141, 160, 203), (231, 138, 195), (166, 216, 84), (255, 217, 47)], + 'set27': [(102, 194, 165), (252, 141, 98), (141, 160, 203), (231, 138, 195), (166, 216, 84), (255, 217, 47), (229, 196, 148)], + 'set28': [(102, 194, 165), (252, 141, 98), (141, 160, 203), (231, 138, 195), (166, 216, 84), (255, 217, 47), (229, 196, 148), (179, 179, 179)], + 'set310': [(141, 211, 199), (188, 128, 189), (255, 255, 179), (190, 186, 218), (251, 128, 114), (128, 177, 211), (253, 180, 98), (179, 222, 105), (252, 205, 229), (217, 217, 217)], + 'set311': [(141, 211, 199), (188, 128, 189), (204, 235, 197), (255, 255, 179), (190, 186, 218), (251, 128, 114), (128, 177, 211), (253, 180, 98), (179, 222, 105), (252, 205, 229), (217, 217, 217)], + 'set312': [(141, 211, 199), (188, 128, 189), (204, 235, 197), (255, 237, 111), (255, 255, 179), (190, 186, 218), (251, 128, 114), (128, 177, 211), (253, 180, 98), (179, 222, 105), (252, 205, 229), (217, 217, 217)], + 'set33': [(141, 211, 199), (255, 255, 179), (190, 186, 218)], + 'set34': [(141, 211, 199), (255, 255, 179), (190, 186, 218), (251, 128, 114)], + 'set35': [(141, 211, 199), (255, 255, 179), (190, 186, 218), (251, 128, 114), (128, 177, 211)], + 'set36': [(141, 211, 199), (255, 255, 179), (190, 186, 218), (251, 128, 114), (128, 177, 211), (253, 180, 98)], + 'set37': [(141, 211, 199), (255, 255, 179), (190, 186, 218), (251, 128, 114), (128, 177, 211), (253, 180, 98), (179, 222, 105)], + 'set38': [(141, 211, 199), (255, 255, 179), (190, 186, 218), (251, 128, 114), (128, 177, 211), (253, 180, 98), (179, 222, 105), (252, 205, 229)], + 'set39': [(141, 211, 199), (255, 255, 179), (190, 186, 218), (251, 128, 114), (128, 177, 211), (253, 180, 98), (179, 222, 105), (252, 205, 229), (217, 217, 217)], + 'spectral10': [(158, 1, 66), (94, 79, 162), (213, 62, 79), (244, 109, 67), (253, 174, 97), (254, 224, 139), (230, 245, 152), (171, 221, 164), (102, 194, 165), (50, 136, 189)], + 'spectral11': [(158, 1, 66), (50, 136, 189), (94, 79, 162), (213, 62, 79), (244, 109, 67), (253, 174, 97), (254, 224, 139), (255, 255, 191), (230, 245, 152), (171, 221, 164), (102, 194, 165)], + 'spectral3': [(252, 141, 89), (255, 255, 191), (153, 213, 148)], + 'spectral4': [(215, 25, 28), (253, 174, 97), (171, 221, 164), (43, 131, 186)], + 'spectral5': [(215, 25, 28), (253, 174, 97), (255, 255, 191), (171, 221, 164), (43, 131, 186)], + 'spectral6': [(213, 62, 79), (252, 141, 89), (254, 224, 139), (230, 245, 152), (153, 213, 148), (50, 136, 189)], + 'spectral7': [(213, 62, 79), (252, 141, 89), (254, 224, 139), (255, 255, 191), (230, 245, 152), (153, 213, 148), (50, 136, 189)], + 'spectral8': [(213, 62, 79), (244, 109, 67), (253, 174, 97), (254, 224, 139), (230, 245, 152), (171, 221, 164), (102, 194, 165), (50, 136, 189)], + 'spectral9': [(213, 62, 79), (244, 109, 67), (253, 174, 97), (254, 224, 139), (255, 255, 191), (230, 245, 152), (171, 221, 164), (102, 194, 165), (50, 136, 189)], + 'ylgn3': [(247, 252, 185), (173, 221, 142), (49, 163, 84)], + 'ylgn4': [(255, 255, 204), (194, 230, 153), (120, 198, 121), (35, 132, 67)], + 'ylgn5': [(255, 255, 204), (194, 230, 153), (120, 198, 121), (49, 163, 84), (0, 104, 55)], + 'ylgn6': [(255, 255, 204), (217, 240, 163), (173, 221, 142), (120, 198, 121), (49, 163, 84), (0, 104, 55)], + 'ylgn7': [(255, 255, 204), (217, 240, 163), (173, 221, 142), (120, 198, 121), (65, 171, 93), (35, 132, 67), (0, 90, 50)], + 'ylgn8': [(255, 255, 229), (247, 252, 185), (217, 240, 163), (173, 221, 142), (120, 198, 121), (65, 171, 93), (35, 132, 67), (0, 90, 50)], + 'ylgn9': [(255, 255, 229), (247, 252, 185), (217, 240, 163), (173, 221, 142), (120, 198, 121), (65, 171, 93), (35, 132, 67), (0, 104, 55), (0, 69, 41)], + 'ylgnbu3': [(237, 248, 177), (127, 205, 187), (44, 127, 184)], + 'ylgnbu4': [(255, 255, 204), (161, 218, 180), (65, 182, 196), (34, 94, 168)], + 'ylgnbu5': [(255, 255, 204), (161, 218, 180), (65, 182, 196), (44, 127, 184), (37, 52, 148)], + 'ylgnbu6': [(255, 255, 204), (199, 233, 180), (127, 205, 187), (65, 182, 196), (44, 127, 184), (37, 52, 148)], + 'ylgnbu7': [(255, 255, 204), (199, 233, 180), (127, 205, 187), (65, 182, 196), (29, 145, 192), (34, 94, 168), (12, 44, 132)], + 'ylgnbu8': [(255, 255, 217), (237, 248, 177), (199, 233, 180), (127, 205, 187), (65, 182, 196), (29, 145, 192), (34, 94, 168), (12, 44, 132)], + 'ylgnbu9': [(255, 255, 217), (237, 248, 177), (199, 233, 180), (127, 205, 187), (65, 182, 196), (29, 145, 192), (34, 94, 168), (37, 52, 148), (8, 29, 88)], + 'ylorbr3': [(255, 247, 188), (254, 196, 79), (217, 95, 14)], + 'ylorbr4': [(255, 255, 212), (254, 217, 142), (254, 153, 41), (204, 76, 2)], + 'ylorbr5': [(255, 255, 212), (254, 217, 142), (254, 153, 41), (217, 95, 14), (153, 52, 4)], + 'ylorbr6': [(255, 255, 212), (254, 227, 145), (254, 196, 79), (254, 153, 41), (217, 95, 14), (153, 52, 4)], + 'ylorbr7': [(255, 255, 212), (254, 227, 145), (254, 196, 79), (254, 153, 41), (236, 112, 20), (204, 76, 2), (140, 45, 4)], + 'ylorbr8': [(255, 255, 229), (255, 247, 188), (254, 227, 145), (254, 196, 79), (254, 153, 41), (236, 112, 20), (204, 76, 2), (140, 45, 4)], + 'ylorbr9': [(255, 255, 229), (255, 247, 188), (254, 227, 145), (254, 196, 79), (254, 153, 41), (236, 112, 20), (204, 76, 2), (153, 52, 4), (102, 37, 6)], + 'ylorrd3': [(255, 237, 160), (254, 178, 76), (240, 59, 32)], + 'ylorrd4': [(255, 255, 178), (254, 204, 92), (253, 141, 60), (227, 26, 28)], + 'ylorrd5': [(255, 255, 178), (254, 204, 92), (253, 141, 60), (240, 59, 32), (189, 0, 38)], + 'ylorrd6': [(255, 255, 178), (254, 217, 118), (254, 178, 76), (253, 141, 60), (240, 59, 32), (189, 0, 38)], + 'ylorrd7': [(255, 255, 178), (254, 217, 118), (254, 178, 76), (253, 141, 60), (252, 78, 42), (227, 26, 28), (177, 0, 38)], + 'ylorrd8': [(255, 255, 204), (255, 237, 160), (254, 217, 118), (254, 178, 76), (253, 141, 60), (252, 78, 42), (227, 26, 28), (177, 0, 38)], +} + + +if __name__ == '__main__': + main() diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/rqt_behavior_tree/xdot/xdot_qt.py b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/rqt_behavior_tree/xdot/xdot_qt.py new file mode 100755 index 000000000..520487e8f --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/rqt_behavior_tree/xdot/xdot_qt.py @@ -0,0 +1,2233 @@ +#!/usr/bin/env python +# +# Copyright 2008 Jose Fonseca +# +# This program is free software: you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published +# by the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program. If not, see . +# +# QT Version adapted by Alex Bravo + +'''Visualize dot graphs via the xdot format.''' + +__author__ = "Jose Fonseca" + +__version__ = "0.4" + +import os +import sys +import subprocess +import math +import colorsys +import time +import re + +#from PySide.QtCore import * +#from PySide.QtGui import * +#from PyQt4 import * +#from PyQt4.QtCore import * +#from PyQt4.QtGui import * + +from python_qt_binding import * +from python_qt_binding.QtCore import * +from python_qt_binding.QtGui import * +from python_qt_binding.QtWidgets import * + +#-------------------------------------------------------------------------------------------------------------------------------------------------------------------- +#-- Drawing Classes --# + +class Pen: + """Store pen attributes.""" + + def __init__(self): + # set default attributes + self.color = (0.0, 0.0, 0.0, 1.0) + self.fillcolor = (0.0, 0.0, 0.0, 1.0) + self.linewidth = 1.0 + self.fontsize = 14.0 + self.fontname = "Times-Roman" + self.dash = Qt.SolidLine + + def copy(self): + """Create a copy of this pen.""" + pen = Pen() + pen.__dict__ = self.__dict__.copy() + return pen + + def highlighted(self): + pen = self.copy() + pen.color = (1, 0, 0, 1) + pen.fillcolor = (1, .8, .8, 1) + return pen + +class Shape: + """Abstract base class for all the drawing shapes.""" + + def __init__(self): + pass + + def draw(self, cr, highlight=False): + """Draw this shape with the given cairo context""" + raise NotImplementedError + + def select_pen(self, highlight): + if highlight: + if not hasattr(self, 'highlight_pen'): + self.highlight_pen = self.pen.highlighted() + return self.highlight_pen + else: + return self.pen + +class TextShape(Shape): + """Used to draw a text shape with a QPainter""" + + LEFT, CENTER, RIGHT = -1, 0, 1 + + def __init__(self, pen, x, y, j, w, t): + Shape.__init__(self) + self.pen = pen.copy() + self.x = x + self.y = y + self.j = j #AB allignment? JRB: height. + self.w = w + self.t = t + + def draw(self, painter, highlight=False): + pen = self.select_pen(highlight) + painter.setPen(QColor.fromRgbF(*pen.color)) + font = QFont(self.pen.fontname) + + fontMetrics = QFontMetrics(QFont(self.pen.fontname)) + scale = float(fontMetrics.width(self.t)) / float(self.w) + + if scale < 1.0 or scale > 1.0: + font.setPointSizeF(font.pointSizeF()/scale); + + painter.setFont(font)#, self.pen.fontsize)) #AB simply setting font size doesn't work + painter.drawText( + self.x - self.w / 2.0, + self.y, + self.t) + pass + +class EllipseShape(Shape): + """Used to draw an ellipse shape with a QPainter""" + def __init__(self, pen, x0, y0, w, h, filled=False): + Shape.__init__(self) + self.pen = pen.copy() + self.x0 = x0 + self.y0 = y0 + self.w = w + self.h = h + self.filled = filled + + def draw(self, painter, highlight=False): + painter.save() + pen = self.select_pen(highlight) + if self.filled: + painter.setPen(QColor.fromRgbF(*pen.fillcolor)) + painter.setBrush(QColor.fromRgbF(*pen.fillcolor)) + else: + painter.setPen(QPen(QBrush(QColor.fromRgbF(*pen.color)), pen.linewidth, pen.dash)) + painter.setBrush(Qt.NoBrush) + painter.drawEllipse(self.x0 - self.w, self.y0 - self.h, self.w * 2, self.h * 2) + painter.restore() + +class PolygonShape(Shape): + """Used to draw a polygon with QPainter.""" + + def __init__(self, pen, points, filled=False): + Shape.__init__(self) + self.pen = pen.copy() + self.points = points + self.filled = filled + + def draw(self, painter, highlight=False): + + polygon_points = QPolygonF() + for x, y in self.points: + polygon_points.append (QPointF(x, y)) + + pen = self.select_pen(highlight) + painter.save() + if self.filled: + painter.setPen(QColor.fromRgbF(*pen.fillcolor)) + painter.setBrush(QColor.fromRgbF(*pen.fillcolor)) + else: + painter.setPen(QPen(QBrush(QColor.fromRgbF(*pen.color)), pen.linewidth, + pen.dash, Qt.SquareCap, Qt.MiterJoin)) + painter.setBrush(Qt.NoBrush) + + painter.drawPolygon(polygon_points) + painter.restore() + +class LineShape(Shape): + """Used to draw a line with QPainter.""" + + def __init__(self, pen, points): + Shape.__init__(self) + self.pen = pen.copy() + self.points = points + + def draw(self, painter, highlight=False): + pen = self.select_pen(highlight) + painter.setPen(QPen(QBrush(QColor.fromRgbF(*pen.color)), pen.linewidth, + pen.dash, Qt.SquareCap, Qt.MiterJoin)) + + x0, y0 = self.points[0] + for x1, y1 in self.points[1:]: + painter.drawLine(QPointF(x0, y0), QPointF(x1, y1)) + x0 = x1 + y0 = y1 + +class BezierShape(Shape): + """Used to draw a bezier curve with QPainter.""" + + def __init__(self, pen, points, filled=False): + Shape.__init__(self) + self.pen = pen.copy() + self.points = points + self.filled = filled + + def draw(self, painter, highlight=False): + painter_path = QPainterPath() + painter_path.moveTo(QPointF(*self.points[0])) + for i in xrange(1, len(self.points), 3): + painter_path.cubicTo( + QPointF(*self.points[i]), + QPointF(*self.points[i + 1]), + QPointF(*self.points[i + 2])) + pen = self.select_pen(highlight) + qpen = QPen() + if self.filled: + brush = QBrush() + brush.setColor(QColor.fromRgbF(*pen.fillcolor)) + brush.setStyle(Qt.SolidPattern) + painter.setBrush(brush) + #qpen.setCapStyle(Qt.RoundCap) + #qpen.setJoinStyle(Qt.RoundJoin) + #painter_path.setFillRule(Qt.OddEvenFill) + else: + painter.setBrush(Qt.NoBrush) + + qpen.setStyle(pen.dash) + qpen.setWidth(pen.linewidth) + qpen.setColor(QColor.fromRgbF(*pen.color)) + painter.setPen(qpen) + painter.drawPath(painter_path) + +class CompoundShape(Shape): + """Used to draw a set of shapes with QPainter.""" + + def __init__(self, shapes): + Shape.__init__(self) + self.shapes = shapes + + def draw(self, cr, highlight=False): + for shape in self.shapes: + shape.draw(cr, highlight=highlight) + +#-------------------------------------------------------------------------------------------------------------------------------------------------------------------- +#-- Metadata Classes --# + +class Url(object): + """Represents a graphviz URL.""" + + def __init__(self, item, url, highlight=None): + self.item = item + self.url = url + if highlight is None: + highlight = set([item]) + self.highlight = highlight + +class Jump(object): + """Represents a jump to another node's position on the canvas.""" + + def __init__(self, item, x, y, highlight=None, url=None): + self.item = item + self.x = x + self.y = y + if highlight is None: + highlight = set([item]) + self.highlight = highlight + self.url = url + +#-------------------------------------------------------------------------------------------------------------------------------------------------------------------- +#-- Graph Representation Classes --# + +class Element(CompoundShape): + """Base class for graph nodes and edges.""" + + def __init__(self, shapes): + CompoundShape.__init__(self, shapes) + + def get_url(self, x, y): + return None + + def get_jump(self, x, y): + return None + + +class Node(Element): + """An abstract node in the graph, it's spatial location, and it's visual representation.""" + + def __init__(self, x, y, w, h, shapes, url): + Element.__init__(self, shapes) + + self.x = x + self.y = y + + self.x1 = x - 0.5*w + self.y1 = y - 0.5*h + self.x2 = x + 0.5*w + self.y2 = y + 0.5*h + + self.url = url + + def is_inside(self, x, y): + """Used to check for 2D-picking via the mouse. + param x: The x position on the canvas + param y: The y position on the canvas + """ + return self.x1 <= x and x <= self.x2 and self.y1 <= y and y <= self.y2 + + def get_url(self, x, y): + """Get the elemnt's metadata.""" + if self.url is None: + return None + if self.is_inside(x, y): + return Url(self, self.url) + return None + + def get_jump(self, x, y): + if self.is_inside(x, y): + return Jump(self, self.x, self.y) + return None + + +def square_distance(x1, y1, x2, y2): + deltax = x2 - x1 + deltay = y2 - y1 + return deltax*deltax + deltay*deltay + + +class Edge(Element): + + def __init__(self, src, dst, points, shapes, url): + Element.__init__(self, shapes) + self.src = src + self.dst = dst + self.points = points + self.url = url + + RADIUS = 10 + + def get_jump(self, x, y): + if square_distance(x, y, *self.points[0]) <= self.RADIUS*self.RADIUS: + return Jump(self, self.dst.x, self.dst.y, highlight=set([self, self.dst]),url=self.url) + if square_distance(x, y, *self.points[-1]) <= self.RADIUS*self.RADIUS: + return Jump(self, self.src.x, self.src.y, highlight=set([self, self.src]),url=self.url) + return None + + +#-------------------------------------------------------------------------------------------------------------------------------------------------------------------- +class Graph(Shape): + + def __init__(self, width=1, height=1, shapes=(), nodes=(), edges=(), subgraph_shapes={}): + Shape.__init__(self) + + self.width = width + self.height = height + self.shapes = shapes + self.nodes = nodes + self.edges = edges + self.subgraph_shapes = subgraph_shapes + + def get_size(self): + return self.width, self.height + + def draw(self, cr, highlight_items=None): + if highlight_items is None: + highlight_items = () + for shape in self.shapes: + shape.draw(cr) + for edge in self.edges: + edge.draw(cr, highlight=(edge in highlight_items)) + for node in self.nodes: + node.draw(cr, highlight=(node in highlight_items)) + + def get_url(self, x, y): + for node in self.nodes: + url = node.get_url(x, y) + if url is not None: + return url + return None + + def get_jump(self, x, y): + for edge in self.edges: + jump = edge.get_jump(x, y) + if jump is not None: + return jump + for node in self.nodes: + jump = node.get_jump(x, y) + if jump is not None: + return jump + return None + + +#-------------------------------------------------------------------------------------------------------------------------------------------------------------------- +class XDotAttrParser: + """Parser for xdot drawing attributes. + See also: + - http://www.graphviz.org/doc/info/output.html#d:xdot + """ + + def __init__(self, parser, buf): + self.parser = parser + self.buf = self.unescape(buf) + self.pos = 0 + + self.pen = Pen() + self.shapes = [] + + def __nonzero__(self): + return self.pos < len(self.buf) + + def unescape(self, buf): + buf = buf.replace('\\"', '"') + buf = buf.replace('\\n', '\n') + return buf + + def read_code(self): + pos = self.buf.find(" ", self.pos) + res = self.buf[self.pos:pos] + self.pos = pos + 1 + while self.pos < len(self.buf) and self.buf[self.pos].isspace(): + self.pos += 1 + return res + + def read_number(self): + return int(float(self.read_code())) + + def read_float(self): + return float(self.read_code()) + + def read_point(self): + x = self.read_number() + y = self.read_number() + return self.transform(x, y) + + def read_text(self): + num = self.read_number() + pos = self.buf.find("-", self.pos) + 1 + self.pos = pos + num + res = self.buf[pos:self.pos] + while self.pos < len(self.buf) and self.buf[self.pos].isspace(): + self.pos += 1 + return res + + def read_polygon(self): + n = self.read_number() + p = [] +# p = QPointF[] + for i in range(n): + x, y = self.read_point() + p.append((x, y)) +# p.append (QPointF(x, y)) + return p + + def read_color(self): + # See http://www.graphviz.org/doc/info/attrs.html#k:color + c = self.read_text() + c1 = c[:1] + if c1 == '#': + hex2float = lambda h: float(int(h, 16)/255.0) + r = hex2float(c[1:3]) + g = hex2float(c[3:5]) + b = hex2float(c[5:7]) + try: + a = hex2float(c[7:9]) + except (IndexError, ValueError): + a = 1.0 + return r, g, b, a + elif c1.isdigit() or c1 == ".": + # "H,S,V" or "H S V" or "H, S, V" or any other variation + h, s, v = map(float, c.replace(",", " ").split()) + r, g, b = colorsys.hsv_to_rgb(h, s, v) + a = 1.0 + return r, g, b, a + else: + return self.lookup_color(c) + + def lookup_color(self, c): + try: + color = gtk.gdk.color_parse(c) + except ValueError: + pass + else: + s = 1.0/65535.0 + r = color.red*s + g = color.green*s + b = color.blue*s + a = 1.0 + return r, g, b, a + + try: + dummy, scheme, index = c.split('/') + r, g, b = brewer_colors[scheme][int(index)] + except (ValueError, KeyError): + pass + else: + s = 1.0/255.0 + r = r*s + g = g*s + b = b*s + a = 1.0 + return r, g, b, a + + sys.stderr.write("unknown color '%s'\n" % c) + return None + + def parse(self): + s = self + + while s: + op = s.read_code() + if op == "c": + color = s.read_color() + if color is not None: + self.handle_color(color, filled=False) + elif op == "C": + color = s.read_color() + if color is not None: + self.handle_color(color, filled=True) + elif op == "S": + # http://www.graphviz.org/doc/info/attrs.html#k:style + style = s.read_text() + if style.startswith("setlinewidth("): + lw = style.split("(")[1].split(")")[0] + lw = float(lw) + self.handle_linewidth(lw) + elif style in ("solid", "dashed"): + self.handle_linestyle(style) + elif op == "F": + size = s.read_float() + name = s.read_text() + self.handle_font(size, name) + elif op == "T": + x, y = s.read_point() + j = s.read_number() + w = s.read_number() + t = s.read_text() + self.handle_text(x, y, j, w, t) + elif op == "E": + x0, y0 = s.read_point() + w = s.read_number() + h = s.read_number() + self.handle_ellipse(x0, y0, w, h, filled=True) + elif op == "e": + x0, y0 = s.read_point() + w = s.read_number() + h = s.read_number() + self.handle_ellipse(x0, y0, w, h, filled=False) + elif op == "L": + points = self.read_polygon() + self.handle_line(points) + elif op == "B": + points = self.read_polygon() + self.handle_bezier(points, filled=False) + elif op == "b": + points = self.read_polygon() + self.handle_bezier(points, filled=True) + elif op == "P": + points = self.read_polygon() + self.handle_polygon(points, filled=True) + elif op == "p": + points = self.read_polygon() + self.handle_polygon(points, filled=False) + else: + sys.stderr.write("unknown xdot opcode '%s'\n" % op) + break + + return self.shapes + + def transform(self, x, y): + return self.parser.transform(x, y) + + def handle_color(self, color, filled=False): + if filled: + self.pen.fillcolor = color + else: + self.pen.color = color + + def handle_linewidth(self, linewidth): + self.pen.linewidth = linewidth + + def handle_linestyle(self, style): + if style == "solid": +# self.pen.dash = () + self.pen.dash = Qt.SolidLine + elif style == "dashed": +# self.pen.dash = (6, ) # 6pt on, 6pt off + self.pen.dash = Qt.DashLine + + def handle_font(self, size, name): + self.pen.fontsize = size + self.pen.fontname = name + + def handle_text(self, x, y, j, w, t): + self.shapes.append(TextShape(self.pen, x, y, j, w, t)) + + def handle_ellipse(self, x0, y0, w, h, filled=False): + if filled: + # xdot uses this to mean "draw a filled shape with an outline" + self.shapes.append(EllipseShape(self.pen, x0, y0, w, h, filled=True)) + self.shapes.append(EllipseShape(self.pen, x0, y0, w, h)) + + def handle_line(self, points): + self.shapes.append(LineShape(self.pen, points)) + + def handle_bezier(self, points, filled=False): + if filled: + # xdot uses this to mean "draw a filled shape with an outline" + self.shapes.append(BezierShape(self.pen, points, filled=True)) + self.shapes.append(BezierShape(self.pen, points)) + + def handle_polygon(self, points, filled=False): + #AB Should filled be handled inside of PolygonShape? + if filled: + # xdot uses this to mean "draw a filled shape with an outline" + self.shapes.append(PolygonShape(self.pen, points, filled=True)) + self.shapes.append(PolygonShape(self.pen, points)) + + +EOF = -1 +SKIP = -2 + + +class ParseError(Exception): + + def __init__(self, msg=None, filename=None, line=None, col=None): + self.msg = msg + self.filename = filename + self.line = line + self.col = col + + def __str__(self): + return ':'.join([str(part) for part in (self.filename, self.line, self.col, self.msg) if part != None]) + + +#-------------------------------------------------------------------------------------------------------------------------------------------------------------------- +class Scanner: + """Stateless scanner.""" + + # should be overriden by derived classes + tokens = [] + symbols = {} + literals = {} + ignorecase = False + + def __init__(self): + flags = re.DOTALL + if self.ignorecase: + flags |= re.IGNORECASE + self.tokens_re = re.compile( + '|'.join(['(' + regexp + ')' for type, regexp, test_lit in self.tokens]), + flags + ) + + def next(self, buf, pos): + if pos >= len(buf): + return EOF, '', pos + mo = self.tokens_re.match(buf, pos) + if mo: + text = mo.group() + type, regexp, test_lit = self.tokens[mo.lastindex - 1] + pos = mo.end() + if test_lit: + type = self.literals.get(text, type) + return type, text, pos + else: + c = buf[pos] + return self.symbols.get(c, None), c, pos + 1 + + +class Token: + + def __init__(self, type, text, line, col): + self.type = type + self.text = text + self.line = line + self.col = col + + +class Lexer: + + # should be overriden by derived classes + scanner = None + tabsize = 8 + + newline_re = re.compile(r'\r\n?|\n') + + def __init__(self, buf = None, pos = 0, filename = None, fp = None): + if fp is not None: + try: + fileno = fp.fileno() + length = os.path.getsize(fp.name) + import mmap + except: + # read whole file into memory + buf = fp.read() + pos = 0 + else: + # map the whole file into memory + if length: + # length must not be zero + buf = mmap.mmap(fileno, length, access = mmap.ACCESS_READ) + pos = os.lseek(fileno, 0, 1) + else: + buf = '' + pos = 0 + + if filename is None: + try: + filename = fp.name + except AttributeError: + filename = None + + self.buf = buf + self.pos = pos + self.line = 1 + self.col = 1 + self.filename = filename + + def next(self): + while True: + # save state + pos = self.pos + line = self.line + col = self.col + + type, text, endpos = self.scanner.next(self.buf, pos) + assert pos + len(text) == endpos + self.consume(text) + type, text = self.filter(type, text) + self.pos = endpos + + if type == SKIP: + continue + elif type is None: + msg = 'unexpected char ' + if text >= ' ' and text <= '~': + msg += "'%s'" % text + else: + msg += "0x%X" % ord(text) + raise ParseError(msg, self.filename, line, col) + else: + break + return Token(type = type, text = text, line = line, col = col) + + def consume(self, text): + # update line number + pos = 0 + for mo in self.newline_re.finditer(text, pos): + self.line += 1 + self.col = 1 + pos = mo.end() + + # update column number + while True: + tabpos = text.find('\t', pos) + if tabpos == -1: + break + self.col += tabpos - pos + self.col = ((self.col - 1)//self.tabsize + 1)*self.tabsize + 1 + pos = tabpos + 1 + self.col += len(text) - pos + + +class Parser: + + def __init__(self, lexer): + self.lexer = lexer + self.lookahead = self.lexer.next() + + def match(self, type): + if self.lookahead.type != type: + raise ParseError( + msg = 'unexpected token %r' % self.lookahead.text, + filename = self.lexer.filename, + line = self.lookahead.line, + col = self.lookahead.col) + + def skip(self, type): + while self.lookahead.type != type: + self.consume() + + def consume(self): + token = self.lookahead + self.lookahead = self.lexer.next() + return token + + +ID = 0 +STR_ID = 1 +HTML_ID = 2 +EDGE_OP = 3 + +LSQUARE = 4 +RSQUARE = 5 +LCURLY = 6 +RCURLY = 7 +COMMA = 8 +COLON = 9 +SEMI = 10 +EQUAL = 11 +PLUS = 12 + +STRICT = 13 +GRAPH = 14 +DIGRAPH = 15 +NODE = 16 +EDGE = 17 +SUBGRAPH = 18 + + +class DotScanner(Scanner): + + # token regular expression table + tokens = [ + # whitespace and comments + (SKIP, + r'[ \t\f\r\n\v]+|' + r'//[^\r\n]*|' + r'/\*.*?\*/|' + r'#[^\r\n]*', + False), + + # Alphanumeric IDs + (ID, r'[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*', True), + + # Numeric IDs + (ID, r'-?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)', False), + + # String IDs + (STR_ID, r'"[^"\\]*(?:\\.[^"\\]*)*"', False), + + # HTML IDs + (HTML_ID, r'<[^<>]*(?:<[^<>]*>[^<>]*)*>', False), + + # Edge operators + (EDGE_OP, r'-[>-]', False), + ] + + # symbol table + symbols = { + '[': LSQUARE, + ']': RSQUARE, + '{': LCURLY, + '}': RCURLY, + ',': COMMA, + ':': COLON, + ';': SEMI, + '=': EQUAL, + '+': PLUS, + } + + # literal table + literals = { + 'strict': STRICT, + 'graph': GRAPH, + 'digraph': DIGRAPH, + 'node': NODE, + 'edge': EDGE, + 'subgraph': SUBGRAPH, + } + + ignorecase = True + + +class DotLexer(Lexer): + + scanner = DotScanner() + + def filter(self, type, text): + # TODO: handle charset + if type == STR_ID: + text = text[1:-1] + + # line continuations + text = text.replace('\\\r\n', '') + text = text.replace('\\\r', '') + text = text.replace('\\\n', '') + + text = text.replace('\\r', '\r') + text = text.replace('\\n', '\n') + text = text.replace('\\t', '\t') + text = text.replace('\\', '') + + type = ID + + elif type == HTML_ID: + text = text[1:-1] + type = ID + + return type, text + + +class DotParser(Parser): + + def __init__(self, lexer): + Parser.__init__(self, lexer) + self.graph_attrs = {} + self.node_attrs = {} + self.edge_attrs = {} + + def parse(self): + self.parse_graph() + self.match(EOF) + + def parse_graph(self): + if self.lookahead.type == STRICT: + self.consume() + self.skip(LCURLY) + self.consume() + while self.lookahead.type != RCURLY: + self.parse_stmt() + self.consume() + + def parse_subgraph(self): + id = None + shapes_before = set(self.shapes) + if self.lookahead.type == SUBGRAPH: + self.consume() + if self.lookahead.type == ID: + id = self.lookahead.text + self.consume() + if self.lookahead.type == LCURLY: + self.consume() + while self.lookahead.type != RCURLY: + self.parse_stmt() + self.consume() + new_shapes = set(self.shapes) - shapes_before + self.subgraph_shapes[id] = [s for s in new_shapes if not any([s in ss for ss in self.subgraph_shapes.values()])] + return id + + def parse_stmt(self): + if self.lookahead.type == GRAPH: + self.consume() + attrs = self.parse_attrs() + self.graph_attrs.update(attrs) + self.handle_graph(attrs) + elif self.lookahead.type == NODE: + self.consume() + self.node_attrs.update(self.parse_attrs()) + elif self.lookahead.type == EDGE: + self.consume() + self.edge_attrs.update(self.parse_attrs()) + elif self.lookahead.type in (SUBGRAPH, LCURLY): + self.parse_subgraph() + else: + id = self.parse_node_id() + if self.lookahead.type == EDGE_OP: + self.consume() + node_ids = [id, self.parse_node_id()] + while self.lookahead.type == EDGE_OP: + node_ids.append(self.parse_node_id()) + attrs = self.parse_attrs() + for i in range(0, len(node_ids) - 1): + self.handle_edge(node_ids[i], node_ids[i + 1], attrs) + elif self.lookahead.type == EQUAL: + self.consume() + self.parse_id() + else: + attrs = self.parse_attrs() + self.handle_node(id, attrs) + if self.lookahead.type == SEMI: + self.consume() + + def parse_attrs(self): + attrs = {} + while self.lookahead.type == LSQUARE: + self.consume() + while self.lookahead.type != RSQUARE: + name, value = self.parse_attr() + attrs[name] = value + if self.lookahead.type == COMMA: + self.consume() + self.consume() + return attrs + + def parse_attr(self): + name = self.parse_id() + if self.lookahead.type == EQUAL: + self.consume() + value = self.parse_id() + else: + value = 'true' + return name, value + + def parse_node_id(self): + node_id = self.parse_id() + if self.lookahead.type == COLON: + self.consume() + port = self.parse_id() + if self.lookahead.type == COLON: + self.consume() + compass_pt = self.parse_id() + else: + compass_pt = None + else: + port = None + compass_pt = None + # XXX: we don't really care about port and compass point values when parsing xdot + return node_id + + def parse_id(self): + self.match(ID) + id = self.lookahead.text + self.consume() + return id + + def handle_graph(self, attrs): + pass + + def handle_node(self, id, attrs): + pass + + def handle_edge(self, src_id, dst_id, attrs): + pass + + +class XDotParser(DotParser): + + def __init__(self, xdotcode): + lexer = DotLexer(buf = xdotcode) + DotParser.__init__(self, lexer) + + self.nodes = [] + self.edges = [] + self.shapes = [] + self.node_by_name = {} + self.top_graph = True + self.subgraph_shapes = {} + + def handle_graph(self, attrs): + if self.top_graph: + try: + bb = attrs['bb'] + except KeyError: + return + + if not bb: + return + + xmin, ymin, xmax, ymax = map(float, bb.split(",")) + + self.xoffset = -xmin + self.yoffset = -ymax + self.xscale = 1.0 + self.yscale = -1.0 + # FIXME: scale from points to pixels + + self.width = xmax - xmin + self.height = ymax - ymin + + self.top_graph = False + + for attr in ("_draw_", "_ldraw_", "_hdraw_", "_tdraw_", "_hldraw_", "_tldraw_"): + if attr in attrs: + parser = XDotAttrParser(self, attrs[attr]) + self.shapes.extend(parser.parse()) + + def handle_node(self, id, attrs): + try: + pos = attrs['pos'] + except KeyError: + return + #print(attrs) + + x, y = self.parse_node_pos(pos) + w = float(attrs['width'])*72 + h = float(attrs['height'])*72 + shapes = [] + for attr in ("_draw_", "_ldraw_"): + if attr in attrs: + parser = XDotAttrParser(self, attrs[attr]) + shapes.extend(parser.parse()) + url = attrs.get('URL', None) + node = Node(x, y, w, h, shapes, url) + self.node_by_name[id] = node + if shapes: + self.nodes.append(node) + + def handle_edge(self, src_id, dst_id, attrs): + try: + pos = attrs['pos'] + except KeyError: + return + + points = self.parse_edge_pos(pos) + shapes = [] + for attr in ("_draw_", "_ldraw_", "_hdraw_", "_tdraw_", "_hldraw_", "_tldraw_"): + if attr in attrs: + parser = XDotAttrParser(self, attrs[attr]) + shapes.extend(parser.parse()) + url = attrs.get('URL', None) + if shapes: + src = self.node_by_name[src_id] + dst = self.node_by_name[dst_id] + self.edges.append(Edge(src, dst, points, shapes, url)) + + def parse(self): + DotParser.parse(self) + + """ + for k,shapes in self.subgraph_shapes.iteritems(): + self.shapes += shapes + """ + + return Graph(self.width, self.height, self.shapes, self.nodes, self.edges, self.subgraph_shapes) + + def parse_node_pos(self, pos): + x, y = pos.split(",") + return self.transform(float(x), float(y)) + + def parse_edge_pos(self, pos): + points = [] + for entry in pos.split(' '): + fields = entry.split(',') + try: + x, y = fields + except ValueError: + # TODO: handle start/end points + #AB Handle data like like e,40,50 here + continue + else: + points.append(self.transform(float(x), float(y))) + return points + + def transform(self, x, y): + # XXX: this is not the right place for this code + x = (x + self.xoffset)*self.xscale + y = (y + self.yoffset)*self.yscale + return x, y + + +#-------------------------------------------------------------------------------------------------------------------------------------------------------------------- +class Animation(object): + + step = 0.03 # seconds + + def __init__(self, dot_widget): + self.dot_widget = dot_widget + self.timeout_id = None + + def start(self): + self.timeout_id = QTimer(); + #self.dot_widget.connect(self.timeout_id, SIGNAL('timeout()'), self.tick) + self.timeout_id.start(int(self.step * 1000)) + + def stop(self): + self.dot_widget.animation = NoAnimation(self.dot_widget) + if self.timeout_id is not None: + self.timeout_id.stop() + self.timeout_id = None + + def tick(self): + self.stop() + + +class NoAnimation(Animation): + + def start(self): + pass + + def stop(self): + pass + + +class LinearAnimation(Animation): + + duration = 0.6 + + def start(self): + self.started = time.time() + Animation.start(self) + + def tick(self): + t = (time.time() - self.started) / self.duration + self.animate(max(0, min(t, 1))) +# return (t < 1) #AB returning False stops the timer + if t >= 1: #AB + self.timeout_id.stop() #AB + + def animate(self, t): + pass + + +class MoveToAnimation(LinearAnimation): + + def __init__(self, dot_widget, target_x, target_y): + Animation.__init__(self, dot_widget) + self.source_x = dot_widget.x + self.source_y = dot_widget.y + self.target_x = target_x + self.target_y = target_y + + def animate(self, t): + sx, sy = self.source_x, self.source_y + tx, ty = self.target_x, self.target_y + self.dot_widget.x = tx * t + sx * (1-t) + self.dot_widget.y = ty * t + sy * (1-t) + self.dot_widget.update() + +class ZoomToAnimation(MoveToAnimation): + + def __init__(self, dot_widget, target_x, target_y): + MoveToAnimation.__init__(self, dot_widget, target_x, target_y) + self.source_zoom = dot_widget.zoom_ratio + self.target_zoom = self.source_zoom + self.extra_zoom = 0 + + middle_zoom = 0.5 * (self.source_zoom + self.target_zoom) + + distance = math.hypot(self.source_x - self.target_x, + self.source_y - self.target_y) +# rect = self.dot_widget.get_allocation() + rect = self.dot_widget.rect() +# visible = min(rect.width, rect.height) / self.dot_widget.zoom_ratio + visible = min(rect.width(), rect.height()) / self.dot_widget.zoom_ratio + visible *= 0.9 + if distance > 0: + desired_middle_zoom = visible / distance + self.extra_zoom = min(0, 4 * (desired_middle_zoom - middle_zoom)) + + def animate(self, t): + a, b, c = self.source_zoom, self.extra_zoom, self.target_zoom + self.dot_widget.zoom_ratio = c*t + b*t*(1-t) + a*(1-t) + self.dot_widget.zoom_to_fit_on_resize = False + MoveToAnimation.animate(self, t) + +#-------------------------------------------------------------------------------------------------------------------------------------------------------------------- +class DragAction(object): + + def __init__(self, dot_widget): + self.dot_widget = dot_widget + + def on_button_press(self, event): +# self.startmousex = self.prevmousex = event.x + self.startmousex = self.prevmousex = event.x() + self.startmousey = self.prevmousey = event.y() + self.start() + + def on_motion_notify(self, event): + deltax = self.prevmousex - event.x() + deltay = self.prevmousey - event.y() + self.drag(deltax, deltay) + self.prevmousex = event.x() + self.prevmousey = event.y() + + def on_button_release(self, event): + self.stopmousex = event.x() + self.stopmousey = event.y() + self.stop() + + def draw(self, cr): + pass + + def start(self): + pass + + def drag(self, deltax, deltay): + pass + + def stop(self): + pass + + def abort(self): + pass + + +class NullAction(DragAction): + + def on_motion_notify(self, event): + x, y = event.x(), event.y() + + dot_widget = self.dot_widget + item = dot_widget.get_url(x, y) + if item is None: + item = dot_widget.get_jump(x, y) + if item is not None: + dot_widget.setCursor(Qt.PointingHandCursor) + dot_widget.set_highlight(item.highlight) + else: + dot_widget.setCursor(Qt.ArrowCursor) + dot_widget.set_highlight(None) + + +class PanAction(DragAction): + + def start(self): + self.dot_widget.setCursor(Qt.ClosedHandCursor) + + def drag(self, deltax, deltay): + self.dot_widget.x += deltax / self.dot_widget.zoom_ratio + self.dot_widget.y += deltay / self.dot_widget.zoom_ratio + self.dot_widget.update() + + def stop(self): + self.dot_widget.cursor().setShape(Qt.ArrowCursor) + + abort = stop + + +class ZoomAction(DragAction): + + def drag(self, deltax, deltay): + self.dot_widget.zoom_ratio *= 1.005 ** (deltax + deltay) + self.dot_widget.zoom_to_fit_on_resize = False + self.dot_widget.update() + +def stop(self): + self.dot_widget.update() + + +class ZoomAreaAction(DragAction): + + def drag(self, deltax, deltay): + self.dot_widget.update() + + def draw(self, painter): + #TODO: implement this for qt + print "ERROR: UNIMPLEMENTED ZoomAreaAction.draw" + return + painter.save() + painter.set_source_rgba(.5, .5, 1.0, 0.25) + painter.rectangle(self.startmousex, self.startmousey, + self.prevmousex - self.startmousex, + self.prevmousey - self.startmousey) + painter.fill() + painter.set_source_rgba(.5, .5, 1.0, 1.0) + painter.set_line_width(1) + painter.rectangle(self.startmousex - .5, self.startmousey - .5, + self.prevmousex - self.startmousex + 1, + self.prevmousey - self.startmousey + 1) + painter.stroke() + painter.restore() + + def stop(self): + x1, y1 = self.dot_widget.window_to_graph(self.startmousex, + self.startmousey) + x2, y2 = self.dot_widget.window_to_graph(self.stopmousex, + self.stopmousey) + self.dot_widget.zoom_to_area(x1, y1, x2, y2) + + def abort(self): + self.dot_widget.update() +#-------------------------------------------------------------------------------------------------------------------------------------------------------------------- +class DotWidget(QWidget): +#class DotWidget(gtk.DrawingArea): + """Qt widget that draws dot graphs.""" + + filter = 'dot' + + def __init__(self, parent=None): + super(DotWidget, self).__init__(parent) + self.graph = Graph() + self.openfilename = None + +# self.set_flags(gtk.CAN_FOCUS) +# self.add_events(gtk.gdk.BUTTON_PRESS_MASK | gtk.gdk.BUTTON_RELEASE_MASK) +# self.connect("button-press-event", self.on_area_button_press) +# self.connect("button-release-event", self.on_area_button_release) +# self.add_events(gtk.gdk.POINTER_MOTION_MASK | gtk.gdk.POINTER_MOTION_HINT_MASK | gtk.gdk.BUTTON_RELEASE_MASK) +# self.connect("motion-notify-event", self.on_area_motion_notify) +# self.connect("scroll-event", self.on_area_scroll_event) +# self.connect("size-allocate", self.on_area_size_allocate) +# self.connect('key-press-event', self.on_key_press_event) + + self.x, self.y = 0.0, 0.0 + self.zoom_ratio = 1.0 + self.zoom_to_fit_on_resize = False + self.animation = NoAnimation(self) + self.drag_action = NullAction(self) + self.presstime = None + self.highlight = None + + # Callback register + self.select_cbs = [] + self.dc = None + self.ctx = None + self.items_by_url = {} + + self.setMouseTracking (True) # track all mouse events + + ZOOM_INCREMENT = 1.25 + ZOOM_TO_FIT_MARGIN = 12 + POS_INCREMENT = 100 + + ### User callbacks + def register_select_callback(self, cb): + self.select_cbs.append(cb) + + def set_filter(self, filter): + self.filter = filter + + def set_dotcode(self, dotcode, filename='',center=True): + if isinstance(dotcode, unicode): + dotcode = dotcode.encode('utf8') + p = subprocess.Popen( + [self.filter, '-Txdot'], + stdin=subprocess.PIPE, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + shell=False, + universal_newlines=True + ) + xdotcode, error = p.communicate(dotcode) + if p.returncode != 0: + print "UNABLE TO SHELL TO DOT", error +# dialog = gtk.MessageDialog(type=gtk.MESSAGE_ERROR, +# message_format=error, +# buttons=gtk.BUTTONS_OK) +# dialog.set_title('Dot Viewer') +# dialog.run() +# dialog.destroy() + return False + try: + self.set_xdotcode(xdotcode,center) + + # Store references to all the items + self.items_by_url = {} + for item in self.graph.nodes + self.graph.edges: + if item.url is not None: + self.items_by_url[item.url] = item + + # Store references to subgraph states + self.subgraph_shapes = self.graph.subgraph_shapes + + except ParseError, ex: +# dialog = gtk.MessageDialog(type=gtk.MESSAGE_ERROR, +# message_format=str(ex), +# buttons=gtk.BUTTONS_OK) +# dialog.set_title('Dot Viewer') +# dialog.run() +# dialog.destroy() + return False + else: + self.openfilename = filename + return True + + def set_xdotcode(self, xdotcode, center=True): + #print xdotcode + parser = XDotParser(xdotcode) + self.graph = parser.parse() + self.zoom_image(self.zoom_ratio)#, center=center) + + def reload(self): + if self.openfilename is not None: + try: + fp = open(str(self.openfilename), "rb") + self.set_dotcode(fp.read(), self.openfilename) + fp.close() + except IOError: + pass + + def paintEvent (self, event=None): +# def do_expose_event(self, event): +# cr = self.window.cairo_create() + painter = QPainter (self) + painter.setRenderHint(QPainter.Antialiasing) + painter.setRenderHint(QPainter.TextAntialiasing) + painter.setRenderHint(QPainter.HighQualityAntialiasing) + + # set a clip region for the expose event +# cr.rectangle( +# event.area.x, event.area.y, +# event.area.width, event.area.height +# ) +# cr.clip() +# +# cr.set_source_rgba(1.0, 1.0, 1.0, 1.0) +# cr.paint() + + painter.setClipping(True) + painter.setClipRect(self.rect()) + painter.setBackground(QBrush(Qt.blue,Qt.SolidPattern)) + painter.save() + +# rect = self.get_allocation() + rect = self.rect() # JRB was self.rect() +# cr.translate(0.5*rect.width, 0.5*rect.height) + painter.translate(0.5*rect.width(), 0.5*rect.height()) + painter.scale(self.zoom_ratio, self.zoom_ratio) + painter.translate(-self.x, -self.y) + + self.graph.draw(painter, highlight_items=self.highlight) + painter.restore() + + self.drag_action.draw(painter) + + + def get_current_pos(self): + return self.x, self.y + +#AB This function is not used + def set_current_pos(self, x, y): + self.x = x + self.y = y + self.update() + + def set_highlight(self, items): + if self.highlight != items: + self.highlight = items + self.update() + + def zoom_image(self, zoom_ratio, center=False, pos=None): + if center: + self.x = self.graph.width/2 + self.y = self.graph.height/2 + elif pos is not None: +# rect = self.get_allocation() + rect = self.rect() + x, y = pos +# x -= 0.5*rect.width + x -= 0.5*rect.width() +# y -= 0.5*rect.height + y -= 0.5*rect.height() + self.x += x / self.zoom_ratio - x / zoom_ratio + self.y += y / self.zoom_ratio - y / zoom_ratio + self.zoom_ratio = zoom_ratio + self.zoom_to_fit_on_resize = False + self.update() + + def zoom_to_area(self, x1, y1, x2, y2): +# rect = self.get_allocation() + rect = self.rect() + width = abs(x1 - x2) + height = abs(y1 - y2) + self.zoom_ratio = min( + float(rect.width())/float(width), + float(rect.height())/float(height) + ) + self.zoom_to_fit_on_resize = False + self.x = (x1 + x2) / 2 + self.y = (y1 + y2) / 2 + self.update() + + def zoom_to_fit(self): +# rect = self.get_allocation() + rect = self.rect() +# rect.x += self.ZOOM_TO_FIT_MARGIN + rect.setX (rect.x() + self.ZOOM_TO_FIT_MARGIN) +# rect.y += self.ZOOM_TO_FIT_MARGIN + rect.setY (rect.y() + self.ZOOM_TO_FIT_MARGIN) +# rect.width -= 2 * self.ZOOM_TO_FIT_MARGIN + rect.setWidth(rect.width() - 2 * self.ZOOM_TO_FIT_MARGIN) +# rect.height -= 2 * self.ZOOM_TO_FIT_MARGIN + rect.setHeight(rect.height() - 2 * self.ZOOM_TO_FIT_MARGIN) + zoom_ratio = min( +# float(rect.width)/float(self.graph.width), + float(rect.width())/float(self.graph.width), +# float(rect.height)/float(self.graph.height) + float(rect.height())/float(self.graph.height) + ) + self.zoom_image(zoom_ratio, center=True) + self.zoom_to_fit_on_resize = True + + def on_zoom_in(self): +# def on_zoom_in(self, action): + self.zoom_image(self.zoom_ratio * self.ZOOM_INCREMENT) + + def on_zoom_out(self): +# def on_zoom_out(self, action): + self.zoom_image(self.zoom_ratio / self.ZOOM_INCREMENT) + + def on_zoom_fit(self): +# def on_zoom_fit(self, action): + self.zoom_to_fit() + + def on_zoom_100(self): +# def on_zoom_100(self, action): + self.zoom_image(1.0) + + def keyPressEvent(self, event): + self.animation.stop() + self.drag_action.abort() + if event.key() == Qt.Key_Left: + self.x -= self.POS_INCREMENT/self.zoom_ratio + self.update() + elif event.key() == Qt.Key_Right: + self.x += self.POS_INCREMENT/self.zoom_ratio + self.update() + elif event.key() == Qt.Key_Up: + self.y -= self.POS_INCREMENT/self.zoom_ratio + self.update() + elif event.key() == Qt.Key_Down: + self.y += self.POS_INCREMENT/self.zoom_ratio + self.update() + elif event.key() == Qt.Key_PageUp: + self.zoom_image(self.zoom_ratio * self.ZOOM_INCREMENT) + self.update() + elif event.key() == Qt.Key_PageDown: + self.zoom_image(self.zoom_ratio / self.ZOOM_INCREMENT) + self.update() + elif event.key() == Qt.Key_PageUp: + self.drag_action.abort() + self.drag_action = NullAction(self) + elif event.key() == Qt.Key_R: + self.reload() + elif event.key() == Qt.Key_F: + self.zoom_to_fit() + event.accept() + + def get_drag_action(self, event): + modifiers = event.modifiers() + if event.button() in (Qt.LeftButton, Qt.MidButton): + if modifiers & Qt.ControlModifier: + return ZoomAction + elif modifiers & Qt.ShiftModifier: + return ZoomAreaAction + else: + return PanAction + return NullAction + + def mousePressEvent(self, event): + self.animation.stop() + self.drag_action.abort() + + for cb in self.select_cbs: + cb(event) + + action_type = self.get_drag_action(event) + self.drag_action = action_type(self) + self.drag_action.on_button_press(event) + + self.presstime = time.time() + self.pressx = event.x() + self.pressy = event.y() + event.accept() + + def is_click(self, event, click_fuzz=4, click_timeout=1.0): + if self.presstime is None: + # got a button release without seeing the press? + return False + # XXX instead of doing this complicated logic, shouldn't we listen + # for gtk's clicked event instead? + deltax = self.pressx - event.x() + deltay = self.pressy - event.y() + return (time.time() < self.presstime + click_timeout + and math.hypot(deltax, deltay) < click_fuzz) + + def mouseReleaseEvent(self, event): + self.drag_action.on_button_release(event) + self.drag_action = NullAction(self) + if event.button() == Qt.LeftButton and self.is_click(event): + x, y = event.x(), event.y() + url = self.get_url(x, y) + #print(url) + if url is not None: + #self.emit(SIGNAL("clicked"), unicode(url.url), event) + pass + else: + #self.emit(SIGNAL("clicked"), 'none', event) + jump = self.get_jump(x, y) + if jump is not None: + self.animate_to(jump.x, jump.y) + + event.accept() + return + if event.button() == Qt.RightButton and self.is_click(event): + x, y = event.x(), event.y() + url = self.get_url(x, y) + if url is not None: + #self.emit(SIGNAL("right_clicked"), unicode(url.url), event) + pass + else: + #self.emit(SIGNAL("right_clicked"), 'none', event) + pass + jump = self.get_jump(x, y) + if jump is not None: + self.animate_to(jump.x, jump.y) + + if event.button() in (Qt.LeftButton, Qt.MidButton): + event.accept() + return + + def on_area_scroll_event(self, area, event): + return False + + def wheelEvent(self, event): + if event.angleDelta().y() > 0: + self.zoom_image(self.zoom_ratio * self.ZOOM_INCREMENT, + pos=(event.x(), event.y())) + if event.angleDelta().y() < 0: + self.zoom_image(self.zoom_ratio / self.ZOOM_INCREMENT, + pos=(event.x(), event.y())) + + def mouseMoveEvent(self, event): + self.drag_action.on_motion_notify(event) + self.setFocus() + for cb in self.select_cbs: + cb(event) + + def on_area_size_allocate(self, area, allocation): + if self.zoom_to_fit_on_resize: + self.zoom_to_fit() + + def animate_to(self, x, y): + self.animation = ZoomToAnimation(self, x, y) + self.animation.start() + + def window_to_graph(self, x, y): +# rect = self.get_allocation() + rect = self.rect() + x -= 0.5*rect.width() + y -= 0.5*rect.height() + x /= self.zoom_ratio + y /= self.zoom_ratio + x += self.x + y += self.y + return x, y + + def get_url(self, x, y): + x, y = self.window_to_graph(x, y) + return self.graph.get_url(x, y) + + def get_jump(self, x, y): + x, y = self.window_to_graph(x, y) + return self.graph.get_jump(x, y) + + +#-------------------------------------------------------------------------------------------------------------------------------------------------------------------- +#class DotWindow(gtk.Window): +class DotWindow(QMainWindow): + + def __init__(self): + super(DotWindow, self).__init__(None) + self.graph = Graph() + self.setWindowTitle(QApplication.applicationName()) + self.widget = DotWidget() + self.widget.setContextMenuPolicy(Qt.ActionsContextMenu) + self.setCentralWidget(self.widget) + + palette = QPalette () + palette.setColor(QPalette.Background, Qt.white) + self.setPalette(palette) + + self.filename = None + + file_open_action = self.create_action("&Open...", self.on_open, + QKeySequence.Open, "fileopen", "Open an existing dot file") + file_reload_action = self.create_action("&Refresh", self.on_reload, + QKeySequence.Refresh, "view-refresh", "Reload opened dot file") + zoom_in_action = self.create_action("Zoom In", self.widget.on_zoom_in, + QKeySequence.ZoomIn, "zoom-in", "Zoom in") + zoom_out_action = self.create_action("Zoom Out", self.widget.on_zoom_out, + QKeySequence.ZoomIn, "zoom-out", "Zoom Out") + zoom_fit_action = self.create_action("Zoom Fit", self.widget.on_zoom_fit, + None, "zoom-fit-best", "Zoom Fit") + zoom_100_action = self.create_action("Zoom 100%", self.widget.on_zoom_100, + None, "zoom-original", "Zoom 100%") + + self.file_menu = self.menuBar().addMenu("&File") + self.file_menu_actions = (file_open_action, file_reload_action) + self.connect(self.file_menu, SIGNAL("aboutToShow()"), self.update_file_menu) + + file_toolbar = self.addToolBar("File") + file_toolbar.setObjectName("FileToolBar") + self.add_actions(file_toolbar, (file_open_action, file_reload_action)) + + fileToolbar = self.addToolBar("Zoom") + fileToolbar.setObjectName("ZoomToolBar") + self.add_actions(fileToolbar, (zoom_in_action, zoom_out_action, zoom_fit_action, zoom_100_action)) + + settings = QSettings() + self.recent_files = settings.value("RecentFiles").toStringList() + size = settings.value("MainWindow/Size", QVariant(QSize(512, 512))).toSize() + self.resize(size) + position = settings.value("MainWindow/Position", QVariant(QPoint(0, 0))).toPoint() + self.move(position) + + self.restoreState(settings.value("MainWindow/State").toByteArray()) + self.update_file_menu() + + self.show() + + def create_action(self, text, slot=None, shortcut=None, icon=None, + tip=None, checkable=False, signal="triggered()"): + action = QAction(text, self) + if icon is not None: + action.setIcon(QIcon.fromTheme(icon)) + if shortcut is not None: + action.setShortcut(shortcut) + if tip is not None: + action.setToolTip(tip) + action.setStatusTip(tip) + if slot is not None: + self.connect(action, SIGNAL(signal), slot) + if checkable: + action.setCheckable(True) + return action + + def add_actions(self, target, actions): + for action in actions: + if action is None: + target.addSeparator() + else: + target.addAction(action) + + def update_file(self, filename): + import os + if not hasattr(self, "last_mtime"): + self.last_mtime = None + + current_mtime = os.stat(filename).st_mtime + if current_mtime != self.last_mtime: + self.last_mtime = current_mtime + self.open_file(filename) + + return True + + def set_filter(self, filter): + self.widget.set_filter(filter) + + def set_dotcode(self, dotcode, filename=''): + if self.widget.set_dotcode(dotcode, filename): + self.setWindowTitle(os.path.basename(filename) + ' - ' + QApplication.applicationName()) + self.widget.zoom_to_fit() + + def set_xdotcode(self, xdotcode, filename=''): + if self.widget.set_xdotcode(xdotcode): + self.setWindowTitle(os.path.basename(filename) + ' - ' + QApplication.applicationName()) + self.widget.zoom_to_fit() + + def open_file(self, filename=None): + if filename is None: + action = self.sender() + if isinstance(action, QAction): + filename = unicode(action.data().toString()) + else: + return + try: + fp = file(filename, 'rt') + self.set_dotcode(fp.read(), filename) + fp.close() + self.add_recent_file(filename) + except IOError, ex: + pass + + def on_open(self): + dir = os.path.dirname(self.filename) \ + if self.filename is not None else "." + formats = ["*.dot"] + filename = unicode(QFileDialog.getOpenFileName(self, + "Open dot File", dir, + "Dot files (%s)" % " ".join(formats))) + if filename: + self.open_file(filename) + + def on_reload(self): + self.widget.reload() + + def update_file_menu(self): + self.file_menu.clear() + self.add_actions(self.file_menu, self.file_menu_actions[:-1]) + current = QString(self.filename) \ + if self.filename is not None else None + recent_files = [] + for fname in self.recent_files: + if fname != current and QFile.exists(fname): + recent_files.append(fname) + if recent_files: + self.file_menu.addSeparator() + for i, fname in enumerate(recent_files): + action = QAction(QIcon(":/icon.png"), "&%d %s" % (i + 1, QFileInfo(fname).fileName()), self) + action.setData(QVariant(fname)) + self.connect(action, SIGNAL("triggered()"), self.open_file) + self.file_menu.addAction(action) + self.file_menu.addSeparator() + self.file_menu.addAction(self.file_menu_actions[-1]) + + def add_recent_file(self, filename): + if filename is None: + return + if not self.recent_files.contains(filename): + self.recent_files.prepend(QString(filename)) + while self.recent_files.count() > 14: + self.recent_files.takeLast() + +def closeEvent(self, event): + settings = QSettings() + filename = QVariant(QString(self.filename)) if self.filename is not None else QVariant() + settings.setValue("LastFile", filename) + recent_files = QVariant(self.recent_files) if self.recent_files else QVariant() + settings.setValue("RecentFiles", recent_files) + settings.setValue("MainWindow/Size", QVariant(self.size())) + + #AB It looks like PyQt 4.7.4 has a bug that results in both self.pos() and self.geometry() returning the same values + # see http://doc.qt.nokia.com/latest/application-windows.html#window-geometry for explanation of why they should be different + # The results is a small (5,24) shift of window on consequent start from previous position + #print (self.pos()) + #print (self.geometry()) + settings.setValue("MainWindow/Position", QVariant(self.pos())) + #settings.setValue("MainWindow/Geometry", QVariant(self.saveGeometry())) + settings.setValue("MainWindow/State", QVariant(self.saveState())) + +#-------------------------------------------------------------------------------------------------------------------------------------------------------------------- +def main(): + import optparse + + parser = optparse.OptionParser(usage='\n\t%prog [file]', version='%%prog %s' % __version__) + # This program can shell to different Graphviz filter processes specified by -f option + parser.add_option( + '-f', '--filter', + type='choice', choices=('dot', 'neato', 'twopi', 'circo', 'fdp'), + dest='filter', default='dot', + help='graphviz filter: dot, neato, twopi, circo, or fdp [default: %default]') + + (options, args) = parser.parse_args(sys.argv[1:]) + if len(args) > 1: + parser.error('incorrect number of arguments') + + app = QApplication(sys.argv) + app.setOrganizationName("RobotNV") + app.setOrganizationDomain("robotNV.com") + app.setApplicationName("Dot Viewer") + app.setWindowIcon(QIcon(":/icon.png")) + + win = DotWindow() + win.show() +# win.connect('destroy', gtk.main_quit) +# win.set_filter(options.filter) + if len(args) >= 1: + if args[0] == '-': + win.set_dotcode(sys.stdin.read()) + else: + win.open_file(args[0]) +# gobject.timeout_add(1000, win.update_file, args[0]) +# gtk.main() + sys.exit(app.exec_()) + + + + +# Apache-Style Software License for ColorBrewer software and ColorBrewer Color +# Schemes, Version 1.1 +# +# Copyright (c) 2002 Cynthia Brewer, Mark Harrower, and The Pennsylvania State +# University. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# 1. Redistributions as source code must retain the above copyright notice, +# this list of conditions and the following disclaimer. +# +# 2. The end-user documentation included with the redistribution, if any, +# must include the following acknowledgment: +# +# This product includes color specifications and designs developed by +# Cynthia Brewer (http://colorbrewer.org/). +# +# Alternately, this acknowledgment may appear in the software itself, if and +# wherever such third-party acknowledgments normally appear. +# +# 3. The name "ColorBrewer" must not be used to endorse or promote products +# derived from this software without prior written permission. For written +# permission, please contact Cynthia Brewer at cbrewer@psu.edu. +# +# 4. Products derived from this software may not be called "ColorBrewer", +# nor may "ColorBrewer" appear in their name, without prior written +# permission of Cynthia Brewer. +# +# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, +# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL CYNTHIA +# BREWER, MARK HARROWER, OR THE PENNSYLVANIA STATE UNIVERSITY BE LIABLE FOR ANY +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +brewer_colors = { + 'accent3': [(127, 201, 127), (190, 174, 212), (253, 192, 134)], + 'accent4': [(127, 201, 127), (190, 174, 212), (253, 192, 134), (255, 255, 153)], + 'accent5': [(127, 201, 127), (190, 174, 212), (253, 192, 134), (255, 255, 153), (56, 108, 176)], + 'accent6': [(127, 201, 127), (190, 174, 212), (253, 192, 134), (255, 255, 153), (56, 108, 176), (240, 2, 127)], + 'accent7': [(127, 201, 127), (190, 174, 212), (253, 192, 134), (255, 255, 153), (56, 108, 176), (240, 2, 127), (191, 91, 23)], + 'accent8': [(127, 201, 127), (190, 174, 212), (253, 192, 134), (255, 255, 153), (56, 108, 176), (240, 2, 127), (191, 91, 23), (102, 102, 102)], + 'blues3': [(222, 235, 247), (158, 202, 225), (49, 130, 189)], + 'blues4': [(239, 243, 255), (189, 215, 231), (107, 174, 214), (33, 113, 181)], + 'blues5': [(239, 243, 255), (189, 215, 231), (107, 174, 214), (49, 130, 189), (8, 81, 156)], + 'blues6': [(239, 243, 255), (198, 219, 239), (158, 202, 225), (107, 174, 214), (49, 130, 189), (8, 81, 156)], + 'blues7': [(239, 243, 255), (198, 219, 239), (158, 202, 225), (107, 174, 214), (66, 146, 198), (33, 113, 181), (8, 69, 148)], + 'blues8': [(247, 251, 255), (222, 235, 247), (198, 219, 239), (158, 202, 225), (107, 174, 214), (66, 146, 198), (33, 113, 181), (8, 69, 148)], + 'blues9': [(247, 251, 255), (222, 235, 247), (198, 219, 239), (158, 202, 225), (107, 174, 214), (66, 146, 198), (33, 113, 181), (8, 81, 156), (8, 48, 107)], + 'brbg10': [(84, 48, 5), (0, 60, 48), (140, 81, 10), (191, 129, 45), (223, 194, 125), (246, 232, 195), (199, 234, 229), (128, 205, 193), (53, 151, 143), (1, 102, 94)], + 'brbg11': [(84, 48, 5), (1, 102, 94), (0, 60, 48), (140, 81, 10), (191, 129, 45), (223, 194, 125), (246, 232, 195), (245, 245, 245), (199, 234, 229), (128, 205, 193), (53, 151, 143)], + 'brbg3': [(216, 179, 101), (245, 245, 245), (90, 180, 172)], + 'brbg4': [(166, 97, 26), (223, 194, 125), (128, 205, 193), (1, 133, 113)], + 'brbg5': [(166, 97, 26), (223, 194, 125), (245, 245, 245), (128, 205, 193), (1, 133, 113)], + 'brbg6': [(140, 81, 10), (216, 179, 101), (246, 232, 195), (199, 234, 229), (90, 180, 172), (1, 102, 94)], + 'brbg7': [(140, 81, 10), (216, 179, 101), (246, 232, 195), (245, 245, 245), (199, 234, 229), (90, 180, 172), (1, 102, 94)], + 'brbg8': [(140, 81, 10), (191, 129, 45), (223, 194, 125), (246, 232, 195), (199, 234, 229), (128, 205, 193), (53, 151, 143), (1, 102, 94)], + 'brbg9': [(140, 81, 10), (191, 129, 45), (223, 194, 125), (246, 232, 195), (245, 245, 245), (199, 234, 229), (128, 205, 193), (53, 151, 143), (1, 102, 94)], + 'bugn3': [(229, 245, 249), (153, 216, 201), (44, 162, 95)], + 'bugn4': [(237, 248, 251), (178, 226, 226), (102, 194, 164), (35, 139, 69)], + 'bugn5': [(237, 248, 251), (178, 226, 226), (102, 194, 164), (44, 162, 95), (0, 109, 44)], + 'bugn6': [(237, 248, 251), (204, 236, 230), (153, 216, 201), (102, 194, 164), (44, 162, 95), (0, 109, 44)], + 'bugn7': [(237, 248, 251), (204, 236, 230), (153, 216, 201), (102, 194, 164), (65, 174, 118), (35, 139, 69), (0, 88, 36)], + 'bugn8': [(247, 252, 253), (229, 245, 249), (204, 236, 230), (153, 216, 201), (102, 194, 164), (65, 174, 118), (35, 139, 69), (0, 88, 36)], + 'bugn9': [(247, 252, 253), (229, 245, 249), (204, 236, 230), (153, 216, 201), (102, 194, 164), (65, 174, 118), (35, 139, 69), (0, 109, 44), (0, 68, 27)], + 'bupu3': [(224, 236, 244), (158, 188, 218), (136, 86, 167)], + 'bupu4': [(237, 248, 251), (179, 205, 227), (140, 150, 198), (136, 65, 157)], + 'bupu5': [(237, 248, 251), (179, 205, 227), (140, 150, 198), (136, 86, 167), (129, 15, 124)], + 'bupu6': [(237, 248, 251), (191, 211, 230), (158, 188, 218), (140, 150, 198), (136, 86, 167), (129, 15, 124)], + 'bupu7': [(237, 248, 251), (191, 211, 230), (158, 188, 218), (140, 150, 198), (140, 107, 177), (136, 65, 157), (110, 1, 107)], + 'bupu8': [(247, 252, 253), (224, 236, 244), (191, 211, 230), (158, 188, 218), (140, 150, 198), (140, 107, 177), (136, 65, 157), (110, 1, 107)], + 'bupu9': [(247, 252, 253), (224, 236, 244), (191, 211, 230), (158, 188, 218), (140, 150, 198), (140, 107, 177), (136, 65, 157), (129, 15, 124), (77, 0, 75)], + 'dark23': [(27, 158, 119), (217, 95, 2), (117, 112, 179)], + 'dark24': [(27, 158, 119), (217, 95, 2), (117, 112, 179), (231, 41, 138)], + 'dark25': [(27, 158, 119), (217, 95, 2), (117, 112, 179), (231, 41, 138), (102, 166, 30)], + 'dark26': [(27, 158, 119), (217, 95, 2), (117, 112, 179), (231, 41, 138), (102, 166, 30), (230, 171, 2)], + 'dark27': [(27, 158, 119), (217, 95, 2), (117, 112, 179), (231, 41, 138), (102, 166, 30), (230, 171, 2), (166, 118, 29)], + 'dark28': [(27, 158, 119), (217, 95, 2), (117, 112, 179), (231, 41, 138), (102, 166, 30), (230, 171, 2), (166, 118, 29), (102, 102, 102)], + 'gnbu3': [(224, 243, 219), (168, 221, 181), (67, 162, 202)], + 'gnbu4': [(240, 249, 232), (186, 228, 188), (123, 204, 196), (43, 140, 190)], + 'gnbu5': [(240, 249, 232), (186, 228, 188), (123, 204, 196), (67, 162, 202), (8, 104, 172)], + 'gnbu6': [(240, 249, 232), (204, 235, 197), (168, 221, 181), (123, 204, 196), (67, 162, 202), (8, 104, 172)], + 'gnbu7': [(240, 249, 232), (204, 235, 197), (168, 221, 181), (123, 204, 196), (78, 179, 211), (43, 140, 190), (8, 88, 158)], + 'gnbu8': [(247, 252, 240), (224, 243, 219), (204, 235, 197), (168, 221, 181), (123, 204, 196), (78, 179, 211), (43, 140, 190), (8, 88, 158)], + 'gnbu9': [(247, 252, 240), (224, 243, 219), (204, 235, 197), (168, 221, 181), (123, 204, 196), (78, 179, 211), (43, 140, 190), (8, 104, 172), (8, 64, 129)], + 'greens3': [(229, 245, 224), (161, 217, 155), (49, 163, 84)], + 'greens4': [(237, 248, 233), (186, 228, 179), (116, 196, 118), (35, 139, 69)], + 'greens5': [(237, 248, 233), (186, 228, 179), (116, 196, 118), (49, 163, 84), (0, 109, 44)], + 'greens6': [(237, 248, 233), (199, 233, 192), (161, 217, 155), (116, 196, 118), (49, 163, 84), (0, 109, 44)], + 'greens7': [(237, 248, 233), (199, 233, 192), (161, 217, 155), (116, 196, 118), (65, 171, 93), (35, 139, 69), (0, 90, 50)], + 'greens8': [(247, 252, 245), (229, 245, 224), (199, 233, 192), (161, 217, 155), (116, 196, 118), (65, 171, 93), (35, 139, 69), (0, 90, 50)], + 'greens9': [(247, 252, 245), (229, 245, 224), (199, 233, 192), (161, 217, 155), (116, 196, 118), (65, 171, 93), (35, 139, 69), (0, 109, 44), (0, 68, 27)], + 'greys3': [(240, 240, 240), (189, 189, 189), (99, 99, 99)], + 'greys4': [(247, 247, 247), (204, 204, 204), (150, 150, 150), (82, 82, 82)], + 'greys5': [(247, 247, 247), (204, 204, 204), (150, 150, 150), (99, 99, 99), (37, 37, 37)], + 'greys6': [(247, 247, 247), (217, 217, 217), (189, 189, 189), (150, 150, 150), (99, 99, 99), (37, 37, 37)], + 'greys7': [(247, 247, 247), (217, 217, 217), (189, 189, 189), (150, 150, 150), (115, 115, 115), (82, 82, 82), (37, 37, 37)], + 'greys8': [(255, 255, 255), (240, 240, 240), (217, 217, 217), (189, 189, 189), (150, 150, 150), (115, 115, 115), (82, 82, 82), (37, 37, 37)], + 'greys9': [(255, 255, 255), (240, 240, 240), (217, 217, 217), (189, 189, 189), (150, 150, 150), (115, 115, 115), (82, 82, 82), (37, 37, 37), (0, 0, 0)], + 'oranges3': [(254, 230, 206), (253, 174, 107), (230, 85, 13)], + 'oranges4': [(254, 237, 222), (253, 190, 133), (253, 141, 60), (217, 71, 1)], + 'oranges5': [(254, 237, 222), (253, 190, 133), (253, 141, 60), (230, 85, 13), (166, 54, 3)], + 'oranges6': [(254, 237, 222), (253, 208, 162), (253, 174, 107), (253, 141, 60), (230, 85, 13), (166, 54, 3)], + 'oranges7': [(254, 237, 222), (253, 208, 162), (253, 174, 107), (253, 141, 60), (241, 105, 19), (217, 72, 1), (140, 45, 4)], + 'oranges8': [(255, 245, 235), (254, 230, 206), (253, 208, 162), (253, 174, 107), (253, 141, 60), (241, 105, 19), (217, 72, 1), (140, 45, 4)], + 'oranges9': [(255, 245, 235), (254, 230, 206), (253, 208, 162), (253, 174, 107), (253, 141, 60), (241, 105, 19), (217, 72, 1), (166, 54, 3), (127, 39, 4)], + 'orrd3': [(254, 232, 200), (253, 187, 132), (227, 74, 51)], + 'orrd4': [(254, 240, 217), (253, 204, 138), (252, 141, 89), (215, 48, 31)], + 'orrd5': [(254, 240, 217), (253, 204, 138), (252, 141, 89), (227, 74, 51), (179, 0, 0)], + 'orrd6': [(254, 240, 217), (253, 212, 158), (253, 187, 132), (252, 141, 89), (227, 74, 51), (179, 0, 0)], + 'orrd7': [(254, 240, 217), (253, 212, 158), (253, 187, 132), (252, 141, 89), (239, 101, 72), (215, 48, 31), (153, 0, 0)], + 'orrd8': [(255, 247, 236), (254, 232, 200), (253, 212, 158), (253, 187, 132), (252, 141, 89), (239, 101, 72), (215, 48, 31), (153, 0, 0)], + 'orrd9': [(255, 247, 236), (254, 232, 200), (253, 212, 158), (253, 187, 132), (252, 141, 89), (239, 101, 72), (215, 48, 31), (179, 0, 0), (127, 0, 0)], + 'paired10': [(166, 206, 227), (106, 61, 154), (31, 120, 180), (178, 223, 138), (51, 160, 44), (251, 154, 153), (227, 26, 28), (253, 191, 111), (255, 127, 0), (202, 178, 214)], + 'paired11': [(166, 206, 227), (106, 61, 154), (255, 255, 153), (31, 120, 180), (178, 223, 138), (51, 160, 44), (251, 154, 153), (227, 26, 28), (253, 191, 111), (255, 127, 0), (202, 178, 214)], + 'paired12': [(166, 206, 227), (106, 61, 154), (255, 255, 153), (177, 89, 40), (31, 120, 180), (178, 223, 138), (51, 160, 44), (251, 154, 153), (227, 26, 28), (253, 191, 111), (255, 127, 0), (202, 178, 214)], + 'paired3': [(166, 206, 227), (31, 120, 180), (178, 223, 138)], + 'paired4': [(166, 206, 227), (31, 120, 180), (178, 223, 138), (51, 160, 44)], + 'paired5': [(166, 206, 227), (31, 120, 180), (178, 223, 138), (51, 160, 44), (251, 154, 153)], + 'paired6': [(166, 206, 227), (31, 120, 180), (178, 223, 138), (51, 160, 44), (251, 154, 153), (227, 26, 28)], + 'paired7': [(166, 206, 227), (31, 120, 180), (178, 223, 138), (51, 160, 44), (251, 154, 153), (227, 26, 28), (253, 191, 111)], + 'paired8': [(166, 206, 227), (31, 120, 180), (178, 223, 138), (51, 160, 44), (251, 154, 153), (227, 26, 28), (253, 191, 111), (255, 127, 0)], + 'paired9': [(166, 206, 227), (31, 120, 180), (178, 223, 138), (51, 160, 44), (251, 154, 153), (227, 26, 28), (253, 191, 111), (255, 127, 0), (202, 178, 214)], + 'pastel13': [(251, 180, 174), (179, 205, 227), (204, 235, 197)], + 'pastel14': [(251, 180, 174), (179, 205, 227), (204, 235, 197), (222, 203, 228)], + 'pastel15': [(251, 180, 174), (179, 205, 227), (204, 235, 197), (222, 203, 228), (254, 217, 166)], + 'pastel16': [(251, 180, 174), (179, 205, 227), (204, 235, 197), (222, 203, 228), (254, 217, 166), (255, 255, 204)], + 'pastel17': [(251, 180, 174), (179, 205, 227), (204, 235, 197), (222, 203, 228), (254, 217, 166), (255, 255, 204), (229, 216, 189)], + 'pastel18': [(251, 180, 174), (179, 205, 227), (204, 235, 197), (222, 203, 228), (254, 217, 166), (255, 255, 204), (229, 216, 189), (253, 218, 236)], + 'pastel19': [(251, 180, 174), (179, 205, 227), (204, 235, 197), (222, 203, 228), (254, 217, 166), (255, 255, 204), (229, 216, 189), (253, 218, 236), (242, 242, 242)], + 'pastel23': [(179, 226, 205), (253, 205, 172), (203, 213, 232)], + 'pastel24': [(179, 226, 205), (253, 205, 172), (203, 213, 232), (244, 202, 228)], + 'pastel25': [(179, 226, 205), (253, 205, 172), (203, 213, 232), (244, 202, 228), (230, 245, 201)], + 'pastel26': [(179, 226, 205), (253, 205, 172), (203, 213, 232), (244, 202, 228), (230, 245, 201), (255, 242, 174)], + 'pastel27': [(179, 226, 205), (253, 205, 172), (203, 213, 232), (244, 202, 228), (230, 245, 201), (255, 242, 174), (241, 226, 204)], + 'pastel28': [(179, 226, 205), (253, 205, 172), (203, 213, 232), (244, 202, 228), (230, 245, 201), (255, 242, 174), (241, 226, 204), (204, 204, 204)], + 'piyg10': [(142, 1, 82), (39, 100, 25), (197, 27, 125), (222, 119, 174), (241, 182, 218), (253, 224, 239), (230, 245, 208), (184, 225, 134), (127, 188, 65), (77, 146, 33)], + 'piyg11': [(142, 1, 82), (77, 146, 33), (39, 100, 25), (197, 27, 125), (222, 119, 174), (241, 182, 218), (253, 224, 239), (247, 247, 247), (230, 245, 208), (184, 225, 134), (127, 188, 65)], + 'piyg3': [(233, 163, 201), (247, 247, 247), (161, 215, 106)], + 'piyg4': [(208, 28, 139), (241, 182, 218), (184, 225, 134), (77, 172, 38)], + 'piyg5': [(208, 28, 139), (241, 182, 218), (247, 247, 247), (184, 225, 134), (77, 172, 38)], + 'piyg6': [(197, 27, 125), (233, 163, 201), (253, 224, 239), (230, 245, 208), (161, 215, 106), (77, 146, 33)], + 'piyg7': [(197, 27, 125), (233, 163, 201), (253, 224, 239), (247, 247, 247), (230, 245, 208), (161, 215, 106), (77, 146, 33)], + 'piyg8': [(197, 27, 125), (222, 119, 174), (241, 182, 218), (253, 224, 239), (230, 245, 208), (184, 225, 134), (127, 188, 65), (77, 146, 33)], + 'piyg9': [(197, 27, 125), (222, 119, 174), (241, 182, 218), (253, 224, 239), (247, 247, 247), (230, 245, 208), (184, 225, 134), (127, 188, 65), (77, 146, 33)], + 'prgn10': [(64, 0, 75), (0, 68, 27), (118, 42, 131), (153, 112, 171), (194, 165, 207), (231, 212, 232), (217, 240, 211), (166, 219, 160), (90, 174, 97), (27, 120, 55)], + 'prgn11': [(64, 0, 75), (27, 120, 55), (0, 68, 27), (118, 42, 131), (153, 112, 171), (194, 165, 207), (231, 212, 232), (247, 247, 247), (217, 240, 211), (166, 219, 160), (90, 174, 97)], + 'prgn3': [(175, 141, 195), (247, 247, 247), (127, 191, 123)], + 'prgn4': [(123, 50, 148), (194, 165, 207), (166, 219, 160), (0, 136, 55)], + 'prgn5': [(123, 50, 148), (194, 165, 207), (247, 247, 247), (166, 219, 160), (0, 136, 55)], + 'prgn6': [(118, 42, 131), (175, 141, 195), (231, 212, 232), (217, 240, 211), (127, 191, 123), (27, 120, 55)], + 'prgn7': [(118, 42, 131), (175, 141, 195), (231, 212, 232), (247, 247, 247), (217, 240, 211), (127, 191, 123), (27, 120, 55)], + 'prgn8': [(118, 42, 131), (153, 112, 171), (194, 165, 207), (231, 212, 232), (217, 240, 211), (166, 219, 160), (90, 174, 97), (27, 120, 55)], + 'prgn9': [(118, 42, 131), (153, 112, 171), (194, 165, 207), (231, 212, 232), (247, 247, 247), (217, 240, 211), (166, 219, 160), (90, 174, 97), (27, 120, 55)], + 'pubu3': [(236, 231, 242), (166, 189, 219), (43, 140, 190)], + 'pubu4': [(241, 238, 246), (189, 201, 225), (116, 169, 207), (5, 112, 176)], + 'pubu5': [(241, 238, 246), (189, 201, 225), (116, 169, 207), (43, 140, 190), (4, 90, 141)], + 'pubu6': [(241, 238, 246), (208, 209, 230), (166, 189, 219), (116, 169, 207), (43, 140, 190), (4, 90, 141)], + 'pubu7': [(241, 238, 246), (208, 209, 230), (166, 189, 219), (116, 169, 207), (54, 144, 192), (5, 112, 176), (3, 78, 123)], + 'pubu8': [(255, 247, 251), (236, 231, 242), (208, 209, 230), (166, 189, 219), (116, 169, 207), (54, 144, 192), (5, 112, 176), (3, 78, 123)], + 'pubu9': [(255, 247, 251), (236, 231, 242), (208, 209, 230), (166, 189, 219), (116, 169, 207), (54, 144, 192), (5, 112, 176), (4, 90, 141), (2, 56, 88)], + 'pubugn3': [(236, 226, 240), (166, 189, 219), (28, 144, 153)], + 'pubugn4': [(246, 239, 247), (189, 201, 225), (103, 169, 207), (2, 129, 138)], + 'pubugn5': [(246, 239, 247), (189, 201, 225), (103, 169, 207), (28, 144, 153), (1, 108, 89)], + 'pubugn6': [(246, 239, 247), (208, 209, 230), (166, 189, 219), (103, 169, 207), (28, 144, 153), (1, 108, 89)], + 'pubugn7': [(246, 239, 247), (208, 209, 230), (166, 189, 219), (103, 169, 207), (54, 144, 192), (2, 129, 138), (1, 100, 80)], + 'pubugn8': [(255, 247, 251), (236, 226, 240), (208, 209, 230), (166, 189, 219), (103, 169, 207), (54, 144, 192), (2, 129, 138), (1, 100, 80)], + 'pubugn9': [(255, 247, 251), (236, 226, 240), (208, 209, 230), (166, 189, 219), (103, 169, 207), (54, 144, 192), (2, 129, 138), (1, 108, 89), (1, 70, 54)], + 'puor10': [(127, 59, 8), (45, 0, 75), (179, 88, 6), (224, 130, 20), (253, 184, 99), (254, 224, 182), (216, 218, 235), (178, 171, 210), (128, 115, 172), (84, 39, 136)], + 'puor11': [(127, 59, 8), (84, 39, 136), (45, 0, 75), (179, 88, 6), (224, 130, 20), (253, 184, 99), (254, 224, 182), (247, 247, 247), (216, 218, 235), (178, 171, 210), (128, 115, 172)], + 'puor3': [(241, 163, 64), (247, 247, 247), (153, 142, 195)], + 'puor4': [(230, 97, 1), (253, 184, 99), (178, 171, 210), (94, 60, 153)], + 'puor5': [(230, 97, 1), (253, 184, 99), (247, 247, 247), (178, 171, 210), (94, 60, 153)], + 'puor6': [(179, 88, 6), (241, 163, 64), (254, 224, 182), (216, 218, 235), (153, 142, 195), (84, 39, 136)], + 'puor7': [(179, 88, 6), (241, 163, 64), (254, 224, 182), (247, 247, 247), (216, 218, 235), (153, 142, 195), (84, 39, 136)], + 'puor8': [(179, 88, 6), (224, 130, 20), (253, 184, 99), (254, 224, 182), (216, 218, 235), (178, 171, 210), (128, 115, 172), (84, 39, 136)], + 'puor9': [(179, 88, 6), (224, 130, 20), (253, 184, 99), (254, 224, 182), (247, 247, 247), (216, 218, 235), (178, 171, 210), (128, 115, 172), (84, 39, 136)], + 'purd3': [(231, 225, 239), (201, 148, 199), (221, 28, 119)], + 'purd4': [(241, 238, 246), (215, 181, 216), (223, 101, 176), (206, 18, 86)], + 'purd5': [(241, 238, 246), (215, 181, 216), (223, 101, 176), (221, 28, 119), (152, 0, 67)], + 'purd6': [(241, 238, 246), (212, 185, 218), (201, 148, 199), (223, 101, 176), (221, 28, 119), (152, 0, 67)], + 'purd7': [(241, 238, 246), (212, 185, 218), (201, 148, 199), (223, 101, 176), (231, 41, 138), (206, 18, 86), (145, 0, 63)], + 'purd8': [(247, 244, 249), (231, 225, 239), (212, 185, 218), (201, 148, 199), (223, 101, 176), (231, 41, 138), (206, 18, 86), (145, 0, 63)], + 'purd9': [(247, 244, 249), (231, 225, 239), (212, 185, 218), (201, 148, 199), (223, 101, 176), (231, 41, 138), (206, 18, 86), (152, 0, 67), (103, 0, 31)], + 'purples3': [(239, 237, 245), (188, 189, 220), (117, 107, 177)], + 'purples4': [(242, 240, 247), (203, 201, 226), (158, 154, 200), (106, 81, 163)], + 'purples5': [(242, 240, 247), (203, 201, 226), (158, 154, 200), (117, 107, 177), (84, 39, 143)], + 'purples6': [(242, 240, 247), (218, 218, 235), (188, 189, 220), (158, 154, 200), (117, 107, 177), (84, 39, 143)], + 'purples7': [(242, 240, 247), (218, 218, 235), (188, 189, 220), (158, 154, 200), (128, 125, 186), (106, 81, 163), (74, 20, 134)], + 'purples8': [(252, 251, 253), (239, 237, 245), (218, 218, 235), (188, 189, 220), (158, 154, 200), (128, 125, 186), (106, 81, 163), (74, 20, 134)], + 'purples9': [(252, 251, 253), (239, 237, 245), (218, 218, 235), (188, 189, 220), (158, 154, 200), (128, 125, 186), (106, 81, 163), (84, 39, 143), (63, 0, 125)], + 'rdbu10': [(103, 0, 31), (5, 48, 97), (178, 24, 43), (214, 96, 77), (244, 165, 130), (253, 219, 199), (209, 229, 240), (146, 197, 222), (67, 147, 195), (33, 102, 172)], + 'rdbu11': [(103, 0, 31), (33, 102, 172), (5, 48, 97), (178, 24, 43), (214, 96, 77), (244, 165, 130), (253, 219, 199), (247, 247, 247), (209, 229, 240), (146, 197, 222), (67, 147, 195)], + 'rdbu3': [(239, 138, 98), (247, 247, 247), (103, 169, 207)], + 'rdbu4': [(202, 0, 32), (244, 165, 130), (146, 197, 222), (5, 113, 176)], + 'rdbu5': [(202, 0, 32), (244, 165, 130), (247, 247, 247), (146, 197, 222), (5, 113, 176)], + 'rdbu6': [(178, 24, 43), (239, 138, 98), (253, 219, 199), (209, 229, 240), (103, 169, 207), (33, 102, 172)], + 'rdbu7': [(178, 24, 43), (239, 138, 98), (253, 219, 199), (247, 247, 247), (209, 229, 240), (103, 169, 207), (33, 102, 172)], + 'rdbu8': [(178, 24, 43), (214, 96, 77), (244, 165, 130), (253, 219, 199), (209, 229, 240), (146, 197, 222), (67, 147, 195), (33, 102, 172)], + 'rdbu9': [(178, 24, 43), (214, 96, 77), (244, 165, 130), (253, 219, 199), (247, 247, 247), (209, 229, 240), (146, 197, 222), (67, 147, 195), (33, 102, 172)], + 'rdgy10': [(103, 0, 31), (26, 26, 26), (178, 24, 43), (214, 96, 77), (244, 165, 130), (253, 219, 199), (224, 224, 224), (186, 186, 186), (135, 135, 135), (77, 77, 77)], + 'rdgy11': [(103, 0, 31), (77, 77, 77), (26, 26, 26), (178, 24, 43), (214, 96, 77), (244, 165, 130), (253, 219, 199), (255, 255, 255), (224, 224, 224), (186, 186, 186), (135, 135, 135)], + 'rdgy3': [(239, 138, 98), (255, 255, 255), (153, 153, 153)], + 'rdgy4': [(202, 0, 32), (244, 165, 130), (186, 186, 186), (64, 64, 64)], + 'rdgy5': [(202, 0, 32), (244, 165, 130), (255, 255, 255), (186, 186, 186), (64, 64, 64)], + 'rdgy6': [(178, 24, 43), (239, 138, 98), (253, 219, 199), (224, 224, 224), (153, 153, 153), (77, 77, 77)], + 'rdgy7': [(178, 24, 43), (239, 138, 98), (253, 219, 199), (255, 255, 255), (224, 224, 224), (153, 153, 153), (77, 77, 77)], + 'rdgy8': [(178, 24, 43), (214, 96, 77), (244, 165, 130), (253, 219, 199), (224, 224, 224), (186, 186, 186), (135, 135, 135), (77, 77, 77)], + 'rdgy9': [(178, 24, 43), (214, 96, 77), (244, 165, 130), (253, 219, 199), (255, 255, 255), (224, 224, 224), (186, 186, 186), (135, 135, 135), (77, 77, 77)], + 'rdpu3': [(253, 224, 221), (250, 159, 181), (197, 27, 138)], + 'rdpu4': [(254, 235, 226), (251, 180, 185), (247, 104, 161), (174, 1, 126)], + 'rdpu5': [(254, 235, 226), (251, 180, 185), (247, 104, 161), (197, 27, 138), (122, 1, 119)], + 'rdpu6': [(254, 235, 226), (252, 197, 192), (250, 159, 181), (247, 104, 161), (197, 27, 138), (122, 1, 119)], + 'rdpu7': [(254, 235, 226), (252, 197, 192), (250, 159, 181), (247, 104, 161), (221, 52, 151), (174, 1, 126), (122, 1, 119)], + 'rdpu8': [(255, 247, 243), (253, 224, 221), (252, 197, 192), (250, 159, 181), (247, 104, 161), (221, 52, 151), (174, 1, 126), (122, 1, 119)], + 'rdpu9': [(255, 247, 243), (253, 224, 221), (252, 197, 192), (250, 159, 181), (247, 104, 161), (221, 52, 151), (174, 1, 126), (122, 1, 119), (73, 0, 106)], + 'rdylbu10': [(165, 0, 38), (49, 54, 149), (215, 48, 39), (244, 109, 67), (253, 174, 97), (254, 224, 144), (224, 243, 248), (171, 217, 233), (116, 173, 209), (69, 117, 180)], + 'rdylbu11': [(165, 0, 38), (69, 117, 180), (49, 54, 149), (215, 48, 39), (244, 109, 67), (253, 174, 97), (254, 224, 144), (255, 255, 191), (224, 243, 248), (171, 217, 233), (116, 173, 209)], + 'rdylbu3': [(252, 141, 89), (255, 255, 191), (145, 191, 219)], + 'rdylbu4': [(215, 25, 28), (253, 174, 97), (171, 217, 233), (44, 123, 182)], + 'rdylbu5': [(215, 25, 28), (253, 174, 97), (255, 255, 191), (171, 217, 233), (44, 123, 182)], + 'rdylbu6': [(215, 48, 39), (252, 141, 89), (254, 224, 144), (224, 243, 248), (145, 191, 219), (69, 117, 180)], + 'rdylbu7': [(215, 48, 39), (252, 141, 89), (254, 224, 144), (255, 255, 191), (224, 243, 248), (145, 191, 219), (69, 117, 180)], + 'rdylbu8': [(215, 48, 39), (244, 109, 67), (253, 174, 97), (254, 224, 144), (224, 243, 248), (171, 217, 233), (116, 173, 209), (69, 117, 180)], + 'rdylbu9': [(215, 48, 39), (244, 109, 67), (253, 174, 97), (254, 224, 144), (255, 255, 191), (224, 243, 248), (171, 217, 233), (116, 173, 209), (69, 117, 180)], + 'rdylgn10': [(165, 0, 38), (0, 104, 55), (215, 48, 39), (244, 109, 67), (253, 174, 97), (254, 224, 139), (217, 239, 139), (166, 217, 106), (102, 189, 99), (26, 152, 80)], + 'rdylgn11': [(165, 0, 38), (26, 152, 80), (0, 104, 55), (215, 48, 39), (244, 109, 67), (253, 174, 97), (254, 224, 139), (255, 255, 191), (217, 239, 139), (166, 217, 106), (102, 189, 99)], + 'rdylgn3': [(252, 141, 89), (255, 255, 191), (145, 207, 96)], + 'rdylgn4': [(215, 25, 28), (253, 174, 97), (166, 217, 106), (26, 150, 65)], + 'rdylgn5': [(215, 25, 28), (253, 174, 97), (255, 255, 191), (166, 217, 106), (26, 150, 65)], + 'rdylgn6': [(215, 48, 39), (252, 141, 89), (254, 224, 139), (217, 239, 139), (145, 207, 96), (26, 152, 80)], + 'rdylgn7': [(215, 48, 39), (252, 141, 89), (254, 224, 139), (255, 255, 191), (217, 239, 139), (145, 207, 96), (26, 152, 80)], + 'rdylgn8': [(215, 48, 39), (244, 109, 67), (253, 174, 97), (254, 224, 139), (217, 239, 139), (166, 217, 106), (102, 189, 99), (26, 152, 80)], + 'rdylgn9': [(215, 48, 39), (244, 109, 67), (253, 174, 97), (254, 224, 139), (255, 255, 191), (217, 239, 139), (166, 217, 106), (102, 189, 99), (26, 152, 80)], + 'reds3': [(254, 224, 210), (252, 146, 114), (222, 45, 38)], + 'reds4': [(254, 229, 217), (252, 174, 145), (251, 106, 74), (203, 24, 29)], + 'reds5': [(254, 229, 217), (252, 174, 145), (251, 106, 74), (222, 45, 38), (165, 15, 21)], + 'reds6': [(254, 229, 217), (252, 187, 161), (252, 146, 114), (251, 106, 74), (222, 45, 38), (165, 15, 21)], + 'reds7': [(254, 229, 217), (252, 187, 161), (252, 146, 114), (251, 106, 74), (239, 59, 44), (203, 24, 29), (153, 0, 13)], + 'reds8': [(255, 245, 240), (254, 224, 210), (252, 187, 161), (252, 146, 114), (251, 106, 74), (239, 59, 44), (203, 24, 29), (153, 0, 13)], + 'reds9': [(255, 245, 240), (254, 224, 210), (252, 187, 161), (252, 146, 114), (251, 106, 74), (239, 59, 44), (203, 24, 29), (165, 15, 21), (103, 0, 13)], + 'set13': [(228, 26, 28), (55, 126, 184), (77, 175, 74)], + 'set14': [(228, 26, 28), (55, 126, 184), (77, 175, 74), (152, 78, 163)], + 'set15': [(228, 26, 28), (55, 126, 184), (77, 175, 74), (152, 78, 163), (255, 127, 0)], + 'set16': [(228, 26, 28), (55, 126, 184), (77, 175, 74), (152, 78, 163), (255, 127, 0), (255, 255, 51)], + 'set17': [(228, 26, 28), (55, 126, 184), (77, 175, 74), (152, 78, 163), (255, 127, 0), (255, 255, 51), (166, 86, 40)], + 'set18': [(228, 26, 28), (55, 126, 184), (77, 175, 74), (152, 78, 163), (255, 127, 0), (255, 255, 51), (166, 86, 40), (247, 129, 191)], + 'set19': [(228, 26, 28), (55, 126, 184), (77, 175, 74), (152, 78, 163), (255, 127, 0), (255, 255, 51), (166, 86, 40), (247, 129, 191), (153, 153, 153)], + 'set23': [(102, 194, 165), (252, 141, 98), (141, 160, 203)], + 'set24': [(102, 194, 165), (252, 141, 98), (141, 160, 203), (231, 138, 195)], + 'set25': [(102, 194, 165), (252, 141, 98), (141, 160, 203), (231, 138, 195), (166, 216, 84)], + 'set26': [(102, 194, 165), (252, 141, 98), (141, 160, 203), (231, 138, 195), (166, 216, 84), (255, 217, 47)], + 'set27': [(102, 194, 165), (252, 141, 98), (141, 160, 203), (231, 138, 195), (166, 216, 84), (255, 217, 47), (229, 196, 148)], + 'set28': [(102, 194, 165), (252, 141, 98), (141, 160, 203), (231, 138, 195), (166, 216, 84), (255, 217, 47), (229, 196, 148), (179, 179, 179)], + 'set310': [(141, 211, 199), (188, 128, 189), (255, 255, 179), (190, 186, 218), (251, 128, 114), (128, 177, 211), (253, 180, 98), (179, 222, 105), (252, 205, 229), (217, 217, 217)], + 'set311': [(141, 211, 199), (188, 128, 189), (204, 235, 197), (255, 255, 179), (190, 186, 218), (251, 128, 114), (128, 177, 211), (253, 180, 98), (179, 222, 105), (252, 205, 229), (217, 217, 217)], + 'set312': [(141, 211, 199), (188, 128, 189), (204, 235, 197), (255, 237, 111), (255, 255, 179), (190, 186, 218), (251, 128, 114), (128, 177, 211), (253, 180, 98), (179, 222, 105), (252, 205, 229), (217, 217, 217)], + 'set33': [(141, 211, 199), (255, 255, 179), (190, 186, 218)], + 'set34': [(141, 211, 199), (255, 255, 179), (190, 186, 218), (251, 128, 114)], + 'set35': [(141, 211, 199), (255, 255, 179), (190, 186, 218), (251, 128, 114), (128, 177, 211)], + 'set36': [(141, 211, 199), (255, 255, 179), (190, 186, 218), (251, 128, 114), (128, 177, 211), (253, 180, 98)], + 'set37': [(141, 211, 199), (255, 255, 179), (190, 186, 218), (251, 128, 114), (128, 177, 211), (253, 180, 98), (179, 222, 105)], + 'set38': [(141, 211, 199), (255, 255, 179), (190, 186, 218), (251, 128, 114), (128, 177, 211), (253, 180, 98), (179, 222, 105), (252, 205, 229)], + 'set39': [(141, 211, 199), (255, 255, 179), (190, 186, 218), (251, 128, 114), (128, 177, 211), (253, 180, 98), (179, 222, 105), (252, 205, 229), (217, 217, 217)], + 'spectral10': [(158, 1, 66), (94, 79, 162), (213, 62, 79), (244, 109, 67), (253, 174, 97), (254, 224, 139), (230, 245, 152), (171, 221, 164), (102, 194, 165), (50, 136, 189)], + 'spectral11': [(158, 1, 66), (50, 136, 189), (94, 79, 162), (213, 62, 79), (244, 109, 67), (253, 174, 97), (254, 224, 139), (255, 255, 191), (230, 245, 152), (171, 221, 164), (102, 194, 165)], + 'spectral3': [(252, 141, 89), (255, 255, 191), (153, 213, 148)], + 'spectral4': [(215, 25, 28), (253, 174, 97), (171, 221, 164), (43, 131, 186)], + 'spectral5': [(215, 25, 28), (253, 174, 97), (255, 255, 191), (171, 221, 164), (43, 131, 186)], + 'spectral6': [(213, 62, 79), (252, 141, 89), (254, 224, 139), (230, 245, 152), (153, 213, 148), (50, 136, 189)], + 'spectral7': [(213, 62, 79), (252, 141, 89), (254, 224, 139), (255, 255, 191), (230, 245, 152), (153, 213, 148), (50, 136, 189)], + 'spectral8': [(213, 62, 79), (244, 109, 67), (253, 174, 97), (254, 224, 139), (230, 245, 152), (171, 221, 164), (102, 194, 165), (50, 136, 189)], + 'spectral9': [(213, 62, 79), (244, 109, 67), (253, 174, 97), (254, 224, 139), (255, 255, 191), (230, 245, 152), (171, 221, 164), (102, 194, 165), (50, 136, 189)], + 'ylgn3': [(247, 252, 185), (173, 221, 142), (49, 163, 84)], + 'ylgn4': [(255, 255, 204), (194, 230, 153), (120, 198, 121), (35, 132, 67)], + 'ylgn5': [(255, 255, 204), (194, 230, 153), (120, 198, 121), (49, 163, 84), (0, 104, 55)], + 'ylgn6': [(255, 255, 204), (217, 240, 163), (173, 221, 142), (120, 198, 121), (49, 163, 84), (0, 104, 55)], + 'ylgn7': [(255, 255, 204), (217, 240, 163), (173, 221, 142), (120, 198, 121), (65, 171, 93), (35, 132, 67), (0, 90, 50)], + 'ylgn8': [(255, 255, 229), (247, 252, 185), (217, 240, 163), (173, 221, 142), (120, 198, 121), (65, 171, 93), (35, 132, 67), (0, 90, 50)], + 'ylgn9': [(255, 255, 229), (247, 252, 185), (217, 240, 163), (173, 221, 142), (120, 198, 121), (65, 171, 93), (35, 132, 67), (0, 104, 55), (0, 69, 41)], + 'ylgnbu3': [(237, 248, 177), (127, 205, 187), (44, 127, 184)], + 'ylgnbu4': [(255, 255, 204), (161, 218, 180), (65, 182, 196), (34, 94, 168)], + 'ylgnbu5': [(255, 255, 204), (161, 218, 180), (65, 182, 196), (44, 127, 184), (37, 52, 148)], + 'ylgnbu6': [(255, 255, 204), (199, 233, 180), (127, 205, 187), (65, 182, 196), (44, 127, 184), (37, 52, 148)], + 'ylgnbu7': [(255, 255, 204), (199, 233, 180), (127, 205, 187), (65, 182, 196), (29, 145, 192), (34, 94, 168), (12, 44, 132)], + 'ylgnbu8': [(255, 255, 217), (237, 248, 177), (199, 233, 180), (127, 205, 187), (65, 182, 196), (29, 145, 192), (34, 94, 168), (12, 44, 132)], + 'ylgnbu9': [(255, 255, 217), (237, 248, 177), (199, 233, 180), (127, 205, 187), (65, 182, 196), (29, 145, 192), (34, 94, 168), (37, 52, 148), (8, 29, 88)], + 'ylorbr3': [(255, 247, 188), (254, 196, 79), (217, 95, 14)], + 'ylorbr4': [(255, 255, 212), (254, 217, 142), (254, 153, 41), (204, 76, 2)], + 'ylorbr5': [(255, 255, 212), (254, 217, 142), (254, 153, 41), (217, 95, 14), (153, 52, 4)], + 'ylorbr6': [(255, 255, 212), (254, 227, 145), (254, 196, 79), (254, 153, 41), (217, 95, 14), (153, 52, 4)], + 'ylorbr7': [(255, 255, 212), (254, 227, 145), (254, 196, 79), (254, 153, 41), (236, 112, 20), (204, 76, 2), (140, 45, 4)], + 'ylorbr8': [(255, 255, 229), (255, 247, 188), (254, 227, 145), (254, 196, 79), (254, 153, 41), (236, 112, 20), (204, 76, 2), (140, 45, 4)], + 'ylorbr9': [(255, 255, 229), (255, 247, 188), (254, 227, 145), (254, 196, 79), (254, 153, 41), (236, 112, 20), (204, 76, 2), (153, 52, 4), (102, 37, 6)], + 'ylorrd3': [(255, 237, 160), (254, 178, 76), (240, 59, 32)], + 'ylorrd4': [(255, 255, 178), (254, 204, 92), (253, 141, 60), (227, 26, 28)], + 'ylorrd5': [(255, 255, 178), (254, 204, 92), (253, 141, 60), (240, 59, 32), (189, 0, 38)], + 'ylorrd6': [(255, 255, 178), (254, 217, 118), (254, 178, 76), (253, 141, 60), (240, 59, 32), (189, 0, 38)], + 'ylorrd7': [(255, 255, 178), (254, 217, 118), (254, 178, 76), (253, 141, 60), (252, 78, 42), (227, 26, 28), (177, 0, 38)], + 'ylorrd8': [(255, 255, 204), (255, 237, 160), (254, 217, 118), (254, 178, 76), (253, 141, 60), (252, 78, 42), (227, 26, 28), (177, 0, 38)], +} + + +if __name__ == '__main__': + main() diff --git a/ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface b/ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface new file mode 160000 index 000000000..412108889 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface @@ -0,0 +1 @@ +Subproject commit 4121088895b07300ad87b1b0aafbd8b5f6d8fbec diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller new file mode 160000 index 000000000..d5326a9e9 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller @@ -0,0 +1 @@ +Subproject commit d5326a9e964dfb2529e4a28eb6903850ffd44970 diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library new file mode 160000 index 000000000..ce399d491 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library @@ -0,0 +1 @@ +Subproject commit ce399d4910fa01d03a3928089b3e1b399f3bd197 diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs new file mode 160000 index 000000000..d6af587ac --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs @@ -0,0 +1 @@ +Subproject commit d6af587ac47e31a86675cbfd4df9407e28616a0e From 9a035efa42f727c8ade1be6608f06313df0dbefc Mon Sep 17 00:00:00 2001 From: Robbi Exley Date: Mon, 5 Aug 2024 15:26:38 -0400 Subject: [PATCH 08/50] make foldeer --- .../local/core_map_representation_interface | 1 - .../CMakeLists.txt | 28 ++++++ .../map_representation.h | 43 +++++++++ .../package.xml | 91 +++++++++++++++++++ 4 files changed, 162 insertions(+), 1 deletion(-) delete mode 160000 ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface create mode 100644 ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface/CMakeLists.txt create mode 100644 ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface/include/core_map_representation_interface/map_representation.h create mode 100644 ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface/package.xml diff --git a/ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface b/ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface deleted file mode 160000 index 412108889..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 4121088895b07300ad87b1b0aafbd8b5f6d8fbec diff --git a/ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface/CMakeLists.txt b/ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface/CMakeLists.txt new file mode 100644 index 000000000..71591d9ed --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface/CMakeLists.txt @@ -0,0 +1,28 @@ +cmake_minimum_required(VERSION 2.8.3) +project(core_map_representation_interface) + +find_package(catkin REQUIRED COMPONENTS + geometry_msgs + nav_msgs + roscpp + rospy + sensor_msgs + std_msgs + tf + visualization_msgs + pluginlib + core_trajectory_msgs +) + + +catkin_package( + INCLUDE_DIRS include +# LIBRARIES core_map_representation_interface + CATKIN_DEPENDS geometry_msgs nav_msgs roscpp rospy sensor_msgs std_msgs tf visualization_msgs core_trajectory_msgs +# DEPENDS system_lib +) + +include_directories( + include + ${catkin_INCLUDE_DIRS} +) diff --git a/ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface/include/core_map_representation_interface/map_representation.h b/ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface/include/core_map_representation_interface/map_representation.h new file mode 100644 index 000000000..6afbf40d7 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface/include/core_map_representation_interface/map_representation.h @@ -0,0 +1,43 @@ +#ifndef _CORE_MAP_REPRESENTATION_H_ +#define _CORE_MAP_REPRESENTATION_H_ + +#include +#include +#include +#include + +class MapRepresentation { +private: + +public: + + /** + Takes in a list of trajectories and outputs a value for each waypoint in each trajectory. + @return A vector of vectors containing values for each waypoint. There is a vector of vectors for each trajectory. There is a vector of doubles for each waypoint within a trajectory. + */ + virtual std::vector > get_values(std::vector > trajectories){//std::vector trajectories){ + ROS_ERROR("get_values CALLED BUT NOT IMPLEMENTED"); + + std::vector > values; + return values; + } + + /** + Clears the map. + */ + virtual void clear(){ + ROS_ERROR("clear CALLED BUT NOT IMPLEMENTED"); + } + + /** + Use this function to publish visualizations of the map that might be helpful for debugging. + */ + virtual void publish_debug(){} + + virtual ~MapRepresentation(){} + +protected: + MapRepresentation(){} +}; + +#endif diff --git a/ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface/package.xml b/ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface/package.xml new file mode 100644 index 000000000..9d90b9745 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface/package.xml @@ -0,0 +1,91 @@ + + + core_map_representation_interface + 0.0.0 + The core_map_representation_interface package + + + + + john + + + + + + TODO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + catkin + geometry_msgs + nav_msgs + roscpp + rospy + sensor_msgs + std_msgs + tf + visualization_msgs + pluginlib + core_trajectory_msgs + + geometry_msgs + nav_msgs + roscpp + rospy + sensor_msgs + std_msgs + tf + visualization_msgs + pluginlib + core_trajectory_msgs + + geometry_msgs + nav_msgs + roscpp + rospy + sensor_msgs + std_msgs + tf + visualization_msgs + pluginlib + core_trajectory_msgs + + + + + + + + From 033ebe1bdd8a6449bb0adbdee6e595f4e5c9cebe Mon Sep 17 00:00:00 2001 From: Robbi Exley Date: Mon, 5 Aug 2024 15:33:12 -0400 Subject: [PATCH 09/50] trajectory controller folder update --- .../planning/local/core_trajectory_controller | 1 - .../core_trajectory_controller/CMakeLists.txt | 209 ++++++++++++ .../launch/trajectory_controller.launch | 14 + .../launch/trajectory_controller_bag.launch | 11 + .../msg/Trajectory.msg | 1 + .../core_trajectory_controller/package.xml | 92 ++++++ .../src/tracking_point.py | 29 ++ .../src/trajectory_controller.cpp | 298 ++++++++++++++++++ .../srv/TrajectoryMode.srv | 9 + 9 files changed, 663 insertions(+), 1 deletion(-) delete mode 160000 ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller create mode 100755 ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/CMakeLists.txt create mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/launch/trajectory_controller.launch create mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/launch/trajectory_controller_bag.launch create mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/msg/Trajectory.msg create mode 100755 ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/package.xml create mode 100755 ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/src/tracking_point.py create mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/src/trajectory_controller.cpp create mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/srv/TrajectoryMode.srv diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller deleted file mode 160000 index d5326a9e9..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller +++ /dev/null @@ -1 +0,0 @@ -Subproject commit d5326a9e964dfb2529e4a28eb6903850ffd44970 diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/CMakeLists.txt b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/CMakeLists.txt new file mode 100755 index 000000000..7c4a73105 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/CMakeLists.txt @@ -0,0 +1,209 @@ +cmake_minimum_required(VERSION 2.8.3) +project(core_trajectory_controller) + +## Compile as C++11, supported in ROS Kinetic and newer +add_compile_options(-std=c++11) + +## Find catkin macros and libraries +## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz) +## is used, also find other catkin packages +find_package(catkin REQUIRED COMPONENTS + geometry_msgs + message_generation + nav_msgs + roscpp + rospy + sensor_msgs + std_msgs + tf + core_trajectory_library + tflib + core_trajectory_msgs +) + +find_package(base) + +## System dependencies are found with CMake's conventions +# find_package(Boost REQUIRED COMPONENTS system) + + +## Uncomment this if the package has a setup.py. This macro ensures +## modules and global scripts declared therein get installed +## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html +# catkin_python_setup() + +################################################ +## Declare ROS messages, services and actions ## +################################################ + +## To declare and build messages, services or actions from within this +## package, follow these steps: +## * Let MSG_DEP_SET be the set of packages whose message types you use in +## your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...). +## * In the file package.xml: +## * add a build_depend tag for "message_generation" +## * add a build_depend and a exec_depend tag for each package in MSG_DEP_SET +## * If MSG_DEP_SET isn't empty the following dependency has been pulled in +## but can be declared for certainty nonetheless: +## * add a exec_depend tag for "message_runtime" +## * In this file (CMakeLists.txt): +## * add "message_generation" and every package in MSG_DEP_SET to +## find_package(catkin REQUIRED COMPONENTS ...) +## * add "message_runtime" and every package in MSG_DEP_SET to +## catkin_package(CATKIN_DEPENDS ...) +## * uncomment the add_*_files sections below as needed +## and list every .msg/.srv/.action file to be processed +## * uncomment the generate_messages entry below +## * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...) + +## Generate messages in the 'msg' folder +add_message_files( + FILES + Trajectory.msg +) + +## Generate services in the 'srv' folder +add_service_files( + FILES + TrajectoryMode.srv +) + +## Generate actions in the 'action' folder +# add_action_files( +# FILES +# Action1.action +# Action2.action +# ) + +## Generate added messages and services with any dependencies listed here +generate_messages( + DEPENDENCIES + nav_msgs std_msgs +) + +################################################ +## Declare ROS dynamic reconfigure parameters ## +################################################ + +## To declare and build dynamic reconfigure parameters within this +## package, follow these steps: +## * In the file package.xml: +## * add a build_depend and a exec_depend tag for "dynamic_reconfigure" +## * In this file (CMakeLists.txt): +## * add "dynamic_reconfigure" to +## find_package(catkin REQUIRED COMPONENTS ...) +## * uncomment the "generate_dynamic_reconfigure_options" section below +## and list every .cfg file to be processed + +## Generate dynamic reconfigure parameters in the 'cfg' folder +# generate_dynamic_reconfigure_options( +# cfg/DynReconf1.cfg +# cfg/DynReconf2.cfg +# ) + +################################### +## catkin specific configuration ## +################################### +## The catkin_package macro generates cmake config files for your package +## Declare things to be passed to dependent projects +## INCLUDE_DIRS: uncomment this if your package contains header files +## LIBRARIES: libraries you create in this project that dependent projects also need +## CATKIN_DEPENDS: catkin_packages dependent projects also need +## DEPENDS: system dependencies of this project that dependent projects also need +catkin_package( +# INCLUDE_DIRS include +# LIBRARIES trajectory_controller +# CATKIN_DEPENDS ca_nav_msgs geometry_msgs message_generation nav_msgs roscpp rospy sensor_msgs std_msgs tf +# DEPENDS system_lib +) + +########### +## Build ## +########### + +## Specify additional locations of header files +## Your package locations should be listed before other locations +include_directories( + include + ${catkin_INCLUDE_DIRS} + ${base_INCLUDE_DIRS} +) + +## Declare a C++ library +# add_library(${PROJECT_NAME} +# src/${PROJECT_NAME}/trajectory_controller.cpp +# ) + +## Add cmake target dependencies of the library +## as an example, code may need to be generated before libraries +## either from message generation or dynamic reconfigure +# add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) + +## Declare a C++ executable +## With catkin_make all packages are built within a single CMake context +## The recommended prefix ensures that target names across packages don't collide +add_executable(trajectory_controller src/trajectory_controller.cpp) + +## Rename C++ executable without prefix +## The above recommended prefix causes long target names, the following renames the +## target back to the shorter version for ease of user use +## e.g. "rosrun someones_pkg node" instead of "rosrun someones_pkg someones_pkg_node" +# set_target_properties(${PROJECT_NAME}_node PROPERTIES OUTPUT_NAME node PREFIX "") + +## Add cmake target dependencies of the executable +## same as for the library above +add_dependencies(trajectory_controller ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) + +## Specify libraries to link a library or executable target against +target_link_libraries(trajectory_controller + ${catkin_LIBRARIES} + ${base_LIBRARIES} +) + +############# +## Install ## +############# + +# all install targets should use catkin DESTINATION variables +# See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html + +## Mark executable scripts (Python etc.) for installation +## in contrast to setup.py, you can choose the destination +# install(PROGRAMS +# scripts/my_python_script +# DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} +# ) + +## Mark executables and/or libraries for installation +# install(TARGETS ${PROJECT_NAME} ${PROJECT_NAME}_node +# ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} +# LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} +# RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} +# ) + +## Mark cpp header files for installation +# install(DIRECTORY include/${PROJECT_NAME}/ +# DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} +# FILES_MATCHING PATTERN "*.h" +# PATTERN ".svn" EXCLUDE +# ) + +## Mark other files for installation (e.g. launch and bag files, etc.) +# install(FILES +# # myfile1 +# # myfile2 +# DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} +# ) + +############# +## Testing ## +############# + +## Add gtest based cpp test target and link libraries +# catkin_add_gtest(${PROJECT_NAME}-test test/test_trajectory_controller.cpp) +# if(TARGET ${PROJECT_NAME}-test) +# target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME}) +# endif() + +## Add folders to be run by python nosetests +# catkin_add_nosetests(test) diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/launch/trajectory_controller.launch b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/launch/trajectory_controller.launch new file mode 100644 index 000000000..1aabcdd44 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/launch/trajectory_controller.launch @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/launch/trajectory_controller_bag.launch b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/launch/trajectory_controller_bag.launch new file mode 100644 index 000000000..d7493916f --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/launch/trajectory_controller_bag.launch @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/msg/Trajectory.msg b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/msg/Trajectory.msg new file mode 100644 index 000000000..f3e50baec --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/msg/Trajectory.msg @@ -0,0 +1 @@ +nav_msgs/Odometry[] trajectory \ No newline at end of file diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/package.xml b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/package.xml new file mode 100755 index 000000000..477a9892a --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/package.xml @@ -0,0 +1,92 @@ + + + core_trajectory_controller + 0.0.0 + The core_trajectory_controller package + + + + + john + + + + + + TODO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + catkin + geometry_msgs + message_generation + nav_msgs + roscpp + rospy + sensor_msgs + std_msgs + tf + core_trajectory_library + tflib + core_trajectory_msgs + + geometry_msgs + nav_msgs + roscpp + rospy + sensor_msgs + std_msgs + tf + core_trajectory_library + tflib + core_trajectory_msgs + + geometry_msgs + nav_msgs + roscpp + rospy + sensor_msgs + std_msgs + tf + message_runtime + core_trajectory_library + tflib + core_trajectory_msgs + + + + + + + diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/src/tracking_point.py b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/src/tracking_point.py new file mode 100755 index 000000000..e8a57f8e6 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/src/tracking_point.py @@ -0,0 +1,29 @@ +#!/usr/bin/python +import rospy +from nav_msgs.msg import Odometry +import numpy as np +from tf import transformations as trans + +if __name__ == '__main__': + rospy.init_node('tracking_point', anonymous=True) + + odom_pub = rospy.Publisher('/tracking_point', Odometry, queue_size=10) + odom = Odometry() + odom.header.frame_id = 'map' + odom.child_frame_id = 'base_link' + odom.pose.pose.position.x = 16. + odom.pose.pose.position.y = 5. + odom.pose.pose.position.z = 3. + + q = trans.quaternion_from_euler(0., 0., np.pi/2.) + + odom.pose.pose.orientation.x = q[0] + odom.pose.pose.orientation.y = q[1] + odom.pose.pose.orientation.z = q[2] + odom.pose.pose.orientation.w = q[3] + + rate = rospy.Rate(50.) + + while not rospy.is_shutdown(): + odom_pub.publish(odom) + rate.sleep() diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/src/trajectory_controller.cpp b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/src/trajectory_controller.cpp new file mode 100644 index 000000000..ca935eccd --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/src/trajectory_controller.cpp @@ -0,0 +1,298 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +//=================================================================================== +//----------------------------- Trajectory Control Node ----------------------------- +//=================================================================================== + +class TrajectoryControlNode : public BaseNode { +private: + ros::Subscriber traj_sub, traj_track_sub, odom_sub; + + ros::Publisher marker_vis_pub, segment_marker_vis_pub, tracking_point_pub, look_ahead_pub, + trajectory_completion_percentage_pub, trajectory_time_pub, segment_pub, tracking_error_pub, + velocity_pub; + tf::TransformBroadcaster* broadcaster; + tf::TransformListener* listener; + + ros::ServiceServer traj_style_srv, traj_mode_srv; + + nav_msgs::Odometry odom; + bool got_odom; + + + std::string tf_prefix; + std::string target_frame; + int trajectory_mode; + Trajectory* trajectory; + ros::Time start_time; + double prev_time; + nav_msgs::Odometry tracking_point, look_ahead_point; + double tracking_point_distance_limit; + double velocity_look_ahead_time; + +public: + TrajectoryControlNode(); + virtual bool initialize(); + virtual bool execute(); + virtual ~TrajectoryControlNode(); + + void traj_callback(core_trajectory_msgs::TrajectoryXYZVYaw traj); + void traj_track_callback(core_trajectory_msgs::TrajectoryXYZVYaw traj); + void odom_callback(nav_msgs::Odometry odom); + + bool set_trajectory_style_service(std_srvs::SetBool::Request& req, + std_srvs::SetBool::Response& res); + bool set_trajectory_mode(core_trajectory_controller::TrajectoryMode::Request& req, + core_trajectory_controller::TrajectoryMode::Response& res); + + std::string mode; + float velocity_target; +}; + +TrajectoryControlNode::TrajectoryControlNode() + : BaseNode("trajectory_control_node"){ +} + +bool TrajectoryControlNode::initialize(){ + ros::NodeHandle* nh = get_node_handle(); + ros::NodeHandle* pnh = get_private_node_handle(); + + // init params + tf_prefix = pnh->param("tf_prefix", std::string("")); + target_frame = pnh->param("target_frame", std::string("world")); + tracking_point_distance_limit = pnh->param("tracking_point_distance_limit", 0.5); + velocity_look_ahead_time = pnh->param("velocity_look_ahead_time", 0.0); + got_odom = false; + + trajectory_mode = core_trajectory_controller::TrajectoryMode::Request::ROBOT_POSE;//TRACK; + trajectory = new Trajectory(target_frame); + + // init subscribers + traj_sub = nh->subscribe("trajectory", 10, &TrajectoryControlNode::traj_callback, this); + traj_track_sub = nh->subscribe("trajectory_track", 10, &TrajectoryControlNode::traj_track_callback, this); + odom_sub = nh->subscribe("odometry", 10, &TrajectoryControlNode::odom_callback, this); + + // init publishers + segment_pub = nh->advertise("trajectory_segment", 10); + marker_vis_pub = nh->advertise("trajectory_vis", 10); + segment_marker_vis_pub = nh->advertise("trajectory_segment_vis", 10); + tracking_point_pub = nh->advertise("tracking_point", 10); + look_ahead_pub = nh->advertise("look_ahead", 10); + trajectory_completion_percentage_pub = nh->advertise("trajectory_completion_percentage", 10); + trajectory_time_pub = nh->advertise("trajectory_time", 10); + tracking_error_pub = nh->advertise("tracking_error", 10); + velocity_pub = nh->advertise("tracking_point_velocity_magnitude", 1); + broadcaster = new tf::TransformBroadcaster(); + listener = new tf::TransformListener(); + + // init services + traj_mode_srv = nh->advertiseService("set_trajectory_mode", + &TrajectoryControlNode::set_trajectory_mode, this); + + prev_time = 0; + + return true; +} + +bool TrajectoryControlNode::execute(){ + if(got_odom){ + // publish trajectory visualization + marker_vis_pub.publish(trajectory->get_markers(1, 1, 0)); + + // figure out what duration into the trajectory we are + ros::Time now = ros::Time::now(); + double current_time = (now - start_time).toSec(); + double time_past_end = current_time - trajectory->get_duration(); + + double tracking_error = tflib::to_tf(tracking_point.pose.pose.position).distance(tflib::to_tf(odom.pose.pose.position)); + std_msgs::Float32 tracking_error_msg; + tracking_error_msg.data = tracking_error; + tracking_error_pub.publish(tracking_error_msg); + + if(time_past_end >= 0 && trajectory_mode != core_trajectory_controller::TrajectoryMode::Request::REWIND){ + start_time += ros::Duration(time_past_end); + current_time = trajectory->get_duration(); + } + else if(trajectory_mode == core_trajectory_controller::TrajectoryMode::Request::PAUSE || + tracking_error >= tracking_point_distance_limit){ + start_time += ros::Duration(current_time - prev_time); + current_time = (now - start_time).toSec(); + } + // TODO: zero tracking point velocity in rewind and pause modes + else if(trajectory_mode == core_trajectory_controller::TrajectoryMode::Request::REWIND && + current_time > 0){ + start_time += ros::Duration(2.0*(current_time - prev_time)); + current_time = (now - start_time).toSec(); + } + prev_time = current_time; + + // get tracking point and look ahead point. If they aren't valid use the drone's current pose + //monitor.tic("get_odom"); + bool valid = trajectory->get_odom(current_time, &tracking_point); + // set the velocity of the tracking point based on the velocity from a different time + if(valid && velocity_look_ahead_time != 0){ + nav_msgs::Odometry velocity_look_ahead_point; + bool vel_valid = trajectory->get_odom(current_time + velocity_look_ahead_time, &velocity_look_ahead_point); + if(vel_valid){ + tracking_point.twist = velocity_look_ahead_point.twist; + } + } + + //double elapsed = monitor.toc("get_odom"); + //ROS_INFO_STREAM("get_odom elapsed: " << elapsed); + if(trajectory_mode == core_trajectory_controller::TrajectoryMode::Request::ROBOT_POSE){ + //if(!valid){ + tracking_point = odom; + tracking_point.twist.twist.linear.x = 0; + tracking_point.twist.twist.linear.y = 0; + tracking_point.twist.twist.linear.z = 0; + tracking_point.twist.twist.angular.x = 0; + tracking_point.twist.twist.angular.y = 0; + tracking_point.twist.twist.angular.z = 0; + look_ahead_point = tracking_point; + } + if(valid){ + trajectory->get_odom(current_time + 1.0, &look_ahead_point); + + tf::Vector3 tp = tflib::to_tf(tracking_point.pose.pose.position); + double start; + bool success = trajectory->get_trajectory_distance_at_closest_point(tp, &start); + if(success){ + Trajectory sub_trajectory = trajectory->get_subtrajectory_distance(start, start+1000.); + segment_marker_vis_pub.publish(sub_trajectory.get_markers(0, 1, 1)); + core_trajectory_msgs::TrajectoryXYZVYaw segment_msg = sub_trajectory.get_TrajectoryXYZVYaw(); + segment_msg.header.stamp = tracking_point.header.stamp; + segment_pub.publish(segment_msg); + } + } + + tracking_point.header.stamp = now; + look_ahead_point.header.stamp = now; + + // TODO: decide whether or not this is a good idea + // When the tracking point reaches the end of the trajectory, the velocity gets set to zero + if(time_past_end >= 0 || + trajectory_mode == core_trajectory_controller::TrajectoryMode::Request::PAUSE || + trajectory_mode == core_trajectory_controller::TrajectoryMode::Request::REWIND){ + tracking_point.twist.twist.linear.x = 0; + tracking_point.twist.twist.linear.y = 0; + tracking_point.twist.twist.linear.z = 0; + tracking_point.twist.twist.angular.x = 0; + tracking_point.twist.twist.angular.y = 0; + tracking_point.twist.twist.angular.z = 0; + + look_ahead_point.twist.twist.linear.x = 0; + look_ahead_point.twist.twist.linear.y = 0; + look_ahead_point.twist.twist.linear.z = 0; + look_ahead_point.twist.twist.angular.x = 0; + look_ahead_point.twist.twist.angular.y = 0; + look_ahead_point.twist.twist.angular.z = 0; + } + + std_msgs::Float32 velocity_msg; + velocity_msg.data = sqrt(tracking_point.twist.twist.linear.x*tracking_point.twist.twist.linear.x + + tracking_point.twist.twist.linear.y*tracking_point.twist.twist.linear.y + + tracking_point.twist.twist.linear.z*tracking_point.twist.twist.linear.z); + velocity_pub.publish(velocity_msg); + tracking_point_pub.publish(tracking_point); + look_ahead_pub.publish(look_ahead_point); + + // create a tf for the tracking point odom + tf::StampedTransform transform = tflib::to_tf(tracking_point, tf_prefix + "/tracking_point"); + tf::StampedTransform transform_stabilized = tflib::get_stabilized(transform); + transform_stabilized.child_frame_id_ = tf_prefix + "/tracking_point_stabilized"; + broadcaster->sendTransform(transform); + broadcaster->sendTransform(transform_stabilized); + + // create a tf for the look ahead odom + tf::StampedTransform look_ahead_transform = tflib::to_tf(look_ahead_point, tf_prefix + "/look_ahead_point"); + tf::StampedTransform look_ahead_transform_stabilized = + tflib::get_stabilized(look_ahead_transform); + look_ahead_transform_stabilized.child_frame_id_ = tf_prefix + "/look_ahead_point_stabilized"; + + broadcaster->sendTransform(look_ahead_transform); + broadcaster->sendTransform(look_ahead_transform_stabilized); + + // publish completion percentage + std_msgs::Float32 trajectory_completion_percentage; + trajectory_completion_percentage.data = current_time/trajectory->get_duration() * 100.f; + trajectory_completion_percentage_pub.publish(trajectory_completion_percentage); + + // publish current trajectory time + std_msgs::Float32 trajectory_time; + trajectory_time.data = current_time; + trajectory_time_pub.publish(trajectory_time); + } + + return true; +} + +bool TrajectoryControlNode::set_trajectory_mode(core_trajectory_controller::TrajectoryMode::Request& req, + core_trajectory_controller::TrajectoryMode::Response& res){ + int prev_trajectory_mode = trajectory_mode; + trajectory_mode = req.mode; + + if(trajectory_mode == core_trajectory_controller::TrajectoryMode::Request::PAUSE){ + + } + if(trajectory_mode == core_trajectory_controller::TrajectoryMode::Request::ROBOT_POSE){ + trajectory->clear(); + } + else if(trajectory_mode == core_trajectory_controller::TrajectoryMode::Request::TRACK){ + trajectory->clear(); + } + else if(trajectory_mode == core_trajectory_controller::TrajectoryMode::Request::SEGMENT){ + if(prev_trajectory_mode != core_trajectory_controller::TrajectoryMode::Request::PAUSE && + prev_trajectory_mode != core_trajectory_controller::TrajectoryMode::Request::REWIND && + prev_trajectory_mode != core_trajectory_controller::TrajectoryMode::Request::SEGMENT){ + trajectory->clear(); + start_time = ros::Time::now(); + } + } + else if(trajectory_mode == core_trajectory_controller::TrajectoryMode::Request::REWIND){ + + } + + res.success = true; + return true; +} + +void TrajectoryControlNode::traj_callback(core_trajectory_msgs::TrajectoryXYZVYaw traj){ + if(trajectory_mode == core_trajectory_controller::TrajectoryMode::Request::SEGMENT) + trajectory->merge(Trajectory(traj)); +} + +void TrajectoryControlNode::traj_track_callback(core_trajectory_msgs::TrajectoryXYZVYaw traj){ + start_time = ros::Time::now(); + trajectory->clear(); + trajectory->merge(Trajectory(traj)); +} + +void TrajectoryControlNode::odom_callback(nav_msgs::Odometry odom){ + //this->odom = odom; + if(tflib::transform_odometry(listener, odom, target_frame, target_frame, &(this->odom))) + got_odom = true; +} + +TrajectoryControlNode::~TrajectoryControlNode(){ + +} + + +BaseNode* BaseNode::get(){ + TrajectoryControlNode* trajectory_control_node = new TrajectoryControlNode(); + return trajectory_control_node; +} diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/srv/TrajectoryMode.srv b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/srv/TrajectoryMode.srv new file mode 100644 index 000000000..c67d38fba --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/srv/TrajectoryMode.srv @@ -0,0 +1,9 @@ +int32 PAUSE=0 +int32 ROBOT_POSE=1 +int32 TRACK=2 +int32 SEGMENT=3 +int32 REWIND=4 + +int32 mode +--- +bool success \ No newline at end of file From c3ed2153cc85e15da01f1af21736de0fd57abaf9 Mon Sep 17 00:00:00 2001 From: Robbi Exley Date: Mon, 5 Aug 2024 15:43:08 -0400 Subject: [PATCH 10/50] trajectory library update --- .../planning/local/core_trajectory_library | 1 - .../core_trajectory_library/CMakeLists.txt | 217 +++++ .../config/acceleration_magnitudes.yaml | 325 +++++++ .../config/acceleration_trajectories.yaml | 214 ++++ .../acceleration_trajectories_fast.yaml | 214 ++++ .../config/backup.yaml | 54 + .../config/demo_trajectory_definitions.yaml | 78 ++ .../config/fixed_trajectories.yaml | 38 + .../core_trajectory_library/config/test.yaml | 9 + .../trajectory_library.h | 254 +++++ .../local/core_trajectory_library/package.xml | 90 ++ .../local/core_trajectory_library/plugin.xml | 15 + .../scripts/rqt_fixed_trajectory_selector | 10 + .../local/core_trajectory_library/setup.py | 9 + .../src/fixed_trajectory_generator.py | 367 +++++++ .../rqt_fixed_trajectory_selector/__init__.py | 0 .../rqt_fixed_trajectory_selector.py | 204 ++++ .../src/trajectory_library.cpp | 920 ++++++++++++++++++ .../src/trajectory_library_generator.py | 75 ++ 19 files changed, 3093 insertions(+), 1 deletion(-) delete mode 160000 ros_ws/src/robot/autonomy/planning/local/core_trajectory_library create mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/CMakeLists.txt create mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/acceleration_magnitudes.yaml create mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/acceleration_trajectories.yaml create mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/acceleration_trajectories_fast.yaml create mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/backup.yaml create mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/demo_trajectory_definitions.yaml create mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/fixed_trajectories.yaml create mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/test.yaml create mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/include/core_trajectory_library/trajectory_library.h create mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/package.xml create mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/plugin.xml create mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/scripts/rqt_fixed_trajectory_selector create mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/setup.py create mode 100755 ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/src/fixed_trajectory_generator.py create mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/src/rqt_fixed_trajectory_selector/__init__.py create mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/src/rqt_fixed_trajectory_selector/rqt_fixed_trajectory_selector.py create mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/src/trajectory_library.cpp create mode 100755 ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/src/trajectory_library_generator.py diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library deleted file mode 160000 index ce399d491..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library +++ /dev/null @@ -1 +0,0 @@ -Subproject commit ce399d4910fa01d03a3928089b3e1b399f3bd197 diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/CMakeLists.txt b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/CMakeLists.txt new file mode 100644 index 000000000..1b9492a80 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/CMakeLists.txt @@ -0,0 +1,217 @@ +cmake_minimum_required(VERSION 2.8.3) +project(core_trajectory_library) + +## Compile as C++11, supported in ROS Kinetic and newer +add_compile_options(-std=c++11) + +## Find catkin macros and libraries +## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz) +## is used, also find other catkin packages +find_package(catkin REQUIRED COMPONENTS + nav_msgs + roscpp + rospy + sensor_msgs + std_msgs + tf + tflib + rqt_gui + rqt_gui_py + core_trajectory_msgs +) + +## System dependencies are found with CMake's conventions +# find_package(Boost REQUIRED COMPONENTS system) + + +## Uncomment this if the package has a setup.py. This macro ensures +## modules and global scripts declared therein get installed +## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html +catkin_python_setup() + +################################################ +## Declare ROS messages, services and actions ## +################################################ + +## To declare and build messages, services or actions from within this +## package, follow these steps: +## * Let MSG_DEP_SET be the set of packages whose message types you use in +## your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...). +## * In the file package.xml: +## * add a build_depend tag for "message_generation" +## * add a build_depend and a exec_depend tag for each package in MSG_DEP_SET +## * If MSG_DEP_SET isn't empty the following dependency has been pulled in +## but can be declared for certainty nonetheless: +## * add a exec_depend tag for "message_runtime" +## * In this file (CMakeLists.txt): +## * add "message_generation" and every package in MSG_DEP_SET to +## find_package(catkin REQUIRED COMPONENTS ...) +## * add "message_runtime" and every package in MSG_DEP_SET to +## catkin_package(CATKIN_DEPENDS ...) +## * uncomment the add_*_files sections below as needed +## and list every .msg/.srv/.action file to be processed +## * uncomment the generate_messages entry below +## * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...) + +## Generate messages in the 'msg' folder +# add_message_files( +# FILES +# Message1.msg +# Message2.msg +# ) + +## Generate services in the 'srv' folder +# add_service_files( +# FILES +# Service1.srv +# Service2.srv +# ) + +## Generate actions in the 'action' folder +# add_action_files( +# FILES +# Action1.action +# Action2.action +# ) + +## Generate added messages and services with any dependencies listed here +# generate_messages( +# DEPENDENCIES +# nav_msgs# sensor_msgs# std_msgs +# ) + +################################################ +## Declare ROS dynamic reconfigure parameters ## +################################################ + +## To declare and build dynamic reconfigure parameters within this +## package, follow these steps: +## * In the file package.xml: +## * add a build_depend and a exec_depend tag for "dynamic_reconfigure" +## * In this file (CMakeLists.txt): +## * add "dynamic_reconfigure" to +## find_package(catkin REQUIRED COMPONENTS ...) +## * uncomment the "generate_dynamic_reconfigure_options" section below +## and list every .cfg file to be processed + +## Generate dynamic reconfigure parameters in the 'cfg' folder +# generate_dynamic_reconfigure_options( +# cfg/DynReconf1.cfg +# cfg/DynReconf2.cfg +# ) + +################################### +## catkin specific configuration ## +################################### +## The catkin_package macro generates cmake config files for your package +## Declare things to be passed to dependent projects +## INCLUDE_DIRS: uncomment this if your package contains header files +## LIBRARIES: libraries you create in this project that dependent projects also need +## CATKIN_DEPENDS: catkin_packages dependent projects also need +## DEPENDS: system dependencies of this project that dependent projects also need +catkin_package( + INCLUDE_DIRS include + LIBRARIES trajectory_library + CATKIN_DEPENDS nav_msgs roscpp rospy sensor_msgs std_msgs tf visualization_msgs +# DEPENDS system_lib +) + +########### +## Build ## +########### + +## Specify additional locations of header files +## Your package locations should be listed before other locations +include_directories( + include + ${catkin_INCLUDE_DIRS} +) + +## Declare a C++ library +add_library(trajectory_library + src/trajectory_library.cpp +) + +## Add cmake target dependencies of the library +## as an example, code may need to be generated before libraries +## either from message generation or dynamic reconfigure +# add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) + +## Declare a C++ executable +## With catkin_make all packages are built within a single CMake context +## The recommended prefix ensures that target names across packages don't collide +# add_executable(${PROJECT_NAME}_node src/trajectory_library_node.cpp) + +## Rename C++ executable without prefix +## The above recommended prefix causes long target names, the following renames the +## target back to the shorter version for ease of user use +## e.g. "rosrun someones_pkg node" instead of "rosrun someones_pkg someones_pkg_node" +# set_target_properties(${PROJECT_NAME}_node PROPERTIES OUTPUT_NAME node PREFIX "") + +## Add cmake target dependencies of the executable +## same as for the library above +# add_dependencies(${PROJECT_NAME}_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) + +## Specify libraries to link a library or executable target against +target_link_libraries(trajectory_library + ${catkin_LIBRARIES} yaml-cpp +) + +############# +## Install ## +############# + +# all install targets should use catkin DESTINATION variables +# See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html + +## Mark executable scripts (Python etc.) for installation +## in contrast to setup.py, you can choose the destination +# install(PROGRAMS +# scripts/my_python_script +# DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} +# ) + +## Mark executables and/or libraries for installation +install(TARGETS trajectory_library + ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} + LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} + RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} +) + +## Mark cpp header files for installation +install(DIRECTORY include/trajectory_library/ + DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} + FILES_MATCHING PATTERN "*.h" + PATTERN ".svn" EXCLUDE +) + +install(PROGRAMS + scripts/rqt_fixed_trajectory_selector + DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} +) + +install(FILES + plugin.xml + DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} +) + + +## Mark other files for installation (e.g. launch and bag files, etc.) +# install(FILES +# # myfile1 +# # myfile2 +# DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} +# ) + +############# +## Testing ## +############# + +## Add gtest based cpp test target and link libraries +# catkin_add_gtest(${PROJECT_NAME}-test test/test_trajectory_library.cpp) +# if(TARGET ${PROJECT_NAME}-test) +# target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME}) +# endif() + +## Add folders to be run by python nosetests +# catkin_add_nosetests(test) diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/acceleration_magnitudes.yaml b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/acceleration_magnitudes.yaml new file mode 100644 index 000000000..e89eb3f0c --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/acceleration_magnitudes.yaml @@ -0,0 +1,325 @@ +trajectories: + - type: acceleration + frame: $(param tf_prefix)/look_ahead_point_stabilized + magnitude: $(param magnitude) + magnitude_yaw: 0. + magnitude_pitch: 0. + dt: $(param dt) + ht: $(param ht) + max_velocity: $(param max_velocity) + - type: acceleration + frame: $(param tf_prefix)/look_ahead_point_stabilized + magnitude: $(param magnitude) + magnitude_yaw: 45. + magnitude_pitch: 0. + dt: $(param dt) + ht: $(param ht) + max_velocity: $(param max_velocity) + - type: acceleration + frame: $(param tf_prefix)/look_ahead_point_stabilized + magnitude: $(param magnitude) + magnitude_yaw: 90. + magnitude_pitch: 0. + dt: $(param dt) + ht: $(param ht) + max_velocity: $(param max_velocity) + - type: acceleration + frame: $(param tf_prefix)/look_ahead_point_stabilized + magnitude: $(param magnitude) + magnitude_yaw: 135. + magnitude_pitch: 0. + dt: $(param dt) + ht: $(param ht) + max_velocity: $(param max_velocity) + - type: acceleration + frame: $(param tf_prefix)/look_ahead_point_stabilized + magnitude: $(param magnitude) + magnitude_yaw: 180. + magnitude_pitch: 0. + dt: $(param dt) + ht: $(param ht) + max_velocity: $(param max_velocity) + - type: acceleration + frame: $(param tf_prefix)/look_ahead_point_stabilized + magnitude: $(param magnitude) + magnitude_yaw: -45. + magnitude_pitch: 0. + dt: $(param dt) + ht: $(param ht) + max_velocity: $(param max_velocity) + - type: acceleration + frame: $(param tf_prefix)/look_ahead_point_stabilized + magnitude: $(param magnitude) + magnitude_yaw: -90. + magnitude_pitch: 0. + dt: $(param dt) + ht: $(param ht) + max_velocity: $(param max_velocity) + - type: acceleration + frame: $(param tf_prefix)/look_ahead_point_stabilized + magnitude: $(param magnitude) + magnitude_yaw: -135. + magnitude_pitch: 0. + dt: $(param dt) + ht: $(param ht) + max_velocity: $(param max_velocity) + + - type: acceleration + frame: $(param tf_prefix)/look_ahead_point_stabilized + magnitude: $(param magnitude) + magnitude_yaw: 0. + magnitude_pitch: 15. + dt: $(param dt) + ht: $(param ht) + max_velocity: $(param max_velocity) + - type: acceleration + frame: $(param tf_prefix)/look_ahead_point_stabilized + magnitude: $(param magnitude) + magnitude_yaw: 45. + magnitude_pitch: 15. + dt: $(param dt) + ht: $(param ht) + max_velocity: $(param max_velocity) + - type: acceleration + frame: $(param tf_prefix)/look_ahead_point_stabilized + magnitude: $(param magnitude) + magnitude_yaw: 90. + magnitude_pitch: 15. + dt: $(param dt) + ht: $(param ht) + max_velocity: $(param max_velocity) + - type: acceleration + frame: $(param tf_prefix)/look_ahead_point_stabilized + magnitude: $(param magnitude) + magnitude_yaw: 135. + magnitude_pitch: 15. + dt: $(param dt) + ht: $(param ht) + max_velocity: $(param max_velocity) + - type: acceleration + frame: $(param tf_prefix)/look_ahead_point_stabilized + magnitude: $(param magnitude) + magnitude_yaw: 180. + magnitude_pitch: 15. + dt: $(param dt) + ht: $(param ht) + max_velocity: $(param max_velocity) + - type: acceleration + frame: $(param tf_prefix)/look_ahead_point_stabilized + magnitude: $(param magnitude) + magnitude_yaw: -45. + magnitude_pitch: 15. + dt: $(param dt) + ht: $(param ht) + max_velocity: $(param max_velocity) + - type: acceleration + frame: $(param tf_prefix)/look_ahead_point_stabilized + magnitude: $(param magnitude) + magnitude_yaw: -90. + magnitude_pitch: 15. + dt: $(param dt) + ht: $(param ht) + max_velocity: $(param max_velocity) + - type: acceleration + frame: $(param tf_prefix)/look_ahead_point_stabilized + magnitude: $(param magnitude) + magnitude_yaw: -135. + magnitude_pitch: 15. + dt: $(param dt) + ht: $(param ht) + max_velocity: $(param max_velocity) + + - type: acceleration + frame: $(param tf_prefix)/look_ahead_point_stabilized + magnitude: $(param magnitude) + magnitude_yaw: 0. + magnitude_pitch: -15. + dt: $(param dt) + ht: $(param ht) + max_velocity: $(param max_velocity) + - type: acceleration + frame: $(param tf_prefix)/look_ahead_point_stabilized + magnitude: $(param magnitude) + magnitude_yaw: 45. + magnitude_pitch: -15. + dt: $(param dt) + ht: $(param ht) + max_velocity: $(param max_velocity) + - type: acceleration + frame: $(param tf_prefix)/look_ahead_point_stabilized + magnitude: $(param magnitude) + magnitude_yaw: 90. + magnitude_pitch: -15. + dt: $(param dt) + ht: $(param ht) + max_velocity: $(param max_velocity) + - type: acceleration + frame: $(param tf_prefix)/look_ahead_point_stabilized + magnitude: $(param magnitude) + magnitude_yaw: 135. + magnitude_pitch: -15. + dt: $(param dt) + ht: $(param ht) + max_velocity: $(param max_velocity) + - type: acceleration + frame: $(param tf_prefix)/look_ahead_point_stabilized + magnitude: $(param magnitude) + magnitude_yaw: 180. + magnitude_pitch: -15. + dt: $(param dt) + ht: $(param ht) + max_velocity: $(param max_velocity) + - type: acceleration + frame: $(param tf_prefix)/look_ahead_point_stabilized + magnitude: $(param magnitude) + magnitude_yaw: -45. + magnitude_pitch: -15. + dt: $(param dt) + ht: $(param ht) + max_velocity: $(param max_velocity) + - type: acceleration + frame: $(param tf_prefix)/look_ahead_point_stabilized + magnitude: $(param magnitude) + magnitude_yaw: -90. + magnitude_pitch: -15. + dt: $(param dt) + ht: $(param ht) + max_velocity: $(param max_velocity) + - type: acceleration + frame: $(param tf_prefix)/look_ahead_point_stabilized + magnitude: $(param magnitude) + magnitude_yaw: -135. + magnitude_pitch: -15. + dt: $(param dt) + ht: $(param ht) + max_velocity: $(param max_velocity) + + - type: acceleration + frame: $(param tf_prefix)/look_ahead_point_stabilized + magnitude: $(param magnitude) + magnitude_yaw: 0. + magnitude_pitch: 30. + dt: $(param dt) + ht: $(param ht) + max_velocity: $(param max_velocity) + - type: acceleration + frame: $(param tf_prefix)/look_ahead_point_stabilized + magnitude: $(param magnitude) + magnitude_yaw: 45. + magnitude_pitch: 30. + dt: $(param dt) + ht: $(param ht) + max_velocity: $(param max_velocity) + - type: acceleration + frame: $(param tf_prefix)/look_ahead_point_stabilized + magnitude: $(param magnitude) + magnitude_yaw: 90. + magnitude_pitch: 30. + dt: $(param dt) + ht: $(param ht) + max_velocity: $(param max_velocity) + - type: acceleration + frame: $(param tf_prefix)/look_ahead_point_stabilized + magnitude: $(param magnitude) + magnitude_yaw: 135. + magnitude_pitch: 30. + dt: $(param dt) + ht: $(param ht) + max_velocity: $(param max_velocity) + - type: acceleration + frame: $(param tf_prefix)/look_ahead_point_stabilized + magnitude: $(param magnitude) + magnitude_yaw: 180. + magnitude_pitch: 30. + dt: $(param dt) + ht: $(param ht) + max_velocity: $(param max_velocity) + - type: acceleration + frame: $(param tf_prefix)/look_ahead_point_stabilized + magnitude: $(param magnitude) + magnitude_yaw: -45. + magnitude_pitch: 30. + dt: $(param dt) + ht: $(param ht) + max_velocity: $(param max_velocity) + - type: acceleration + frame: $(param tf_prefix)/look_ahead_point_stabilized + magnitude: $(param magnitude) + magnitude_yaw: -90. + magnitude_pitch: 30. + dt: $(param dt) + ht: $(param ht) + max_velocity: $(param max_velocity) + - type: acceleration + frame: $(param tf_prefix)/look_ahead_point_stabilized + magnitude: $(param magnitude) + magnitude_yaw: -135. + magnitude_pitch: 30. + dt: $(param dt) + ht: $(param ht) + max_velocity: $(param max_velocity) + + - type: acceleration + frame: $(param tf_prefix)/look_ahead_point_stabilized + magnitude: $(param magnitude) + magnitude_yaw: 0. + magnitude_pitch: -30. + dt: $(param dt) + ht: $(param ht) + max_velocity: $(param max_velocity) + - type: acceleration + frame: $(param tf_prefix)/look_ahead_point_stabilized + magnitude: $(param magnitude) + magnitude_yaw: 45. + magnitude_pitch: -30. + dt: $(param dt) + ht: $(param ht) + max_velocity: $(param max_velocity) + - type: acceleration + frame: $(param tf_prefix)/look_ahead_point_stabilized + magnitude: $(param magnitude) + magnitude_yaw: 90. + magnitude_pitch: -30. + dt: $(param dt) + ht: $(param ht) + max_velocity: $(param max_velocity) + - type: acceleration + frame: $(param tf_prefix)/look_ahead_point_stabilized + magnitude: $(param magnitude) + magnitude_yaw: 135. + magnitude_pitch: -30. + dt: $(param dt) + ht: $(param ht) + max_velocity: $(param max_velocity) + - type: acceleration + frame: $(param tf_prefix)/look_ahead_point_stabilized + magnitude: $(param magnitude) + magnitude_yaw: 180. + magnitude_pitch: -30. + dt: $(param dt) + ht: $(param ht) + max_velocity: $(param max_velocity) + - type: acceleration + frame: $(param tf_prefix)/look_ahead_point_stabilized + magnitude: $(param magnitude) + magnitude_yaw: -45. + magnitude_pitch: -30. + dt: $(param dt) + ht: $(param ht) + max_velocity: $(param max_velocity) + - type: acceleration + frame: $(param tf_prefix)/look_ahead_point_stabilized + magnitude: $(param magnitude) + magnitude_yaw: -90. + magnitude_pitch: -30. + dt: $(param dt) + ht: $(param ht) + max_velocity: $(param max_velocity) + - type: acceleration + frame: $(param tf_prefix)/look_ahead_point_stabilized + magnitude: $(param magnitude) + magnitude_yaw: -135. + magnitude_pitch: -30. + dt: $(param dt) + ht: $(param ht) + max_velocity: $(param max_velocity) \ No newline at end of file diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/acceleration_trajectories.yaml b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/acceleration_trajectories.yaml new file mode 100644 index 000000000..f8e268ee6 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/acceleration_trajectories.yaml @@ -0,0 +1,214 @@ +trajectories: + - type: acceleration + frame: look_ahead_point_stabilized + x: .3 + y: 0 + z: 0 + dt: 0.2 + ht: 3 + max_velocity: 0.7 + - type: acceleration + frame: look_ahead_point_stabilized + x: -.3 + y: 0 + z: 0 + dt: 0.2 + ht: 3 + max_velocity: 0.7 + - type: acceleration + frame: look_ahead_point_stabilized + x: 0 + y: .3 + z: 0 + dt: 0.2 + ht: 3 + max_velocity: 0.7 + - type: acceleration + frame: look_ahead_point_stabilized + x: 0 + y: -.3 + z: 0 + dt: 0.2 + ht: 3 + max_velocity: 0.7 + - type: acceleration + frame: look_ahead_point_stabilized + x: 0 + y: 0 + z: .3 + dt: 0.2 + ht: 3 + max_velocity: 0.7 + - type: acceleration + frame: look_ahead_point_stabilized + x: 0 + y: 0 + z: -.3 + dt: 0.2 + ht: 3 + max_velocity: 0.7 + + - type: acceleration + frame: look_ahead_point_stabilized + x: 0.173 + y: 0.173 + z: 0.173 + dt: 0.2 + ht: 3 + max_velocity: 0.7 + - type: acceleration + frame: look_ahead_point_stabilized + x: -0.173 + y: 0.173 + z: 0.173 + dt: 0.2 + ht: 3 + max_velocity: 0.7 + - type: acceleration + frame: look_ahead_point_stabilized + x: 0.173 + y: -0.173 + z: 0.173 + dt: 0.2 + ht: 3 + max_velocity: 0.7 + - type: acceleration + frame: look_ahead_point_stabilized + x: -0.173 + y: -0.173 + z: 0.173 + dt: 0.2 + ht: 3 + max_velocity: 0.7 + + - type: acceleration + frame: look_ahead_point_stabilized + x: 0.173 + y: 0.173 + z: -0.173 + dt: 0.2 + ht: 3 + max_velocity: 0.7 + - type: acceleration + frame: look_ahead_point_stabilized + x: -0.173 + y: 0.173 + z: -0.173 + dt: 0.2 + ht: 3 + max_velocity: 0.7 + - type: acceleration + frame: look_ahead_point_stabilized + x: 0.173 + y: -0.173 + z: -0.173 + dt: 0.2 + ht: 3 + max_velocity: 0.7 + - type: acceleration + frame: look_ahead_point_stabilized + x: -0.173 + y: -0.173 + z: -0.173 + dt: 0.2 + ht: 3 + max_velocity: 0.7 + + - type: acceleration + frame: look_ahead_point_stabilized + x: 0.212 + y: 0.212 + z: 0 + dt: 0.2 + ht: 3 + max_velocity: 0.7 + - type: acceleration + frame: look_ahead_point_stabilized + x: -0.212 + y: 0.212 + z: 0 + dt: 0.2 + ht: 3 + max_velocity: 0.7 + - type: acceleration + frame: look_ahead_point_stabilized + x: 0.212 + y: -0.212 + z: 0 + dt: 0.2 + ht: 3 + max_velocity: 0.7 + - type: acceleration + frame: look_ahead_point_stabilized + x: 0.212 + y: -0.212 + z: 0 + dt: 0.2 + ht: 3 + max_velocity: 0.7 + + - type: acceleration + frame: look_ahead_point_stabilized + x: 0.212 + y: 0 + z: 0.212 + dt: 0.2 + ht: 3 + max_velocity: 0.7 + - type: acceleration + frame: look_ahead_point_stabilized + x: -0.212 + y: 0 + z: 0.212 + dt: 0.2 + ht: 3 + max_velocity: 0.7 + - type: acceleration + frame: look_ahead_point_stabilized + x: 0.212 + y: 0 + z: -0.212 + dt: 0.2 + ht: 3 + max_velocity: 0.7 + - type: acceleration + frame: look_ahead_point_stabilized + x: -0.212 + y: 0 + z: -0.212 + dt: 0.2 + ht: 3 + max_velocity: 0.7 + + - type: acceleration + frame: look_ahead_point_stabilized + x: 0 + y: 0.212 + z: 0.212 + dt: 0.2 + ht: 3 + max_velocity: 0.7 + - type: acceleration + frame: look_ahead_point_stabilized + x: 0 + y: -0.212 + z: 0.212 + dt: 0.2 + ht: 3 + max_velocity: 0.7 + - type: acceleration + frame: look_ahead_point_stabilized + x: 0 + y: 0.212 + z: -0.212 + dt: 0.2 + ht: 3 + max_velocity: 0.7 + - type: acceleration + frame: look_ahead_point_stabilized + x: 0 + y: -0.212 + z: -0.212 + dt: 0.2 + ht: 3 + max_velocity: 0.7 diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/acceleration_trajectories_fast.yaml b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/acceleration_trajectories_fast.yaml new file mode 100644 index 000000000..4e14ac2f5 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/acceleration_trajectories_fast.yaml @@ -0,0 +1,214 @@ +trajectories: + - type: acceleration + frame: look_ahead_point_stabilized + x: 1. + y: 0 + z: 0 + dt: 0.2 + ht: 1.2 + max_velocity: 1.5 + - type: acceleration + frame: look_ahead_point_stabilized + x: -1. + y: 0 + z: 0 + dt: 0.2 + ht: 1.2 + max_velocity: 1.5 + - type: acceleration + frame: look_ahead_point_stabilized + x: 0 + y: 1. + z: 0 + dt: 0.2 + ht: 1.2 + max_velocity: 1.5 + - type: acceleration + frame: look_ahead_point_stabilized + x: 0 + y: -1. + z: 0 + dt: 0.2 + ht: 1.2 + max_velocity: 1.5 + - type: acceleration + frame: look_ahead_point_stabilized + x: 0 + y: 0 + z: 1. + dt: 0.2 + ht: 1.2 + max_velocity: 1.5 + - type: acceleration + frame: look_ahead_point_stabilized + x: 0 + y: 0 + z: -1. + dt: 0.2 + ht: 1.2 + max_velocity: 1.5 + + - type: acceleration + frame: look_ahead_point_stabilized + x: 0.577 + y: 0.577 + z: 0.577 + dt: 0.2 + ht: 1.2 + max_velocity: 1.5 + - type: acceleration + frame: look_ahead_point_stabilized + x: -0.577 + y: 0.577 + z: 0.577 + dt: 0.2 + ht: 1.2 + max_velocity: 1.5 + - type: acceleration + frame: look_ahead_point_stabilized + x: 0.577 + y: -0.577 + z: 0.577 + dt: 0.2 + ht: 1.2 + max_velocity: 1.5 + - type: acceleration + frame: look_ahead_point_stabilized + x: -0.577 + y: -0.577 + z: 0.577 + dt: 0.2 + ht: 1.2 + max_velocity: 1.5 + + - type: acceleration + frame: look_ahead_point_stabilized + x: 0.577 + y: 0.577 + z: -0.577 + dt: 0.2 + ht: 1.2 + max_velocity: 1.5 + - type: acceleration + frame: look_ahead_point_stabilized + x: -0.577 + y: 0.577 + z: -0.577 + dt: 0.2 + ht: 1.2 + max_velocity: 1.5 + - type: acceleration + frame: look_ahead_point_stabilized + x: 0.577 + y: -0.577 + z: -0.577 + dt: 0.2 + ht: 1.2 + max_velocity: 1.5 + - type: acceleration + frame: look_ahead_point_stabilized + x: -0.577 + y: -0.577 + z: -0.577 + dt: 0.2 + ht: 1.2 + max_velocity: 1.5 + + - type: acceleration + frame: look_ahead_point_stabilized + x: 0.707 + y: 0.707 + z: 0 + dt: 0.2 + ht: 1.2 + max_velocity: 1.5 + - type: acceleration + frame: look_ahead_point_stabilized + x: -0.707 + y: 0.707 + z: 0 + dt: 0.2 + ht: 1.2 + max_velocity: 1.5 + - type: acceleration + frame: look_ahead_point_stabilized + x: 0.707 + y: -0.707 + z: 0 + dt: 0.2 + ht: 1.2 + max_velocity: 1.5 + - type: acceleration + frame: look_ahead_point_stabilized + x: 0.707 + y: -0.707 + z: 0 + dt: 0.2 + ht: 1.2 + max_velocity: 1.5 + + - type: acceleration + frame: look_ahead_point_stabilized + x: 0.707 + y: 0 + z: 0.707 + dt: 0.2 + ht: 1.2 + max_velocity: 1.5 + - type: acceleration + frame: look_ahead_point_stabilized + x: -0.707 + y: 0 + z: 0.707 + dt: 0.2 + ht: 1.2 + max_velocity: 1.5 + - type: acceleration + frame: look_ahead_point_stabilized + x: 0.707 + y: 0 + z: -0.707 + dt: 0.2 + ht: 1.2 + max_velocity: 1.5 + - type: acceleration + frame: look_ahead_point_stabilized + x: -0.707 + y: 0 + z: -0.707 + dt: 0.2 + ht: 1.2 + max_velocity: 1.5 + + - type: acceleration + frame: look_ahead_point_stabilized + x: 0 + y: 0.707 + z: 0.707 + dt: 0.2 + ht: 1.2 + max_velocity: 1.5 + - type: acceleration + frame: look_ahead_point_stabilized + x: 0 + y: -0.707 + z: 0.707 + dt: 0.2 + ht: 1.2 + max_velocity: 1.5 + - type: acceleration + frame: look_ahead_point_stabilized + x: 0 + y: 0.707 + z: -0.707 + dt: 0.2 + ht: 1.2 + max_velocity: 1.5 + - type: acceleration + frame: look_ahead_point_stabilized + x: 0 + y: -0.707 + z: -0.707 + dt: 0.2 + ht: 1.2 + max_velocity: 1.5 diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/backup.yaml b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/backup.yaml new file mode 100644 index 000000000..e43ca5893 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/backup.yaml @@ -0,0 +1,54 @@ +trajectories: + - type: curve + linear_velocity: 1 + angular_velocity: -45 + frame: tracking_point_stabilized + dt: 0.2 + time: 3 + yaw: heading + - type: curve + linear_velocity: 1 + angular_velocity: -30 + frame: tracking_point_stabilized + dt: 0.2 + time: 3 + yaw: heading + - type: curve + linear_velocity: 1 + angular_velocity: -15 + frame: tracking_point_stabilized + dt: 0.2 + time: 3 + yaw: heading + - type: curve + linear_velocity: 1 + angular_velocity: 0 + frame: tracking_point_stabilized + dt: 0.2 + time: 3 + yaw: heading + - type: curve + linear_velocity: 1 + angular_velocity: 15 + frame: tracking_point_stabilized + dt: 0.2 + time: 3 + yaw: heading + - type: curve + linear_velocity: 1 + angular_velocity: 30 + frame: tracking_point_stabilized + dt: 0.2 + time: 3 + yaw: heading + - type: curve + linear_velocity: 1 + angular_velocity: 45 + frame: tracking_point_stabilized + dt: 0.2 + time: 3 + yaw: heading + - type: acceleration + frame: tracking_point_stabilized + x: 2 + yaw: heading \ No newline at end of file diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/demo_trajectory_definitions.yaml b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/demo_trajectory_definitions.yaml new file mode 100644 index 000000000..6417bb275 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/demo_trajectory_definitions.yaml @@ -0,0 +1,78 @@ +trajectories: + - type: curve + linear_velocity: 0.2 + angular_velocity: -45 + frame: look_ahead_point_stabilized + dt: 0.2 + time: 3 + yaw: heading + - type: curve + linear_velocity: 0.2 + angular_velocity: -30 + frame: look_ahead_point_stabilized + dt: 0.2 + time: 3 + yaw: heading + - type: curve + linear_velocity: 0.2 + angular_velocity: -22 + frame: look_ahead_point_stabilized + dt: 0.2 + time: 3 + yaw: heading + - type: curve + linear_velocity: 0.2 + angular_velocity: -15 + frame: look_ahead_point_stabilized + dt: 0.2 + time: 3 + yaw: heading + - type: curve + linear_velocity: 0.2 + angular_velocity: -5 + frame: look_ahead_point_stabilized + dt: 0.2 + time: 3 + yaw: heading + - type: curve + linear_velocity: 0.2 + angular_velocity: 0 + frame: look_ahead_point_stabilized + dt: 0.2 + time: 3 + yaw: heading + - type: curve + linear_velocity: 0.2 + angular_velocity: 5 + frame: look_ahead_point_stabilized + dt: 0.2 + time: 3 + yaw: heading + - type: curve + linear_velocity: 0.2 + angular_velocity: 15 + frame: look_ahead_point_stabilized + dt: 0.2 + time: 3 + yaw: heading + - type: curve + linear_velocity: 0.2 + angular_velocity: 22 + frame: look_ahead_point_stabilized + dt: 0.2 + time: 3 + yaw: heading + - type: curve + linear_velocity: 0.2 + angular_velocity: 30 + frame: look_ahead_point_stabilized + dt: 0.2 + time: 3 + yaw: heading + - type: curve + linear_velocity: 0.2 + angular_velocity: 45 + frame: look_ahead_point_stabilized + dt: 0.2 + time: 3 + yaw: heading \ No newline at end of file diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/fixed_trajectories.yaml b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/fixed_trajectories.yaml new file mode 100644 index 000000000..64c1f54de --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/fixed_trajectories.yaml @@ -0,0 +1,38 @@ +trajectories: + - Figure8: + attributes: + - frame_id + - velocity + - max_acceleration + - length + - width + - height + - Racetrack: + attributes: + - frame_id + - velocity + - max_acceleration + - length + - width + - height + - Circle: + attributes: + - frame_id + - velocity + - radius + - Line: + attributes: + - frame_id + - velocity + - max_acceleration + - length + - width + - height + - Point: + attributes: + - frame_id + - velocity + - max_acceleration + - x + - y + - height diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/test.yaml b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/test.yaml new file mode 100644 index 000000000..5299c0603 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/test.yaml @@ -0,0 +1,9 @@ +trajectories: + - type: acceleration + frame: $(param tf_prefix)/look_ahead_point_stabilized + magnitude: 1. + magnitude_yaw: 0. + magnitude_pitch: 0. + dt: $(param dt) + ht: $(param ht) + max_velocity: $(param max_velocity) diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/include/core_trajectory_library/trajectory_library.h b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/include/core_trajectory_library/trajectory_library.h new file mode 100644 index 000000000..9e8521061 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/include/core_trajectory_library/trajectory_library.h @@ -0,0 +1,254 @@ +#ifndef _TRJAECTORY_LIBRARY_H_ +#define _TRJAECTORY_LIBRARY_H_ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +class Trajectory; + +class Waypoint { +private: + double x_, y_, z_, yaw_, vx_, vy_, vz_, time_; + +public: + Waypoint(double x, double y, double z, double yaw, + double vx, double vy, double vz, double time=0); + + double x() const {return x_;} + double y() const {return y_;} + double z() const {return z_;} + double vx() const {return vx_;} + double vy() const {return vy_;} + double vz() const {return vz_;} + double yaw() const {return yaw_;} + double time() const {return time_;} + + void set_time(double time){time_ = time;} + + tf::Quaternion q() const; + tf::Vector3 position() const; + tf::Vector3 velocity() const; + nav_msgs::Odometry odometry(ros::Time stamp, std::string frame_id) const; + Waypoint interpolate(Waypoint wp, double t); + + friend class Trajectory; +}; + +// Create one TransformListener instance to be used by every Trajectory instance +static tf::TransformListener* listener = NULL; + +class Trajectory { +private: + std::string frame_id; + ros::Time stamp; + std::vector waypoints; + + bool generated_waypoint_times; + void generate_waypoint_times(); + + void init_listener(); + + std::string marker_namespace; +public: + Trajectory(); + Trajectory(std::string frame_id); + Trajectory(core_trajectory_msgs::TrajectoryXYZVYaw path); + //Trajectory(core_trajectory_msgs::TrajectoryXYZVYaw path); + + void clear(); + bool get_closest_point(tf::Vector3 point, tf::Vector3* closest, int* wp_index=NULL, double* path_distance=NULL); + bool get_trajectory_distance_at_closest_point(tf::Vector3 point, double* trajectory_distance); + bool merge(Trajectory traj); + + double get_duration(); + bool get_odom(double time, nav_msgs::Odometry* odom); + Trajectory to_frame(std::string target_frame, ros::Time time); + Trajectory respace(double spacing); + Trajectory shorten(double new_length); // replace shorten with get_subtraj_dist + Trajectory get_subtrajectory_distance(double start, double end); + + void set_fixed_height(double height); + + int waypoint_count(); + Waypoint get_waypoint(int index); + std::string get_frame_id(); + core_trajectory_msgs::TrajectoryXYZVYaw get_TrajectoryXYZVYaw(); + std::vector get_vector_PointStamped(); + + visualization_msgs::MarkerArray get_markers(float r=1, float g=0, float b=0, float a=1, bool show_poses=false, bool show_velocity=false); +}; + +//=================================================================================== +//--------------------------------- Dynamic Trajectories ---------------------------- +//=================================================================================== + +class DynamicTrajectory { + private: + + public: + virtual core_trajectory_msgs::TrajectoryXYZVYaw get_trajectory(nav_msgs::Odometry odom) = 0; +}; + +class AccelerationTrajectory : public DynamicTrajectory { + private: + // subscribers + tf::TransformListener* listener; + ros::Subscriber set_max_velocity_sub; + + double ax, ay, az; + double dt, ht; + double max_velocity; + std::string frame; + + // callbacks + void set_max_velocity_callback(std_msgs::Float32 msg); + + public: + AccelerationTrajectory(tf::TransformListener* listener, std::string frame, double ax, double ay, double az, double dt, double ht, double max_velocity); + virtual core_trajectory_msgs::TrajectoryXYZVYaw get_trajectory(nav_msgs::Odometry odom); +}; + +class TakeoffTrajectory : public DynamicTrajectory { + private: + double height, velocity; + double path_roll, path_pitch; + bool relative_to_orientation; + + public: + TakeoffTrajectory(double height, double velocity, double path_roll=0., double path_pitch=0., bool relative_to_orientation=false); + core_trajectory_msgs::TrajectoryXYZVYaw get_trajectory(nav_msgs::Odometry odom); +}; + +//=================================================================================== +//--------------------------------- Static Trajectories ----------------------------- +//=================================================================================== + +class StaticTrajectory{ + private: + + public: + virtual core_trajectory_msgs::TrajectoryXYZVYaw get_trajectory() = 0; +}; + +class CurveTrajectory : public StaticTrajectory { + private: + core_trajectory_msgs::TrajectoryXYZVYaw trajectory; + + float linear_velocity, angular_velocity, dt, time, distance, yaw; + std::string frame; + bool use_heading; + + void generate_trajectory(); + + public: + CurveTrajectory(float linear_velocity, float angular_velocity, std::string frame, + float time, float dt, bool use_heading, float yaw=0.f); + + virtual core_trajectory_msgs::TrajectoryXYZVYaw get_trajectory(); +}; + +//=================================================================================== +//--------------------------------- Trajectory Library ------------------------------ +//=================================================================================== + +class TrajectoryLibrary { + private: + std::vector static_trajectories; + std::vector dynamic_trajectories; + tf::TransformListener* listener; + + ros::NodeHandle* pnh; + + std::string trim(std::string str){ + int trim_start = 0; + int trim_end = 0; + bool found_start = false; + for(int i = 0; i < str.size(); i++) + if(std::isspace(str[i])) + trim_start++; + else + break; + + for(int i = str.size()-1; i >= 0; i--) + if(std::isspace(str[i])) + trim_end++; + else + break; + + std::string trimmed = str.substr(trim_start, str.size() - trim_end - trim_start); + return trimmed; + } + + template + std::string get_string(T t){ + return std::to_string(t); + } + + std::string get_string(std::string t){ + return t; + } + + template + T parse(YAML::Node node){ + //std::cout << "trim test |" << trim(" asdjfaksfdj jdfkj jakdsf ") << "|" << std::endl; + + std::string str = node.as(); + std::size_t start; + + std::string param_label = "$(param"; + + //std::cout << "string: " << str << std::endl; + while((start = str.find(param_label)) != std::string::npos){ + std::size_t end = str.find(")"); + //std::cout << start << " " << end << std::endl; + if(end == std::string::npos){ + ROS_ERROR_STREAM("TRAJECTORY LIBRARY PARSING ERROR: No closing parenthesis for $(param"); + break; + } + + std::string parameter_name = trim(str.substr(start + param_label.size(), end - (start + param_label.size()))); + //std::cout << "parameter_name: |" << parameter_name << "|" << std::endl; + T parameter_value; + if(!pnh->getParam(parameter_name, parameter_value)){ + ROS_ERROR_STREAM("Couldn't find parameter '" << parameter_name << "'. This is either because it doesn't exist or the type is incorrect in the launch file."); + } + + //std::cout << str << " " << start << " " << end << std::endl; + str = str.substr(0, start) + get_string(parameter_value) + str.substr(end+1, str.size() - (end+1)); + //std::cout << str << " " << str.find(param_label) << std::endl; + } + + //std::cout << "final: " << str << std::endl; + YAML::Emitter out; + out << YAML::BeginMap; + out << YAML::Key << "key"; + out << YAML::Value << str; + out << YAML::EndMap; + std::string yaml = out.c_str(); + YAML::Node n = YAML::Load(out.c_str()); + //std::cout << "yaml: " << yaml << " " << n["key"].as() << std::endl; + + return n["key"].as(); + } + + public: + TrajectoryLibrary(std::string config_filename, tf::TransformListener* listener); + + std::vector get_static_trajectories(); + std::vector get_dynamic_trajectories(nav_msgs::Odometry odom); + visualization_msgs::MarkerArray get_markers(std::vector trajectories); +}; + + +#endif diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/package.xml b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/package.xml new file mode 100644 index 000000000..29c3ad5e5 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/package.xml @@ -0,0 +1,90 @@ + + + core_trajectory_library + 0.0.0 + The core_trajectory_library package + + + + + john + + + + + + TODO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + catkin + nav_msgs + roscpp + rospy + sensor_msgs + std_msgs + tf + common_rodeps + visualization_msgs + tflib + core_trajectory_msgs + + nav_msgs + roscpp + rospy + sensor_msgs + std_msgs + tf + common_rodeps + visualization_msgs + tflib + core_trajectory_msgs + + nav_msgs + roscpp + rospy + sensor_msgs + std_msgs + tf + common_rodeps + visualization_msgs + tflib + core_trajectory_msgs + + + + + + + diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/plugin.xml b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/plugin.xml new file mode 100644 index 000000000..ba4923252 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/plugin.xml @@ -0,0 +1,15 @@ + + + + An interface for choosing fixed trajectories. + + + + + + + system-help + Fixed Trajectory Selector. + + + diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/scripts/rqt_fixed_trajectory_selector b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/scripts/rqt_fixed_trajectory_selector new file mode 100644 index 000000000..4d4951103 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/scripts/rqt_fixed_trajectory_selector @@ -0,0 +1,10 @@ +#!/usr/bin/env python + +import sys + +from rqt_fixed_trajectory_selector.rqt_fixed_trajectory_selector import FixedTrajectorySelectorPlugin +from rqt_gui.main import Main + +plugin = 'rqt_fixed_trajectory_selector' +main = Main(filename=plugin) +sys.exit(main.main(standalone=plugin)) diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/setup.py b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/setup.py new file mode 100644 index 000000000..d8e789de9 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/setup.py @@ -0,0 +1,9 @@ +from distutils.core import setup +from catkin_pkg.python_setup import generate_distutils_setup + +d = generate_distutils_setup( + packages=['rqt_fixed_trajectory_selector'], + package_dir={'': 'src'}, +) + +setup(**d) diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/src/fixed_trajectory_generator.py b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/src/fixed_trajectory_generator.py new file mode 100755 index 000000000..2f2ea2b06 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/src/fixed_trajectory_generator.py @@ -0,0 +1,367 @@ +#!/usr/bin/python +import numpy as np +from nav_msgs.msg import Odometry +from geometry_msgs.msg import Point +import rospy +import tf.transformations as trans +import argparse +#from at_fcs_mavros.msg import Trajectory +#from at_fcs_mavros.msg import Waypoint +#from ca_nav_msgs.msg import XYZVPsi +#from ca_nav_msgs.msg import PathXYZVPsi +from core_trajectory_msgs.msg import WaypointXYZVYaw +from core_trajectory_msgs.msg import TrajectoryXYZVYaw +from core_trajectory_controller.msg import Trajectory +from core_trajectory_msgs.msg import FixedTrajectory +import time +import copy + +def get_velocities(traj, velocity, max_acc): + v_prev = 0. + + for i in range(len(traj.waypoints)): + j = (i+1) % len(traj.waypoints) + dx = traj.waypoints[j].position.x - traj.waypoints[i].position.x + dy = traj.waypoints[j].position.y - traj.waypoints[i].position.y + + dist = np.sqrt(dx**2 + dy**2) + v_limit = np.sqrt(v_prev**2 + 2*max_acc*dist) + traj.waypoints[i].velocity = min(velocity, v_limit) + v_prev = traj.waypoints[i].velocity + + + +def get_racetrack_waypoints(attributes):#length, width, height): + frame_id = str(attributes['frame_id']) + length = float(attributes['length']) + width = float(attributes['width']) + height = float(attributes['height']) + velocity = float(attributes['velocity']) + max_acceleration = float(attributes['max_acceleration']) + + traj = TrajectoryXYZVYaw() + traj.header.frame_id = frame_id + straightaway_length = length - width + + # first straightaway + xs1 = np.linspace(0, straightaway_length, 20) + ys1 = np.zeros(xs1.shape) + yaws1 = np.zeros(xs1.shape) + + # first turn + t = np.linspace(-np.pi/2, np.pi/2, 30)[1:-1] + xs2 = width/2.*np.cos(t) + straightaway_length + ys2 = width/2.*np.sin(t) + width/2. + xs2d = -width/2.*np.sin(t) # derivative of xs + ys2d = width/2.*np.cos(t) # derivative of ys + yaws2 = np.arctan2(ys2d, xs2d) + + # second straightaway + xs3 = np.linspace(straightaway_length, 0, 20) + ys3 = width*np.ones(xs3.shape) + yaws3 = np.pi*np.ones(xs3.shape) + + # second turn + t = np.linspace(np.pi/2, 3*np.pi/2, 30)[1:-1] + xs4 = width/2.*np.cos(t) + ys4 = width/2.*np.sin(t) + width/2. + yaws4 = yaws2 + np.pi + + xs = np.hstack((xs1, xs2, xs3, xs4)) + ys = np.hstack((ys1, ys2, ys3, ys4)) + yaws = np.hstack((yaws1, yaws2, yaws3, yaws4)) + + now = rospy.Time.now() + for i in range(xs.shape[0]): + wp = WaypointXYZVYaw() + wp.position.x = xs[i] + wp.position.y = ys[i] + wp.position.z = height + wp.yaw = yaws[i] + + traj.waypoints.append(wp) + + get_velocities(traj, velocity, max_acceleration) + + return traj + + +def get_figure8_waypoints(attributes):#length, width, height): + frame_id = str(attributes['frame_id']) + length = float(attributes['length']) + width = float(attributes['width']) + height = float(attributes['height']) + velocity = float(attributes['velocity']) + max_acceleration = float(attributes['max_acceleration']) + + traj = TrajectoryXYZVYaw() + traj.header.frame_id = frame_id + now = rospy.Time.now() + + # figure 8 points + t = np.linspace(0, 2*np.pi, 100) + x = np.cos(t) * length - length + y = np.cos(t)*np.sin(t) * 2*width + + # derivative of figure 8 curve, used to find yaw + xd = -np.sin(t) * length + yd = (np.cos(t)**2 - np.sin(t)**2) * 2*width + + for i in range(t.shape[0] - 1): + x1 = x[i] + y1 = y[i] + x2 = x1 + xd[i] + y2 = y1 + yd[i] + + yaw = np.arctan2(y2 - y1, x2 - x1) + + wp = WaypointXYZVYaw() + wp.position.x = x1 + wp.position.y = y1 + wp.position.z = height + wp.yaw = yaw + + traj.waypoints.append(wp) + + get_velocities(traj, velocity, max_acceleration) + + return traj + +def get_line_waypoints(attributes):#length, height): + frame_id = str(attributes['frame_id']) + length = float(attributes['length']) + height = float(attributes['height']) + velocity = float(attributes['velocity']) + max_acceleration = float(attributes['max_acceleration']) + + traj = TrajectoryXYZVYaw() + traj.header.frame_id = frame_id + + for y in np.arange(0, -length, -0.5): + wp = WaypointXYZVYaw() + wp.position.x = 0 + wp.position.y = y + wp.position.z = height + wp.yaw = 0 + + traj.waypoints.append(wp) + + get_velocities(traj, velocity, max_acceleration) + + return traj + +def get_point_waypoints(attributes):#length, height): + frame_id = str(attributes['frame_id']) + x = float(attributes['x']) + y = float(attributes['y']) + height = float(attributes['height']) + velocity = float(attributes['velocity']) + max_acceleration = float(attributes['max_acceleration']) + + traj = TrajectoryXYZVYaw() + traj.header.frame_id = frame_id + + # add first point + wp = WaypointXYZVYaw() + wp.position.x = x + wp.position.y = y + wp.position.z = height + wp.yaw = 0 + + traj.waypoints.append(wp) + + get_velocities(traj, velocity, max_acceleration) + + return traj + +def get_box_waypoints(attributes):#length, height): + frame_id = str(attributes['frame_id']) + length = float(attributes['length']) + height = float(attributes['height']) + velocity = float(attributes['velocity']) + max_acceleration = float(attributes['max_acceleration']) + + traj = TrajectoryXYZVYaw() + traj.header.frame_id = frame_id + + wp1 = WaypointXYZVYaw() + wp1.position.x = 0. + wp1.position.y = 0. + wp1.position.z = height + wp1.yaw = 0 + traj.waypoints.append(wp1) + + wp2 = WaypointXYZVYaw() + wp2.position.x = length + wp2.position.y = 0. + wp2.position.z = height + wp2.yaw = 0 + traj.waypoints.append(wp2) + + wp3 = WaypointXYZVYaw() + wp3.position.x = length + wp3.position.y = 0. + wp3.position.z = height + height + wp3.yaw = 0 + traj.waypoints.append(wp3) + + wp4 = WaypointXYZVYaw() + wp4.position.x = 0. + wp4.position.y = 0. + wp4.position.z = height + height + wp4.yaw = 0 + traj.waypoints.append(wp4) + + return traj + +def get_vertical_lawnmower_waypoints(attributes):#length, width, height, velocity): + frame_id = str(attributes['frame_id']) + length = float(attributes['length']) + width = float(attributes['width']) + height = float(attributes['height']) + velocity = float(attributes['velocity']) + + traj = TrajectoryXYZVYaw() + traj.header.frame_id = frame_id + + for i in range(abs(int(height/width))): + wp1 = WaypointXYZVYaw() + wp1.position.x = 0 + wp1.position.y = 0 + wp1.position.z = np.sign(height)*(i+1)*width + wp1.yaw = 0 + wp1.velocity = 0.1 + + wp1_ = WaypointXYZVYaw() + wp1_.position.x = 0 + wp1_.position.y = 0.5 + wp1_.position.z = np.sign(height)*(i+1)*width + wp1_.yaw = 0 + wp1_.velocity = velocity + + wp2 = WaypointXYZVYaw() + wp2.position.x = 0 + wp2.position.y = length + wp2.position.z = np.sign(height)*(i+1)*width + wp2.yaw = 0 + wp2.velocity = 0.1 + + wp2_ = WaypointXYZVYaw() + wp2_.position.x = 0 + wp2_.position.y = length - 0.5 + wp2_.position.z = np.sign(height)*(i+1)*width + wp2_.yaw = 0 + wp2_.velocity = velocity + + if i%2 == 0: + traj.waypoints.append(wp1) + wp1_slow = copy.deepcopy(wp1_) + wp1_slow.velocity = 0.1 + traj.waypoints.append(wp1_slow) + traj.waypoints.append(wp1_) + traj.waypoints.append(wp2_) + traj.waypoints.append(wp2) + else: + traj.waypoints.append(wp2) + wp2_slow = copy.deepcopy(wp2_) + wp2_slow.velocity = 0.1 + traj.waypoints.append(wp2_slow) + traj.waypoints.append(wp2_) + traj.waypoints.append(wp1_) + traj.waypoints.append(wp1) + + wp = WaypointXYZVYaw() + wp.position.x = 0 + wp.position.y = 0 + wp.position.z = 0 + wp.yaw = 0 + wp.velocity = 0.5 + traj.waypoints.append(wp) + + return traj + +def get_circle_waypoints(attributes):#radius, velocity, frame_id): + frame_id = str(attributes['frame_id']) + radius = float(attributes['radius']) + velocity = float(attributes['velocity']) + + traj = TrajectoryXYZVYaw() + traj.header.frame_id = frame_id + traj.header.stamp = rospy.Time.now() + + wp0 = WaypointXYZVYaw() + wp0.position.x = 0 + wp0.position.y = 0 + wp0.position.z = 0 + wp0.yaw = 0 + wp0.velocity = velocity + traj.waypoints.append(wp0) + + wp1 = WaypointXYZVYaw() + wp1.position.x = radius + wp1.position.y = 0 + wp1.position.z = 0 + wp1.yaw = 0 + wp1.velocity = velocity + traj.waypoints.append(wp1) + + for angle in np.arange(0, 2*np.pi, 10.*np.pi/180.): + wp = WaypointXYZVYaw() + wp.position.x = radius*np.cos(angle) + wp.position.y = radius*np.sin(angle) + wp.position.z = 0 + wp.yaw = 0 + wp.velocity = velocity + traj.waypoints.append(wp) + + wp_end0 = WaypointXYZVYaw() + wp_end0.position.x = radius + wp_end0.position.y = 0 + wp_end0.position.z = 0 + wp_end0.yaw = 0 + wp_end0.velocity = velocity + traj.waypoints.append(wp_end0) + + wp_end1 = WaypointXYZVYaw() + wp_end1.position.x = 0 + wp_end1.position.y = 0 + wp_end1.position.z = 0 + wp_end1.yaw = 0 + wp_end1.velocity = velocity + traj.waypoints.append(wp_end1) + + return traj + + +def fixed_trajectory_callback(msg): + attributes = {} + + for key_value in msg.attributes: + attributes[key_value.key] = key_value.value + + trajectory_msg = None + + if msg.type == 'Figure8': + trajectory_msg = get_figure8_waypoints(attributes) + elif msg.type == 'Circle': + trajectory_msg = get_circle_waypoints(attributes) + elif msg.type == 'Racetrack': + trajectory_msg = get_racetrack_waypoints(attributes) + elif msg.type == 'Line': + trajectory_msg = get_line_waypoints(attributes) + elif msg.type == 'Point': + trajectory_msg = get_point_waypoints(attributes) + + if trajectory_msg != None: + trajectory_track_pub.publish(trajectory_msg) + else: + print('No trajectory sent.') + +if __name__ == '__main__': + rospy.init_node('fixed_trajectory_generator') + + fixed_trajectory_sub = rospy.Subscriber('fixed_trajectory', FixedTrajectory, fixed_trajectory_callback) + + trajectory_track_pub = rospy.Publisher('trajectory_track', TrajectoryXYZVYaw, queue_size=1) + + rospy.spin() diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/src/rqt_fixed_trajectory_selector/__init__.py b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/src/rqt_fixed_trajectory_selector/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/src/rqt_fixed_trajectory_selector/rqt_fixed_trajectory_selector.py b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/src/rqt_fixed_trajectory_selector/rqt_fixed_trajectory_selector.py new file mode 100644 index 000000000..af755a0ce --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/src/rqt_fixed_trajectory_selector/rqt_fixed_trajectory_selector.py @@ -0,0 +1,204 @@ +import os +import time +import rospy +import rospkg +from std_msgs.msg import String, Bool +from behavior_tree_msgs.msg import Status +import numpy as np +import yaml +import collections + +from qt_gui.plugin import Plugin +import python_qt_binding.QtWidgets as qt +import python_qt_binding.QtCore as core +import python_qt_binding.QtGui as gui + +from python_qt_binding import QT_BINDING, QT_BINDING_VERSION + +from python_qt_binding.QtCore import Slot, Qt, qVersion, qWarning, Signal +from python_qt_binding.QtGui import QColor +from python_qt_binding.QtWidgets import QWidget, QVBoxLayout, QSizePolicy + +from core_trajectory_msgs.msg import FixedTrajectory +from diagnostic_msgs.msg import KeyValue + +class FixedTrajectorySelectorPlugin(Plugin): + def __init__(self, context): + super(FixedTrajectorySelectorPlugin, self).__init__(context) + self.setObjectName('FixedTrajectorySelectorPlugin') + + self.config_filename = '' + + self.button_dct = {} + self.attribute_settings = collections.OrderedDict() + + self.timer = rospy.Timer(rospy.Duration(1./10.), self.timer_callback) + + self.fixed_trajectory_pub = rospy.Publisher('fixed_trajectory_command', FixedTrajectory, queue_size=1) + self.global_plan_fixed_trajectory_pub = rospy.Publisher('global_plan_fixed_trajectory', FixedTrajectory, queue_size=1) + + # main layout + self.widget = QWidget() + self.vbox = qt.QVBoxLayout() + self.widget.setLayout(self.vbox) + context.add_widget(self.widget) + + # config widget + self.config_widget = qt.QWidget() + self.config_widget.setStyleSheet('QWidget{margin-left:-1px;}') + self.config_layout = qt.QHBoxLayout() + self.config_widget.setLayout(self.config_layout) + self.config_widget.setFixedHeight(50) + + self.config_button = qt.QPushButton('Open Config...') + self.config_button.clicked.connect(self.select_config_file) + self.config_layout.addWidget(self.config_button) + + self.config_label = qt.QLabel('config filename: ') + self.config_layout.addWidget(self.config_label) + self.vbox.addWidget(self.config_widget) + + # trajectory widget + self.trajectory_widget = qt.QWidget() + self.trajectory_layout = qt.QVBoxLayout() + self.trajectory_widget.setLayout(self.trajectory_layout) + self.vbox.addWidget(self.trajectory_widget) + + self.tab_widget = qt.QTabWidget() + self.trajectory_layout.addWidget(self.tab_widget) + + # button widget + self.button_widget = qt.QWidget() + self.button_layout = qt.QHBoxLayout() + self.button_widget.setLayout(self.button_layout) + self.vbox.addWidget(self.button_widget) + + self.publish_button = qt.QPushButton('Publish') + self.publish_button.clicked.connect(self.publish_trajectory) + self.button_layout.addWidget(self.publish_button) + + self.trajectory_type_label = qt.QLabel('Type: ') + self.button_layout.addWidget(self.trajectory_type_label) + + self.trajectory_type_combo_box = qt.QComboBox() + self.trajectory_type_combo_box.addItem('Fixed Trajectory') + self.trajectory_type_combo_box.addItem('Global Plan') + self.button_layout.addWidget(self.trajectory_type_combo_box) + + def publish_trajectory(self): + trajectory_type = self.trajectory_type_combo_box.currentText() + trajectory_name = self.tab_widget.tabText(self.tab_widget.currentIndex()) + msg = FixedTrajectory() + msg.type = trajectory_name + for attribute, value in self.attribute_settings[trajectory_name].iteritems(): + key_value = KeyValue() + key_value.key = attribute + key_value.value = value + msg.attributes.append(key_value) + if trajectory_type == 'Fixed Trajectory': + self.fixed_trajectory_pub.publish(msg) + elif trajectory_type == 'Global Plan': + self.global_plan_fixed_trajectory_pub.publish(msg) + + + def select_config_file(self): + starting_path = os.path.join(rospkg.RosPack().get_path('core_trajectory_library'), 'config') + filename = qt.QFileDialog.getOpenFileName(self.widget, 'Open Config File', starting_path, "Config Files (*.yaml)")[0] + self.set_config(filename) + + def set_config(self, filename): + if filename != '': + self.config_filename = filename + if self.config_filename != None: + self.config_label.setText('config filename: ' + self.config_filename) + self.init_buttons(filename) + + def init_buttons(self, filename): + y = yaml.load(open(filename, 'r').read()) + print(y) + + def get_attribute_changed_function(trajectory_name, attribute_name): + def attribute_changed(text): + if trajectory_name not in self.attribute_settings: + self.attribute_settings[trajectory_name] = {} + self.attribute_settings[trajectory_name][attribute_name] = text + return attribute_changed + + def get_publish_function(trajectory_name): + def publish_function(): + msg = FixedTrajectory() + msg.type = trajectory_name + for attribute, value in self.attribute_settings[trajectory_name].iteritems(): + key_value = KeyValue() + key_value.key = attribute + key_value.value = value + msg.attributes.append(key_value) + self.fixed_trajectory_pub.publish(msg) + return publish_function + + + for trajectory in y['trajectories']: + trajectory_name = trajectory.keys()[0] + attributes = trajectory[trajectory_name]['attributes'] + + trajectory_tab = qt.QWidget() + trajectory_layout = qt.QVBoxLayout() + trajectory_tab.setLayout(trajectory_layout) + + for attribute in attributes: + attribute_widget = qt.QWidget() + attribute_layout = qt.QHBoxLayout() + attribute_widget.setLayout(attribute_layout) + + attribute_label = qt.QLabel() + attribute_label.setText(attribute) + attribute_layout.addWidget(attribute_label) + + attribute_default = '0' + if attribute == 'frame_id': + attribute_default = 'world' + if trajectory_name in self.attribute_settings.keys(): + if attribute in self.attribute_settings[trajectory_name].keys(): + attribute_default = self.attribute_settings[trajectory_name][attribute] + + attribute_edit = qt.QLineEdit() + attribute_edit.textChanged.connect(get_attribute_changed_function(trajectory_name, + attribute)) + attribute_edit.setText(attribute_default) + + attribute_layout.addWidget(attribute_edit) + + trajectory_layout.addWidget(attribute_widget) + + #publish_button = qt.QPushButton('Publish') + #publish_button.clicked.connect(get_publish_function(trajectory_name)) + #trajectory_layout.addWidget(publish_button) + + self.tab_widget.addTab(trajectory_tab, trajectory_name) + + + + def timer_callback(self, msg): + bool_msg = Bool() + for key in self.button_dct.keys(): + bool_msg.data = self.button_dct[key]['data'] + self.button_dct[key]['publisher'].publish(bool_msg) + + def shutdown_plugin(self): + pass + + def save_settings(self, plugin_settings, instance_settings): + instance_settings.set_value('config_filename', self.config_filename) + instance_settings.set_value('attribute_settings', self.attribute_settings) + + def restore_settings(self, plugin_settings, instance_settings): + attribute_settings = instance_settings.value('attribute_settings') + if attribute_settings != None: + self.attribute_settings = attribute_settings + self.set_config(instance_settings.value('config_filename')) + + #def trigger_configuration(self): + # Comment in to signal that the plugin has a way to configure + # This will enable a setting button (gear icon) in each dock widget title bar + # Usually used to open a modal configuration dialog + diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/src/trajectory_library.cpp b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/src/trajectory_library.cpp new file mode 100644 index 000000000..de4a6da4b --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/src/trajectory_library.cpp @@ -0,0 +1,920 @@ +#include +#include +#include +#include +#include +#include +#include + +Waypoint::Waypoint(double x, double y, double z, double yaw, + double vx, double vy, double vz, double time){ + x_ = x; + y_ = y; + z_ = z; + vx_ = vx; + vy_ = vy; + vz_ = vz; + yaw_ = yaw; + time_ = time; +} + +tf::Quaternion Waypoint::q() const { + tf::Quaternion quat; + quat.setRPY(0, 0, yaw_); + return quat; +} + +tf::Vector3 Waypoint::position() const { + return tf::Vector3(x_, y_, z_); +} + +tf::Vector3 Waypoint::velocity() const { + return tf::Vector3(vx_, vy_, vz_); +} + + +nav_msgs::Odometry Waypoint::odometry(ros::Time stamp, std::string frame_id) const { + nav_msgs::Odometry odom; + odom.header.stamp = stamp; + odom.header.frame_id = frame_id; + odom.child_frame_id = frame_id; + + odom.pose.pose.position.x = x_; + odom.pose.pose.position.y = y_; + odom.pose.pose.position.z = z_; + + tf::Quaternion quat = q(); + odom.pose.pose.orientation.x = quat.x(); + odom.pose.pose.orientation.y = quat.y(); + odom.pose.pose.orientation.z = quat.z(); + odom.pose.pose.orientation.w = quat.w(); + + odom.twist.twist.linear.x = vx_; + odom.twist.twist.linear.y = vy_; + odom.twist.twist.linear.z = vz_; + + return odom; +} + +Waypoint Waypoint::interpolate(Waypoint wp, double t){ + tf::Vector3 pos_interp = position() + t*(wp.position() - position()); + tf::Quaternion q_interp = q().slerp(wp.q(), t); + tf::Vector3 vel_interp = velocity() + t*(wp.velocity() - velocity()); + double time_interp = time() + t*(time() - wp.time()); + + Waypoint wp_interp(pos_interp.x(), pos_interp.y(), pos_interp.z(), + tf::getYaw(q_interp), + vel_interp.x(), vel_interp.y(), vel_interp.z(), + time_interp); + + return wp_interp; +} + +static int trajectory_class_counter = 0; + +Trajectory::Trajectory(){ + //listener = NULL; + generated_waypoint_times = false; + + // init marker namespace to be unique + std::stringstream ss; + ss << "trajectory_" << trajectory_class_counter; + marker_namespace = ss.str(); + trajectory_class_counter++; +} + +Trajectory::Trajectory(std::string frame_id){ + this->frame_id = frame_id; + //listener = NULL; + generated_waypoint_times = false; + + // init marker namespace to be unique + std::stringstream ss; + ss << "trajectory_" << trajectory_class_counter; + marker_namespace = ss.str(); + trajectory_class_counter++; +} + +Trajectory::Trajectory(core_trajectory_msgs::TrajectoryXYZVYaw path){ + frame_id = path.header.frame_id; + stamp = path.header.stamp; + //listener = NULL; + generated_waypoint_times = false; + + // init marker namespace to be unique + std::stringstream ss; + ss << "trajectory_" << trajectory_class_counter; + marker_namespace = ss.str(); + trajectory_class_counter++; + + // remove any consecutive duplicate waypoints + core_trajectory_msgs::TrajectoryXYZVYaw cleaned_path; + cleaned_path.header = path.header; + for(int i = 0; i < path.waypoints.size(); i++){ + core_trajectory_msgs::WaypointXYZVYaw wp = path.waypoints[i]; + if(i == 0) + cleaned_path.waypoints.push_back(wp); + else if(!(wp.position.x == cleaned_path.waypoints.back().position.x && + wp.position.y == cleaned_path.waypoints.back().position.y && + wp.position.z == cleaned_path.waypoints.back().position.z)) + cleaned_path.waypoints.push_back(wp); + } + + //ROS_INFO_STREAM("TRAJECTORY CONSTRUCTOR"); + for(int i = 0; i < cleaned_path.waypoints.size(); i++){ + core_trajectory_msgs::WaypointXYZVYaw wp = cleaned_path.waypoints[i]; + + // calculate the x, y, z components of velocity + tf::Vector3 wp1(wp.position.x, wp.position.y, wp.position.z); + tf::Vector3 wp2(wp1); + if(i == 0){ // for the first waypoint use the next waypoint to figure out direction of travel + if(cleaned_path.waypoints.size() > 1) + wp2 = tf::Vector3(cleaned_path.waypoints[i+1].position.x, cleaned_path.waypoints[i+1].position.y, cleaned_path.waypoints[i+1].position.z); + } + else{ // otherwise use the previous waypoint + wp1 = tf::Vector3(cleaned_path.waypoints[i-1].position.x, cleaned_path.waypoints[i-1].position.y, cleaned_path.waypoints[i-1].position.z); + } + + tf::Vector3 direction = (wp2-wp1).normalized(); + tf::Vector3 vel = wp.velocity*direction; + + //ROS_INFO_STREAM("WAYPOINT " << i << " vel: " << vel.x() << " " << vel.y() << " " << vel.z()); + //ROS_INFO_STREAM("\twp1: " << wp1.x() << " " << wp1.y() << " " << wp1.z()); + //ROS_INFO_STREAM("\twp2: " << wp2.x() << " " << wp2.y() << " " << wp2.z()); + //ROS_INFO_STREAM("\tdirection: " << direction.x() << " " << direction.y() << " " << direction.z() << " wp.vel: " << wp.vel); + + Waypoint waypoint(wp.position.x, wp.position.y, wp.position.z, wp.yaw, vel.x(), vel.y(), vel.z()); + waypoints.push_back(waypoint); + } +} + +void Trajectory::init_listener(){ + if(listener == NULL) + listener = new tf::TransformListener(); +} + +void Trajectory::clear(){ + waypoints.clear(); + generated_waypoint_times = false; +} + +void Trajectory::generate_waypoint_times(){ + if(generated_waypoint_times) + return; + + /* + if(waypoints.size() > 1){ + ROS_INFO_STREAM("WAYPOINT " << 0 << waypoints[0]); + } + */ + + for(int i = 1; i < waypoints.size(); i++){ + Waypoint& curr_wp = waypoints[i]; + Waypoint& prev_wp = waypoints[i-1]; + + double distance = curr_wp.position().distance(prev_wp.position()); + double velocity = std::max(0.01, curr_wp.velocity().length()); + //if(i+1 < waypoints.size()){ + // velocity = (velocity + waypoints[i+1].velocity().length())/2.0; + //} + + //ROS_INFO_STREAM("WAYPOINT " << i << " dist: " << distance << " vel: " << velocity << " time: " << (prev_wp.time() + distance/velocity) << " prev_time: " << prev_wp.time() << " inc: " << (distance/velocity)); + + curr_wp.set_time(prev_wp.time() + distance/velocity); + } + + generated_waypoint_times = true; +} + +bool Trajectory::get_closest_point(tf::Vector3 point, tf::Vector3* closest, int* wp_index, double* path_distance){ + double closest_distance = std::numeric_limits::max(); + double best_t = 0; + int best_wp_index = 0; + + if(waypoints.size() == 0){ + if(wp_index != NULL) + *wp_index = 0; + if(path_distance != NULL) + path_distance = 0; + return false; + } + else if(waypoints.size() == 1){ + *closest = waypoints[0].position(); + best_wp_index = 0; + if(path_distance != NULL) + path_distance = 0; + } + else{ + for(int i = 1; i < waypoints.size(); i++){ + // parameteric representation of segment between waypoints: segment_start + t*segment_vec + tf::Vector3 segment_start = waypoints[i-1].position(); + tf::Vector3 segment_end = waypoints[i].position(); + tf::Vector3 segment_vec = segment_end - segment_start; + + // project the vector (point - segment_start) onto the parametric line + double t = ((point - segment_start).dot(segment_vec)) / (segment_vec.dot(segment_vec)); + t = std::max(0.0, std::min(1.0, t)); + tf::Vector3 closest_point = segment_start + t*segment_vec; + + // find the distance between the point and the closest point on the current segment + double distance = closest_point.distance(point); + if(distance < closest_distance){ + closest_distance = distance; + *closest = closest_point; + best_wp_index = i-1; + best_t = t; + } + } + + if(path_distance != NULL){ + *path_distance = 0; + for(int i = 0; i <= best_wp_index; i++){ + tf::Vector3 segment_start = waypoints[i].position(); + tf::Vector3 segment_end = waypoints[i+1].position(); + tf::Vector3 segment_vec = segment_end - segment_start; + + if(i == best_wp_index) + *path_distance += best_t*segment_vec.length(); + else + *path_distance += segment_vec.length(); + } + } + } + + + if(wp_index != NULL) + *wp_index = best_wp_index; + + return true; +} + +bool Trajectory::get_trajectory_distance_at_closest_point(tf::Vector3 point, + double* trajectory_distance){ + double closest_distance = std::numeric_limits::max(); + *trajectory_distance = 0; + double current_trajectory_distance = 0; + + if(waypoints.size() == 0) + return false; + else if(waypoints.size() == 1) + return true; + else{ + for(int i = 1; i < waypoints.size(); i++){ + // parameteric representation of segment between waypoints: segment_start + t*segment_vec + tf::Vector3 segment_start = waypoints[i-1].position(); + tf::Vector3 segment_end = waypoints[i].position(); + tf::Vector3 segment_vec = segment_end - segment_start; + double segment_length = segment_start.distance(segment_end); + + // project the vector (point - segment_start) onto the parametric line + double t = ((point - segment_start).dot(segment_vec)) / (segment_vec.dot(segment_vec)); + t = std::max(0.0, std::min(1.0, t)); + tf::Vector3 closest_point = segment_start + t*segment_vec; + + // find the distance between the point and the closest point on the current segment + double distance = closest_point.distance(point); + if(distance < closest_distance){ + closest_distance = distance; + *trajectory_distance = current_trajectory_distance + t*segment_length; + } + + current_trajectory_distance += segment_length; + } + } + + return true; +} + +bool Trajectory::merge(Trajectory traj){ + if(traj.waypoints.size() == 0){ + return true; + } + generated_waypoint_times = false; + + Trajectory transformed_traj; + try{ + transformed_traj = traj.to_frame(frame_id, stamp); + } + catch(tf::TransformException& ex){ + ROS_ERROR_STREAM("Transform exception while merging trajectories: " << ex.what()); + } + if(transformed_traj.waypoints.size() == 0){ + return true; + } + + if(waypoints.size() == 0){ + waypoints.insert(waypoints.end(), transformed_traj.waypoints.begin(), transformed_traj.waypoints.end()); + return true; + } + + tf::Vector3 closest_point; + int wp_index; + bool valid = get_closest_point(transformed_traj.waypoints[0].position(), &closest_point, &wp_index); + + waypoints.erase(waypoints.begin() + wp_index+1, waypoints.end()); + waypoints.insert(waypoints.end(), transformed_traj.waypoints.begin(), transformed_traj.waypoints.end()); + return true; +} + +double Trajectory::get_duration(){ + generate_waypoint_times(); + + if(waypoints.size() == 0) + return 0; + + return waypoints.back().time(); +} + +bool Trajectory::get_odom(double time, nav_msgs::Odometry* odom){ + generate_waypoint_times(); + + if(waypoints.size() == 0){ + return false; + } + else if(waypoints.size() == 1){ + *odom = waypoints[0].odometry(ros::Time::now(), frame_id); + return true; + } + + // figure out what waypoints we are between + Waypoint prev_wp = waypoints.back(); + Waypoint curr_wp = waypoints.back(); + Waypoint next_wp = waypoints.back(); + for(int i = 1; i < waypoints.size(); i++){ + if(time <= waypoints[i].time()){ + prev_wp = waypoints[i-1]; + curr_wp = waypoints[i]; + next_wp = curr_wp; + if(i+1 < waypoints.size()) + next_wp = waypoints[i+1]; + break; + } + } + + // figure out where we are in between the current and previous waypoints + double t = (time - prev_wp.time()) / (curr_wp.time() - prev_wp.time()); + t = std::max(0.0, std::min(1.0, t)); + + // set frame and timestamp + odom->header.stamp = ros::Time::now(); // TODO: figure out if this is correct + odom->header.frame_id = frame_id; + odom->child_frame_id = frame_id; + + // interpolate position + tf::Vector3 position = prev_wp.position() + t*(curr_wp.position() - prev_wp.position()); + odom->pose.pose.position.x = position.x(); + odom->pose.pose.position.y = position.y(); + odom->pose.pose.position.z = position.z(); + + // interpolate velocity + tf::Vector3 velocity = curr_wp.velocity() + t*(next_wp.velocity() - curr_wp.velocity()); + odom->twist.twist.linear.x = velocity.x(); + odom->twist.twist.linear.y = velocity.y(); + odom->twist.twist.linear.z = velocity.z(); + + // interpolate orientation + tf::Quaternion q = prev_wp.q().slerp(curr_wp.q(), t); + odom->pose.pose.orientation.x = q.x(); + odom->pose.pose.orientation.y = q.y(); + odom->pose.pose.orientation.z = q.z(); + odom->pose.pose.orientation.w = q.w(); + + return true; +} + +Trajectory Trajectory::to_frame(std::string target_frame, ros::Time time) { + init_listener(); + + tf::StampedTransform transform; + listener->waitForTransform(target_frame, frame_id, time, ros::Duration(0.1)); + listener->lookupTransform(target_frame, frame_id, time, transform); + + Trajectory transformed_traj; + transformed_traj.stamp = time; + transformed_traj.frame_id = target_frame; + + for(int i = 0; i < waypoints.size(); i++){ + Waypoint wp = waypoints[i]; + + tf::Vector3 transformed_position = transform*wp.position(); + tf::Vector3 transformed_velocity = tf::Transform(transform.getRotation())*wp.velocity(); + tf::Quaternion transformed_q = transform*wp.q(); + + Waypoint transformed_wp(transformed_position.x(), transformed_position.y(), transformed_position.z(), tf::getYaw(transformed_q), + transformed_velocity.x(), transformed_velocity.y(), transformed_velocity.z()); + + transformed_traj.waypoints.push_back(transformed_wp); + } + + return transformed_traj; +} + +Trajectory Trajectory::respace(double spacing){ + Trajectory traj; + traj.stamp = stamp; + traj.frame_id = frame_id; + //ROS_INFO("RESPACE"); + + if(waypoints.size() > 0){ + double distance = 0; + traj.waypoints.push_back(waypoints[0]); // always add the first waypoint + + for(int i = 1; i < waypoints.size(); i++){ + if(i == waypoints.size()-1){ // always add the last waypoint + traj.waypoints.push_back(waypoints[i]); + continue; + } + //ROS_INFO_STREAM("Waypoint " << i); + Waypoint prev_wp = waypoints[i-1]; + Waypoint curr_wp = waypoints[i]; + double segment_length = prev_wp.position().distance(curr_wp.position()); + //ROS_INFO_STREAM("segment_length: " << segment_length << " distance: " << distance << " spacing: " << spacing); + + if(distance + segment_length >= spacing){ + //ROS_INFO("interpolating"); + Waypoint interp_wp = prev_wp.interpolate(curr_wp, (spacing - distance)/segment_length); + traj.waypoints.push_back(interp_wp); + distance = 0; + } + else + distance += segment_length; + } + } + + return traj; +} + +Trajectory Trajectory::shorten(double new_length){ + Trajectory traj; + traj.stamp = stamp; + traj.frame_id = frame_id; + + if(waypoints.size() > 0){ + double distance = 0; + traj.waypoints.push_back(waypoints[0]); // always add the first waypoint + + for(int i = 1; i < waypoints.size(); i++){ + Waypoint prev_wp = waypoints[i-1]; + Waypoint curr_wp = waypoints[i]; + double segment_length = prev_wp.position().distance(curr_wp.position()); + + if(distance + segment_length >= new_length){ + Waypoint interp_wp = prev_wp.interpolate(curr_wp, (new_length - distance)/segment_length); + traj.waypoints.push_back(interp_wp); + break; + } + else{ + traj.waypoints.push_back(curr_wp); + distance += segment_length; + } + } + } + + return traj; +} + +Trajectory Trajectory::get_subtrajectory_distance(double start, double end){ + Trajectory traj; + traj.stamp = stamp; + traj.frame_id = frame_id; + + if(waypoints.size() > 0){ + double distance = 0; + + for(int i = 1; i < waypoints.size(); i++){ + Waypoint prev_wp = waypoints[i-1]; + Waypoint curr_wp = waypoints[i]; + double segment_length = prev_wp.position().distance(curr_wp.position()); + + if(start >= distance && start <= distance+segment_length){ + Waypoint interp_start_wp = prev_wp.interpolate(curr_wp, (start-distance)/segment_length); + traj.waypoints.push_back(interp_start_wp); + } + + if(distance+segment_length > start && distance+segment_length < end){ + traj.waypoints.push_back(curr_wp); + } + + if(end >= distance && end <= distance+segment_length){ + Waypoint interp_end_wp = prev_wp.interpolate(curr_wp, (end-distance)/segment_length); + traj.waypoints.push_back(interp_end_wp); + } + + distance += segment_length; + } + } + + return traj; +} + +void Trajectory::set_fixed_height(double height){ + for(int i = 0; i < waypoints.size(); i++) + waypoints[i].z_ = height; +} + +int Trajectory::waypoint_count(){ + return waypoints.size(); +} + +Waypoint Trajectory::get_waypoint(int index){ + return waypoints[index]; +} + +std::string Trajectory::get_frame_id(){ + return frame_id; +} + +core_trajectory_msgs::TrajectoryXYZVYaw Trajectory::get_TrajectoryXYZVYaw(){ + core_trajectory_msgs::TrajectoryXYZVYaw path; + path.header.stamp = stamp; + path.header.frame_id = frame_id; + + for(int i = 0; i < waypoints.size(); i++){ + Waypoint wp = waypoints[i]; + + core_trajectory_msgs::WaypointXYZVYaw w; + w.position.x = wp.x(); + w.position.y = wp.y(); + w.position.z = wp.z(); + w.yaw = tf::getYaw(wp.q()); + w.velocity = wp.velocity().length(); + + path.waypoints.push_back(w); + } + + return path; +} + +std::vector Trajectory::get_vector_PointStamped(){ + std::vector points; + + for(int i = 0; i < waypoints.size(); i++){ + Waypoint wp = waypoints[i]; + + geometry_msgs::PointStamped point; + point.header.stamp = stamp; + point.header.frame_id = frame_id; + point.point.x = wp.x(); + point.point.y = wp.y(); + point.point.z = wp.z(); + + points.push_back(point); + } + + return points; +} + +visualization_msgs::MarkerArray Trajectory::get_markers(float r, float g, float b, float a, bool show_poses, bool show_velocity){ + visualization_msgs::MarkerArray marker_array; + ros::Time now = ros::Time::now(); + + visualization_msgs::Marker clear; + clear.ns = marker_namespace; + clear.action = visualization_msgs::Marker::DELETEALL; + marker_array.markers.push_back(clear); + + visualization_msgs::Marker lines; + lines.header.stamp = now; + lines.header.frame_id = frame_id; + lines.ns = marker_namespace; + lines.id = waypoints.size(); + lines.type = visualization_msgs::Marker::LINE_STRIP; + lines.action = visualization_msgs::Marker::ADD; + lines.scale.x = 0.1; + + for(int i = 0; i < waypoints.size(); i++){ + Waypoint wp = waypoints[i]; + + if(show_poses){ + visualization_msgs::Marker arrow; + arrow.header.stamp = now; + arrow.header.frame_id = frame_id; + arrow.ns = marker_namespace; + arrow.id = i; + arrow.type = visualization_msgs::Marker::ARROW; + arrow.action = visualization_msgs::Marker::ADD; + + arrow.pose.position.x = wp.position().x(); + arrow.pose.position.y = wp.position().y(); + arrow.pose.position.z = wp.position().z(); + arrow.pose.orientation.x = wp.q().x(); + arrow.pose.orientation.y = wp.q().y(); + arrow.pose.orientation.z = wp.q().z(); + arrow.pose.orientation.w = wp.q().w(); + arrow.scale.x = 0.5; // length + arrow.scale.y = 0.1; // width + arrow.scale.z = 0.1; // height + arrow.color.r = r; + arrow.color.g = g; + arrow.color.b = b; + arrow.color.a = a; + + marker_array.markers.push_back(arrow); + } + + if(show_velocity){ + visualization_msgs::Marker vel_arrow; + vel_arrow.header.stamp = now; + vel_arrow.header.frame_id = frame_id; + vel_arrow.ns = marker_namespace + "_velocities"; + vel_arrow.id = i; + vel_arrow.type = visualization_msgs::Marker::ARROW; + vel_arrow.action = visualization_msgs::Marker::ADD; + + geometry_msgs::Point point1, point2; + point1.x = wp.position().x(); + point1.y = wp.position().y(); + point1.z = wp.position().z()+0.2; + point2.x = wp.position().x() + wp.velocity().normalized().x()/3.; + point2.y = wp.position().y() + wp.velocity().normalized().y()/3.; + point2.z = wp.position().z()+0.2 + wp.velocity().normalized().z()/3.; + vel_arrow.points.push_back(point1); + vel_arrow.points.push_back(point2); + vel_arrow.scale.x = 0.1; + vel_arrow.scale.y = 0.15; + vel_arrow.scale.z = 0.1; + vel_arrow.color.r = r; + vel_arrow.color.g = g; + vel_arrow.color.b = b; + vel_arrow.color.a = a; + + marker_array.markers.push_back(vel_arrow); + } + + geometry_msgs::Point p; + p.x = wp.position().x(); + p.y = wp.position().y(); + p.z = wp.position().z(); + lines.points.push_back(p); + std_msgs::ColorRGBA color; + color.r = r; + color.g = g; + color.b = b; + color.a = a; + lines.colors.push_back(color); + } + + marker_array.markers.push_back(lines); + + return marker_array; +} + +//=================================================================================== +//--------------------------------- Dynamic Trajectories ---------------------------- +//=================================================================================== + +TakeoffTrajectory::TakeoffTrajectory(double height, double velocity, double path_roll, double path_pitch, bool relative_to_orientation){ + this->height = height; + this->velocity = velocity; + this->path_roll = path_roll; + this->path_pitch = path_pitch; + this->relative_to_orientation = relative_to_orientation; +} + +core_trajectory_msgs::TrajectoryXYZVYaw TakeoffTrajectory::get_trajectory(nav_msgs::Odometry odom){ + core_trajectory_msgs::TrajectoryXYZVYaw traj; + traj.header.frame_id = odom.header.frame_id; + traj.header.stamp = odom.header.stamp; + + core_trajectory_msgs::WaypointXYZVYaw wp1, wp2; + + wp1.position.x = odom.pose.pose.position.x; + wp1.position.y = odom.pose.pose.position.y; + wp1.position.z = odom.pose.pose.position.z; + + tf::Quaternion q(odom.pose.pose.orientation.x, + odom.pose.pose.orientation.y, + odom.pose.pose.orientation.z, + odom.pose.pose.orientation.w); + double roll, pitch, yaw; + tf::Matrix3x3(q).getRPY(roll, pitch, yaw); + wp1.yaw = yaw;//tf::getYaw(q); + wp1.velocity = velocity; + + + + wp2.position.x = odom.pose.pose.position.x + height*sin(path_pitch + (relative_to_orientation ? pitch : 0)); + wp2.position.y = odom.pose.pose.position.y + height*sin(path_roll - (relative_to_orientation ? roll : 0)); + wp2.position.z = odom.pose.pose.position.z + height; + wp2.yaw = wp1.yaw; + wp2.velocity = velocity; + + traj.waypoints.push_back(wp1); + traj.waypoints.push_back(wp2); + + return traj; +} + + +AccelerationTrajectory::AccelerationTrajectory(tf::TransformListener* listener, std::string frame, double ax, double ay, double az, double dt, double ht, double max_velocity){ + this->listener = listener; + + ros::NodeHandle nh("acceleration_trajectory"); + set_max_velocity_sub = nh.subscribe("set_max_velocity", 1, &AccelerationTrajectory::set_max_velocity_callback, this); + + this->ax = ax; + this->ay = ay; + this->az = az; + this->dt = dt; + this->ht = ht; + this->max_velocity = max_velocity; + this->frame = frame; +} + +void AccelerationTrajectory::set_max_velocity_callback(std_msgs::Float32 msg){ + max_velocity = msg.data; +} + +core_trajectory_msgs::TrajectoryXYZVYaw AccelerationTrajectory::get_trajectory(nav_msgs::Odometry odom){ + core_trajectory_msgs::TrajectoryXYZVYaw traj; + traj.header.frame_id = frame; + traj.header.stamp = odom.header.stamp; + + try{ + tf::StampedTransform pose_tf; + listener->waitForTransform(frame, odom.header.frame_id, odom.header.stamp, ros::Duration(0.1)); + listener->lookupTransform(frame, odom.header.frame_id, odom.header.stamp, pose_tf); + tf::StampedTransform velocity_tf; + listener->waitForTransform(frame, odom.child_frame_id, odom.header.stamp, ros::Duration(0.1)); + listener->lookupTransform(frame, odom.child_frame_id, odom.header.stamp, velocity_tf); + velocity_tf.setOrigin(tf::Vector3(0, 0, 0)); // only use rotation to transform the velocity + + tf::Vector3 position = pose_tf*tflib::to_tf(odom.pose.pose.position); + tf::Quaternion orientation = pose_tf*tflib::to_tf(odom.pose.pose.orientation); + tf::Vector3 velocity = velocity_tf*tflib::to_tf(odom.twist.twist.linear); + + tf::Vector3 acceleration(ax, ay, az); + + core_trajectory_msgs::WaypointXYZVYaw wp0; + wp0.position.x = position.x(); + wp0.position.y = position.y(); + wp0.position.z = position.z(); + wp0.yaw = 0; + wp0.velocity = velocity.length(); + traj.waypoints.push_back(wp0); + + for(double t = 0; t < ht; t += dt){ + velocity += acceleration*dt; + position += velocity*dt; + + core_trajectory_msgs::WaypointXYZVYaw wp; + wp.position.x = position.x(); + wp.position.y = position.y(); + wp.position.z = position.z(); + wp.yaw = 0; + wp.velocity = std::min(velocity.length(), max_velocity); + traj.waypoints.push_back(wp); + } + } + catch(tf::TransformException& e){ + ROS_ERROR_STREAM("TransformException in AccelerationTrajectory::get_trajectory: " << e.what()); + } + + return traj; +} + +//=================================================================================== +//--------------------------------- Static Trajectories ----------------------------- +//=================================================================================== + +CurveTrajectory::CurveTrajectory(float linear_velocity, float angular_velocity, std::string frame, + float time, float dt, bool use_heading, float yaw){ + this->linear_velocity = linear_velocity; + this->angular_velocity = angular_velocity; + this->frame = frame; + this->time = time; + this->dt = dt; + this->use_heading = use_heading; + this->yaw = yaw; + + generate_trajectory(); +} + + +void CurveTrajectory::generate_trajectory(){ + float prev_x = 0.f; + float prev_y = 0.f; + float prev_heading = 0.f; + + //TODO: when to fill in trajectory.header.stamp? + trajectory.header.frame_id = frame; + + for(float t = 0; t <= time; t += dt){ + core_trajectory_msgs::WaypointXYZVYaw wp; + + if(t > 0){ + wp.position.x = prev_x + cos(prev_heading)*linear_velocity*dt; + wp.position.y = prev_y + sin(prev_heading)*linear_velocity*dt; + wp.yaw = prev_heading + angular_velocity*dt; + prev_x = wp.position.x; + prev_y = wp.position.y; + prev_heading = wp.yaw; + + } + + wp.velocity = linear_velocity; + if(!use_heading) + wp.yaw = yaw; + + trajectory.waypoints.push_back(wp); + } +} + +core_trajectory_msgs::TrajectoryXYZVYaw CurveTrajectory::get_trajectory(){ + return trajectory; +} + +//=================================================================================== +//--------------------------------- Trajectory Library ------------------------------ +//=================================================================================== + +TrajectoryLibrary::TrajectoryLibrary(std::string config_filename, tf::TransformListener* listener){ + this->listener = listener; + pnh = new ros::NodeHandle("~"); + + YAML::Node config = YAML::LoadFile(config_filename); + + YAML::Node trajectories = config["trajectories"]; + for(int i = 0; i < trajectories.size(); i++){ + YAML::Node traj_node = trajectories[i]; + std::string type = parse(traj_node["type"]); + + if(type == "curve"){ + float linear_velocity = parse(traj_node["linear_velocity"]); + float angular_velocity = M_PI/180. * parse(traj_node["angular_velocity"]); + std::string frame = parse(traj_node["frame"]); + float time = parse(traj_node["time"]); + float dt = parse(traj_node["dt"]); + bool use_heading = true; + float yaw = 0.f; + if(parse(traj_node["yaw"]) == std::string("heading")) + use_heading = true; + else{ + use_heading = false; + yaw = M_PI/180. * parse(traj_node["yaw"]); + } + + CurveTrajectory* traj = new CurveTrajectory(linear_velocity, angular_velocity, frame, time, dt, use_heading, yaw); + + static_trajectories.push_back(traj); + } + else if(type == "acceleration"){ + std::string frame = parse(traj_node["frame"]); + double x; + double y; + double z; + + if(traj_node["x"] && traj_node["y"] && traj_node["z"]){ + x = parse(traj_node["x"]); + y = parse(traj_node["y"]); + z = parse(traj_node["z"]); + } + else if(traj_node["magnitude"]){ + double magnitude = parse(traj_node["magnitude"]); + double magnitude_yaw = M_PI/180. * parse(traj_node["magnitude_yaw"]); + double magnitude_pitch = M_PI/180. * parse(traj_node["magnitude_pitch"]); + + tf::Quaternion q; + q.setRPY(0, magnitude_pitch, magnitude_yaw); + tf::Vector3 vector = tf::Transform(q)*tf::Vector3(magnitude, 0, 0); + x = vector.x(); + y = vector.y(); + z = vector.z(); + } + else{ + std::cout << "Couldn't construct acceleration trajectory. Need to have either x, y, z or magnitude, magnitude_yaw, magnitude_pitch." << std::endl; + continue; + } + double dt = parse(traj_node["dt"]); + double ht = parse(traj_node["ht"]); + double max_velocity = parse(traj_node["max_velocity"]); + + AccelerationTrajectory* traj = new AccelerationTrajectory(listener, frame, x, y, z, dt, ht, max_velocity); + + dynamic_trajectories.push_back(traj); + } + } +} + +std::vector TrajectoryLibrary::get_static_trajectories(){ + std::vector trajectories; + + for(int i = 0; i < static_trajectories.size(); i++){ + trajectories.push_back(Trajectory(static_trajectories[i]->get_trajectory())); + } + + return trajectories; +} + +std::vector TrajectoryLibrary::get_dynamic_trajectories(nav_msgs::Odometry odom){ + std::vector trajectories; + + for(int i = 0; i < dynamic_trajectories.size(); i++){ + core_trajectory_msgs::TrajectoryXYZVYaw path = dynamic_trajectories[i]->get_trajectory(odom); + if(path.waypoints.size() > 0) + trajectories.push_back(Trajectory(path)); + } + + return trajectories; +} + diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/src/trajectory_library_generator.py b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/src/trajectory_library_generator.py new file mode 100755 index 000000000..8335ab714 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/src/trajectory_library_generator.py @@ -0,0 +1,75 @@ +#!/usr/bin/python +import numpy as np +import matplotlib.pyplot as plt +import yaml +import sys + +def generate_curve(traj_config): + lin_vel = float(traj_config['linear_velocity']) + ang_vel = np.pi/180.*float(traj_config['angular_velocity']) + + dt = 0.1 + if 'dt' in traj_config.keys(): + dt = traj_config['dt'] + + time = 0. + if 'distance' in traj_config.keys(): + time = float(traj_config['distance'])/lin_vel + if 'time' in traj_config.keys(): + time = traj_config['time'] + + xs = [0.] + ys = [0.] + yaws = [0.] + + for t in np.arange(0., time, dt): + xs.append(xs[-1] + np.cos(yaws[-1])*lin_vel*dt) + ys.append(ys[-1] + np.sin(yaws[-1])*lin_vel*dt) + yaws.append(yaws[-1] + ang_vel*dt) + + if 'yaw' in traj_config.keys(): + if traj_config['yaw'] != 'heading': + yaw = np.pi/180.*float(traj_config['yaw']) + for i in range(len(yaws)): + yaws[i] = yaw + + plt.plot(xs, ys, '.-') + plt.axis('equal') + plt.show() + + +def generate_arc(traj_config): + radius = float(traj_config['radius']) + angle = np.pi/180.*float(traj_config['angle']) + angle_increment = np.pi/180.*float(traj_config['angle_increment']) + + xs = radius*np.cos(np.arange(0., angle, angle_increment) - np.pi/2.) + ys = radius*np.sin(np.arange(0., angle, angle_increment) - np.pi/2.) + print(xs) + + plt.plot(xs, ys, '.-') + plt.axis('equal') + plt.show() + +def generate_acceleration(traj_config): + pass + +def generate_trajectory(traj_config): + if traj_config['type'] == 'curve': + return generate_curve(traj_config) + elif traj_config['type'] == 'arc': + return generate_arc(traj_config) + elif traj_config['type'] == 'acceleration': + return generate_acceleration(traj_config) + +if __name__ == '__main__': + input_filename = sys.argv[1] + output_filename = sys.argv[2] + + + config = yaml.load(open(input_filename, 'r').read()) + + for traj_config in config['trajectories']: + traj_config = traj_config['trajectory'] + traj = generate_trajectory(traj_config) + From 26b603c0db06853decc3f1e2f185b4ce4e8bbc0f Mon Sep 17 00:00:00 2001 From: Robbi Exley Date: Mon, 5 Aug 2024 15:53:06 -0400 Subject: [PATCH 11/50] trajectory msgs update --- .../planning/local/core_trajectory_msgs | 1 - .../local/core_trajectory_msgs/CMakeLists.txt | 20 +++++++++++ .../msg/FixedTrajectory.msg | 2 ++ .../msg/TrajectoryXYZVYaw.msg | 2 ++ .../msg/WaypointXYZVYaw.msg | 3 ++ .../local/core_trajectory_msgs/package.xml | 36 +++++++++++++++++++ 6 files changed, 63 insertions(+), 1 deletion(-) delete mode 160000 ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs create mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/CMakeLists.txt create mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/msg/FixedTrajectory.msg create mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/msg/TrajectoryXYZVYaw.msg create mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/msg/WaypointXYZVYaw.msg create mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/package.xml diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs deleted file mode 160000 index d6af587ac..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs +++ /dev/null @@ -1 +0,0 @@ -Subproject commit d6af587ac47e31a86675cbfd4df9407e28616a0e diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/CMakeLists.txt b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/CMakeLists.txt new file mode 100644 index 000000000..6cae5655c --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/CMakeLists.txt @@ -0,0 +1,20 @@ +cmake_minimum_required(VERSION 2.8.3) +project(core_trajectory_msgs) + +find_package(catkin REQUIRED COMPONENTS + message_generation + std_msgs + geometry_msgs + diagnostic_msgs +) + +add_message_files( + FILES + WaypointXYZVYaw.msg + TrajectoryXYZVYaw.msg + FixedTrajectory.msg + ) + +generate_messages(DEPENDENCIES std_msgs geometry_msgs diagnostic_msgs) + +catkin_package(CATKIN_DEPENDS message_runtime std_msgs geometry_msgs diagnostic_msgs) diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/msg/FixedTrajectory.msg b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/msg/FixedTrajectory.msg new file mode 100644 index 000000000..7c93efde1 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/msg/FixedTrajectory.msg @@ -0,0 +1,2 @@ +string type +diagnostic_msgs/KeyValue[] attributes \ No newline at end of file diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/msg/TrajectoryXYZVYaw.msg b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/msg/TrajectoryXYZVYaw.msg new file mode 100644 index 000000000..cc2c50dde --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/msg/TrajectoryXYZVYaw.msg @@ -0,0 +1,2 @@ +Header header +WaypointXYZVYaw[] waypoints \ No newline at end of file diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/msg/WaypointXYZVYaw.msg b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/msg/WaypointXYZVYaw.msg new file mode 100644 index 000000000..043d75cfa --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/msg/WaypointXYZVYaw.msg @@ -0,0 +1,3 @@ +geometry_msgs/Point position +float64 velocity +float64 yaw \ No newline at end of file diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/package.xml b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/package.xml new file mode 100644 index 000000000..f8fbb1cce --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/package.xml @@ -0,0 +1,36 @@ + + + core_trajectory_msgs + 0.0.0 + The core_trajectory_msgs package + + + + + john + + + + + + TODO + + catkin + + std_msgs + geometry_msgs + diagnostic_msgs + message_generation + + std_msgs + geometry_msgs + diagnostic_msgs + message_runtime + + + + + + + + From 1bb98890b71d36098fb8251b6185f8874841c2bd Mon Sep 17 00:00:00 2001 From: Robbi Exley Date: Mon, 5 Aug 2024 15:55:07 -0400 Subject: [PATCH 12/50] disparity representation update --- .../local/core_disparity_map_representation | 1 - .../CMakeLists.txt | 50 ++ .../COLCON_IGNORE | 0 .../disparity_map_representation_plugin.xml | 5 + .../disparity_map_representation.h | 94 +++ .../package.xml | 105 ++++ .../src/disparity_map_representation.cpp | 552 ++++++++++++++++++ 7 files changed, 806 insertions(+), 1 deletion(-) delete mode 160000 ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation create mode 100644 ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/CMakeLists.txt create mode 100644 ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/COLCON_IGNORE create mode 100644 ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/disparity_map_representation_plugin.xml create mode 100644 ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/include/core_disparity_map_representation/disparity_map_representation.h create mode 100644 ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/package.xml create mode 100644 ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/src/disparity_map_representation.cpp diff --git a/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation b/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation deleted file mode 160000 index d858097c9..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation +++ /dev/null @@ -1 +0,0 @@ -Subproject commit d858097c9bfad8f1040f04971429899c8db6aa51 diff --git a/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/CMakeLists.txt b/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/CMakeLists.txt new file mode 100644 index 000000000..ebd4dedbc --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/CMakeLists.txt @@ -0,0 +1,50 @@ +cmake_minimum_required(VERSION 2.8.3) +project(core_disparity_map_representation) + +find_package(catkin REQUIRED COMPONENTS + geometry_msgs + roscpp + rospy + sensor_msgs + std_msgs + stereo_msgs + nav_msgs + tf + visualization_msgs + cv_bridge + core_map_representation_interface + disparity_graph + tflib + pluginlib + core_trajectory_msgs +) + + +########### +## Build ## +########### + +catkin_package( + INCLUDE_DIRS include + CATKIN_DEPENDS rospy roscpp tf disparity_graph core_map_representation_interface core_trajectory_msgs tflib + LIBRARIES disparity_map_representation +) + +include_directories(${catkin_INCLUDE_DIRS} include) + + +add_library(disparity_map_representation + src/disparity_map_representation.cpp + ) + +target_link_libraries(disparity_map_representation ${catkin_LIBRARIES}) + + +install(TARGETS disparity_map_representation + ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} + LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} + RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION}) + +install(DIRECTORY include/${PROJECT_NAME}/ + DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}) + diff --git a/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/COLCON_IGNORE b/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/COLCON_IGNORE new file mode 100644 index 000000000..e69de29bb diff --git a/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/disparity_map_representation_plugin.xml b/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/disparity_map_representation_plugin.xml new file mode 100644 index 000000000..a261b304d --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/disparity_map_representation_plugin.xml @@ -0,0 +1,5 @@ + + + Disparity map representation plugin. + + diff --git a/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/include/core_disparity_map_representation/disparity_map_representation.h b/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/include/core_disparity_map_representation/disparity_map_representation.h new file mode 100644 index 000000000..583a41547 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/include/core_disparity_map_representation/disparity_map_representation.h @@ -0,0 +1,94 @@ +#ifndef _DISPARITY_MAP_REPRESENTATION_ +#define _DISPARITY_MAP_REPRESENTATION_ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +//#include +#include +#include +#include +#include + +class DisparityMapRepresentation : public MapRepresentation { + private: + nabla::disparity_graph::disparity_graph* disp_graph; + + visualization_msgs::MarkerArray markers; + visualization_msgs::Marker points; + + tf::TransformListener* listener; + + ros::Publisher debug_pub; + + int obstacle_check_points; + double obstacle_check_radius; + + public: + DisparityMapRepresentation(); + virtual double distance_to_obstacle(geometry_msgs::PoseStamped pose, tf::Vector3 direction); + virtual void publish_debug(); + + //virtual std::vector< std::vector > get_values(std::vector trajectories); + virtual std::vector< std::vector > get_values(std::vector > trajectories); +}; + +/* +struct ImagePair{ + cv_bridge::CvImagePtr foreground; + cv_bridge::CvImagePtr background; + + tf::StampedTransform target_frame_to_image_tf; +}; + +class DisparityMapRepresentation { +private: + std::string target_frame; + bool got_camera_info; + double fx, fy, cx, cy, baseline; + + nav_msgs::Odometry odom; + bool got_odom; + double distance_threshold, angle_threshold; + int buffer_size; + + std::vector image_pairs; + + cv::Mat* debug_image; + + // subscribers + message_filters::Subscriber* foreground_disparity_sub; + message_filters::Subscriber* background_disparity_sub; + message_filters::TimeSynchronizer* fg_bg_sync; + ros::Subscriber camera_info_sub, odom_sub; + tf::TransformListener* listener; + + // publishers + ros::Publisher debug_pub; + +public: + DisparityMapRepresentation(ros::NodeHandle* nh); + void fg_bg_disparity_callback(const sensor_msgs::ImageConstPtr& foreground, + const sensor_msgs::ImageConstPtr& background); + void camera_info_callback(sensor_msgs::CameraInfo info); + void odom_callback(nav_msgs::Odometry odom); + + void publish_debug(); + + bool should_add_image_pair(); + + bool is_obstacle(geometry_msgs::PoseStamped pose, double threshold); +}; +*/ +#endif diff --git a/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/package.xml b/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/package.xml new file mode 100644 index 000000000..f128d8994 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/package.xml @@ -0,0 +1,105 @@ + + + core_disparity_map_representation + 0.0.0 + The core_disparity_map_representation package + + + + + john + + + + + + TODO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + catkin + geometry_msgs + roscpp + rospy + sensor_msgs + std_msgs + stereo_msgs + tf + visualization_msgs + nav_msgs + cv_bridge + core_map_representation_interface + disparity_graph + tflib + pluginlib + core_trajectory_msgs + + geometry_msgs + roscpp + rospy + sensor_msgs + std_msgs + stereo_msgs + tf + visualization_msgs + nav_msgs + cv_bridge + core_map_representation_interface + disparity_graph + tflib + pluginlib + core_trajectory_msgs + + geometry_msgs + roscpp + rospy + sensor_msgs + std_msgs + stereo_msgs + tf + visualization_msgs + nav_msgs + cv_bridge + core_map_representation_interface + disparity_graph + tflib + pluginlib + core_trajectory_msgs + + + + + + + diff --git a/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/src/disparity_map_representation.cpp b/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/src/disparity_map_representation.cpp new file mode 100644 index 000000000..098db016b --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/src/disparity_map_representation.cpp @@ -0,0 +1,552 @@ +#include +#include + +DisparityMapRepresentation::DisparityMapRepresentation(){ + ros::NodeHandle* nh = new ros::NodeHandle(); + ros::NodeHandle* pnh = new ros::NodeHandle("~"); + disp_graph = new nabla::disparity_graph::disparity_graph(); + + points.ns = "obstacles"; + points.id = 0; + points.type = visualization_msgs::Marker::SPHERE_LIST; + points.action = visualization_msgs::Marker::ADD; + points.scale.x = 0.1; + points.scale.y = 0.1; + points.scale.z = 0.1; + + debug_pub = nh->advertise("disparity_map_debug", 1); + + obstacle_check_points = pnh->param("disparity_map/obstacle_check_points", 5); + obstacle_check_radius = pnh->param("disparity_map/obstacle_check_radius", 2.); + + listener = new tf::TransformListener(); +} + + +std::vector< std::vector > DisparityMapRepresentation::get_values(std::vector > trajectories){ + std::vector< std::vector > values(trajectories.size()); + + for(int i = 0; i < trajectories.size(); i++) + for(int j = 0; j < trajectories[i].size(); j++) + values[i].push_back(0); + + for(int i = 0; i < trajectories.size(); i++){ + //core_trajectory_msgs::TrajectoryXYZVYaw trajectory = trajectories[i]; + for(int j = 0; j < trajectories[i].size(); j++){ + tf::Vector3 wp = tflib::to_tf(trajectories[i][j].point); + + // find the direction of the current trajectory segment between waypoints + // this direction will be used to check for obstacles in a perpendicular direction + tf::Vector3 direction; + tf::Vector3 wp2 = wp; + if(trajectories[i].size() < 2){ + direction = tf::Vector3(1, 0, 0); // TODO: make this point in the direction of the waypoints quaternion + } + else{ + if(j == 0){ + wp2 = tflib::to_tf(trajectories[i][1].point); + direction = wp2 - wp; + } + else{ + wp2 = tflib::to_tf(trajectories[i][j-1].point); + direction = wp - wp2; + } + } + + points.header.frame_id = trajectories[i][j].header.frame_id; + std_msgs::ColorRGBA green; + green.r = 0; + green.b = 0; + green.g = 1; + green.a = 1; + std_msgs::ColorRGBA red; + red.r = 1; + red.b = 0; + red.g = 0; + red.a = 1; + + tf::Quaternion q_up, q_down, q_left, q_right; + q_up.setRPY(0, -M_PI/2, 0); + q_down.setRPY(0, M_PI/2, 0); + q_left.setRPY(0, 0, M_PI/2); + q_right.setRPY(0, 0, -M_PI/2); + std::vector directions; + directions.push_back(q_up); + directions.push_back(q_down); + directions.push_back(q_left); + directions.push_back(q_right); + + tf::Vector3 position = wp;//tflib::to_tf(pose.pose.position); + tf::Quaternion q = tf::Quaternion(0, 0, 0, 1); // TODO: figure out if this makes sense //tflib::to_tf(pose.pose.orientation); + tf::Vector3 unit(1, 0, 0); + double closest_obstacle_distance = obstacle_check_radius; + + direction.normalize(); + tf::Vector3 up = tf::Transform(q_up*q)*unit; + up.normalize(); + + tf::Vector3 side = up.cross(direction); + side.normalize(); + + up = side.cross(direction); + up.normalize(); + + std::vector direction_vectors; + direction_vectors.push_back(up); + direction_vectors.push_back(side); + direction_vectors.push_back(-up); + direction_vectors.push_back(-side); + + for(int m = 0; m < directions.size(); m++){ + tf::Quaternion q_curr = directions[m]; + for(int k = 1; k < obstacle_check_points+1; k++){ + double dist = (double)k*obstacle_check_radius/(double)(obstacle_check_points+1); + + tf::Vector3 point = position + dist*direction_vectors[m];//tf::Transform(q_curr)*(dist*direction); + geometry_msgs::PoseStamped check_pose; + check_pose.header = trajectories[i][j].header; + check_pose.pose.position = trajectories[i][j].point; + check_pose.pose.orientation.w = 1.0; + + double occupancy; + bool collision = !disp_graph->isStateValidDepth_pose(check_pose, 0.9, occupancy); + + std_msgs::ColorRGBA c; + if(collision){ + closest_obstacle_distance = std::min(dist, closest_obstacle_distance); + c = red; + } + else + c = green; + + points.points.push_back(check_pose.pose.position); + points.colors.push_back(c); + } + } + + points.points.push_back(trajectories[i][j].point); + + geometry_msgs::PoseStamped pose; + pose.header = trajectories[i][j].header;//trajectory.header; + pose.pose.position = trajectories[i][j].point; + pose.pose.orientation.w = 1.0; + + double occupancy; + if(!disp_graph->isStateValidDepth_pose(pose, 0.9, occupancy)){ + values[i][j] = 0.f; + points.colors.push_back(red); + } + else{ + points.colors.push_back(green); + } + + values[i][j] = closest_obstacle_distance; + } + } + + + return values; +} + +/*std::vector< std::vector > DisparityMapRepresentation::get_values(std::vector trajectories){ + std::vector< std::vector > values(trajectories.size()); + + for(int i = 0; i < trajectories.size(); i++) + for(int j = 0; j < trajectories[i].waypoints.size(); j++) + values[i].push_back(0); + + for(int i = 0; i < trajectories.size(); i++){ + core_trajectory_msgs::TrajectoryXYZVYaw trajectory = trajectories[i]; + for(int j = 0; j < trajectory.waypoints.size(); j++){ + tf::Vector3 wp = tflib::to_tf(trajectory.waypoints[j].position); + + // find the direction of the current trajectory segment between waypoints + // this direction will be used to check for obstacles in a perpendicular direction + tf::Vector3 direction; + tf::Vector3 wp2 = wp; + if(trajectory.waypoints.size() < 2){ + direction = tf::Vector3(1, 0, 0); // TODO: make this point in the direction of the waypoints quaternion + } + else{ + if(j == 0){ + wp2 = tflib::to_tf(trajectory.waypoints[1].position); + direction = wp2 - wp; + } + else{ + wp2 = tflib::to_tf(trajectory.waypoints[j-1].position); + direction = wp - wp2; + } + } + + points.header.frame_id = trajectory.header.frame_id; + std_msgs::ColorRGBA green; + green.r = 0; + green.b = 0; + green.g = 1; + green.a = 1; + std_msgs::ColorRGBA red; + red.r = 1; + red.b = 0; + red.g = 0; + red.a = 1; + + tf::Quaternion q_up, q_down, q_left, q_right; + q_up.setRPY(0, -M_PI/2, 0); + q_down.setRPY(0, M_PI/2, 0); + q_left.setRPY(0, 0, M_PI/2); + q_right.setRPY(0, 0, -M_PI/2); + std::vector directions; + directions.push_back(q_up); + directions.push_back(q_down); + directions.push_back(q_left); + directions.push_back(q_right); + + tf::Vector3 position = wp;//tflib::to_tf(pose.pose.position); + tf::Quaternion q = tf::Quaternion(0, 0, 0, 1); // TODO: figure out if this makes sense //tflib::to_tf(pose.pose.orientation); + tf::Vector3 unit(1, 0, 0); + double closest_obstacle_distance = obstacle_check_radius; + + direction.normalize(); + tf::Vector3 up = tf::Transform(q_up*q)*unit; + up.normalize(); + + tf::Vector3 side = up.cross(direction); + side.normalize(); + + up = side.cross(direction); + up.normalize(); + + std::vector direction_vectors; + direction_vectors.push_back(up); + direction_vectors.push_back(side); + direction_vectors.push_back(-up); + direction_vectors.push_back(-side); + + for(int m = 0; m < directions.size(); m++){ + tf::Quaternion q_curr = directions[m]; + for(int k = 1; k < obstacle_check_points+1; k++){ + double dist = (double)k*obstacle_check_radius/(double)(obstacle_check_points+1); + + tf::Vector3 point = position + dist*direction_vectors[m];//tf::Transform(q_curr)*(dist*direction); + geometry_msgs::PoseStamped check_pose; + check_pose.header = trajectory.header; + check_pose.pose.position.x = point.x(); + check_pose.pose.position.y = point.y(); + check_pose.pose.position.z = point.z(); + check_pose.pose.orientation.w = 1.0; + + double occupancy; + bool collision = !disp_graph->isStateValidDepth_pose(check_pose, 0.9, occupancy); + + std_msgs::ColorRGBA c; + if(collision){ + closest_obstacle_distance = std::min(dist, closest_obstacle_distance); + c = red; + } + else + c = green; + + points.points.push_back(check_pose.pose.position); + points.colors.push_back(c); + } + } + + points.points.push_back(trajectory.waypoints[j].position); + + geometry_msgs::PoseStamped pose; + pose.header = trajectory.header; + pose.pose.position.x = wp.x(); + pose.pose.position.y = wp.y(); + pose.pose.position.z = wp.z(); + pose.pose.orientation.w = 1.0; + + double occupancy; + if(!disp_graph->isStateValidDepth_pose(pose, 0.9, occupancy)){ + values[i][j] = 0.f; + points.colors.push_back(red); + } + else{ + points.colors.push_back(green); + } + + values[i][j] = closest_obstacle_distance; + } + } + + + return values; + }*/ + +double DisparityMapRepresentation::distance_to_obstacle(geometry_msgs::PoseStamped pose, tf::Vector3 direction){ + points.header.frame_id = pose.header.frame_id; + std_msgs::ColorRGBA green; + green.r = 0; + green.b = 0; + green.g = 1; + green.a = 1; + std_msgs::ColorRGBA red; + red.r = 1; + red.b = 0; + red.g = 0; + red.a = 1; + + + tf::Quaternion q_up, q_down, q_left, q_right; + q_up.setRPY(0, -M_PI/2, 0); + q_down.setRPY(0, M_PI/2, 0); + q_left.setRPY(0, 0, M_PI/2); + q_right.setRPY(0, 0, -M_PI/2); + std::vector directions; + directions.push_back(q_up); + directions.push_back(q_down); + directions.push_back(q_left); + directions.push_back(q_right); + + tf::Vector3 position = tflib::to_tf(pose.pose.position); + tf::Quaternion q = tflib::to_tf(pose.pose.orientation); + tf::Vector3 unit(1, 0, 0); + double closest_obstacle_distance = obstacle_check_radius; + + direction.normalize(); + tf::Vector3 up = tf::Transform(q_up*q)*unit; + up.normalize(); + + tf::Vector3 side = up.cross(direction); + side.normalize(); + + up = side.cross(direction); + up.normalize(); + + std::vector direction_vectors; + direction_vectors.push_back(up); + direction_vectors.push_back(side); + direction_vectors.push_back(-up); + direction_vectors.push_back(-side); + + for(int m = 0; m < directions.size(); m++){ + tf::Quaternion q_curr = directions[m]; + for(int k = 1; k < obstacle_check_points+1; k++){ + double dist = (double)k*obstacle_check_radius/(double)(obstacle_check_points+1); + + tf::Vector3 point = position + dist*direction_vectors[m];//tf::Transform(q_curr)*(dist*direction); + geometry_msgs::PoseStamped check_pose; + check_pose.header = pose.header; + check_pose.pose.position.x = point.x(); + check_pose.pose.position.y = point.y(); + check_pose.pose.position.z = point.z(); + check_pose.pose.orientation.w = 1.0; + + double occupancy; + bool collision = !disp_graph->isStateValidDepth_pose(check_pose, 0.9, occupancy); + + std_msgs::ColorRGBA c; + if(collision){ + closest_obstacle_distance = std::min(dist, closest_obstacle_distance); + c = red; + } + else + c = green; + + points.points.push_back(check_pose.pose.position); + points.colors.push_back(c); + } + } + + points.points.push_back(pose.pose.position); + points.colors.push_back(green); + + + double occupancy; + if(!disp_graph->isStateValidDepth_pose(pose, 0.9, occupancy)) + return 0.f; + + return closest_obstacle_distance; +} + +void DisparityMapRepresentation::publish_debug(){ + points.header.stamp = ros::Time::now(); + markers.markers.push_back(points); + + debug_pub.publish(markers); + + markers.markers.clear(); + points.points.clear(); + points.colors.clear(); +} + +/* +DisparityMapRepresentation::DisparityMapRepresentation(ros::NodeHandle* nh){ + // init params + target_frame = nh->param("target_frame", std::string("world")); + distance_threshold = nh->param("distance_threshold", 0.5); + angle_threshold = M_PI/180.*nh->param("angle_threshold", 5.); + buffer_size = nh->param("buffer_size", 10); + + got_camera_info = false; + got_odom = false; + + debug_image = NULL; + + // subscribers + foreground_disparity_sub = + new message_filters::Subscriber(*nh, "/foreground_disparity", 1); + background_disparity_sub = + new message_filters::Subscriber(*nh, "/background_disparity", 1); + fg_bg_sync = + new message_filters::TimeSynchronizer + (*foreground_disparity_sub, *background_disparity_sub, 10); + fg_bg_sync->registerCallback(boost::bind(&DisparityMapRepresentation::fg_bg_disparity_callback, + this, _1, _2)); + camera_info_sub = nh->subscribe("/camera_info", 1, + &DisparityMapRepresentation::camera_info_callback, this); + odom_sub = nh->subscribe("/odometry", 1, &DisparityMapRepresentation::odom_callback, this); + listener = new tf::TransformListener(); + + // publishers + debug_pub = nh->advertise("debug_image", 10); +} + +void DisparityMapRepresentation::fg_bg_disparity_callback +(const sensor_msgs::ImageConstPtr& foreground, + const sensor_msgs::ImageConstPtr& background){ + if(!got_camera_info || !got_odom) + return; + + // convert the message to cv_bridge type + ImagePair image_pair; + try{ + image_pair.foreground = cv_bridge::toCvCopy(*foreground, foreground->encoding); + image_pair.background = cv_bridge::toCvCopy(*background, background->encoding); + } + catch (cv_bridge::Exception& e){ + ROS_ERROR_STREAM("cv_bridge exception: %s" << e.what()); + return; + } + + // get the tf + try{ + listener->waitForTransform(foreground->header.frame_id, target_frame, foreground->header.stamp, + ros::Duration(0.1)); + listener->lookupTransform(foreground->header.frame_id, target_frame, foreground->header.stamp, + image_pair.target_frame_to_image_tf); + } + catch(tf::TransformException& e){ + ROS_ERROR_STREAM("transform exception: " << e.what()); + } + + // for debugging + if(debug_image == NULL) + debug_image = new cv::Mat(foreground->height, foreground->width, CV_8UC1); + + // always keeps the most recent image pair at the beginning of the vector + if(image_pairs.size() == 0) + image_pairs.push_back(image_pair); + + image_pairs[0] = image_pair; + + // check if we should keep the image pair in the vector + if(should_add_image_pair()){ + // TODO: fill this in + } +} + +bool DisparityMapRepresentation::should_add_image_pair(){ + // TODO: fill this in + return false; +} + +void DisparityMapRepresentation::camera_info_callback(sensor_msgs::CameraInfo info){ + fx = info.P[0]; + fy = info.P[5]; + cx = info.P[2]; + cy = info.P[6]; + + baseline = -info.P[3]/info.P[0]; + + got_camera_info = true; +} + +void DisparityMapRepresentation::odom_callback(nav_msgs::Odometry odom){ + this->odom = odom; + got_odom = true; +} + +bool DisparityMapRepresentation::is_obstacle(geometry_msgs::PoseStamped pose, double threshold){ + tf::Vector3 point_target_frame; + double occupancy = 0; + + // transform the pose into the target frame + try{ + tf::StampedTransform pose_to_target_frame_tf; + listener->waitForTransform(target_frame, pose.header.frame_id, pose.header.stamp, + ros::Duration(0.1)); + listener->lookupTransform(target_frame, pose.header.frame_id, pose.header.stamp, + pose_to_target_frame_tf); + + tf::Vector3 point_pose_frame(pose.pose.position.x, pose.pose.position.y, pose.pose.position.z); + point_target_frame = pose_to_target_frame_tf*point_pose_frame; + } + catch(tf::TransformException& e){ + ROS_ERROR_STREAM("transform exception: " << e.what()); + return false; + } + + + for(int i = 0; i < image_pairs.size(); i++){ + ImagePair image_pair = image_pairs[i]; + + // project the point into the image + tf::Vector3 point_image_frame = image_pair.target_frame_to_image_tf*point_target_frame; + //ROS_INFO_STREAM(fx << " " << fy << " " << cx << " " << cy << " " << baseline); + int c = point_image_frame.x()/point_image_frame.z()*fx + cx; + int r = point_image_frame.y()/point_image_frame.z()*fy + cy;; + double point_disparity = baseline*fx/point_image_frame.z(); + //ROS_INFO_STREAM(point_image_frame.x() << " " << point_image_frame.y() << " " << point_image_frame.z() << " " << c << " " << r); + + // check occupancy + if(point_image_frame.z() >= 0 && + c >= 0 && c < image_pair.foreground->image.cols && + r >= 0 && r < image_pair.foreground->image.rows){ + + // if the point is between the foreground and background + if(image_pair.foreground->image.at(r, c) > point_disparity && + image_pair.background->image.at(r, c) < point_disparity){ + occupancy += (point_disparity - 0.5)/point_disparity; + + ROS_INFO_STREAM("disp: " << point_disparity << " " << image_pair.foreground->image.at(r, c) << " " << image_pair.background->image.at(r, c) << " " << occupancy); + // debugging + debug_image->at(r, c) = 255; + } + else{ + occupancy -= 0.5*(point_disparity - 0.5)/point_disparity; + occupancy = std::max(occupancy, 0.0); + + // debugging + debug_image->at(r, c) = 128; + } + + + if(occupancy >= threshold) + return false; + } + } + + return true; +} + + +void DisparityMapRepresentation::publish_debug(){ + if(debug_image != NULL){ + cv_bridge::CvImage cv_image; + cv_image.header.frame_id = ""; + cv_image.header.stamp = ros::Time::now(); + cv_image.encoding = sensor_msgs::image_encodings::TYPE_8UC1; + cv_image.image = *debug_image; + + debug_pub.publish(cv_image.toImageMsg()); + *debug_image = 0; + } +} +*/ + +PLUGINLIB_EXPORT_CLASS(DisparityMapRepresentation, MapRepresentation) From 49b489a889899aaab6d0e510f1ff300e157ef04a Mon Sep 17 00:00:00 2001 From: Robbi Exley Date: Mon, 5 Aug 2024 16:59:00 -0400 Subject: [PATCH 13/50] Build ignore for packages --- .../local/behavior_tree/COLCON_IGNORE | 0 .../behavior_tree/.behavior_tree.h.swp | Bin 0 -> 1024 bytes .../local/behavior_tree_msgs/CMakeLists.txt | 18 +++++ .../msg/BehaviorTreeCommand.msg | 2 + .../msg/BehaviorTreeCommands.msg | 1 + .../local/behavior_tree_msgs/msg/Status.msg | 5 ++ .../local/behavior_tree_msgs/package.xml | 65 ++++++++++++++++++ .../COLCON_IGNORE | 0 .../core_trajectory_controller/COLCON_IGNORE | 0 .../core_trajectory_library/COLCON_IGNORE | 0 .../local/core_trajectory_msgs/COLCON_IGNORE | 0 11 files changed, 91 insertions(+) create mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree/COLCON_IGNORE create mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree/include/behavior_tree/.behavior_tree.h.swp create mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree_msgs/CMakeLists.txt create mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree_msgs/msg/BehaviorTreeCommand.msg create mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree_msgs/msg/BehaviorTreeCommands.msg create mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree_msgs/msg/Status.msg create mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree_msgs/package.xml create mode 100644 ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface/COLCON_IGNORE create mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/COLCON_IGNORE create mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/COLCON_IGNORE create mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/COLCON_IGNORE diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/COLCON_IGNORE b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/COLCON_IGNORE new file mode 100644 index 000000000..e69de29bb diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/include/behavior_tree/.behavior_tree.h.swp b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/include/behavior_tree/.behavior_tree.h.swp new file mode 100644 index 0000000000000000000000000000000000000000..5103ed38b7ca3917f755c113cf07468c6ce53c22 GIT binary patch literal 1024 zcmYc?$V<%2S1{8vVn6|3q*xh>^7Bhj1aWZ6GjmeXGK*4mQ&NkwOY#eFC}T)U%}6ZE a%rA;BDN0S%%fO{ + + behavior_tree_msgs + 0.0.0 + The behavior_tree_msgs package + + + + + john + + + + + + TODO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + catkin + + std_msgs + message_generation + + std_msgs + message_runtime + + + + + + + + diff --git a/ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface/COLCON_IGNORE b/ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface/COLCON_IGNORE new file mode 100644 index 000000000..e69de29bb diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/COLCON_IGNORE b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/COLCON_IGNORE new file mode 100644 index 000000000..e69de29bb diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/COLCON_IGNORE b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/COLCON_IGNORE new file mode 100644 index 000000000..e69de29bb diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/COLCON_IGNORE b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/COLCON_IGNORE new file mode 100644 index 000000000..e69de29bb From b51cf224309d4ffd3cfef7b41ce2c13d1759c6ec Mon Sep 17 00:00:00 2001 From: Robbi Exley Date: Wed, 7 Aug 2024 11:43:50 -0400 Subject: [PATCH 14/50] Local Planner Updates --- .../local/behavior_tree/CMakeLists.txt | 83 ++- .../local/behavior_tree/COLCON_IGNORE | 0 .../include/behavior_tree/behavior_tree.h | 67 +- .../planning/local/behavior_tree/package.xml | 29 +- .../local/behavior_tree/src/behavior_tree.cpp | 148 ++--- .../local/behavior_tree_msgs/CMakeLists.txt | 31 +- .../local/behavior_tree_msgs/package.xml | 67 +- .../CMakeLists.txt | 84 +-- .../disparity_map_representation.h | 89 ++- .../package.xml | 117 +--- .../src/disparity_map_representation.cpp | 613 +++++++++--------- .../CMakeLists.txt | 83 ++- .../COLCON_IGNORE | 0 .../map_representation.h | 67 +- .../package.xml | 94 +-- .../local/core_trajectory_msgs/CMakeLists.txt | 39 +- .../local/core_trajectory_msgs/COLCON_IGNORE | 0 .../msg/TrajectoryXYZVYaw.msg | 2 +- .../local/core_trajectory_msgs/package.xml | 33 +- .../local/disparity_graph_bkp/CMakeLists.txt | 3 + .../planning/local/tflib/CMakeLists.txt | 36 + .../local/tflib/include/tflib/tflib.h | 44 ++ .../autonomy/planning/local/tflib/package.xml | 77 +++ .../planning/local/tflib/src/tflib.cpp | 138 ++++ 24 files changed, 1078 insertions(+), 866 deletions(-) delete mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree/COLCON_IGNORE delete mode 100644 ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface/COLCON_IGNORE delete mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/COLCON_IGNORE create mode 100644 ros_ws/src/robot/autonomy/planning/local/tflib/CMakeLists.txt create mode 100644 ros_ws/src/robot/autonomy/planning/local/tflib/include/tflib/tflib.h create mode 100644 ros_ws/src/robot/autonomy/planning/local/tflib/package.xml create mode 100644 ros_ws/src/robot/autonomy/planning/local/tflib/src/tflib.cpp diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/CMakeLists.txt b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/CMakeLists.txt index 2be6739d7..9a3a47894 100755 --- a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/CMakeLists.txt +++ b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/CMakeLists.txt @@ -1,20 +1,25 @@ -cmake_minimum_required(VERSION 2.8.3) +cmake_minimum_required(VERSION 3.5) project(behavior_tree) ## Compile as C++11, supported in ROS Kinetic and newer -add_compile_options(-std=c++11) +#add_compile_options(-std=c++11) +if(NOT CMAKE_CXX_STANDARD) + set(CMAKE_CXX_STANDARD 14) +endif() + +if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") + add_compile_options(-Wall -Wextra -Wpedantic) +endif() ## Find catkin macros and libraries ## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz) ## is used, also find other catkin packages -find_package(catkin REQUIRED COMPONENTS - roscpp - rospy - std_msgs - rqt_gui - rqt_gui_py - behavior_tree_msgs -) +find_package(ament_cmake REQUIRED) +find_package(ament_cmake_python REQUIRED) +find_package(rclcpp REQUIRED) +find_package(rclpy REQUIRED) +find_package(std_msgs REQUIRED) +find_package(behavior_tree_msgs REQUIRED) ## System dependencies are found with CMake's conventions # find_package(Boost REQUIRED COMPONENTS system) @@ -23,7 +28,11 @@ find_package(catkin REQUIRED COMPONENTS ## Uncomment this if the package has a setup.py. This macro ensures ## modules and global scripts declared therein get installed ## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html -catkin_python_setup() +#catkin_python_setup() +ament_python_install_package(${PROJECT_NAME} + PACKAGE_DIR src/${PROJECT_NAME} +) + ################################################ ## Declare ROS messages, services and actions ## @@ -105,11 +114,20 @@ catkin_python_setup() ## LIBRARIES: libraries you create in this project that dependent projects also need ## CATKIN_DEPENDS: catkin_packages dependent projects also need ## DEPENDS: system dependencies of this project that dependent projects also need -catkin_package( - INCLUDE_DIRS include - LIBRARIES behavior_tree - CATKIN_DEPENDS roscpp rospy std_msgs behavior_tree_msgs +#catkin_package( +# INCLUDE_DIRS include +# LIBRARIES behavior_tree +# CATKIN_DEPENDS roscpp rospy std_msgs behavior_tree_msgs # DEPENDS system_lib +#) +add_library(${PROJECT_NAME} + src/behavior_tree.cpp +) + +target_include_directories(${PROJECT_NAME} +PUBLIC + $ + $ ) ########### @@ -123,23 +141,33 @@ include_directories( ${catkin_INCLUDE_DIRS} ) -add_library(behavior_tree - src/behavior_tree.cpp -) +#add_library(behavior_tree + # src/behavior_tree.cpp +#) -add_dependencies(behavior_tree - ${${PROJECT_NAME}_EXPORTED_TARGETS} - ${catkin_EXPORTED_TARGETS} +ament_target_dependencies(${PROJECT_NAME} + rclcpp + std_msgs + behavior_tree_msgs ) target_link_libraries(behavior_tree ${catkin_LIBRARIES} ) -install(DIRECTORY include/behavior_tree/ - DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} - FILES_MATCHING PATTERN "*.h" -) +install(TARGETS + behavior_tree + DESTINATION lib/${PROJECT_NAME}) + +install(DIRECTORY + launch + DESTINATION share/${PROJECT_NAME}) + +install(DIRECTORY + config + DESTINATION share/${PROJECT_NAME}) + + ## Declare a C++ library # add_library(${PROJECT_NAME} @@ -180,12 +208,12 @@ install(DIRECTORY include/behavior_tree/ install(PROGRAMS scripts/rqt_state_machine - DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} + DESTINATION bin/${PROJECT_NAME} ) install(FILES plugin.xml - DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} + DESTINATION share/${PROJECT_NAME} ) @@ -232,3 +260,4 @@ install(FILES ## Add folders to be run by python nosetests # catkin_add_nosetests(test) +ament_package() \ No newline at end of file diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/COLCON_IGNORE b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/COLCON_IGNORE deleted file mode 100644 index e69de29bb..000000000 diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/include/behavior_tree/behavior_tree.h b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/include/behavior_tree/behavior_tree.h index c986660a0..b609b91df 100644 --- a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/include/behavior_tree/behavior_tree.h +++ b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/include/behavior_tree/behavior_tree.h @@ -1,51 +1,53 @@ #ifndef _BEHAVIOR_TREE_H_ #define _BEHAVIOR_TREE_H_ -#include -#include -#include -#include -#include #include -#include +#include #include +#include +#include +#include +#include +#include namespace bt { - - class Condition { - private: - std_msgs::Bool success; + +class Condition { + private: + std_msgs::msg::Bool success; std::string label; - - ros::Publisher success_pub; - - public: - Condition(std::string label); + + rclcpp::Publisher::SharedPtr success_pub; + + public: + Condition(std::string label, rclcpp::Node::SharedPtr node); void set(bool b); void publish(); bool get(); std::string get_label(); static std::string get_published_topic_name(std::string label); - }; - - - class Action { - private: +}; + +class Action { + private: bool active, prev_active, active_changed; - behavior_tree_msgs::Status status; + behavior_tree_msgs::msg::Status status; std::string label; - - ros::Subscriber active_sub; - ros::Publisher status_pub; - - void active_callback(std_msgs::Bool msg); - public: - Action(std::string label); - + + // ros::Subscriber active_sub; + // ros::Publisher status_pub; + rclcpp::Subscription::SharedPtr active_sub; + rclcpp::Publisher::SharedPtr status_pub; + + void active_callback(const std_msgs::msg::Bool::SharedPtr msg); + + public: + Action(std::string label, rclcpp::Node::SharedPtr node); + static std::string get_published_topic_name(std::string label); static std::string get_subscribed_topic_name(std::string label); - + void set_success(); void set_running(); void set_failure(); @@ -56,13 +58,12 @@ namespace bt { bool is_success(); bool is_running(); bool is_failure(); - + std::string get_label(); void publish(); - }; - }; +}; // namespace bt #endif diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/package.xml b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/package.xml index 153eecfda..4f5fd5672 100755 --- a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/package.xml +++ b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/package.xml @@ -48,25 +48,22 @@ - catkin - roscpp - rospy - std_msgs - behavior_tree_msgs - - roscpp - rospy - std_msgs - behavior_tree_msgs - - roscpp - rospy - std_msgs - behavior_tree_msgs + ament_cmake + ament_cmake_python + rclcpp + rclpy + std_msgs + behavior_tree_msgs + + rqt_gui + rqt_gui_py + + ament_lint_auto + ament_lint_common - + ament_cmake diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree.cpp b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree.cpp index ed54680dd..cdbe6bc3a 100644 --- a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree.cpp +++ b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree.cpp @@ -2,120 +2,90 @@ namespace bt { - // ============================================================================== - // -------------------------------- Condition ----------------------------------- - // ============================================================================== - - - std::string Condition::get_published_topic_name(std::string label){ +// ============================================================================== +// -------------------------------- Condition ----------------------------------- +// ============================================================================== + +std::string Condition::get_published_topic_name(std::string label) { std::string topic_name = label; std::transform(topic_name.begin(), topic_name.end(), topic_name.begin(), ::tolower); std::replace(topic_name.begin(), topic_name.end(), ' ', '_'); topic_name += "_success"; return topic_name; - } - +} - Condition::Condition(std::string label){ - ros::NodeHandle nh; - this->label = label; - success_pub = nh.advertise(Condition::get_published_topic_name(label), 10); +Condition::Condition(std::string label, rclcpp::Node::SharedPtr node) : label(label) { + success_pub = + node->create_publisher(Condition::get_published_topic_name(label), 10); success.data = false; - } +} + +std::string Condition::get_label() { return label; } - std::string Condition::get_label(){ - return label; - } - - void Condition::set(bool b){ - success.data = b; - } +void Condition::set(bool b) { success.data = b; } - bool Condition::get(){ - return success.data; - } +bool Condition::get() { return success.data; } - void Condition::publish(){ - success_pub.publish(success); - } +void Condition::publish() { success_pub->publish(success); } - // ============================================================================== - // --------------------------------- Action ------------------------------------- - // ============================================================================== +// ============================================================================== +// --------------------------------- Action ------------------------------------- +// ============================================================================== - std::string Action::get_published_topic_name(std::string label){ +std::string Action::get_published_topic_name(std::string label) { std::string topic_name = label; std::transform(topic_name.begin(), topic_name.end(), topic_name.begin(), ::tolower); std::replace(topic_name.begin(), topic_name.end(), ' ', '_'); topic_name += "_status"; return topic_name; - } - - std::string Action::get_subscribed_topic_name(std::string label){ +} + +std::string Action::get_subscribed_topic_name(std::string label) { std::string topic_name = label; std::transform(topic_name.begin(), topic_name.end(), topic_name.begin(), ::tolower); std::replace(topic_name.begin(), topic_name.end(), ' ', '_'); topic_name += "_active"; return topic_name; - } - - - Action::Action(std::string label){ - ros::NodeHandle nh; - active_sub = nh.subscribe(Action::get_subscribed_topic_name(label), 10, - &Action::active_callback, this); - status_pub = nh.advertise(Action::get_published_topic_name(label), 1); - +} + +Action::Action(std::string label, rclcpp::Node::SharedPtr node) : label(label) { + active_sub = node->create_subscription( + Action::get_subscribed_topic_name(label), 10, + std::bind(&Action::active_callback, this, std::placeholders::_1)); + status_pub = node->create_publisher( + Action::get_published_topic_name(label), 1); + active = false; prev_active = false; active_changed = false; - status.status = behavior_tree_msgs::Status::FAILURE; - } - - void Action::active_callback(std_msgs::Bool msg){ - active = msg.data; - } - - void Action::set_success(){ - status.status = behavior_tree_msgs::Status::SUCCESS; - } - - void Action::set_running(){ - status.status = behavior_tree_msgs::Status::RUNNING; - } - - void Action::set_failure(){ - status.status = behavior_tree_msgs::Status::FAILURE; - } - - bool Action::is_active(){ + status.status = behavior_tree_msgs::msg::Status::FAILURE; +} + +// void Action::active_callback(std_msgs::msg::Bool msg) { active = msg.data; } +void Action::active_callback(const std_msgs::msg::Bool::SharedPtr msg) { active = msg->data; } + +void Action::set_success() { status.status = behavior_tree_msgs::msg::Status::SUCCESS; } + +void Action::set_running() { status.status = behavior_tree_msgs::msg::Status::RUNNING; } + +void Action::set_failure() { status.status = behavior_tree_msgs::msg::Status::FAILURE; } + +bool Action::is_active() { active_changed = prev_active != active; prev_active = active; return active; - } - - bool Action::active_has_changed(){ - return active_changed; - } - - bool Action::is_success(){ - return status.status == behavior_tree_msgs::Status::SUCCESS; - } - - bool Action::is_running(){ - return status.status == behavior_tree_msgs::Status::RUNNING; - } - - bool Action::is_failure(){ - return status.status == behavior_tree_msgs::Status::FAILURE; - } - - std::string Action::get_label(){ - return label; - } - - void Action::publish(){ - status_pub.publish(status); - } - -}; +} + +bool Action::active_has_changed() { return active_changed; } + +bool Action::is_success() { return status.status == behavior_tree_msgs::msg::Status::SUCCESS; } + +bool Action::is_running() { return status.status == behavior_tree_msgs::msg::Status::RUNNING; } + +bool Action::is_failure() { return status.status == behavior_tree_msgs::msg::Status::FAILURE; } + +std::string Action::get_label() { return label; } + +void Action::publish() { status_pub->publish(status); } + +}; // namespace bt diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree_msgs/CMakeLists.txt b/ros_ws/src/robot/autonomy/planning/local/behavior_tree_msgs/CMakeLists.txt index 1b1e2eaa0..6707230f8 100644 --- a/ros_ws/src/robot/autonomy/planning/local/behavior_tree_msgs/CMakeLists.txt +++ b/ros_ws/src/robot/autonomy/planning/local/behavior_tree_msgs/CMakeLists.txt @@ -1,18 +1,25 @@ -cmake_minimum_required(VERSION 2.8.3) +cmake_minimum_required(VERSION 3.5) project(behavior_tree_msgs) -find_package(catkin REQUIRED COMPONENTS - message_generation - std_msgs +# Find required packages +find_package(ament_cmake REQUIRED) +find_package(rosidl_default_generators REQUIRED) +find_package(std_msgs REQUIRED) + +# Generate interfaces +rosidl_generate_interfaces(${PROJECT_NAME} + msg/Status.msg + msg/BehaviorTreeCommand.msg + msg/BehaviorTreeCommands.msg + DEPENDENCIES std_msgs ) -add_message_files( - FILES - Status.msg - BehaviorTreeCommand.msg - BehaviorTreeCommands.msg - ) +ament_export_dependencies(rosidl_default_runtime) -generate_messages(DEPENDENCIES std_msgs) +install( + DIRECTORY include/${PROJECT_NAME}/ + DESTINATION include/${PROJECT_NAME} + FILES_MATCHING PATTERN "*.hpp" +) -catkin_package(CATKIN_DEPENDS message_runtime std_msgs) +ament_package() diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree_msgs/package.xml b/ros_ws/src/robot/autonomy/planning/local/behavior_tree_msgs/package.xml index cb067f5ff..90d957804 100644 --- a/ros_ws/src/robot/autonomy/planning/local/behavior_tree_msgs/package.xml +++ b/ros_ws/src/robot/autonomy/planning/local/behavior_tree_msgs/package.xml @@ -1,65 +1,22 @@ - + + + behavior_tree_msgs 0.0.0 - The behavior_tree_msgs package - - - - - john - - - - - - TODO - - - - - - + Message definitions for behavior trees + Your Name + TODO: License declaration - - - - - - - - - - - - - - - - - - - - - - - - - - - - catkin + ament_cmake - std_msgs - message_generation + rosidl_default_generators + rosidl_default_runtime + rosidl_interface_packages - std_msgs - message_runtime + std_msgs - - - - + ament_cmake diff --git a/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/CMakeLists.txt b/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/CMakeLists.txt index ebd4dedbc..5314614a9 100644 --- a/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/CMakeLists.txt +++ b/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/CMakeLists.txt @@ -1,50 +1,58 @@ -cmake_minimum_required(VERSION 2.8.3) +cmake_minimum_required(VERSION 3.5) project(core_disparity_map_representation) -find_package(catkin REQUIRED COMPONENTS - geometry_msgs - roscpp - rospy - sensor_msgs - std_msgs - stereo_msgs - nav_msgs - tf - visualization_msgs - cv_bridge - core_map_representation_interface - disparity_graph - tflib - pluginlib - core_trajectory_msgs -) +find_package(ament_cmake REQUIRED) +find_package(rclcpp REQUIRED) +find_package(rclpy REQUIRED) +find_package(geometry_msgs REQUIRED) +find_package(sensor_msgs REQUIRED) +find_package(std_msgs REQUIRED) +find_package(stereo_msgs REQUIRED) +find_package(nav_msgs REQUIRED) +find_package(tf2 REQUIRED) +find_package(tf2_ros REQUIRED) +find_package(visualization_msgs REQUIRED) +find_package(cv_bridge REQUIRED) +find_package(core_map_representation_interface REQUIRED) +find_package(disparity_graph REQUIRED) +#find_package(tflib REQUIRED) +find_package(pluginlib REQUIRED) +find_package(core_trajectory_msgs REQUIRED) + +include_directories( + ${ament_INCLUDE_DIRS} + ${core_map_representation_interface_INCLUDE_DIRS} + ${disparity_graph_INCLUDE_DIRS} - -########### -## Build ## -########### - -catkin_package( - INCLUDE_DIRS include - CATKIN_DEPENDS rospy roscpp tf disparity_graph core_map_representation_interface core_trajectory_msgs tflib - LIBRARIES disparity_map_representation ) -include_directories(${catkin_INCLUDE_DIRS} include) - - add_library(disparity_map_representation src/disparity_map_representation.cpp - ) - -target_link_libraries(disparity_map_representation ${catkin_LIBRARIES}) +) +ament_target_dependencies(disparity_map_representation + rclcpp + tf2 + tf2_ros + disparity_graph + core_map_representation_interface + core_trajectory_msgs + cv_bridge + #tflib +) install(TARGETS disparity_map_representation - ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} - LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} - RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION}) + DESTINATION lib/${PROJECT_NAME} +) +install(DIRECTORY launch DESTINATION share/${PROJECT_NAME}) +install(FILES package.xml + DESTINATION share/${PROJECT_NAME} +) + +#ament_export_include_directories(include) +#ament_export_libraries(disparity_map_representation) +#ament_export_targets(export_${PROJECT_NAME} HAS_LIBRARY_TARGET) + -install(DIRECTORY include/${PROJECT_NAME}/ - DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}) +ament_package() diff --git a/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/include/core_disparity_map_representation/disparity_map_representation.h b/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/include/core_disparity_map_representation/disparity_map_representation.h index 583a41547..ae754475e 100644 --- a/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/include/core_disparity_map_representation/disparity_map_representation.h +++ b/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/include/core_disparity_map_representation/disparity_map_representation.h @@ -1,47 +1,72 @@ #ifndef _DISPARITY_MAP_REPRESENTATION_ #define _DISPARITY_MAP_REPRESENTATION_ - -#include +/* +#include +#include #include #include -#include -#include -#include #include +#include +#include +#include +#include #include #include -#include -#include -#include #include -#include -//#include +#include + +#include +// #include #include -#include -#include #include +#include +//#include +*/ +// #include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include class DisparityMapRepresentation : public MapRepresentation { - private: - nabla::disparity_graph::disparity_graph* disp_graph; - - visualization_msgs::MarkerArray markers; - visualization_msgs::Marker points; + private: + nabla::disparity_graph::disparity_graph* disp_graph; - tf::TransformListener* listener; - - ros::Publisher debug_pub; + visualization_msgs::msg::MarkerArray markers; + visualization_msgs::msg::Marker points; + + // tf::TransformListener* listener; + std::shared_ptr listener; - int obstacle_check_points; - double obstacle_check_radius; - - public: - DisparityMapRepresentation(); - virtual double distance_to_obstacle(geometry_msgs::PoseStamped pose, tf::Vector3 direction); - virtual void publish_debug(); + // ros::Publisher debug_pub; + rclcpp::Publisher::SharedPtr debug_pub; - //virtual std::vector< std::vector > get_values(std::vector trajectories); - virtual std::vector< std::vector > get_values(std::vector > trajectories); + int obstacle_check_points; + double obstacle_check_radius; + + public: + DisparityMapRepresentation(); + virtual double distance_to_obstacle(geometry_msgs::msg::PoseStamped pose, + tf2::Vector3 direction); + virtual void publish_debug(); + + // virtual std::vector< std::vector > + // get_values(std::vector trajectories); + virtual std::vector > get_values( + std::vector > trajectories); }; /* @@ -76,18 +101,18 @@ class DisparityMapRepresentation { // publishers ros::Publisher debug_pub; - + public: DisparityMapRepresentation(ros::NodeHandle* nh); void fg_bg_disparity_callback(const sensor_msgs::ImageConstPtr& foreground, - const sensor_msgs::ImageConstPtr& background); + const sensor_msgs::ImageConstPtr& background); void camera_info_callback(sensor_msgs::CameraInfo info); void odom_callback(nav_msgs::Odometry odom); void publish_debug(); bool should_add_image_pair(); - + bool is_obstacle(geometry_msgs::PoseStamped pose, double threshold); }; */ diff --git a/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/package.xml b/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/package.xml index f128d8994..ce89e0b48 100644 --- a/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/package.xml +++ b/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/package.xml @@ -1,105 +1,38 @@ - + + core_disparity_map_representation 0.0.0 The core_disparity_map_representation package - - - john - - - - - TODO + ament_cmake + + geometry_msgs + rclcpp + rclpy + sensor_msgs + std_msgs + stereo_msgs + tf2 + tf2_ros + visualization_msgs + nav_msgs + cv_bridge + core_map_representation_interface + disparity_graph + tflib + pluginlib + core_trajectory_msgs + + ament_lint_auto + ament_lint_common - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - catkin - geometry_msgs - roscpp - rospy - sensor_msgs - std_msgs - stereo_msgs - tf - visualization_msgs - nav_msgs - cv_bridge - core_map_representation_interface - disparity_graph - tflib - pluginlib - core_trajectory_msgs - - geometry_msgs - roscpp - rospy - sensor_msgs - std_msgs - stereo_msgs - tf - visualization_msgs - nav_msgs - cv_bridge - core_map_representation_interface - disparity_graph - tflib - pluginlib - core_trajectory_msgs - - geometry_msgs - roscpp - rospy - sensor_msgs - std_msgs - stereo_msgs - tf - visualization_msgs - nav_msgs - cv_bridge - core_map_representation_interface - disparity_graph - tflib - pluginlib - core_trajectory_msgs - - - + ament_cmake + diff --git a/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/src/disparity_map_representation.cpp b/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/src/disparity_map_representation.cpp index 098db016b..2395c20e3 100644 --- a/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/src/disparity_map_representation.cpp +++ b/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/src/disparity_map_representation.cpp @@ -1,183 +1,186 @@ #include #include -DisparityMapRepresentation::DisparityMapRepresentation(){ - ros::NodeHandle* nh = new ros::NodeHandle(); - ros::NodeHandle* pnh = new ros::NodeHandle("~"); - disp_graph = new nabla::disparity_graph::disparity_graph(); - - points.ns = "obstacles"; - points.id = 0; - points.type = visualization_msgs::Marker::SPHERE_LIST; - points.action = visualization_msgs::Marker::ADD; - points.scale.x = 0.1; - points.scale.y = 0.1; - points.scale.z = 0.1; - - debug_pub = nh->advertise("disparity_map_debug", 1); - - obstacle_check_points = pnh->param("disparity_map/obstacle_check_points", 5); - obstacle_check_radius = pnh->param("disparity_map/obstacle_check_radius", 2.); - - listener = new tf::TransformListener(); -} - - -std::vector< std::vector > DisparityMapRepresentation::get_values(std::vector > trajectories){ - std::vector< std::vector > values(trajectories.size()); - - for(int i = 0; i < trajectories.size(); i++) - for(int j = 0; j < trajectories[i].size(); j++) - values[i].push_back(0); - - for(int i = 0; i < trajectories.size(); i++){ - //core_trajectory_msgs::TrajectoryXYZVYaw trajectory = trajectories[i]; - for(int j = 0; j < trajectories[i].size(); j++){ - tf::Vector3 wp = tflib::to_tf(trajectories[i][j].point); - - // find the direction of the current trajectory segment between waypoints - // this direction will be used to check for obstacles in a perpendicular direction - tf::Vector3 direction; - tf::Vector3 wp2 = wp; - if(trajectories[i].size() < 2){ - direction = tf::Vector3(1, 0, 0); // TODO: make this point in the direction of the waypoints quaternion - } - else{ - if(j == 0){ - wp2 = tflib::to_tf(trajectories[i][1].point); - direction = wp2 - wp; - } - else{ - wp2 = tflib::to_tf(trajectories[i][j-1].point); - direction = wp - wp2; - } - } - - points.header.frame_id = trajectories[i][j].header.frame_id; - std_msgs::ColorRGBA green; - green.r = 0; - green.b = 0; - green.g = 1; - green.a = 1; - std_msgs::ColorRGBA red; - red.r = 1; - red.b = 0; - red.g = 0; - red.a = 1; - - tf::Quaternion q_up, q_down, q_left, q_right; - q_up.setRPY(0, -M_PI/2, 0); - q_down.setRPY(0, M_PI/2, 0); - q_left.setRPY(0, 0, M_PI/2); - q_right.setRPY(0, 0, -M_PI/2); - std::vector directions; - directions.push_back(q_up); - directions.push_back(q_down); - directions.push_back(q_left); - directions.push_back(q_right); - - tf::Vector3 position = wp;//tflib::to_tf(pose.pose.position); - tf::Quaternion q = tf::Quaternion(0, 0, 0, 1); // TODO: figure out if this makes sense //tflib::to_tf(pose.pose.orientation); - tf::Vector3 unit(1, 0, 0); - double closest_obstacle_distance = obstacle_check_radius; - - direction.normalize(); - tf::Vector3 up = tf::Transform(q_up*q)*unit; - up.normalize(); - - tf::Vector3 side = up.cross(direction); - side.normalize(); +DisparityMapRepresentation::DisparityMapRepresentation() { + ros::NodeHandle* nh = new ros::NodeHandle(); + ros::NodeHandle* pnh = new ros::NodeHandle("~"); + disp_graph = new nabla::disparity_graph::disparity_graph(); - up = side.cross(direction); - up.normalize(); + points.ns = "obstacles"; + points.id = 0; + points.type = visualization_msgs::Marker::SPHERE_LIST; + points.action = visualization_msgs::Marker::ADD; + points.scale.x = 0.1; + points.scale.y = 0.1; + points.scale.z = 0.1; - std::vector direction_vectors; - direction_vectors.push_back(up); - direction_vectors.push_back(side); - direction_vectors.push_back(-up); - direction_vectors.push_back(-side); + debug_pub = nh->advertise("disparity_map_debug", 1); - for(int m = 0; m < directions.size(); m++){ - tf::Quaternion q_curr = directions[m]; - for(int k = 1; k < obstacle_check_points+1; k++){ - double dist = (double)k*obstacle_check_radius/(double)(obstacle_check_points+1); - - tf::Vector3 point = position + dist*direction_vectors[m];//tf::Transform(q_curr)*(dist*direction); - geometry_msgs::PoseStamped check_pose; - check_pose.header = trajectories[i][j].header; - check_pose.pose.position = trajectories[i][j].point; - check_pose.pose.orientation.w = 1.0; - - double occupancy; - bool collision = !disp_graph->isStateValidDepth_pose(check_pose, 0.9, occupancy); - - std_msgs::ColorRGBA c; - if(collision){ - closest_obstacle_distance = std::min(dist, closest_obstacle_distance); - c = red; - } - else - c = green; - - points.points.push_back(check_pose.pose.position); - points.colors.push_back(c); - } - } - - points.points.push_back(trajectories[i][j].point); + obstacle_check_points = pnh->param("disparity_map/obstacle_check_points", 5); + obstacle_check_radius = pnh->param("disparity_map/obstacle_check_radius", 2.); - geometry_msgs::PoseStamped pose; - pose.header = trajectories[i][j].header;//trajectory.header; - pose.pose.position = trajectories[i][j].point; - pose.pose.orientation.w = 1.0; - - double occupancy; - if(!disp_graph->isStateValidDepth_pose(pose, 0.9, occupancy)){ - values[i][j] = 0.f; - points.colors.push_back(red); - } - else{ - points.colors.push_back(green); - } + listener = new tf::TransformListener(); +} - values[i][j] = closest_obstacle_distance; +std::vector > DisparityMapRepresentation::get_values( + std::vector > trajectories) { + std::vector > values(trajectories.size()); + + for (int i = 0; i < trajectories.size(); i++) + for (int j = 0; j < trajectories[i].size(); j++) values[i].push_back(0); + + for (int i = 0; i < trajectories.size(); i++) { + // core_trajectory_msgs::TrajectoryXYZVYaw trajectory = trajectories[i]; + for (int j = 0; j < trajectories[i].size(); j++) { + tf::Vector3 wp = tflib::to_tf(trajectories[i][j].point); + + // find the direction of the current trajectory segment between waypoints + // this direction will be used to check for obstacles in a perpendicular direction + tf::Vector3 direction; + tf::Vector3 wp2 = wp; + if (trajectories[i].size() < 2) { + direction = tf::Vector3( + 1, 0, 0); // TODO: make this point in the direction of the waypoints quaternion + } else { + if (j == 0) { + wp2 = tflib::to_tf(trajectories[i][1].point); + direction = wp2 - wp; + } else { + wp2 = tflib::to_tf(trajectories[i][j - 1].point); + direction = wp - wp2; + } + } + + points.header.frame_id = trajectories[i][j].header.frame_id; + std_msgs::ColorRGBA green; + green.r = 0; + green.b = 0; + green.g = 1; + green.a = 1; + std_msgs::ColorRGBA red; + red.r = 1; + red.b = 0; + red.g = 0; + red.a = 1; + + tf::Quaternion q_up, q_down, q_left, q_right; + q_up.setRPY(0, -M_PI / 2, 0); + q_down.setRPY(0, M_PI / 2, 0); + q_left.setRPY(0, 0, M_PI / 2); + q_right.setRPY(0, 0, -M_PI / 2); + std::vector directions; + directions.push_back(q_up); + directions.push_back(q_down); + directions.push_back(q_left); + directions.push_back(q_right); + + tf::Vector3 position = wp; // tflib::to_tf(pose.pose.position); + tf::Quaternion q = tf::Quaternion( + 0, 0, 0, + 1); // TODO: figure out if this makes sense //tflib::to_tf(pose.pose.orientation); + tf::Vector3 unit(1, 0, 0); + double closest_obstacle_distance = obstacle_check_radius; + + direction.normalize(); + tf::Vector3 up = tf::Transform(q_up * q) * unit; + up.normalize(); + + tf::Vector3 side = up.cross(direction); + side.normalize(); + + up = side.cross(direction); + up.normalize(); + + std::vector direction_vectors; + direction_vectors.push_back(up); + direction_vectors.push_back(side); + direction_vectors.push_back(-up); + direction_vectors.push_back(-side); + + for (int m = 0; m < directions.size(); m++) { + tf::Quaternion q_curr = directions[m]; + for (int k = 1; k < obstacle_check_points + 1; k++) { + double dist = + (double)k * obstacle_check_radius / (double)(obstacle_check_points + 1); + + tf::Vector3 point = + position + + dist * direction_vectors[m]; // tf::Transform(q_curr)*(dist*direction); + geometry_msgs::PoseStamped check_pose; + check_pose.header = trajectories[i][j].header; + check_pose.pose.position = trajectories[i][j].point; + check_pose.pose.orientation.w = 1.0; + + double occupancy; + bool collision = + !disp_graph->isStateValidDepth_pose(check_pose, 0.9, occupancy); + + std_msgs::ColorRGBA c; + if (collision) { + closest_obstacle_distance = std::min(dist, closest_obstacle_distance); + c = red; + } else + c = green; + + points.points.push_back(check_pose.pose.position); + points.colors.push_back(c); + } + } + + points.points.push_back(trajectories[i][j].point); + + geometry_msgs::PoseStamped pose; + pose.header = trajectories[i][j].header; // trajectory.header; + pose.pose.position = trajectories[i][j].point; + pose.pose.orientation.w = 1.0; + + double occupancy; + if (!disp_graph->isStateValidDepth_pose(pose, 0.9, occupancy)) { + values[i][j] = 0.f; + points.colors.push_back(red); + } else { + points.colors.push_back(green); + } + + values[i][j] = closest_obstacle_distance; + } } - } - - - return values; + + return values; } -/*std::vector< std::vector > DisparityMapRepresentation::get_values(std::vector trajectories){ - std::vector< std::vector > values(trajectories.size()); - +/*std::vector< std::vector > + DisparityMapRepresentation::get_values(std::vector + trajectories){ std::vector< std::vector > values(trajectories.size()); + for(int i = 0; i < trajectories.size(); i++) for(int j = 0; j < trajectories[i].waypoints.size(); j++) values[i].push_back(0); - + for(int i = 0; i < trajectories.size(); i++){ core_trajectory_msgs::TrajectoryXYZVYaw trajectory = trajectories[i]; for(int j = 0; j < trajectory.waypoints.size(); j++){ tf::Vector3 wp = tflib::to_tf(trajectory.waypoints[j].position); - + // find the direction of the current trajectory segment between waypoints // this direction will be used to check for obstacles in a perpendicular direction tf::Vector3 direction; tf::Vector3 wp2 = wp; if(trajectory.waypoints.size() < 2){ - direction = tf::Vector3(1, 0, 0); // TODO: make this point in the direction of the waypoints quaternion + direction = tf::Vector3(1, 0, 0); // TODO: make this point in the direction of the waypoints + quaternion } else{ - if(j == 0){ - wp2 = tflib::to_tf(trajectory.waypoints[1].position); - direction = wp2 - wp; - } - else{ - wp2 = tflib::to_tf(trajectory.waypoints[j-1].position); - direction = wp - wp2; - } + if(j == 0){ + wp2 = tflib::to_tf(trajectory.waypoints[1].position); + direction = wp2 - wp; + } + else{ + wp2 = tflib::to_tf(trajectory.waypoints[j-1].position); + direction = wp - wp2; + } } - + points.header.frame_id = trajectory.header.frame_id; std_msgs::ColorRGBA green; green.r = 0; @@ -202,10 +205,10 @@ std::vector< std::vector > DisparityMapRepresentation::get_values(std::v directions.push_back(q_right); tf::Vector3 position = wp;//tflib::to_tf(pose.pose.position); - tf::Quaternion q = tf::Quaternion(0, 0, 0, 1); // TODO: figure out if this makes sense //tflib::to_tf(pose.pose.orientation); - tf::Vector3 unit(1, 0, 0); - double closest_obstacle_distance = obstacle_check_radius; - + tf::Quaternion q = tf::Quaternion(0, 0, 0, 1); // TODO: figure out if this makes sense + //tflib::to_tf(pose.pose.orientation); tf::Vector3 unit(1, 0, 0); double closest_obstacle_distance + = obstacle_check_radius; + direction.normalize(); tf::Vector3 up = tf::Transform(q_up*q)*unit; up.normalize(); @@ -223,34 +226,33 @@ std::vector< std::vector > DisparityMapRepresentation::get_values(std::v direction_vectors.push_back(-side); for(int m = 0; m < directions.size(); m++){ - tf::Quaternion q_curr = directions[m]; - for(int k = 1; k < obstacle_check_points+1; k++){ - double dist = (double)k*obstacle_check_radius/(double)(obstacle_check_points+1); - - tf::Vector3 point = position + dist*direction_vectors[m];//tf::Transform(q_curr)*(dist*direction); - geometry_msgs::PoseStamped check_pose; - check_pose.header = trajectory.header; - check_pose.pose.position.x = point.x(); - check_pose.pose.position.y = point.y(); - check_pose.pose.position.z = point.z(); - check_pose.pose.orientation.w = 1.0; - - double occupancy; - bool collision = !disp_graph->isStateValidDepth_pose(check_pose, 0.9, occupancy); - - std_msgs::ColorRGBA c; - if(collision){ - closest_obstacle_distance = std::min(dist, closest_obstacle_distance); - c = red; - } - else - c = green; - - points.points.push_back(check_pose.pose.position); - points.colors.push_back(c); - } + tf::Quaternion q_curr = directions[m]; + for(int k = 1; k < obstacle_check_points+1; k++){ + double dist = (double)k*obstacle_check_radius/(double)(obstacle_check_points+1); + + tf::Vector3 point = position + + dist*direction_vectors[m];//tf::Transform(q_curr)*(dist*direction); geometry_msgs::PoseStamped + check_pose; check_pose.header = trajectory.header; check_pose.pose.position.x = point.x(); + check_pose.pose.position.y = point.y(); + check_pose.pose.position.z = point.z(); + check_pose.pose.orientation.w = 1.0; + + double occupancy; + bool collision = !disp_graph->isStateValidDepth_pose(check_pose, 0.9, occupancy); + + std_msgs::ColorRGBA c; + if(collision){ + closest_obstacle_distance = std::min(dist, closest_obstacle_distance); + c = red; + } + else + c = green; + + points.points.push_back(check_pose.pose.position); + points.colors.push_back(c); + } } - + points.points.push_back(trajectory.waypoints[j].position); geometry_msgs::PoseStamped pose; @@ -258,120 +260,118 @@ std::vector< std::vector > DisparityMapRepresentation::get_values(std::v pose.pose.position.x = wp.x(); pose.pose.position.y = wp.y(); pose.pose.position.z = wp.z(); - pose.pose.orientation.w = 1.0; - + pose.pose.orientation.w = 1.0; + double occupancy; if(!disp_graph->isStateValidDepth_pose(pose, 0.9, occupancy)){ - values[i][j] = 0.f; - points.colors.push_back(red); + values[i][j] = 0.f; + points.colors.push_back(red); } else{ - points.colors.push_back(green); + points.colors.push_back(green); } values[i][j] = closest_obstacle_distance; } } - - + + return values; }*/ -double DisparityMapRepresentation::distance_to_obstacle(geometry_msgs::PoseStamped pose, tf::Vector3 direction){ - points.header.frame_id = pose.header.frame_id; - std_msgs::ColorRGBA green; - green.r = 0; - green.b = 0; - green.g = 1; - green.a = 1; - std_msgs::ColorRGBA red; - red.r = 1; - red.b = 0; - red.g = 0; - red.a = 1; - - - tf::Quaternion q_up, q_down, q_left, q_right; - q_up.setRPY(0, -M_PI/2, 0); - q_down.setRPY(0, M_PI/2, 0); - q_left.setRPY(0, 0, M_PI/2); - q_right.setRPY(0, 0, -M_PI/2); - std::vector directions; - directions.push_back(q_up); - directions.push_back(q_down); - directions.push_back(q_left); - directions.push_back(q_right); - - tf::Vector3 position = tflib::to_tf(pose.pose.position); - tf::Quaternion q = tflib::to_tf(pose.pose.orientation); - tf::Vector3 unit(1, 0, 0); - double closest_obstacle_distance = obstacle_check_radius; - - direction.normalize(); - tf::Vector3 up = tf::Transform(q_up*q)*unit; - up.normalize(); - - tf::Vector3 side = up.cross(direction); - side.normalize(); - - up = side.cross(direction); - up.normalize(); - - std::vector direction_vectors; - direction_vectors.push_back(up); - direction_vectors.push_back(side); - direction_vectors.push_back(-up); - direction_vectors.push_back(-side); - - for(int m = 0; m < directions.size(); m++){ - tf::Quaternion q_curr = directions[m]; - for(int k = 1; k < obstacle_check_points+1; k++){ - double dist = (double)k*obstacle_check_radius/(double)(obstacle_check_points+1); - - tf::Vector3 point = position + dist*direction_vectors[m];//tf::Transform(q_curr)*(dist*direction); - geometry_msgs::PoseStamped check_pose; - check_pose.header = pose.header; - check_pose.pose.position.x = point.x(); - check_pose.pose.position.y = point.y(); - check_pose.pose.position.z = point.z(); - check_pose.pose.orientation.w = 1.0; - - double occupancy; - bool collision = !disp_graph->isStateValidDepth_pose(check_pose, 0.9, occupancy); - - std_msgs::ColorRGBA c; - if(collision){ - closest_obstacle_distance = std::min(dist, closest_obstacle_distance); - c = red; - } - else - c = green; - - points.points.push_back(check_pose.pose.position); - points.colors.push_back(c); +double DisparityMapRepresentation::distance_to_obstacle(geometry_msgs::PoseStamped pose, + tf::Vector3 direction) { + points.header.frame_id = pose.header.frame_id; + std_msgs::ColorRGBA green; + green.r = 0; + green.b = 0; + green.g = 1; + green.a = 1; + std_msgs::ColorRGBA red; + red.r = 1; + red.b = 0; + red.g = 0; + red.a = 1; + + tf::Quaternion q_up, q_down, q_left, q_right; + q_up.setRPY(0, -M_PI / 2, 0); + q_down.setRPY(0, M_PI / 2, 0); + q_left.setRPY(0, 0, M_PI / 2); + q_right.setRPY(0, 0, -M_PI / 2); + std::vector directions; + directions.push_back(q_up); + directions.push_back(q_down); + directions.push_back(q_left); + directions.push_back(q_right); + + tf::Vector3 position = tflib::to_tf(pose.pose.position); + tf::Quaternion q = tflib::to_tf(pose.pose.orientation); + tf::Vector3 unit(1, 0, 0); + double closest_obstacle_distance = obstacle_check_radius; + + direction.normalize(); + tf::Vector3 up = tf::Transform(q_up * q) * unit; + up.normalize(); + + tf::Vector3 side = up.cross(direction); + side.normalize(); + + up = side.cross(direction); + up.normalize(); + + std::vector direction_vectors; + direction_vectors.push_back(up); + direction_vectors.push_back(side); + direction_vectors.push_back(-up); + direction_vectors.push_back(-side); + + for (int m = 0; m < directions.size(); m++) { + tf::Quaternion q_curr = directions[m]; + for (int k = 1; k < obstacle_check_points + 1; k++) { + double dist = (double)k * obstacle_check_radius / (double)(obstacle_check_points + 1); + + tf::Vector3 point = + position + dist * direction_vectors[m]; // tf::Transform(q_curr)*(dist*direction); + geometry_msgs::PoseStamped check_pose; + check_pose.header = pose.header; + check_pose.pose.position.x = point.x(); + check_pose.pose.position.y = point.y(); + check_pose.pose.position.z = point.z(); + check_pose.pose.orientation.w = 1.0; + + double occupancy; + bool collision = !disp_graph->isStateValidDepth_pose(check_pose, 0.9, occupancy); + + std_msgs::ColorRGBA c; + if (collision) { + closest_obstacle_distance = std::min(dist, closest_obstacle_distance); + c = red; + } else + c = green; + + points.points.push_back(check_pose.pose.position); + points.colors.push_back(c); + } } - } - - points.points.push_back(pose.pose.position); - points.colors.push_back(green); - - - double occupancy; - if(!disp_graph->isStateValidDepth_pose(pose, 0.9, occupancy)) - return 0.f; - - return closest_obstacle_distance; + + points.points.push_back(pose.pose.position); + points.colors.push_back(green); + + double occupancy; + if (!disp_graph->isStateValidDepth_pose(pose, 0.9, occupancy)) return 0.f; + + return closest_obstacle_distance; } -void DisparityMapRepresentation::publish_debug(){ - points.header.stamp = ros::Time::now(); - markers.markers.push_back(points); +void DisparityMapRepresentation::publish_debug() { + points.header.stamp = ros::Time::now(); + markers.markers.push_back(points); - debug_pub.publish(markers); + debug_pub.publish(markers); - markers.markers.clear(); - points.points.clear(); - points.colors.clear(); + markers.markers.clear(); + points.points.clear(); + points.colors.clear(); } /* @@ -381,7 +381,7 @@ DisparityMapRepresentation::DisparityMapRepresentation(ros::NodeHandle* nh){ distance_threshold = nh->param("distance_threshold", 0.5); angle_threshold = M_PI/180.*nh->param("angle_threshold", 5.); buffer_size = nh->param("buffer_size", 10); - + got_camera_info = false; got_odom = false; @@ -396,9 +396,9 @@ DisparityMapRepresentation::DisparityMapRepresentation(ros::NodeHandle* nh){ new message_filters::TimeSynchronizer (*foreground_disparity_sub, *background_disparity_sub, 10); fg_bg_sync->registerCallback(boost::bind(&DisparityMapRepresentation::fg_bg_disparity_callback, - this, _1, _2)); + this, _1, _2)); camera_info_sub = nh->subscribe("/camera_info", 1, - &DisparityMapRepresentation::camera_info_callback, this); + &DisparityMapRepresentation::camera_info_callback, this); odom_sub = nh->subscribe("/odometry", 1, &DisparityMapRepresentation::odom_callback, this); listener = new tf::TransformListener(); @@ -426,9 +426,9 @@ void DisparityMapRepresentation::fg_bg_disparity_callback // get the tf try{ listener->waitForTransform(foreground->header.frame_id, target_frame, foreground->header.stamp, - ros::Duration(0.1)); + ros::Duration(0.1)); listener->lookupTransform(foreground->header.frame_id, target_frame, foreground->header.stamp, - image_pair.target_frame_to_image_tf); + image_pair.target_frame_to_image_tf); } catch(tf::TransformException& e){ ROS_ERROR_STREAM("transform exception: " << e.what()); @@ -474,14 +474,14 @@ void DisparityMapRepresentation::odom_callback(nav_msgs::Odometry odom){ bool DisparityMapRepresentation::is_obstacle(geometry_msgs::PoseStamped pose, double threshold){ tf::Vector3 point_target_frame; double occupancy = 0; - + // transform the pose into the target frame try{ tf::StampedTransform pose_to_target_frame_tf; listener->waitForTransform(target_frame, pose.header.frame_id, pose.header.stamp, - ros::Duration(0.1)); + ros::Duration(0.1)); listener->lookupTransform(target_frame, pose.header.frame_id, pose.header.stamp, - pose_to_target_frame_tf); + pose_to_target_frame_tf); tf::Vector3 point_pose_frame(pose.pose.position.x, pose.pose.position.y, pose.pose.position.z); point_target_frame = pose_to_target_frame_tf*point_pose_frame; @@ -494,40 +494,43 @@ bool DisparityMapRepresentation::is_obstacle(geometry_msgs::PoseStamped pose, do for(int i = 0; i < image_pairs.size(); i++){ ImagePair image_pair = image_pairs[i]; - + // project the point into the image tf::Vector3 point_image_frame = image_pair.target_frame_to_image_tf*point_target_frame; //ROS_INFO_STREAM(fx << " " << fy << " " << cx << " " << cy << " " << baseline); int c = point_image_frame.x()/point_image_frame.z()*fx + cx; int r = point_image_frame.y()/point_image_frame.z()*fy + cy;; double point_disparity = baseline*fx/point_image_frame.z(); - //ROS_INFO_STREAM(point_image_frame.x() << " " << point_image_frame.y() << " " << point_image_frame.z() << " " << c << " " << r); + //ROS_INFO_STREAM(point_image_frame.x() << " " << point_image_frame.y() << " " << +point_image_frame.z() << " " << c << " " << r); // check occupancy if(point_image_frame.z() >= 0 && c >= 0 && c < image_pair.foreground->image.cols && r >= 0 && r < image_pair.foreground->image.rows){ - + // if the point is between the foreground and background if(image_pair.foreground->image.at(r, c) > point_disparity && - image_pair.background->image.at(r, c) < point_disparity){ - occupancy += (point_disparity - 0.5)/point_disparity; - - ROS_INFO_STREAM("disp: " << point_disparity << " " << image_pair.foreground->image.at(r, c) << " " << image_pair.background->image.at(r, c) << " " << occupancy); - // debugging - debug_image->at(r, c) = 255; + image_pair.background->image.at(r, c) < point_disparity){ + occupancy += (point_disparity - 0.5)/point_disparity; + + ROS_INFO_STREAM("disp: " << point_disparity << " " << +image_pair.foreground->image.at(r, c) << " " << image_pair.background->image.at(r, c) +<< " " << occupancy); + // debugging + debug_image->at(r, c) = 255; } else{ - occupancy -= 0.5*(point_disparity - 0.5)/point_disparity; - occupancy = std::max(occupancy, 0.0); - - // debugging - debug_image->at(r, c) = 128; + occupancy -= 0.5*(point_disparity - 0.5)/point_disparity; + occupancy = std::max(occupancy, 0.0); + + // debugging + debug_image->at(r, c) = 128; } if(occupancy >= threshold) - return false; + return false; } } diff --git a/ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface/CMakeLists.txt b/ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface/CMakeLists.txt index 71591d9ed..cdfadcf1e 100644 --- a/ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface/CMakeLists.txt +++ b/ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface/CMakeLists.txt @@ -1,28 +1,73 @@ -cmake_minimum_required(VERSION 2.8.3) +cmake_minimum_required(VERSION 3.5) project(core_map_representation_interface) -find_package(catkin REQUIRED COMPONENTS - geometry_msgs - nav_msgs - roscpp - rospy +# Find dependencies +find_package(ament_cmake REQUIRED) +find_package(rclcpp REQUIRED) +find_package(rclpy REQUIRED) +find_package(sensor_msgs REQUIRED) +find_package(std_msgs REQUIRED) +find_package(tf2 REQUIRED) +find_package(tf2_ros REQUIRED) +find_package(visualization_msgs REQUIRED) +find_package(pluginlib REQUIRED) +find_package(core_trajectory_msgs REQUIRED) +find_package(geometry_msgs REQUIRED) +find_package(nav_msgs REQUIRED) + +# Include directories +include_directories( + include + ${ament_INCLUDE_DIRS} +) + +# Declare a C++ library (if you have any) +# add_library(${PROJECT_NAME} +# src/your_cpp_file.cpp +# ) + +# Link against dependencies (if you have a library) +# ament_target_dependencies(${PROJECT_NAME} +# rclcpp +# sensor_msgs +# std_msgs +# tf2 +# tf2_ros +# visualization_msgs +# pluginlib +# core_trajectory_msgs +# geometry_msgs +# nav_msgs +# ) + +# Install include files +install( + DIRECTORY include/${PROJECT_NAME}/ + DESTINATION include/${PROJECT_NAME} + FILES_MATCHING PATTERN "*.hpp" +) + +# Install Python scripts (if you have any) +# install(PROGRAMS +# scripts/your_python_script.py +# DESTINATION lib/${PROJECT_NAME} +# ) + + +# Export dependencies +ament_export_include_directories(include) +ament_export_dependencies( + rclcpp + rclpy sensor_msgs std_msgs - tf + tf2 + tf2_ros visualization_msgs pluginlib core_trajectory_msgs + geometry_msgs + nav_msgs ) - -catkin_package( - INCLUDE_DIRS include -# LIBRARIES core_map_representation_interface - CATKIN_DEPENDS geometry_msgs nav_msgs roscpp rospy sensor_msgs std_msgs tf visualization_msgs core_trajectory_msgs -# DEPENDS system_lib -) - -include_directories( - include - ${catkin_INCLUDE_DIRS} -) +ament_package() diff --git a/ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface/COLCON_IGNORE b/ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface/COLCON_IGNORE deleted file mode 100644 index e69de29bb..000000000 diff --git a/ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface/include/core_map_representation_interface/map_representation.h b/ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface/include/core_map_representation_interface/map_representation.h index 6afbf40d7..f71891c6a 100644 --- a/ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface/include/core_map_representation_interface/map_representation.h +++ b/ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface/include/core_map_representation_interface/map_representation.h @@ -1,43 +1,42 @@ #ifndef _CORE_MAP_REPRESENTATION_H_ #define _CORE_MAP_REPRESENTATION_H_ -#include +#include +#include +#include #include -#include -#include class MapRepresentation { -private: - -public: - - /** - Takes in a list of trajectories and outputs a value for each waypoint in each trajectory. - @return A vector of vectors containing values for each waypoint. There is a vector of vectors for each trajectory. There is a vector of doubles for each waypoint within a trajectory. - */ - virtual std::vector > get_values(std::vector > trajectories){//std::vector trajectories){ - ROS_ERROR("get_values CALLED BUT NOT IMPLEMENTED"); - - std::vector > values; - return values; - } - - /** - Clears the map. - */ - virtual void clear(){ - ROS_ERROR("clear CALLED BUT NOT IMPLEMENTED"); - } - - /** - Use this function to publish visualizations of the map that might be helpful for debugging. - */ - virtual void publish_debug(){} - - virtual ~MapRepresentation(){} - -protected: - MapRepresentation(){} + private: + public: + /** + Takes in a list of trajectories and outputs a value for each waypoint in each trajectory. + @return A vector of vectors containing values for each waypoint. There is a vector of vectors + for each trajectory. There is a vector of doubles for each waypoint within a trajectory. + */ + virtual std::vector > get_values( + std::vector > + trajectories) { // std::vector trajectories){ + RCLCPP_ERROR(this->get_logger(), "get_values CALLED BUT NOT IMPLEMENTED"); + + std::vector > values; + return values; + } + + /** + Clears the map. + */ + virtual void clear() { RCLCPP_ERROR(this->get_logger(), "clear CALLED BUT NOT IMPLEMENTED"); } + + /** + Use this function to publish visualizations of the map that might be helpful for debugging. + */ + virtual void publish_debug() {} + + virtual ~MapRepresentation() {} + + protected: + MapRepresentation() {} }; #endif diff --git a/ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface/package.xml b/ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface/package.xml index 9d90b9745..d904d759a 100644 --- a/ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface/package.xml +++ b/ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface/package.xml @@ -1,91 +1,31 @@ - + + core_map_representation_interface 0.0.0 The core_map_representation_interface package - - - john - - - - - TODO + ament_cmake - - - - - - - - - - + geometry_msgs + nav_msgs + rclcpp + rclpy + sensor_msgs + std_msgs + tf2 + tf2_ros + visualization_msgs + pluginlib + core_trajectory_msgs + ament_lint_auto + ament_lint_common - - - - - - - - - - - - - - - - - - - - - catkin - geometry_msgs - nav_msgs - roscpp - rospy - sensor_msgs - std_msgs - tf - visualization_msgs - pluginlib - core_trajectory_msgs - - geometry_msgs - nav_msgs - roscpp - rospy - sensor_msgs - std_msgs - tf - visualization_msgs - pluginlib - core_trajectory_msgs - - geometry_msgs - nav_msgs - roscpp - rospy - sensor_msgs - std_msgs - tf - visualization_msgs - pluginlib - core_trajectory_msgs - - - - - + ament_cmake diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/CMakeLists.txt b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/CMakeLists.txt index 6cae5655c..2b9f88b08 100644 --- a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/CMakeLists.txt +++ b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/CMakeLists.txt @@ -1,20 +1,31 @@ -cmake_minimum_required(VERSION 2.8.3) +cmake_minimum_required(VERSION 3.5) project(core_trajectory_msgs) -find_package(catkin REQUIRED COMPONENTS - message_generation - std_msgs - geometry_msgs - diagnostic_msgs + +if(${CMAKE_VERSION} VERSION_GREATER 3.27) + cmake_policy(SET CMP0148 OLD) +endif() + + +find_package(ament_cmake REQUIRED) +find_package(rosidl_default_generators REQUIRED) +find_package(std_msgs REQUIRED) +find_package(geometry_msgs REQUIRED) +find_package(diagnostic_msgs REQUIRED) + +rosidl_generate_interfaces(${PROJECT_NAME} + msg/WaypointXYZVYaw.msg + msg/TrajectoryXYZVYaw.msg + msg/FixedTrajectory.msg + DEPENDENCIES std_msgs geometry_msgs diagnostic_msgs ) -add_message_files( - FILES - WaypointXYZVYaw.msg - TrajectoryXYZVYaw.msg - FixedTrajectory.msg - ) +ament_export_dependencies(rosidl_default_runtime) -generate_messages(DEPENDENCIES std_msgs geometry_msgs diagnostic_msgs) +install( + DIRECTORY include/${PROJECT_NAME}/ + DESTINATION include/${PROJECT_NAME} + FILES_MATCHING PATTERN "*.hpp" +) -catkin_package(CATKIN_DEPENDS message_runtime std_msgs geometry_msgs diagnostic_msgs) +ament_package() diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/COLCON_IGNORE b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/COLCON_IGNORE deleted file mode 100644 index e69de29bb..000000000 diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/msg/TrajectoryXYZVYaw.msg b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/msg/TrajectoryXYZVYaw.msg index cc2c50dde..fc260344c 100644 --- a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/msg/TrajectoryXYZVYaw.msg +++ b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/msg/TrajectoryXYZVYaw.msg @@ -1,2 +1,2 @@ -Header header +std_msgs/Header header WaypointXYZVYaw[] waypoints \ No newline at end of file diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/package.xml b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/package.xml index f8fbb1cce..1edc206ad 100644 --- a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/package.xml +++ b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/package.xml @@ -1,36 +1,25 @@ - + + core_trajectory_msgs 0.0.0 The core_trajectory_msgs package - - - john + TODO + ament_cmake - - - - TODO + rosidl_default_generators + rosidl_default_runtime - catkin - - std_msgs - geometry_msgs - diagnostic_msgs - message_generation - - std_msgs - geometry_msgs - diagnostic_msgs - message_runtime + std_msgs + geometry_msgs + diagnostic_msgs + rosidl_interface_packages - - - + ament_cmake diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/CMakeLists.txt b/ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/CMakeLists.txt index 0c656ce8c..9c8d5cc9f 100644 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/CMakeLists.txt +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/CMakeLists.txt @@ -128,6 +128,9 @@ install(DIRECTORY launch DESTINATION share/${PROJECT_NAME}) install(FILES package.xml DESTINATION share/${PROJECT_NAME} ) +install(DIRECTORY include + DESTINATION include/${PROJECT_NAME} +) ament_package() diff --git a/ros_ws/src/robot/autonomy/planning/local/tflib/CMakeLists.txt b/ros_ws/src/robot/autonomy/planning/local/tflib/CMakeLists.txt new file mode 100644 index 000000000..6f5601386 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/tflib/CMakeLists.txt @@ -0,0 +1,36 @@ +cmake_minimum_required(VERSION 2.8.3) +project(tflib) + +find_package(catkin REQUIRED COMPONENTS + geometry_msgs + nav_msgs + roscpp + rospy + std_msgs + tf +) + +catkin_package( + INCLUDE_DIRS include + CATKIN_DEPENDS rospy roscpp tf + LIBRARIES tflib +) + +include_directories(${catkin_INCLUDE_DIRS} include ${base_INCLUDE_DIRS}) + + +add_library(tflib + src/tflib.cpp + ) + +target_link_libraries(tflib ${catkin_LIBRARIES} ${base_LIBRARIES}) + + +install(TARGETS tflib + ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} + LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} + RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION}) + +install(DIRECTORY include/${PROJECT_NAME}/ + DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}) + diff --git a/ros_ws/src/robot/autonomy/planning/local/tflib/include/tflib/tflib.h b/ros_ws/src/robot/autonomy/planning/local/tflib/include/tflib/tflib.h new file mode 100644 index 000000000..5ab201f19 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/tflib/include/tflib/tflib.h @@ -0,0 +1,44 @@ +#ifndef _TFLIB_H_ +#define _TFLIB_H_ + +#include +#include +#include +#include +#include +#include + +namespace tflib{ + + // ========================================================================== + // -------------------------------- Conversion ------------------------------ + // ========================================================================== + + tf::Quaternion to_tf(geometry_msgs::Quaternion q); + tf::Vector3 to_tf(geometry_msgs::Point p); + tf::Vector3 to_tf(geometry_msgs::Vector3 v); + tf::StampedTransform to_tf(nav_msgs::Odometry odom, std::string frame); + + // ========================================================================== + // --------------------------------- Utils ---------------------------------- + // ========================================================================== + + tf::Quaternion get_stabilized(tf::Quaternion q); + tf::Transform get_stabilized(tf::Transform transform); + tf::StampedTransform get_stabilized(tf::StampedTransform transform); + bool transform_odometry(tf::TransformListener* listener, nav_msgs::Odometry odom, + std::string new_frame_id, std::string new_child_frame_id, nav_msgs::Odometry* out_odom); + // This can throw any exception that lookupTransform throws + nav_msgs::Odometry transform_odometry(tf::TransformListener* listener, nav_msgs::Odometry odom, + std::string new_frame_id, std::string new_child_frame_id, ros::Duration polling_sleep_duration); + + // ========================================================================== + // ------------------------------ Transforms -------------------------------- + // ========================================================================== + + bool to_frame(tf::TransformListener* listener, + tf::Vector3 vec, std::string source, std::string target, ros::Time stamp, + tf::Vector3* out, ros::Duration duration=ros::Duration(0.1)); +} + +#endif diff --git a/ros_ws/src/robot/autonomy/planning/local/tflib/package.xml b/ros_ws/src/robot/autonomy/planning/local/tflib/package.xml new file mode 100644 index 000000000..5ac836eed --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/tflib/package.xml @@ -0,0 +1,77 @@ + + + tflib + 0.0.0 + The tflib package + + + + + john + + + + + + TODO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + catkin + geometry_msgs + nav_msgs + roscpp + rospy + std_msgs + tf + geometry_msgs + nav_msgs + roscpp + rospy + std_msgs + tf + geometry_msgs + nav_msgs + roscpp + rospy + std_msgs + tf + + + + + + + + diff --git a/ros_ws/src/robot/autonomy/planning/local/tflib/src/tflib.cpp b/ros_ws/src/robot/autonomy/planning/local/tflib/src/tflib.cpp new file mode 100644 index 000000000..46fdc3284 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/tflib/src/tflib.cpp @@ -0,0 +1,138 @@ +#include + +namespace tflib { + + // ========================================================================== + // -------------------------------- Conversion ------------------------------ + // ========================================================================== + + tf::Quaternion to_tf(geometry_msgs::Quaternion q){ + tf::Quaternion quat(q.x, q.y, q.z, q.w); + return quat; + } + + tf::Vector3 to_tf(geometry_msgs::Point p){ + tf::Vector3 v(p.x, p.y, p.z); + return v; + } + + + tf::Vector3 to_tf(geometry_msgs::Vector3 v){ + tf::Vector3 vec(v.x, v.y, v.z); + return vec; + } + + + tf::StampedTransform to_tf(nav_msgs::Odometry odom, std::string frame){ + tf::Transform transform; + transform.setOrigin(to_tf(odom.pose.pose.position)); + transform.setRotation(to_tf(odom.pose.pose.orientation)); + + tf::StampedTransform stamped_transform(transform, odom.header.stamp, odom.header.frame_id, frame); + return stamped_transform; + } + + // ========================================================================== + // --------------------------------- Utils ---------------------------------- + // ========================================================================== + + tf::Quaternion get_stabilized(tf::Quaternion q){ + tf::Quaternion stabilized_q; + double roll, pitch, yaw; + tf::Matrix3x3(q).getRPY(roll, pitch, yaw); + stabilized_q.setRPY(0, 0, yaw); + return stabilized_q; + } + + tf::Transform get_stabilized(tf::Transform transform){ + tf::Transform stabilized_transform; + stabilized_transform.setOrigin(transform.getOrigin()); + stabilized_transform.setRotation(get_stabilized(transform.getRotation())); + return stabilized_transform; + } + + tf::StampedTransform get_stabilized(tf::StampedTransform transform){ + tf::StampedTransform stabilized_transform(transform); + stabilized_transform.setRotation(get_stabilized(transform.getRotation())); + return stabilized_transform; + } + + bool transform_odometry(tf::TransformListener* listener, nav_msgs::Odometry odom, + std::string new_frame_id, std::string new_child_frame_id, nav_msgs::Odometry* out_odom){ + try{ + *out_odom = transform_odometry(listener, odom, new_frame_id, new_child_frame_id, ros::Duration(0.1)); + } + catch(tf::TransformException& ex){ + ROS_ERROR_STREAM("Transform exception in transform_odometry: " << ex.what()); + return false; + } + + return true; + } + + // This can throw any exception that lookupTransform throws + nav_msgs::Odometry transform_odometry(tf::TransformListener* listener, nav_msgs::Odometry odom, + std::string new_frame_id, std::string new_child_frame_id, ros::Duration polling_sleep_duration){ + nav_msgs::Odometry out_odom; + tf::StampedTransform transform_frame_id, transform_child_frame_id; + listener->waitForTransform(new_frame_id, odom.header.frame_id, odom.header.stamp, polling_sleep_duration); + listener->lookupTransform(new_frame_id, odom.header.frame_id, odom.header.stamp, transform_frame_id); + listener->waitForTransform(new_child_frame_id, odom.child_frame_id, odom.header.stamp, polling_sleep_duration); + listener->lookupTransform(new_child_frame_id, odom.child_frame_id, odom.header.stamp, transform_child_frame_id); + transform_child_frame_id.setOrigin(tf::Vector3(0, 0, 0)); // don't want translation when transforming linear and angular velocities + + out_odom.header.stamp = odom.header.stamp; + out_odom.header.frame_id = new_frame_id; + out_odom.child_frame_id = new_child_frame_id; + + tf::Vector3 position = transform_frame_id*tflib::to_tf(odom.pose.pose.position); + out_odom.pose.pose.position.x = position.x(); + out_odom.pose.pose.position.y = position.y(); + out_odom.pose.pose.position.z = position.z(); + + tf::Quaternion quaternion = transform_frame_id*tflib::to_tf(odom.pose.pose.orientation); + out_odom.pose.pose.orientation.x = quaternion.x(); + out_odom.pose.pose.orientation.y = quaternion.y(); + out_odom.pose.pose.orientation.z = quaternion.z(); + out_odom.pose.pose.orientation.w = quaternion.w(); + + tf::Vector3 velocity = transform_child_frame_id*tflib::to_tf(odom.twist.twist.linear); + out_odom.twist.twist.linear.x = velocity.x(); + out_odom.twist.twist.linear.y = velocity.y(); + out_odom.twist.twist.linear.z = velocity.z(); + + tf::Vector3 angular = transform_child_frame_id*tflib::to_tf(odom.twist.twist.angular); + out_odom.twist.twist.angular.x = angular.x(); + out_odom.twist.twist.angular.y = angular.y(); + out_odom.twist.twist.angular.z = angular.z(); + + return out_odom; + } + + + // ========================================================================== + // ------------------------------ Transforms -------------------------------- + // ========================================================================== + + bool to_frame(tf::TransformListener* listener, + tf::Vector3 vec, std::string source, std::string target, ros::Time stamp, + tf::Vector3* out, ros::Duration duration){ + if(out == NULL) + return false; + + try{ + tf::StampedTransform transform; + listener->waitForTransform(target, source, stamp, duration); + listener->lookupTransform(target, source, stamp, transform); + + *out = transform*vec; + } + catch(tf::TransformException& ex){ + ROS_ERROR_STREAM("TransformException in to_frame: " << ex.what()); + return false; + } + + return true; + } + +} From e01d369b1ef4365386375665e7f85e0a7b917c9a Mon Sep 17 00:00:00 2001 From: Robbi Exley Date: Wed, 7 Aug 2024 12:04:43 -0400 Subject: [PATCH 15/50] Local Planner Updates --- .../disparity_map_representation.h | 2 +- .../local/disparity_graph_bkp/CMakeLists.txt | 16 ++++++++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/include/core_disparity_map_representation/disparity_map_representation.h b/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/include/core_disparity_map_representation/disparity_map_representation.h index ae754475e..ca4cc861f 100644 --- a/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/include/core_disparity_map_representation/disparity_map_representation.h +++ b/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/include/core_disparity_map_representation/disparity_map_representation.h @@ -22,7 +22,7 @@ #include //#include */ -// #include +#include #include #include #include diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/CMakeLists.txt b/ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/CMakeLists.txt index 9c8d5cc9f..292da8bb5 100644 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/CMakeLists.txt +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/CMakeLists.txt @@ -21,6 +21,7 @@ project(disparity_graph) #) find_package(ament_cmake REQUIRED) +find_package(disparity_graph REQUIRED) find_package(cv_bridge REQUIRED) find_package(geometry_msgs REQUIRED) find_package(image_geometry REQUIRED) @@ -67,8 +68,8 @@ set(CMAKE_BUILD_TYPE Release) set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Wall -std=gnu++0x") include_directories( - include ${rclcpp_INCLUDE_DIRS} + ${CMAKE_CURRENT_SOURCE_DIR}/include ${sensor_msgs_INCLUDE_DIRS} ${std_msgs_INCLUDE_DIRS} ${tf2_INCLUDE_DIRS} @@ -84,6 +85,7 @@ include_directories( ${pcl_conversions_INCLUDE_DIRS} ${nav_msgs_INCLUDE_DIRS} ${tf2_geometry_msgs_INCLUDE_DIRS} + ${disparity_graph_INCLUDE_DIRS} ) add_library(disparity_graph @@ -108,6 +110,7 @@ ament_target_dependencies(disparity_graph cv_bridge image_geometry pcl_conversions + disparity_graph ) #Install files # install(DIRECTORY include/${PROJECT_NAME}/ @@ -121,16 +124,21 @@ ament_target_dependencies(disparity_graph # LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} # RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} #) - install(TARGETS disparity_graph +install(TARGETS disparity_graph DESTINATION lib/${PROJECT_NAME} ) install(DIRECTORY launch DESTINATION share/${PROJECT_NAME}) install(FILES package.xml DESTINATION share/${PROJECT_NAME} ) -install(DIRECTORY include - DESTINATION include/${PROJECT_NAME} +#install(DIRECTORY include +## DESTINATION include/${PROJECT_NAME} +#S) +install(DIRECTORY include/ + DESTINATION include/disparity_graph + FILES_MATCHING PATTERN "*.h" ) + ament_package() From bf857d9171dc4d4ac0b84a84a0e031ecb688fcb9 Mon Sep 17 00:00:00 2001 From: Robbi Exley Date: Mon, 12 Aug 2024 13:15:48 -0400 Subject: [PATCH 16/50] Local Planner library updates --- .vscode/settings.json | 71 +- .../CMakeLists.txt | 34 +- .../COLCON_IGNORE | 0 .../disparity_map_representation.h | 3 +- .../src/disparity_map_representation.cpp | 138 +- .../CMakeLists.txt | 43 +- .../map_representation.h | 14 +- .../core_trajectory_controller/CMakeLists.txt | 113 +- .../core_trajectory_controller/package.xml | 78 +- .../src/trajectory_controller.cpp | 532 ++--- .../core_trajectory_library/CMakeLists.txt | 115 +- .../core_trajectory_library/COLCON_IGNORE | 0 .../trajectory_library.h | 443 +++-- .../local/core_trajectory_library/package.xml | 103 +- .../src/trajectory_library.cpp | 1772 +++++++++-------- .../local/disparity_graph_bkp/CMakeLists.txt | 47 +- .../planning/local/tflib/CMakeLists.txt | 84 +- .../local/tflib/include/tflib/tflib.h | 81 +- .../autonomy/planning/local/tflib/package.xml | 79 +- .../planning/local/tflib/src/tflib.cpp | 263 ++- 20 files changed, 2145 insertions(+), 1868 deletions(-) delete mode 100644 ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/COLCON_IGNORE delete mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/COLCON_IGNORE diff --git a/.vscode/settings.json b/.vscode/settings.json index e3adfa24b..bb6fc8844 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -735,8 +735,75 @@ "files.associations": { "*.launch": "xml", "*.config": "python", - "functional": "cpp" + "functional": "cpp", + "__atomic": "cpp", + "filesystem": "cpp", + "unordered_map": "cpp", + "__node_handle": "cpp", + "iterator": "cpp", + "array": "cpp", + "deque": "cpp", + "list": "cpp", + "string": "cpp", + "vector": "cpp", + "string_view": "cpp", + "initializer_list": "cpp", + "__bit_reference": "cpp", + "__hash_table": "cpp", + "__split_buffer": "cpp", + "__tree": "cpp", + "bitset": "cpp", + "map": "cpp", + "set": "cpp", + "cctype": "cpp", + "clocale": "cpp", + "cmath": "cpp", + "cstdarg": "cpp", + "cstddef": "cpp", + "cstdio": "cpp", + "cstdlib": "cpp", + "cstring": "cpp", + "ctime": "cpp", + "cwchar": "cpp", + "cwctype": "cpp", + "atomic": "cpp", + "*.tcc": "cpp", + "chrono": "cpp", + "complex": "cpp", + "condition_variable": "cpp", + "cstdint": "cpp", + "exception": "cpp", + "algorithm": "cpp", + "memory": "cpp", + "memory_resource": "cpp", + "numeric": "cpp", + "optional": "cpp", + "random": "cpp", + "ratio": "cpp", + "system_error": "cpp", + "tuple": "cpp", + "type_traits": "cpp", + "utility": "cpp", + "fstream": "cpp", + "iomanip": "cpp", + "iosfwd": "cpp", + "iostream": "cpp", + "istream": "cpp", + "limits": "cpp", + "mutex": "cpp", + "new": "cpp", + "ostream": "cpp", + "sstream": "cpp", + "stdexcept": "cpp", + "streambuf": "cpp", + "thread": "cpp", + "cinttypes": "cpp", + "typeinfo": "cpp", + "variant": "cpp", + "bit": "cpp", + "__nullptr": "cpp", + "__locale": "cpp" }, "C_Cpp.clang_format_fallbackStyle": "{ BasedOnStyle: Google, IndentWidth: 4, ColumnLimit: 100 }", "editor.formatOnSave": true -} +} \ No newline at end of file diff --git a/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/CMakeLists.txt b/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/CMakeLists.txt index 5314614a9..eb69c961e 100644 --- a/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/CMakeLists.txt +++ b/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/CMakeLists.txt @@ -15,21 +15,41 @@ find_package(visualization_msgs REQUIRED) find_package(cv_bridge REQUIRED) find_package(core_map_representation_interface REQUIRED) find_package(disparity_graph REQUIRED) -#find_package(tflib REQUIRED) +find_package(tflib REQUIRED) find_package(pluginlib REQUIRED) find_package(core_trajectory_msgs REQUIRED) +find_package(tf2_eigen REQUIRED) +find_package(tf2_geometry_msgs REQUIRED) +find_package(image_transport REQUIRED) +find_package(image_geometry REQUIRED) +find_package(pcl_msgs REQUIRED) + + +ament_export_include_directories(include) +ament_export_libraries(disparity_graph) include_directories( ${ament_INCLUDE_DIRS} + ${CMAKE_CURRENT_SOURCE_DIR}/include ${core_map_representation_interface_INCLUDE_DIRS} ${disparity_graph_INCLUDE_DIRS} + ${pluginlib_INCLUDE_DIRS} + #${CMAKE_CURRENT_SOURCE_DIR}/include ) + + + add_library(disparity_map_representation src/disparity_map_representation.cpp ) +target_link_libraries(disparity_map_representation + disparity_graph + ${pluginlib_LIBRARIES} # Ensure this variable is set correctly +) + ament_target_dependencies(disparity_map_representation rclcpp tf2 @@ -38,17 +58,21 @@ ament_target_dependencies(disparity_map_representation core_map_representation_interface core_trajectory_msgs cv_bridge - #tflib -) + tflib + pluginlib +) + install(TARGETS disparity_map_representation DESTINATION lib/${PROJECT_NAME} ) -install(DIRECTORY launch DESTINATION share/${PROJECT_NAME}) +#install(DIRECTORY launch DESTINATION share/${PROJECT_NAME}) install(FILES package.xml DESTINATION share/${PROJECT_NAME} ) - +target_link_libraries(disparity_map_representation + ${disparity_graph_LIBRARIES} +) #ament_export_include_directories(include) #ament_export_libraries(disparity_map_representation) #ament_export_targets(export_${PROJECT_NAME} HAS_LIBRARY_TARGET) diff --git a/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/COLCON_IGNORE b/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/COLCON_IGNORE deleted file mode 100644 index e69de29bb..000000000 diff --git a/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/include/core_disparity_map_representation/disparity_map_representation.h b/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/include/core_disparity_map_representation/disparity_map_representation.h index ca4cc861f..b2a5e93db 100644 --- a/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/include/core_disparity_map_representation/disparity_map_representation.h +++ b/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/include/core_disparity_map_representation/disparity_map_representation.h @@ -22,13 +22,14 @@ #include //#include */ -#include +#include #include #include #include #include #include #include +#include #include #include diff --git a/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/src/disparity_map_representation.cpp b/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/src/disparity_map_representation.cpp index 2395c20e3..8a73571f7 100644 --- a/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/src/disparity_map_representation.cpp +++ b/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/src/disparity_map_representation.cpp @@ -1,29 +1,41 @@ #include -#include -DisparityMapRepresentation::DisparityMapRepresentation() { - ros::NodeHandle* nh = new ros::NodeHandle(); - ros::NodeHandle* pnh = new ros::NodeHandle("~"); +#include + +DisparityMapRepresentation::DisparityMapRepresentation() : MapRepresentation() { + // ros::NodeHandle* nh = new ros::NodeHandle(); + // ros::NodeHandle* pnh = new ros::NodeHandle("~"); disp_graph = new nabla::disparity_graph::disparity_graph(); + // std::shared_ptr disp_graph; + // disp_graph = std::make_shared(); points.ns = "obstacles"; points.id = 0; - points.type = visualization_msgs::Marker::SPHERE_LIST; - points.action = visualization_msgs::Marker::ADD; + points.type = visualization_msgs::msg::Marker::SPHERE_LIST; + points.action = visualization_msgs::msg::Marker::ADD; points.scale.x = 0.1; points.scale.y = 0.1; points.scale.z = 0.1; - debug_pub = nh->advertise("disparity_map_debug", 1); + // debug_pub = nh->advertise("disparity_map_debug", 1); + debug_pub = + this->create_publisher("disparity_map_debug", 1); + + this->declare_parameter("disparity_map/obstacle_check_points", 5); + this->declare_parameter("disparity_map/obstacle_check_radius", 2.0); - obstacle_check_points = pnh->param("disparity_map/obstacle_check_points", 5); - obstacle_check_radius = pnh->param("disparity_map/obstacle_check_radius", 2.); + this->get_parameter("disparity_map/obstacle_check_points", obstacle_check_points); + this->get_parameter("disparity_map/obstacle_check_radius", obstacle_check_radius); - listener = new tf::TransformListener(); + // listener = new tf::TransformListener(); + std::shared_ptr tf_buffer_; + std::shared_ptr listener_; + tf_buffer_ = std::make_shared(this->get_clock()); + listener_ = std::make_shared(*tf_buffer_); } std::vector > DisparityMapRepresentation::get_values( - std::vector > trajectories) { + std::vector > trajectories) { std::vector > values(trajectories.size()); for (int i = 0; i < trajectories.size(); i++) @@ -32,15 +44,16 @@ std::vector > DisparityMapRepresentation::get_values( for (int i = 0; i < trajectories.size(); i++) { // core_trajectory_msgs::TrajectoryXYZVYaw trajectory = trajectories[i]; for (int j = 0; j < trajectories[i].size(); j++) { - tf::Vector3 wp = tflib::to_tf(trajectories[i][j].point); + tf2::Vector3 wp = tflib::to_tf(trajectories[i][j].point); // find the direction of the current trajectory segment between waypoints // this direction will be used to check for obstacles in a perpendicular direction - tf::Vector3 direction; - tf::Vector3 wp2 = wp; + tf2::Vector3 direction; + tf2::Vector3 wp2 = wp; if (trajectories[i].size() < 2) { - direction = tf::Vector3( - 1, 0, 0); // TODO: make this point in the direction of the waypoints quaternion + direction = tf2::Vector3( + 1, 0, + 0); // TODO: make this point in the direction of the waypoints quaternion } else { if (j == 0) { wp2 = tflib::to_tf(trajectories[i][1].point); @@ -52,61 +65,61 @@ std::vector > DisparityMapRepresentation::get_values( } points.header.frame_id = trajectories[i][j].header.frame_id; - std_msgs::ColorRGBA green; + std_msgs::msg::ColorRGBA green; green.r = 0; green.b = 0; green.g = 1; green.a = 1; - std_msgs::ColorRGBA red; + std_msgs::msg::ColorRGBA red; red.r = 1; red.b = 0; red.g = 0; red.a = 1; - tf::Quaternion q_up, q_down, q_left, q_right; + tf2::Quaternion q_up, q_down, q_left, q_right; q_up.setRPY(0, -M_PI / 2, 0); q_down.setRPY(0, M_PI / 2, 0); q_left.setRPY(0, 0, M_PI / 2); q_right.setRPY(0, 0, -M_PI / 2); - std::vector directions; + std::vector directions; directions.push_back(q_up); directions.push_back(q_down); directions.push_back(q_left); directions.push_back(q_right); - tf::Vector3 position = wp; // tflib::to_tf(pose.pose.position); - tf::Quaternion q = tf::Quaternion( - 0, 0, 0, - 1); // TODO: figure out if this makes sense //tflib::to_tf(pose.pose.orientation); - tf::Vector3 unit(1, 0, 0); + tf2::Vector3 position = wp; // tflib::to_tf(pose.pose.position); + tf2::Quaternion q = tf2::Quaternion(0, 0, 0, + 1); // TODO: figure out if this makes sense + // //tflib::to_tf(pose.pose.orientation); + tf2::Vector3 unit(1, 0, 0); double closest_obstacle_distance = obstacle_check_radius; direction.normalize(); - tf::Vector3 up = tf::Transform(q_up * q) * unit; + tf2::Vector3 up = tf2::Transform(q_up * q) * unit; up.normalize(); - tf::Vector3 side = up.cross(direction); + tf2::Vector3 side = up.cross(direction); side.normalize(); up = side.cross(direction); up.normalize(); - std::vector direction_vectors; + std::vector direction_vectors; direction_vectors.push_back(up); direction_vectors.push_back(side); direction_vectors.push_back(-up); direction_vectors.push_back(-side); for (int m = 0; m < directions.size(); m++) { - tf::Quaternion q_curr = directions[m]; + tf2::Quaternion q_curr = directions[m]; for (int k = 1; k < obstacle_check_points + 1; k++) { double dist = (double)k * obstacle_check_radius / (double)(obstacle_check_points + 1); - tf::Vector3 point = + tf2::Vector3 point = position + dist * direction_vectors[m]; // tf::Transform(q_curr)*(dist*direction); - geometry_msgs::PoseStamped check_pose; + geometry_msgs::msg::PoseStamped check_pose; check_pose.header = trajectories[i][j].header; check_pose.pose.position = trajectories[i][j].point; check_pose.pose.orientation.w = 1.0; @@ -115,7 +128,7 @@ std::vector > DisparityMapRepresentation::get_values( bool collision = !disp_graph->isStateValidDepth_pose(check_pose, 0.9, occupancy); - std_msgs::ColorRGBA c; + std_msgs::msg::ColorRGBA c; if (collision) { closest_obstacle_distance = std::min(dist, closest_obstacle_distance); c = red; @@ -129,7 +142,7 @@ std::vector > DisparityMapRepresentation::get_values( points.points.push_back(trajectories[i][j].point); - geometry_msgs::PoseStamped pose; + geometry_msgs::msg::PoseStamped pose; pose.header = trajectories[i][j].header; // trajectory.header; pose.pose.position = trajectories[i][j].point; pose.pose.orientation.w = 1.0; @@ -167,8 +180,8 @@ std::vector > DisparityMapRepresentation::get_values( tf::Vector3 direction; tf::Vector3 wp2 = wp; if(trajectory.waypoints.size() < 2){ - direction = tf::Vector3(1, 0, 0); // TODO: make this point in the direction of the waypoints - quaternion + direction = tf::Vector3(1, 0, 0); // TODO: make this point in the direction of the + waypoints quaternion } else{ if(j == 0){ @@ -206,8 +219,8 @@ std::vector > DisparityMapRepresentation::get_values( tf::Vector3 position = wp;//tflib::to_tf(pose.pose.position); tf::Quaternion q = tf::Quaternion(0, 0, 0, 1); // TODO: figure out if this makes sense - //tflib::to_tf(pose.pose.orientation); tf::Vector3 unit(1, 0, 0); double closest_obstacle_distance - = obstacle_check_radius; + //tflib::to_tf(pose.pose.orientation); tf::Vector3 unit(1, 0, 0); double + closest_obstacle_distance = obstacle_check_radius; direction.normalize(); tf::Vector3 up = tf::Transform(q_up*q)*unit; @@ -279,60 +292,60 @@ std::vector > DisparityMapRepresentation::get_values( return values; }*/ -double DisparityMapRepresentation::distance_to_obstacle(geometry_msgs::PoseStamped pose, - tf::Vector3 direction) { +double DisparityMapRepresentation::distance_to_obstacle(geometry_msgs::msg::PoseStamped pose, + tf2::Vector3 direction) { points.header.frame_id = pose.header.frame_id; - std_msgs::ColorRGBA green; + std_msgs::msg::ColorRGBA green; green.r = 0; green.b = 0; green.g = 1; green.a = 1; - std_msgs::ColorRGBA red; + std_msgs::msg::ColorRGBA red; red.r = 1; red.b = 0; red.g = 0; red.a = 1; - tf::Quaternion q_up, q_down, q_left, q_right; + tf2::Quaternion q_up, q_down, q_left, q_right; q_up.setRPY(0, -M_PI / 2, 0); q_down.setRPY(0, M_PI / 2, 0); q_left.setRPY(0, 0, M_PI / 2); q_right.setRPY(0, 0, -M_PI / 2); - std::vector directions; + std::vector directions; directions.push_back(q_up); directions.push_back(q_down); directions.push_back(q_left); directions.push_back(q_right); - tf::Vector3 position = tflib::to_tf(pose.pose.position); - tf::Quaternion q = tflib::to_tf(pose.pose.orientation); - tf::Vector3 unit(1, 0, 0); + tf2::Vector3 position = tflib::to_tf(pose.pose.position); + tf2::Quaternion q = tflib::to_tf(pose.pose.orientation); + tf2::Vector3 unit(1, 0, 0); double closest_obstacle_distance = obstacle_check_radius; direction.normalize(); - tf::Vector3 up = tf::Transform(q_up * q) * unit; + tf2::Vector3 up = tf2::Transform(q_up * q) * unit; up.normalize(); - tf::Vector3 side = up.cross(direction); + tf2::Vector3 side = up.cross(direction); side.normalize(); up = side.cross(direction); up.normalize(); - std::vector direction_vectors; + std::vector direction_vectors; direction_vectors.push_back(up); direction_vectors.push_back(side); direction_vectors.push_back(-up); direction_vectors.push_back(-side); for (int m = 0; m < directions.size(); m++) { - tf::Quaternion q_curr = directions[m]; + tf2::Quaternion q_curr = directions[m]; for (int k = 1; k < obstacle_check_points + 1; k++) { double dist = (double)k * obstacle_check_radius / (double)(obstacle_check_points + 1); - tf::Vector3 point = + tf2::Vector3 point = position + dist * direction_vectors[m]; // tf::Transform(q_curr)*(dist*direction); - geometry_msgs::PoseStamped check_pose; + geometry_msgs::msg::PoseStamped check_pose; check_pose.header = pose.header; check_pose.pose.position.x = point.x(); check_pose.pose.position.y = point.y(); @@ -342,7 +355,7 @@ double DisparityMapRepresentation::distance_to_obstacle(geometry_msgs::PoseStamp double occupancy; bool collision = !disp_graph->isStateValidDepth_pose(check_pose, 0.9, occupancy); - std_msgs::ColorRGBA c; + std_msgs::msg::ColorRGBA c; if (collision) { closest_obstacle_distance = std::min(dist, closest_obstacle_distance); c = red; @@ -364,10 +377,10 @@ double DisparityMapRepresentation::distance_to_obstacle(geometry_msgs::PoseStamp } void DisparityMapRepresentation::publish_debug() { - points.header.stamp = ros::Time::now(); + points.header.stamp = this->now(); markers.markers.push_back(points); - debug_pub.publish(markers); + debug_pub->publish(markers); markers.markers.clear(); points.points.clear(); @@ -425,10 +438,10 @@ void DisparityMapRepresentation::fg_bg_disparity_callback // get the tf try{ - listener->waitForTransform(foreground->header.frame_id, target_frame, foreground->header.stamp, - ros::Duration(0.1)); - listener->lookupTransform(foreground->header.frame_id, target_frame, foreground->header.stamp, - image_pair.target_frame_to_image_tf); + listener->waitForTransform(foreground->header.frame_id, target_frame, +foreground->header.stamp, ros::Duration(0.1)); + listener->lookupTransform(foreground->header.frame_id, target_frame, +foreground->header.stamp, image_pair.target_frame_to_image_tf); } catch(tf::TransformException& e){ ROS_ERROR_STREAM("transform exception: " << e.what()); @@ -483,8 +496,8 @@ bool DisparityMapRepresentation::is_obstacle(geometry_msgs::PoseStamped pose, do listener->lookupTransform(target_frame, pose.header.frame_id, pose.header.stamp, pose_to_target_frame_tf); - tf::Vector3 point_pose_frame(pose.pose.position.x, pose.pose.position.y, pose.pose.position.z); - point_target_frame = pose_to_target_frame_tf*point_pose_frame; + tf::Vector3 point_pose_frame(pose.pose.position.x, pose.pose.position.y, +pose.pose.position.z); point_target_frame = pose_to_target_frame_tf*point_pose_frame; } catch(tf::TransformException& e){ ROS_ERROR_STREAM("transform exception: " << e.what()); @@ -515,7 +528,8 @@ point_image_frame.z() << " " << c << " " << r); occupancy += (point_disparity - 0.5)/point_disparity; ROS_INFO_STREAM("disp: " << point_disparity << " " << -image_pair.foreground->image.at(r, c) << " " << image_pair.background->image.at(r, c) +image_pair.foreground->image.at(r, c) << " " << image_pair.background->image.at(r, +c) << " " << occupancy); // debugging debug_image->at(r, c) = 255; diff --git a/ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface/CMakeLists.txt b/ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface/CMakeLists.txt index cdfadcf1e..95b3d4e54 100644 --- a/ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface/CMakeLists.txt +++ b/ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface/CMakeLists.txt @@ -39,23 +39,10 @@ include_directories( # geometry_msgs # nav_msgs # ) +add_library(core_map_representation_interface INTERFACE) -# Install include files -install( - DIRECTORY include/${PROJECT_NAME}/ - DESTINATION include/${PROJECT_NAME} - FILES_MATCHING PATTERN "*.hpp" -) - -# Install Python scripts (if you have any) -# install(PROGRAMS -# scripts/your_python_script.py -# DESTINATION lib/${PROJECT_NAME} -# ) - - -# Export dependencies -ament_export_include_directories(include) +ament_export_targets(core_map_representation_interfaceTargets HAS_LIBRARY_TARGET) +#ament_export_include_directories(include) ament_export_dependencies( rclcpp rclpy @@ -69,5 +56,29 @@ ament_export_dependencies( geometry_msgs nav_msgs ) +install( + TARGETS core_map_representation_interface + EXPORT core_map_representation_interfaceTargets + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib + RUNTIME DESTINATION bin + INCLUDES DESTINATION include +) +# Install include files +install( + DIRECTORY include/${PROJECT_NAME}/ + DESTINATION include/${PROJECT_NAME} + FILES_MATCHING PATTERN "*.h" +) + +# Install Python scripts (if you have any)### +# install(PROGRAMS +# scripts/your_python_script.py +# DESTINATION lib/${PROJECT_NAME} +# ) + + +# Export dependencies + ament_package() diff --git a/ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface/include/core_map_representation_interface/map_representation.h b/ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface/include/core_map_representation_interface/map_representation.h index f71891c6a..6425a8c6d 100644 --- a/ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface/include/core_map_representation_interface/map_representation.h +++ b/ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface/include/core_map_representation_interface/map_representation.h @@ -6,14 +6,15 @@ #include #include -class MapRepresentation { +class MapRepresentation : public rclcpp::Node { private: public: /** - Takes in a list of trajectories and outputs a value for each waypoint in each trajectory. - @return A vector of vectors containing values for each waypoint. There is a vector of vectors - for each trajectory. There is a vector of doubles for each waypoint within a trajectory. - */ + Takes in a list of trajectories and outputs a value for each waypoint in each trajectory. + @return A vector of vectors containing values for each waypoint. There is a vector of vectors + for each trajectory. There is a vector of doubles for each waypoint within a trajectory. + */ + virtual std::vector > get_values( std::vector > trajectories) { // std::vector trajectories){ @@ -36,7 +37,8 @@ class MapRepresentation { virtual ~MapRepresentation() {} protected: - MapRepresentation() {} + // MapRepresentation() {} + MapRepresentation() : Node("map_representation") {} }; #endif diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/CMakeLists.txt b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/CMakeLists.txt index 7c4a73105..fe5b4c674 100755 --- a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/CMakeLists.txt +++ b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/CMakeLists.txt @@ -1,27 +1,28 @@ -cmake_minimum_required(VERSION 2.8.3) +cmake_minimum_required(VERSION 3.5) project(core_trajectory_controller) -## Compile as C++11, supported in ROS Kinetic and newer -add_compile_options(-std=c++11) - +# Use C++14 standard +set(CMAKE_CXX_STANDARD 14) +set(CMAKE_CXX_STANDARD_REQUIRED ON) ## Find catkin macros and libraries ## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz) ## is used, also find other catkin packages -find_package(catkin REQUIRED COMPONENTS - geometry_msgs - message_generation - nav_msgs - roscpp - rospy - sensor_msgs - std_msgs - tf - core_trajectory_library - tflib - core_trajectory_msgs -) - -find_package(base) +# Find dependencies +find_package(ament_cmake REQUIRED) +find_package(rclcpp REQUIRED) +find_package(geometry_msgs REQUIRED) +find_package(nav_msgs REQUIRED) +find_package(sensor_msgs REQUIRED) +find_package(std_msgs REQUIRED) +find_package(tf2 REQUIRED) +find_package(tf2_ros REQUIRED) +find_package(core_trajectory_library REQUIRED) +find_package(core_trajectory_msgs REQUIRED) +find_package(tflib REQUIRED) + +# Generate messages +find_package(rosidl_default_generators REQUIRED) +#find_package(base) ## System dependencies are found with CMake's conventions # find_package(Boost REQUIRED COMPONENTS system) @@ -57,16 +58,16 @@ find_package(base) ## * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...) ## Generate messages in the 'msg' folder -add_message_files( - FILES - Trajectory.msg -) +#add_message_files( +# FILES +# Trajectory.msg +#) ## Generate services in the 'srv' folder -add_service_files( - FILES - TrajectoryMode.srv -) +#add_service_files( +# FILES +# TrajectoryMode.srv +#) ## Generate actions in the 'action' folder # add_action_files( @@ -76,11 +77,16 @@ add_service_files( # ) ## Generate added messages and services with any dependencies listed here -generate_messages( - DEPENDENCIES - nav_msgs std_msgs +#generate_messages( +# DEPENDENCIES +# nav_msgs std_msgs +#) + +rosidl_generate_interfaces(${PROJECT_NAME} + "msg/Trajectory.msg" + "srv/TrajectoryMode.srv" + DEPENDENCIES std_msgs nav_msgs ) - ################################################ ## Declare ROS dynamic reconfigure parameters ## ################################################ @@ -110,12 +116,12 @@ generate_messages( ## LIBRARIES: libraries you create in this project that dependent projects also need ## CATKIN_DEPENDS: catkin_packages dependent projects also need ## DEPENDS: system dependencies of this project that dependent projects also need -catkin_package( +#catkin_package( # INCLUDE_DIRS include # LIBRARIES trajectory_controller # CATKIN_DEPENDS ca_nav_msgs geometry_msgs message_generation nav_msgs roscpp rospy sensor_msgs std_msgs tf # DEPENDS system_lib -) +#) ########### ## Build ## @@ -123,10 +129,21 @@ catkin_package( ## Specify additional locations of header files ## Your package locations should be listed before other locations +#include_directories( +# include +# ${catkin_INCLUDE_DIRS} +# ${base_INCLUDE_DIRS} +#) + include_directories( include - ${catkin_INCLUDE_DIRS} - ${base_INCLUDE_DIRS} + ${rclcpp_INCLUDE_DIRS} + ${tf2_INCLUDE_DIRS} + ${tf2_ros_INCLUDE_DIRS} + ${geometry_msgs_INCLUDE_DIRS} + ${nav_msgs_INCLUDE_DIRS} + ${sensor_msgs_INCLUDE_DIRS} + ${std_msgs_INCLUDE_DIRS} ) ## Declare a C++ library @@ -152,13 +169,31 @@ add_executable(trajectory_controller src/trajectory_controller.cpp) ## Add cmake target dependencies of the executable ## same as for the library above -add_dependencies(trajectory_controller ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) +#add_dependencies(trajectory_controller ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) +ament_target_dependencies(trajectory_controller + rclcpp + geometry_msgs + nav_msgs + sensor_msgs + std_msgs + tf2 + tf2_ros + core_trajectory_library + core_trajectory_msgs + tflib +) ## Specify libraries to link a library or executable target against -target_link_libraries(trajectory_controller - ${catkin_LIBRARIES} - ${base_LIBRARIES} +#target_link_libraries(trajectory_controller +# ${catkin_LIBRARIES} +# ${base_LIBRARIES} +#) +install(TARGETS trajectory_controller + DESTINATION lib/${PROJECT_NAME} ) +install(DIRECTORY launch DESTINATION share/${PROJECT_NAME}) + +ament_package() ############# ## Install ## diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/package.xml b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/package.xml index 477a9892a..dacc0425a 100755 --- a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/package.xml +++ b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/package.xml @@ -1,92 +1,38 @@ - + core_trajectory_controller 0.0.0 The core_trajectory_controller package - - - john - - - - - TODO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - catkin + + ament_cmake + rclcpp geometry_msgs - message_generation nav_msgs - roscpp - rospy sensor_msgs std_msgs - tf + tf2 + tf2_ros core_trajectory_library tflib core_trajectory_msgs - - geometry_msgs - nav_msgs - roscpp - rospy - sensor_msgs - std_msgs - tf - core_trajectory_library - tflib - core_trajectory_msgs - + + rclcpp geometry_msgs nav_msgs - roscpp - rospy sensor_msgs std_msgs - tf - message_runtime + tf2 + tf2_ros core_trajectory_library tflib core_trajectory_msgs + rosidl_interface_packages - - - + \ No newline at end of file diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/src/trajectory_controller.cpp b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/src/trajectory_controller.cpp index ca935eccd..1ac22bd22 100644 --- a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/src/trajectory_controller.cpp +++ b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/src/trajectory_controller.cpp @@ -1,298 +1,300 @@ -#include #include +#include +#include +#include +#include #include +#include #include -#include -#include +#include #include +#include +#include #include #include -#include -#include -#include -#include -#include //=================================================================================== //----------------------------- Trajectory Control Node ----------------------------- //=================================================================================== class TrajectoryControlNode : public BaseNode { -private: - ros::Subscriber traj_sub, traj_track_sub, odom_sub; - - ros::Publisher marker_vis_pub, segment_marker_vis_pub, tracking_point_pub, look_ahead_pub, - trajectory_completion_percentage_pub, trajectory_time_pub, segment_pub, tracking_error_pub, - velocity_pub; - tf::TransformBroadcaster* broadcaster; - tf::TransformListener* listener; - - ros::ServiceServer traj_style_srv, traj_mode_srv; - - nav_msgs::Odometry odom; - bool got_odom; - - - std::string tf_prefix; - std::string target_frame; - int trajectory_mode; - Trajectory* trajectory; - ros::Time start_time; - double prev_time; - nav_msgs::Odometry tracking_point, look_ahead_point; - double tracking_point_distance_limit; - double velocity_look_ahead_time; - -public: - TrajectoryControlNode(); - virtual bool initialize(); - virtual bool execute(); - virtual ~TrajectoryControlNode(); - - void traj_callback(core_trajectory_msgs::TrajectoryXYZVYaw traj); - void traj_track_callback(core_trajectory_msgs::TrajectoryXYZVYaw traj); - void odom_callback(nav_msgs::Odometry odom); - - bool set_trajectory_style_service(std_srvs::SetBool::Request& req, - std_srvs::SetBool::Response& res); - bool set_trajectory_mode(core_trajectory_controller::TrajectoryMode::Request& req, - core_trajectory_controller::TrajectoryMode::Response& res); - - std::string mode; - float velocity_target; + private: + ros::Subscriber traj_sub, traj_track_sub, odom_sub; + + ros::Publisher marker_vis_pub, segment_marker_vis_pub, tracking_point_pub, look_ahead_pub, + trajectory_completion_percentage_pub, trajectory_time_pub, segment_pub, tracking_error_pub, + velocity_pub; + tf::TransformBroadcaster* broadcaster; + tf::TransformListener* listener; + + ros::ServiceServer traj_style_srv, traj_mode_srv; + + nav_msgs::Odometry odom; + bool got_odom; + + std::string tf_prefix; + std::string target_frame; + int trajectory_mode; + Trajectory* trajectory; + ros::Time start_time; + double prev_time; + nav_msgs::Odometry tracking_point, look_ahead_point; + double tracking_point_distance_limit; + double velocity_look_ahead_time; + + public: + TrajectoryControlNode(); + virtual bool initialize(); + virtual bool execute(); + virtual ~TrajectoryControlNode(); + + void traj_callback(core_trajectory_msgs::TrajectoryXYZVYaw traj); + void traj_track_callback(core_trajectory_msgs::TrajectoryXYZVYaw traj); + void odom_callback(nav_msgs::Odometry odom); + + bool set_trajectory_style_service(std_srvs::SetBool::Request& req, + std_srvs::SetBool::Response& res); + bool set_trajectory_mode(core_trajectory_controller::TrajectoryMode::Request& req, + core_trajectory_controller::TrajectoryMode::Response& res); + + std::string mode; + float velocity_target; }; -TrajectoryControlNode::TrajectoryControlNode() - : BaseNode("trajectory_control_node"){ -} +TrajectoryControlNode::TrajectoryControlNode() : BaseNode("trajectory_control_node") {} + +bool TrajectoryControlNode::initialize() { + ros::NodeHandle* nh = get_node_handle(); + ros::NodeHandle* pnh = get_private_node_handle(); + + // init params + tf_prefix = pnh->param("tf_prefix", std::string("")); + target_frame = pnh->param("target_frame", std::string("world")); + tracking_point_distance_limit = pnh->param("tracking_point_distance_limit", 0.5); + velocity_look_ahead_time = pnh->param("velocity_look_ahead_time", 0.0); + got_odom = false; + + trajectory_mode = core_trajectory_controller::TrajectoryMode::Request::ROBOT_POSE; // TRACK; + trajectory = new Trajectory(target_frame); + + // init subscribers + traj_sub = nh->subscribe("trajectory", 10, &TrajectoryControlNode::traj_callback, this); + traj_track_sub = + nh->subscribe("trajectory_track", 10, &TrajectoryControlNode::traj_track_callback, this); + odom_sub = nh->subscribe("odometry", 10, &TrajectoryControlNode::odom_callback, this); + + // init publishers + segment_pub = nh->advertise("trajectory_segment", 10); + marker_vis_pub = nh->advertise("trajectory_vis", 10); + segment_marker_vis_pub = + nh->advertise("trajectory_segment_vis", 10); + tracking_point_pub = nh->advertise("tracking_point", 10); + look_ahead_pub = nh->advertise("look_ahead", 10); + trajectory_completion_percentage_pub = + nh->advertise("trajectory_completion_percentage", 10); + trajectory_time_pub = nh->advertise("trajectory_time", 10); + tracking_error_pub = nh->advertise("tracking_error", 10); + velocity_pub = nh->advertise("tracking_point_velocity_magnitude", 1); + broadcaster = new tf::TransformBroadcaster(); + listener = new tf::TransformListener(); + + // init services + traj_mode_srv = nh->advertiseService("set_trajectory_mode", + &TrajectoryControlNode::set_trajectory_mode, this); -bool TrajectoryControlNode::initialize(){ - ros::NodeHandle* nh = get_node_handle(); - ros::NodeHandle* pnh = get_private_node_handle(); - - // init params - tf_prefix = pnh->param("tf_prefix", std::string("")); - target_frame = pnh->param("target_frame", std::string("world")); - tracking_point_distance_limit = pnh->param("tracking_point_distance_limit", 0.5); - velocity_look_ahead_time = pnh->param("velocity_look_ahead_time", 0.0); - got_odom = false; - - trajectory_mode = core_trajectory_controller::TrajectoryMode::Request::ROBOT_POSE;//TRACK; - trajectory = new Trajectory(target_frame); - - // init subscribers - traj_sub = nh->subscribe("trajectory", 10, &TrajectoryControlNode::traj_callback, this); - traj_track_sub = nh->subscribe("trajectory_track", 10, &TrajectoryControlNode::traj_track_callback, this); - odom_sub = nh->subscribe("odometry", 10, &TrajectoryControlNode::odom_callback, this); - - // init publishers - segment_pub = nh->advertise("trajectory_segment", 10); - marker_vis_pub = nh->advertise("trajectory_vis", 10); - segment_marker_vis_pub = nh->advertise("trajectory_segment_vis", 10); - tracking_point_pub = nh->advertise("tracking_point", 10); - look_ahead_pub = nh->advertise("look_ahead", 10); - trajectory_completion_percentage_pub = nh->advertise("trajectory_completion_percentage", 10); - trajectory_time_pub = nh->advertise("trajectory_time", 10); - tracking_error_pub = nh->advertise("tracking_error", 10); - velocity_pub = nh->advertise("tracking_point_velocity_magnitude", 1); - broadcaster = new tf::TransformBroadcaster(); - listener = new tf::TransformListener(); - - // init services - traj_mode_srv = nh->advertiseService("set_trajectory_mode", - &TrajectoryControlNode::set_trajectory_mode, this); - - prev_time = 0; - - return true; + prev_time = 0; + + return true; } -bool TrajectoryControlNode::execute(){ - if(got_odom){ - // publish trajectory visualization - marker_vis_pub.publish(trajectory->get_markers(1, 1, 0)); - - // figure out what duration into the trajectory we are - ros::Time now = ros::Time::now(); - double current_time = (now - start_time).toSec(); - double time_past_end = current_time - trajectory->get_duration(); - - double tracking_error = tflib::to_tf(tracking_point.pose.pose.position).distance(tflib::to_tf(odom.pose.pose.position)); - std_msgs::Float32 tracking_error_msg; - tracking_error_msg.data = tracking_error; - tracking_error_pub.publish(tracking_error_msg); - - if(time_past_end >= 0 && trajectory_mode != core_trajectory_controller::TrajectoryMode::Request::REWIND){ - start_time += ros::Duration(time_past_end); - current_time = trajectory->get_duration(); - } - else if(trajectory_mode == core_trajectory_controller::TrajectoryMode::Request::PAUSE || - tracking_error >= tracking_point_distance_limit){ - start_time += ros::Duration(current_time - prev_time); - current_time = (now - start_time).toSec(); - } - // TODO: zero tracking point velocity in rewind and pause modes - else if(trajectory_mode == core_trajectory_controller::TrajectoryMode::Request::REWIND && - current_time > 0){ - start_time += ros::Duration(2.0*(current_time - prev_time)); - current_time = (now - start_time).toSec(); - } - prev_time = current_time; - - // get tracking point and look ahead point. If they aren't valid use the drone's current pose - //monitor.tic("get_odom"); - bool valid = trajectory->get_odom(current_time, &tracking_point); - // set the velocity of the tracking point based on the velocity from a different time - if(valid && velocity_look_ahead_time != 0){ - nav_msgs::Odometry velocity_look_ahead_point; - bool vel_valid = trajectory->get_odom(current_time + velocity_look_ahead_time, &velocity_look_ahead_point); - if(vel_valid){ - tracking_point.twist = velocity_look_ahead_point.twist; - } - } - - //double elapsed = monitor.toc("get_odom"); - //ROS_INFO_STREAM("get_odom elapsed: " << elapsed); - if(trajectory_mode == core_trajectory_controller::TrajectoryMode::Request::ROBOT_POSE){ - //if(!valid){ - tracking_point = odom; - tracking_point.twist.twist.linear.x = 0; - tracking_point.twist.twist.linear.y = 0; - tracking_point.twist.twist.linear.z = 0; - tracking_point.twist.twist.angular.x = 0; - tracking_point.twist.twist.angular.y = 0; - tracking_point.twist.twist.angular.z = 0; - look_ahead_point = tracking_point; - } - if(valid){ - trajectory->get_odom(current_time + 1.0, &look_ahead_point); - - tf::Vector3 tp = tflib::to_tf(tracking_point.pose.pose.position); - double start; - bool success = trajectory->get_trajectory_distance_at_closest_point(tp, &start); - if(success){ - Trajectory sub_trajectory = trajectory->get_subtrajectory_distance(start, start+1000.); - segment_marker_vis_pub.publish(sub_trajectory.get_markers(0, 1, 1)); - core_trajectory_msgs::TrajectoryXYZVYaw segment_msg = sub_trajectory.get_TrajectoryXYZVYaw(); - segment_msg.header.stamp = tracking_point.header.stamp; - segment_pub.publish(segment_msg); - } - } - - tracking_point.header.stamp = now; - look_ahead_point.header.stamp = now; - - // TODO: decide whether or not this is a good idea - // When the tracking point reaches the end of the trajectory, the velocity gets set to zero - if(time_past_end >= 0 || - trajectory_mode == core_trajectory_controller::TrajectoryMode::Request::PAUSE || - trajectory_mode == core_trajectory_controller::TrajectoryMode::Request::REWIND){ - tracking_point.twist.twist.linear.x = 0; - tracking_point.twist.twist.linear.y = 0; - tracking_point.twist.twist.linear.z = 0; - tracking_point.twist.twist.angular.x = 0; - tracking_point.twist.twist.angular.y = 0; - tracking_point.twist.twist.angular.z = 0; - - look_ahead_point.twist.twist.linear.x = 0; - look_ahead_point.twist.twist.linear.y = 0; - look_ahead_point.twist.twist.linear.z = 0; - look_ahead_point.twist.twist.angular.x = 0; - look_ahead_point.twist.twist.angular.y = 0; - look_ahead_point.twist.twist.angular.z = 0; +bool TrajectoryControlNode::execute() { + if (got_odom) { + // publish trajectory visualization + marker_vis_pub.publish(trajectory->get_markers(1, 1, 0)); + + // figure out what duration into the trajectory we are + ros::Time now = ros::Time::now(); + double current_time = (now - start_time).toSec(); + double time_past_end = current_time - trajectory->get_duration(); + + double tracking_error = tflib::to_tf(tracking_point.pose.pose.position) + .distance(tflib::to_tf(odom.pose.pose.position)); + std_msgs::Float32 tracking_error_msg; + tracking_error_msg.data = tracking_error; + tracking_error_pub.publish(tracking_error_msg); + + if (time_past_end >= 0 && + trajectory_mode != core_trajectory_controller::TrajectoryMode::Request::REWIND) { + start_time += ros::Duration(time_past_end); + current_time = trajectory->get_duration(); + } else if (trajectory_mode == core_trajectory_controller::TrajectoryMode::Request::PAUSE || + tracking_error >= tracking_point_distance_limit) { + start_time += ros::Duration(current_time - prev_time); + current_time = (now - start_time).toSec(); + } + // TODO: zero tracking point velocity in rewind and pause modes + else if (trajectory_mode == core_trajectory_controller::TrajectoryMode::Request::REWIND && + current_time > 0) { + start_time += ros::Duration(2.0 * (current_time - prev_time)); + current_time = (now - start_time).toSec(); + } + prev_time = current_time; + + // get tracking point and look ahead point. If they aren't valid use the drone's current + // pose + // monitor.tic("get_odom"); + bool valid = trajectory->get_odom(current_time, &tracking_point); + // set the velocity of the tracking point based on the velocity from a different time + if (valid && velocity_look_ahead_time != 0) { + nav_msgs::Odometry velocity_look_ahead_point; + bool vel_valid = trajectory->get_odom(current_time + velocity_look_ahead_time, + &velocity_look_ahead_point); + if (vel_valid) { + tracking_point.twist = velocity_look_ahead_point.twist; + } + } + + // double elapsed = monitor.toc("get_odom"); + // ROS_INFO_STREAM("get_odom elapsed: " << elapsed); + if (trajectory_mode == core_trajectory_controller::TrajectoryMode::Request::ROBOT_POSE) { + // if(!valid){ + tracking_point = odom; + tracking_point.twist.twist.linear.x = 0; + tracking_point.twist.twist.linear.y = 0; + tracking_point.twist.twist.linear.z = 0; + tracking_point.twist.twist.angular.x = 0; + tracking_point.twist.twist.angular.y = 0; + tracking_point.twist.twist.angular.z = 0; + look_ahead_point = tracking_point; + } + if (valid) { + trajectory->get_odom(current_time + 1.0, &look_ahead_point); + + tf::Vector3 tp = tflib::to_tf(tracking_point.pose.pose.position); + double start; + bool success = trajectory->get_trajectory_distance_at_closest_point(tp, &start); + if (success) { + Trajectory sub_trajectory = + trajectory->get_subtrajectory_distance(start, start + 1000.); + segment_marker_vis_pub.publish(sub_trajectory.get_markers(0, 1, 1)); + core_trajectory_msgs::TrajectoryXYZVYaw segment_msg = + sub_trajectory.get_TrajectoryXYZVYaw(); + segment_msg.header.stamp = tracking_point.header.stamp; + segment_pub.publish(segment_msg); + } + } + + tracking_point.header.stamp = now; + look_ahead_point.header.stamp = now; + + // TODO: decide whether or not this is a good idea + // When the tracking point reaches the end of the trajectory, the velocity gets set to zero + if (time_past_end >= 0 || + trajectory_mode == core_trajectory_controller::TrajectoryMode::Request::PAUSE || + trajectory_mode == core_trajectory_controller::TrajectoryMode::Request::REWIND) { + tracking_point.twist.twist.linear.x = 0; + tracking_point.twist.twist.linear.y = 0; + tracking_point.twist.twist.linear.z = 0; + tracking_point.twist.twist.angular.x = 0; + tracking_point.twist.twist.angular.y = 0; + tracking_point.twist.twist.angular.z = 0; + + look_ahead_point.twist.twist.linear.x = 0; + look_ahead_point.twist.twist.linear.y = 0; + look_ahead_point.twist.twist.linear.z = 0; + look_ahead_point.twist.twist.angular.x = 0; + look_ahead_point.twist.twist.angular.y = 0; + look_ahead_point.twist.twist.angular.z = 0; + } + + std_msgs::Float32 velocity_msg; + velocity_msg.data = + sqrt(tracking_point.twist.twist.linear.x * tracking_point.twist.twist.linear.x + + tracking_point.twist.twist.linear.y * tracking_point.twist.twist.linear.y + + tracking_point.twist.twist.linear.z * tracking_point.twist.twist.linear.z); + velocity_pub.publish(velocity_msg); + tracking_point_pub.publish(tracking_point); + look_ahead_pub.publish(look_ahead_point); + + // create a tf for the tracking point odom + tf::StampedTransform transform = + tflib::to_tf(tracking_point, tf_prefix + "/tracking_point"); + tf::StampedTransform transform_stabilized = tflib::get_stabilized(transform); + transform_stabilized.child_frame_id_ = tf_prefix + "/tracking_point_stabilized"; + broadcaster->sendTransform(transform); + broadcaster->sendTransform(transform_stabilized); + + // create a tf for the look ahead odom + tf::StampedTransform look_ahead_transform = + tflib::to_tf(look_ahead_point, tf_prefix + "/look_ahead_point"); + tf::StampedTransform look_ahead_transform_stabilized = + tflib::get_stabilized(look_ahead_transform); + look_ahead_transform_stabilized.child_frame_id_ = + tf_prefix + "/look_ahead_point_stabilized"; + + broadcaster->sendTransform(look_ahead_transform); + broadcaster->sendTransform(look_ahead_transform_stabilized); + + // publish completion percentage + std_msgs::Float32 trajectory_completion_percentage; + trajectory_completion_percentage.data = current_time / trajectory->get_duration() * 100.f; + trajectory_completion_percentage_pub.publish(trajectory_completion_percentage); + + // publish current trajectory time + std_msgs::Float32 trajectory_time; + trajectory_time.data = current_time; + trajectory_time_pub.publish(trajectory_time); } - std_msgs::Float32 velocity_msg; - velocity_msg.data = sqrt(tracking_point.twist.twist.linear.x*tracking_point.twist.twist.linear.x + - tracking_point.twist.twist.linear.y*tracking_point.twist.twist.linear.y + - tracking_point.twist.twist.linear.z*tracking_point.twist.twist.linear.z); - velocity_pub.publish(velocity_msg); - tracking_point_pub.publish(tracking_point); - look_ahead_pub.publish(look_ahead_point); - - // create a tf for the tracking point odom - tf::StampedTransform transform = tflib::to_tf(tracking_point, tf_prefix + "/tracking_point"); - tf::StampedTransform transform_stabilized = tflib::get_stabilized(transform); - transform_stabilized.child_frame_id_ = tf_prefix + "/tracking_point_stabilized"; - broadcaster->sendTransform(transform); - broadcaster->sendTransform(transform_stabilized); - - // create a tf for the look ahead odom - tf::StampedTransform look_ahead_transform = tflib::to_tf(look_ahead_point, tf_prefix + "/look_ahead_point"); - tf::StampedTransform look_ahead_transform_stabilized = - tflib::get_stabilized(look_ahead_transform); - look_ahead_transform_stabilized.child_frame_id_ = tf_prefix + "/look_ahead_point_stabilized"; - - broadcaster->sendTransform(look_ahead_transform); - broadcaster->sendTransform(look_ahead_transform_stabilized); - - // publish completion percentage - std_msgs::Float32 trajectory_completion_percentage; - trajectory_completion_percentage.data = current_time/trajectory->get_duration() * 100.f; - trajectory_completion_percentage_pub.publish(trajectory_completion_percentage); - - // publish current trajectory time - std_msgs::Float32 trajectory_time; - trajectory_time.data = current_time; - trajectory_time_pub.publish(trajectory_time); - } - - return true; + return true; } -bool TrajectoryControlNode::set_trajectory_mode(core_trajectory_controller::TrajectoryMode::Request& req, - core_trajectory_controller::TrajectoryMode::Response& res){ - int prev_trajectory_mode = trajectory_mode; - trajectory_mode = req.mode; - - if(trajectory_mode == core_trajectory_controller::TrajectoryMode::Request::PAUSE){ - - } - if(trajectory_mode == core_trajectory_controller::TrajectoryMode::Request::ROBOT_POSE){ - trajectory->clear(); - } - else if(trajectory_mode == core_trajectory_controller::TrajectoryMode::Request::TRACK){ - trajectory->clear(); - } - else if(trajectory_mode == core_trajectory_controller::TrajectoryMode::Request::SEGMENT){ - if(prev_trajectory_mode != core_trajectory_controller::TrajectoryMode::Request::PAUSE && - prev_trajectory_mode != core_trajectory_controller::TrajectoryMode::Request::REWIND && - prev_trajectory_mode != core_trajectory_controller::TrajectoryMode::Request::SEGMENT){ - trajectory->clear(); - start_time = ros::Time::now(); +bool TrajectoryControlNode::set_trajectory_mode( + core_trajectory_controller::TrajectoryMode::Request& req, + core_trajectory_controller::TrajectoryMode::Response& res) { + int prev_trajectory_mode = trajectory_mode; + trajectory_mode = req.mode; + + if (trajectory_mode == core_trajectory_controller::TrajectoryMode::Request::PAUSE) { + } + if (trajectory_mode == core_trajectory_controller::TrajectoryMode::Request::ROBOT_POSE) { + trajectory->clear(); + } else if (trajectory_mode == core_trajectory_controller::TrajectoryMode::Request::TRACK) { + trajectory->clear(); + } else if (trajectory_mode == core_trajectory_controller::TrajectoryMode::Request::SEGMENT) { + if (prev_trajectory_mode != core_trajectory_controller::TrajectoryMode::Request::PAUSE && + prev_trajectory_mode != core_trajectory_controller::TrajectoryMode::Request::REWIND && + prev_trajectory_mode != core_trajectory_controller::TrajectoryMode::Request::SEGMENT) { + trajectory->clear(); + start_time = ros::Time::now(); + } + } else if (trajectory_mode == core_trajectory_controller::TrajectoryMode::Request::REWIND) { } - } - else if(trajectory_mode == core_trajectory_controller::TrajectoryMode::Request::REWIND){ - - } - - res.success = true; - return true; -} -void TrajectoryControlNode::traj_callback(core_trajectory_msgs::TrajectoryXYZVYaw traj){ - if(trajectory_mode == core_trajectory_controller::TrajectoryMode::Request::SEGMENT) - trajectory->merge(Trajectory(traj)); + res.success = true; + return true; } -void TrajectoryControlNode::traj_track_callback(core_trajectory_msgs::TrajectoryXYZVYaw traj){ - start_time = ros::Time::now(); - trajectory->clear(); - trajectory->merge(Trajectory(traj)); +void TrajectoryControlNode::traj_callback(core_trajectory_msgs::TrajectoryXYZVYaw traj) { + if (trajectory_mode == core_trajectory_controller::TrajectoryMode::Request::SEGMENT) + trajectory->merge(Trajectory(traj)); } -void TrajectoryControlNode::odom_callback(nav_msgs::Odometry odom){ - //this->odom = odom; - if(tflib::transform_odometry(listener, odom, target_frame, target_frame, &(this->odom))) - got_odom = true; +void TrajectoryControlNode::traj_track_callback(core_trajectory_msgs::TrajectoryXYZVYaw traj) { + start_time = ros::Time::now(); + trajectory->clear(); + trajectory->merge(Trajectory(traj)); } -TrajectoryControlNode::~TrajectoryControlNode(){ - +void TrajectoryControlNode::odom_callback(nav_msgs::Odometry odom) { + // this->odom = odom; + if (tflib::transform_odometry(listener, odom, target_frame, target_frame, &(this->odom))) + got_odom = true; } +TrajectoryControlNode::~TrajectoryControlNode() {} -BaseNode* BaseNode::get(){ - TrajectoryControlNode* trajectory_control_node = new TrajectoryControlNode(); - return trajectory_control_node; +BaseNode* BaseNode::get() { + TrajectoryControlNode* trajectory_control_node = new TrajectoryControlNode(); + return trajectory_control_node; } diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/CMakeLists.txt b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/CMakeLists.txt index 1b9492a80..e1fef9903 100644 --- a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/CMakeLists.txt +++ b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/CMakeLists.txt @@ -1,24 +1,44 @@ -cmake_minimum_required(VERSION 2.8.3) +cmake_minimum_required(VERSION 3.5) project(core_trajectory_library) ## Compile as C++11, supported in ROS Kinetic and newer -add_compile_options(-std=c++11) +#add_compile_options(-std=c++11) +if(NOT CMAKE_CXX_STANDARD) + set(CMAKE_CXX_STANDARD 14) +endif() ## Find catkin macros and libraries ## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz) ## is used, also find other catkin packages -find_package(catkin REQUIRED COMPONENTS - nav_msgs - roscpp - rospy - sensor_msgs - std_msgs - tf - tflib - rqt_gui - rqt_gui_py - core_trajectory_msgs -) +#find_package(catkin REQUIRED COMPONENTS +# nav_msgs +# roscpp +# rospy +# sensor_msgs +# std_msgs +# tf +# tflib +# rqt_gui +# rqt_gui_py +# core_trajectory_msgs +#) +find_package(ament_cmake REQUIRED) +find_package(rclcpp REQUIRED) +find_package(rclpy) +find_package(nav_msgs REQUIRED) +find_package(sensor_msgs REQUIRED) +find_package(std_msgs REQUIRED) + +find_package(tf2_geometry_msgs REQUIRED) + +find_package(tf2 REQUIRED) +find_package(tf2_ros REQUIRED) +find_package(tflib) +#find_package(rqt_gui) +#find_package(rqt_gui_py) +find_package(visualization_msgs REQUIRED) +find_package(core_trajectory_msgs REQUIRED) +find_package(yaml_cpp_vendor REQUIRED) ## System dependencies are found with CMake's conventions # find_package(Boost REQUIRED COMPONENTS system) @@ -27,7 +47,7 @@ find_package(catkin REQUIRED COMPONENTS ## Uncomment this if the package has a setup.py. This macro ensures ## modules and global scripts declared therein get installed ## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html -catkin_python_setup() +#catkin_python_setup() ################################################ ## Declare ROS messages, services and actions ## @@ -109,12 +129,12 @@ catkin_python_setup() ## LIBRARIES: libraries you create in this project that dependent projects also need ## CATKIN_DEPENDS: catkin_packages dependent projects also need ## DEPENDS: system dependencies of this project that dependent projects also need -catkin_package( - INCLUDE_DIRS include - LIBRARIES trajectory_library - CATKIN_DEPENDS nav_msgs roscpp rospy sensor_msgs std_msgs tf visualization_msgs +#catkin_package( + # INCLUDE_DIRS include + # LIBRARIES trajectory_library + # CATKIN_DEPENDS nav_msgs roscpp rospy sensor_msgs std_msgs tf visualization_msgs # DEPENDS system_lib -) +#) ########### ## Build ## @@ -124,7 +144,9 @@ catkin_package( ## Your package locations should be listed before other locations include_directories( include - ${catkin_INCLUDE_DIRS} + # ${rqt_gui_INCLUDE_DIRS} + # ${rqt_gui_py_INCLUDE_DIRS} + ) ## Declare a C++ library @@ -153,8 +175,21 @@ add_library(trajectory_library # add_dependencies(${PROJECT_NAME}_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) ## Specify libraries to link a library or executable target against -target_link_libraries(trajectory_library - ${catkin_LIBRARIES} yaml-cpp +ament_target_dependencies(trajectory_library + rclcpp + rclpy + nav_msgs + sensor_msgs + std_msgs + tf2 + tf2_ros + visualization_msgs + core_trajectory_msgs + #rqt_gui + tflib + #rqt_gui_py + yaml_cpp_vendor + tf2_geometry_msgs ) ############# @@ -170,29 +205,46 @@ target_link_libraries(trajectory_library # scripts/my_python_script # DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} # ) +ament_export_targets(trajectory_libraryTargets HAS_LIBRARY_TARGET) +ament_export_dependencies(rclcpp +rclpy +nav_msgs +sensor_msgs +std_msgs +tf2 +tf2_ros +visualization_msgs +core_trajectory_msgs +#rqt_gui +tf2_geometry_msgs +tflib +#rqt_gui_py +) ## Mark executables and/or libraries for installation install(TARGETS trajectory_library - ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} - LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} - RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} + EXPORT trajectory_libraryTargets + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib + RUNTIME DESTINATION bin + INCLUDES DESTINATION include ) ## Mark cpp header files for installation -install(DIRECTORY include/trajectory_library/ - DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} +install( + DIRECTORY include/${PROJECT_NAME}/ + DESTINATION include/${PROJECT_NAME} FILES_MATCHING PATTERN "*.h" - PATTERN ".svn" EXCLUDE ) install(PROGRAMS scripts/rqt_fixed_trajectory_selector - DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} + DESTINATION bin/${PROJECT_NAME} ) install(FILES plugin.xml - DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} + DESTINATION share/${PROJECT_NAME} ) @@ -215,3 +267,4 @@ install(FILES ## Add folders to be run by python nosetests # catkin_add_nosetests(test) +ament_package() \ No newline at end of file diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/COLCON_IGNORE b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/COLCON_IGNORE deleted file mode 100644 index e69de29bb..000000000 diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/include/core_trajectory_library/trajectory_library.h b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/include/core_trajectory_library/trajectory_library.h index 9e8521061..03ba1b695 100644 --- a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/include/core_trajectory_library/trajectory_library.h +++ b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/include/core_trajectory_library/trajectory_library.h @@ -1,92 +1,116 @@ #ifndef _TRJAECTORY_LIBRARY_H_ #define _TRJAECTORY_LIBRARY_H_ - -#include -#include -#include -#include -#include +/* #include #include -#include +#include +#include +#include +#include #include #include -#include +#include +#include #include + +#include +#include +*/ +#include +#include +#include + #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +// #include +#include class Trajectory; class Waypoint { -private: - double x_, y_, z_, yaw_, vx_, vy_, vz_, time_; - -public: - Waypoint(double x, double y, double z, double yaw, - double vx, double vy, double vz, double time=0); - - double x() const {return x_;} - double y() const {return y_;} - double z() const {return z_;} - double vx() const {return vx_;} - double vy() const {return vy_;} - double vz() const {return vz_;} - double yaw() const {return yaw_;} - double time() const {return time_;} - - void set_time(double time){time_ = time;} - - tf::Quaternion q() const; - tf::Vector3 position() const; - tf::Vector3 velocity() const; - nav_msgs::Odometry odometry(ros::Time stamp, std::string frame_id) const; - Waypoint interpolate(Waypoint wp, double t); - - friend class Trajectory; + private: + double x_, y_, z_, yaw_, vx_, vy_, vz_, time_; + + public: + Waypoint(double x, double y, double z, double yaw, double vx, double vy, double vz, + double time = 0); + + double x() const { return x_; } + double y() const { return y_; } + double z() const { return z_; } + double vx() const { return vx_; } + double vy() const { return vy_; } + double vz() const { return vz_; } + double yaw() const { return yaw_; } + double time() const { return time_; } + + void set_time(double time) { time_ = time; } + + tf2::Quaternion q() const; + tf2::Vector3 position() const; + tf2::Vector3 velocity() const; + nav_msgs::msg::Odometry odometry(rclcpp::Time stamp, std::string frame_id) const; + Waypoint interpolate(Waypoint wp, double t); + + friend class Trajectory; }; // Create one TransformListener instance to be used by every Trajectory instance -static tf::TransformListener* listener = NULL; +// static tf2::TransformListener* listener = NULL; +extern std::shared_ptr tf_buffer; +extern std::shared_ptr tf_listener; class Trajectory { -private: - std::string frame_id; - ros::Time stamp; - std::vector waypoints; - - bool generated_waypoint_times; - void generate_waypoint_times(); - - void init_listener(); - - std::string marker_namespace; -public: - Trajectory(); - Trajectory(std::string frame_id); - Trajectory(core_trajectory_msgs::TrajectoryXYZVYaw path); - //Trajectory(core_trajectory_msgs::TrajectoryXYZVYaw path); - - void clear(); - bool get_closest_point(tf::Vector3 point, tf::Vector3* closest, int* wp_index=NULL, double* path_distance=NULL); - bool get_trajectory_distance_at_closest_point(tf::Vector3 point, double* trajectory_distance); - bool merge(Trajectory traj); - - double get_duration(); - bool get_odom(double time, nav_msgs::Odometry* odom); - Trajectory to_frame(std::string target_frame, ros::Time time); - Trajectory respace(double spacing); - Trajectory shorten(double new_length); // replace shorten with get_subtraj_dist - Trajectory get_subtrajectory_distance(double start, double end); - - void set_fixed_height(double height); - - int waypoint_count(); - Waypoint get_waypoint(int index); - std::string get_frame_id(); - core_trajectory_msgs::TrajectoryXYZVYaw get_TrajectoryXYZVYaw(); - std::vector get_vector_PointStamped(); - - visualization_msgs::MarkerArray get_markers(float r=1, float g=0, float b=0, float a=1, bool show_poses=false, bool show_velocity=false); + private: + std::string frame_id; + rclcpp::Time stamp; + std::vector waypoints; + + bool generated_waypoint_times; + void generate_waypoint_times(); + + void init_listener(); + rclcpp::Node::SharedPtr node_; + std::string marker_namespace; + + public: + Trajectory(); + Trajectory(std::string frame_id); + Trajectory(core_trajectory_msgs::msg::TrajectoryXYZVYaw path); + // Trajectory(core_trajectory_msgs::TrajectoryXYZVYaw path); + + void clear(); + bool get_closest_point(tf2::Vector3 point, tf2::Vector3* closest, int* wp_index = NULL, + double* path_distance = NULL); + bool get_trajectory_distance_at_closest_point(tf2::Vector3 point, double* trajectory_distance); + bool merge(Trajectory traj); + + double get_duration(); + bool get_odom(double time, nav_msgs::msg::Odometry* odom); + Trajectory to_frame(std::string target_frame, rclcpp::Time time); + Trajectory respace(double spacing); + Trajectory shorten(double new_length); // replace shorten with get_subtraj_dist + Trajectory get_subtrajectory_distance(double start, double end); + + void set_fixed_height(double height); + + int waypoint_count(); + Waypoint get_waypoint(int index); + std::string get_frame_id(); + core_trajectory_msgs::msg::TrajectoryXYZVYaw get_TrajectoryXYZVYaw(); + std::vector get_vector_PointStamped(); + + visualization_msgs::msg::MarkerArray get_markers(float r = 1, float g = 0, float b = 0, + float a = 1, bool show_poses = false, + bool show_velocity = false); }; //=================================================================================== @@ -94,68 +118,71 @@ class Trajectory { //=================================================================================== class DynamicTrajectory { - private: - - public: - virtual core_trajectory_msgs::TrajectoryXYZVYaw get_trajectory(nav_msgs::Odometry odom) = 0; + private: + public: + virtual core_trajectory_msgs::msg::TrajectoryXYZVYaw get_trajectory( + nav_msgs::msg::Odometry odom) = 0; }; -class AccelerationTrajectory : public DynamicTrajectory { - private: - // subscribers - tf::TransformListener* listener; - ros::Subscriber set_max_velocity_sub; - - double ax, ay, az; - double dt, ht; - double max_velocity; - std::string frame; - - // callbacks - void set_max_velocity_callback(std_msgs::Float32 msg); - - public: - AccelerationTrajectory(tf::TransformListener* listener, std::string frame, double ax, double ay, double az, double dt, double ht, double max_velocity); - virtual core_trajectory_msgs::TrajectoryXYZVYaw get_trajectory(nav_msgs::Odometry odom); +class AccelerationTrajectory : public DynamicTrajectory, public rclcpp::Node { + private: + // subscribers + std::shared_ptr tf_buffer; + std::shared_ptr tf_listener; + rclcpp::Subscription::SharedPtr set_max_velocity_sub; + + double ax, ay, az; + double dt, ht; + double max_velocity; + std::string frame; + + // callbacks + void set_max_velocity_callback(const std_msgs::msg::Float32::ConstSharedPtr msg); + + public: + AccelerationTrajectory(std::shared_ptr tf_buffer, std::string frame, double ax, + double ay, double az, double dt, double ht, double max_velocity); + virtual core_trajectory_msgs::msg::TrajectoryXYZVYaw get_trajectory( + nav_msgs::msg::Odometry odom); }; class TakeoffTrajectory : public DynamicTrajectory { - private: - double height, velocity; - double path_roll, path_pitch; - bool relative_to_orientation; - - public: - TakeoffTrajectory(double height, double velocity, double path_roll=0., double path_pitch=0., bool relative_to_orientation=false); - core_trajectory_msgs::TrajectoryXYZVYaw get_trajectory(nav_msgs::Odometry odom); + private: + double height, velocity; + double path_roll, path_pitch; + bool relative_to_orientation; + + public: + TakeoffTrajectory(double height, double velocity, double path_roll = 0., double path_pitch = 0., + bool relative_to_orientation = false); + core_trajectory_msgs::msg::TrajectoryXYZVYaw get_trajectory(nav_msgs::msg::Odometry odom); }; //=================================================================================== //--------------------------------- Static Trajectories ----------------------------- //=================================================================================== -class StaticTrajectory{ - private: - - public: - virtual core_trajectory_msgs::TrajectoryXYZVYaw get_trajectory() = 0; +class StaticTrajectory { + private: + public: + virtual core_trajectory_msgs::msg::TrajectoryXYZVYaw get_trajectory() = 0; }; class CurveTrajectory : public StaticTrajectory { - private: - core_trajectory_msgs::TrajectoryXYZVYaw trajectory; - - float linear_velocity, angular_velocity, dt, time, distance, yaw; - std::string frame; - bool use_heading; - - void generate_trajectory(); - - public: - CurveTrajectory(float linear_velocity, float angular_velocity, std::string frame, - float time, float dt, bool use_heading, float yaw=0.f); - - virtual core_trajectory_msgs::TrajectoryXYZVYaw get_trajectory(); + private: + core_trajectory_msgs::msg::TrajectoryXYZVYaw trajectory; + + float linear_velocity, angular_velocity, dt, time, distance, yaw; + std::string frame; + bool use_heading; + + void generate_trajectory(); + + public: + CurveTrajectory(float linear_velocity, float angular_velocity, std::string frame, float time, + float dt, bool use_heading, float yaw = 0.f); + + virtual core_trajectory_msgs::msg::TrajectoryXYZVYaw get_trajectory(); }; //=================================================================================== @@ -163,92 +190,100 @@ class CurveTrajectory : public StaticTrajectory { //=================================================================================== class TrajectoryLibrary { - private: - std::vector static_trajectories; - std::vector dynamic_trajectories; - tf::TransformListener* listener; - - ros::NodeHandle* pnh; - - std::string trim(std::string str){ - int trim_start = 0; - int trim_end = 0; - bool found_start = false; - for(int i = 0; i < str.size(); i++) - if(std::isspace(str[i])) - trim_start++; - else - break; - - for(int i = str.size()-1; i >= 0; i--) - if(std::isspace(str[i])) - trim_end++; - else - break; - - std::string trimmed = str.substr(trim_start, str.size() - trim_end - trim_start); - return trimmed; - } - - template - std::string get_string(T t){ - return std::to_string(t); - } - - std::string get_string(std::string t){ - return t; - } - - template - T parse(YAML::Node node){ - //std::cout << "trim test |" << trim(" asdjfaksfdj jdfkj jakdsf ") << "|" << std::endl; - - std::string str = node.as(); - std::size_t start; - - std::string param_label = "$(param"; - - //std::cout << "string: " << str << std::endl; - while((start = str.find(param_label)) != std::string::npos){ - std::size_t end = str.find(")"); - //std::cout << start << " " << end << std::endl; - if(end == std::string::npos){ - ROS_ERROR_STREAM("TRAJECTORY LIBRARY PARSING ERROR: No closing parenthesis for $(param"); - break; - } - - std::string parameter_name = trim(str.substr(start + param_label.size(), end - (start + param_label.size()))); - //std::cout << "parameter_name: |" << parameter_name << "|" << std::endl; - T parameter_value; - if(!pnh->getParam(parameter_name, parameter_value)){ - ROS_ERROR_STREAM("Couldn't find parameter '" << parameter_name << "'. This is either because it doesn't exist or the type is incorrect in the launch file."); - } - - //std::cout << str << " " << start << " " << end << std::endl; - str = str.substr(0, start) + get_string(parameter_value) + str.substr(end+1, str.size() - (end+1)); - //std::cout << str << " " << str.find(param_label) << std::endl; + private: + std::vector static_trajectories; + std::vector dynamic_trajectories; + std::shared_ptr tf_buffer_; + std::shared_ptr tf_listener_; + + rclcpp::Node::SharedPtr node_; + + std::string trim(std::string str) { + int trim_start = 0; + int trim_end = 0; + bool found_start = false; + for (int i = 0; i < str.size(); i++) + if (std::isspace(str[i])) + trim_start++; + else + break; + + for (int i = str.size() - 1; i >= 0; i--) + if (std::isspace(str[i])) + trim_end++; + else + break; + + std::string trimmed = str.substr(trim_start, str.size() - trim_end - trim_start); + return trimmed; } - //std::cout << "final: " << str << std::endl; - YAML::Emitter out; - out << YAML::BeginMap; - out << YAML::Key << "key"; - out << YAML::Value << str; - out << YAML::EndMap; - std::string yaml = out.c_str(); - YAML::Node n = YAML::Load(out.c_str()); - //std::cout << "yaml: " << yaml << " " << n["key"].as() << std::endl; - - return n["key"].as(); - } - - public: - TrajectoryLibrary(std::string config_filename, tf::TransformListener* listener); - - std::vector get_static_trajectories(); - std::vector get_dynamic_trajectories(nav_msgs::Odometry odom); - visualization_msgs::MarkerArray get_markers(std::vector trajectories); -}; + template + std::string get_string(T t) { + return std::to_string(t); + } + std::string get_string(std::string t) { return t; } + + template + T parse(YAML::Node node) { + // std::cout << "trim test |" << trim(" asdjfaksfdj jdfkj jakdsf ") << "|" << std::endl; + + std::string str = node.as(); + std::size_t start; + + std::string param_label = "$(param"; + + // std::cout << "string: " << str << std::endl; + while ((start = str.find(param_label)) != std::string::npos) { + std::size_t end = str.find(")"); + // std::cout << start << " " << end << std::endl; + if (end == std::string::npos) { + RCLCPP_ERROR( + node_->get_logger(), + "TRAJECTORY LIBRARY PARSING ERROR: No closing parenthesis for $(param"); + break; + } + + std::string parameter_name = + trim(str.substr(start + param_label.size(), end - (start + param_label.size()))); + // std::cout << "parameter_name: |" << parameter_name << "|" << std::endl; + T parameter_value; + if (!node_->get_parameter(parameter_name, parameter_value)) { + RCLCPP_ERROR(node_->get_logger(), + "Couldn't find parameter '%s'. This is either because it doesn't " + "exist or the type is " + "incorrect in the launch file.", + parameter_name.c_str()); + } + + // std::cout << str << " " << start << " " << end << std::endl; + str = str.substr(0, start) + get_string(parameter_value) + + str.substr(end + 1, str.size() - (end + 1)); + // std::cout << str << " " << str.find(param_label) << std::endl; + } + + // std::cout << "final: " << str << std::endl; + YAML::Emitter out; + out << YAML::BeginMap; + out << YAML::Key << "key"; + out << YAML::Value << str; + out << YAML::EndMap; + std::string yaml = out.c_str(); + YAML::Node n = YAML::Load(out.c_str()); + // std::cout << "yaml: " << yaml << " " << n["key"].as() << std::endl; + + return n["key"].as(); + } + + public: + TrajectoryLibrary(std::string config_filename, std::shared_ptr tf_buffer, + rclcpp::Node::SharedPtr node); + + std::vector get_static_trajectories(); + std::vector get_dynamic_trajectories(nav_msgs::msg::Odometry odom); + visualization_msgs::msg::MarkerArray get_markers( + std::vector trajectories); +}; #endif diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/package.xml b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/package.xml index 29c3ad5e5..87702ee96 100644 --- a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/package.xml +++ b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/package.xml @@ -1,90 +1,27 @@ - + core_trajectory_library - 0.0.0 + 0.0.1 The core_trajectory_library package + Your Name + Apache License 2.0 + + ament_cmake + + rclcpp + rclpy + nav_msgs + sensor_msgs + std_msgs + tf2 + tf2_ros + tflib + visualization_msgs + core_trajectory_msgs + common_rodeps + yaml_cpp_vendor - - - - john - - - - - - TODO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - catkin - nav_msgs - roscpp - rospy - sensor_msgs - std_msgs - tf - common_rodeps - visualization_msgs - tflib - core_trajectory_msgs - - nav_msgs - roscpp - rospy - sensor_msgs - std_msgs - tf - common_rodeps - visualization_msgs - tflib - core_trajectory_msgs - - nav_msgs - roscpp - rospy - sensor_msgs - std_msgs - tf - common_rodeps - visualization_msgs - tflib - core_trajectory_msgs - - - - + ament_cmake diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/src/trajectory_library.cpp b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/src/trajectory_library.cpp index de4a6da4b..1c12cb8d3 100644 --- a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/src/trajectory_library.cpp +++ b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/src/trajectory_library.cpp @@ -1,776 +1,846 @@ -#include +/* #include +#include +#include #include #include +#include + #include -#include +*/ +#include +#include +#include +#include // Add this line +#include +#include #include -Waypoint::Waypoint(double x, double y, double z, double yaw, - double vx, double vy, double vz, double time){ - x_ = x; - y_ = y; - z_ = z; - vx_ = vx; - vy_ = vy; - vz_ = vz; - yaw_ = yaw; - time_ = time; +#include +#include +#include +#include +Waypoint::Waypoint(double x, double y, double z, double yaw, double vx, double vy, double vz, + double time) { + x_ = x; + y_ = y; + z_ = z; + vx_ = vx; + vy_ = vy; + vz_ = vz; + yaw_ = yaw; + time_ = time; } -tf::Quaternion Waypoint::q() const { - tf::Quaternion quat; - quat.setRPY(0, 0, yaw_); - return quat; +tf2::Quaternion Waypoint::q() const { + tf2::Quaternion quat; + quat.setRPY(0, 0, yaw_); + return quat; } -tf::Vector3 Waypoint::position() const { - return tf::Vector3(x_, y_, z_); -} +tf2::Vector3 Waypoint::position() const { return tf2::Vector3(x_, y_, z_); } -tf::Vector3 Waypoint::velocity() const { - return tf::Vector3(vx_, vy_, vz_); -} +tf2::Vector3 Waypoint::velocity() const { return tf2::Vector3(vx_, vy_, vz_); } + +nav_msgs::msg::Odometry Waypoint::odometry(rclcpp::Time stamp, std::string frame_id) const { + nav_msgs::msg::Odometry odom; + odom.header.stamp = stamp; + odom.header.frame_id = frame_id; + odom.child_frame_id = frame_id; + odom.pose.pose.position.x = x_; + odom.pose.pose.position.y = y_; + odom.pose.pose.position.z = z_; -nav_msgs::Odometry Waypoint::odometry(ros::Time stamp, std::string frame_id) const { - nav_msgs::Odometry odom; - odom.header.stamp = stamp; - odom.header.frame_id = frame_id; - odom.child_frame_id = frame_id; - - odom.pose.pose.position.x = x_; - odom.pose.pose.position.y = y_; - odom.pose.pose.position.z = z_; - - tf::Quaternion quat = q(); - odom.pose.pose.orientation.x = quat.x(); - odom.pose.pose.orientation.y = quat.y(); - odom.pose.pose.orientation.z = quat.z(); - odom.pose.pose.orientation.w = quat.w(); + tf2::Quaternion quat = q(); + odom.pose.pose.orientation.x = quat.x(); + odom.pose.pose.orientation.y = quat.y(); + odom.pose.pose.orientation.z = quat.z(); + odom.pose.pose.orientation.w = quat.w(); - odom.twist.twist.linear.x = vx_; - odom.twist.twist.linear.y = vy_; - odom.twist.twist.linear.z = vz_; + odom.twist.twist.linear.x = vx_; + odom.twist.twist.linear.y = vy_; + odom.twist.twist.linear.z = vz_; - return odom; + return odom; } +// Helper function to get yaw from a quaternion +double getYawFromQuaternion(const tf2::Quaternion& quat) { + double roll, pitch, yaw; + tf2::Matrix3x3(quat).getRPY(roll, pitch, yaw); + return yaw; +} + +Waypoint Waypoint::interpolate(Waypoint wp, double t) { + tf2::Vector3 pos_interp = position() + t * (wp.position() - position()); + tf2::Quaternion q_interp = q().slerp(wp.q(), t); + tf2::Vector3 vel_interp = velocity() + t * (wp.velocity() - velocity()); + double time_interp = time() + t * (time() - wp.time()); + + double yaw_interp = getYawFromQuaternion(q_interp); -Waypoint Waypoint::interpolate(Waypoint wp, double t){ - tf::Vector3 pos_interp = position() + t*(wp.position() - position()); - tf::Quaternion q_interp = q().slerp(wp.q(), t); - tf::Vector3 vel_interp = velocity() + t*(wp.velocity() - velocity()); - double time_interp = time() + t*(time() - wp.time()); + Waypoint wp_interp(pos_interp.x(), pos_interp.y(), pos_interp.z(), yaw_interp, vel_interp.x(), + vel_interp.y(), vel_interp.z(), time_interp); - Waypoint wp_interp(pos_interp.x(), pos_interp.y(), pos_interp.z(), - tf::getYaw(q_interp), - vel_interp.x(), vel_interp.y(), vel_interp.z(), - time_interp); - - return wp_interp; + return wp_interp; } static int trajectory_class_counter = 0; -Trajectory::Trajectory(){ - //listener = NULL; - generated_waypoint_times = false; - - // init marker namespace to be unique - std::stringstream ss; - ss << "trajectory_" << trajectory_class_counter; - marker_namespace = ss.str(); - trajectory_class_counter++; -} - -Trajectory::Trajectory(std::string frame_id){ - this->frame_id = frame_id; - //listener = NULL; - generated_waypoint_times = false; - - // init marker namespace to be unique - std::stringstream ss; - ss << "trajectory_" << trajectory_class_counter; - marker_namespace = ss.str(); - trajectory_class_counter++; -} - -Trajectory::Trajectory(core_trajectory_msgs::TrajectoryXYZVYaw path){ - frame_id = path.header.frame_id; - stamp = path.header.stamp; - //listener = NULL; - generated_waypoint_times = false; - - // init marker namespace to be unique - std::stringstream ss; - ss << "trajectory_" << trajectory_class_counter; - marker_namespace = ss.str(); - trajectory_class_counter++; - - // remove any consecutive duplicate waypoints - core_trajectory_msgs::TrajectoryXYZVYaw cleaned_path; - cleaned_path.header = path.header; - for(int i = 0; i < path.waypoints.size(); i++){ - core_trajectory_msgs::WaypointXYZVYaw wp = path.waypoints[i]; - if(i == 0) - cleaned_path.waypoints.push_back(wp); - else if(!(wp.position.x == cleaned_path.waypoints.back().position.x && - wp.position.y == cleaned_path.waypoints.back().position.y && - wp.position.z == cleaned_path.waypoints.back().position.z)) - cleaned_path.waypoints.push_back(wp); - } - - //ROS_INFO_STREAM("TRAJECTORY CONSTRUCTOR"); - for(int i = 0; i < cleaned_path.waypoints.size(); i++){ - core_trajectory_msgs::WaypointXYZVYaw wp = cleaned_path.waypoints[i]; - - // calculate the x, y, z components of velocity - tf::Vector3 wp1(wp.position.x, wp.position.y, wp.position.z); - tf::Vector3 wp2(wp1); - if(i == 0){ // for the first waypoint use the next waypoint to figure out direction of travel - if(cleaned_path.waypoints.size() > 1) - wp2 = tf::Vector3(cleaned_path.waypoints[i+1].position.x, cleaned_path.waypoints[i+1].position.y, cleaned_path.waypoints[i+1].position.z); +Trajectory::Trajectory() { + // listener = NULL; + generated_waypoint_times = false; + + // init marker namespace to be unique + std::stringstream ss; + ss << "trajectory_" << trajectory_class_counter; + marker_namespace = ss.str(); + trajectory_class_counter++; +} + +Trajectory::Trajectory(std::string frame_id) { + this->frame_id = frame_id; + // listener = NULL; + generated_waypoint_times = false; + + // init marker namespace to be unique + std::stringstream ss; + ss << "trajectory_" << trajectory_class_counter; + marker_namespace = ss.str(); + trajectory_class_counter++; +} + +Trajectory::Trajectory(core_trajectory_msgs::msg::TrajectoryXYZVYaw path) { + frame_id = path.header.frame_id; + stamp = path.header.stamp; + // listener = NULL; + generated_waypoint_times = false; + + // init marker namespace to be unique + std::stringstream ss; + ss << "trajectory_" << trajectory_class_counter; + marker_namespace = ss.str(); + trajectory_class_counter++; + + // remove any consecutive duplicate waypoints + core_trajectory_msgs::msg::TrajectoryXYZVYaw cleaned_path; + cleaned_path.header = path.header; + for (int i = 0; i < path.waypoints.size(); i++) { + core_trajectory_msgs::msg::WaypointXYZVYaw wp = path.waypoints[i]; + if (i == 0) + cleaned_path.waypoints.push_back(wp); + else if (!(wp.position.x == cleaned_path.waypoints.back().position.x && + wp.position.y == cleaned_path.waypoints.back().position.y && + wp.position.z == cleaned_path.waypoints.back().position.z)) + cleaned_path.waypoints.push_back(wp); } - else{ // otherwise use the previous waypoint - wp1 = tf::Vector3(cleaned_path.waypoints[i-1].position.x, cleaned_path.waypoints[i-1].position.y, cleaned_path.waypoints[i-1].position.z); + + // ROS_INFO_STREAM("TRAJECTORY CONSTRUCTOR"); + for (int i = 0; i < cleaned_path.waypoints.size(); i++) { + core_trajectory_msgs::msg::WaypointXYZVYaw wp = cleaned_path.waypoints[i]; + + // calculate the x, y, z components of velocity + tf2::Vector3 wp1(wp.position.x, wp.position.y, wp.position.z); + tf2::Vector3 wp2(wp1); + if (i == + 0) { // for the first waypoint use the next waypoint to figure out direction of travel + if (cleaned_path.waypoints.size() > 1) + wp2 = tf2::Vector3(cleaned_path.waypoints[i + 1].position.x, + cleaned_path.waypoints[i + 1].position.y, + cleaned_path.waypoints[i + 1].position.z); + } else { // otherwise use the previous waypoint + wp1 = tf2::Vector3(cleaned_path.waypoints[i - 1].position.x, + cleaned_path.waypoints[i - 1].position.y, + cleaned_path.waypoints[i - 1].position.z); + } + + tf2::Vector3 direction = (wp2 - wp1).normalized(); + tf2::Vector3 vel = wp.velocity * direction; + + // ROS_INFO_STREAM("WAYPOINT " << i << " vel: " << vel.x() << " " << vel.y() << " " << + // vel.z()); ROS_INFO_STREAM("\twp1: " << wp1.x() << " " << wp1.y() << " " << wp1.z()); + // ROS_INFO_STREAM("\twp2: " << wp2.x() << " " << wp2.y() << " " << wp2.z()); + // ROS_INFO_STREAM("\tdirection: " << direction.x() << " " << direction.y() << " " << + // direction.z() << " wp.vel: " << wp.vel); + + Waypoint waypoint(wp.position.x, wp.position.y, wp.position.z, wp.yaw, vel.x(), vel.y(), + vel.z()); + waypoints.push_back(waypoint); } - - tf::Vector3 direction = (wp2-wp1).normalized(); - tf::Vector3 vel = wp.velocity*direction; - - //ROS_INFO_STREAM("WAYPOINT " << i << " vel: " << vel.x() << " " << vel.y() << " " << vel.z()); - //ROS_INFO_STREAM("\twp1: " << wp1.x() << " " << wp1.y() << " " << wp1.z()); - //ROS_INFO_STREAM("\twp2: " << wp2.x() << " " << wp2.y() << " " << wp2.z()); - //ROS_INFO_STREAM("\tdirection: " << direction.x() << " " << direction.y() << " " << direction.z() << " wp.vel: " << wp.vel); - - Waypoint waypoint(wp.position.x, wp.position.y, wp.position.z, wp.yaw, vel.x(), vel.y(), vel.z()); - waypoints.push_back(waypoint); - } -} - -void Trajectory::init_listener(){ - if(listener == NULL) - listener = new tf::TransformListener(); -} - -void Trajectory::clear(){ - waypoints.clear(); - generated_waypoint_times = false; -} - -void Trajectory::generate_waypoint_times(){ - if(generated_waypoint_times) - return; - - /* - if(waypoints.size() > 1){ - ROS_INFO_STREAM("WAYPOINT " << 0 << waypoints[0]); - } - */ - - for(int i = 1; i < waypoints.size(); i++){ - Waypoint& curr_wp = waypoints[i]; - Waypoint& prev_wp = waypoints[i-1]; - - double distance = curr_wp.position().distance(prev_wp.position()); - double velocity = std::max(0.01, curr_wp.velocity().length()); - //if(i+1 < waypoints.size()){ - // velocity = (velocity + waypoints[i+1].velocity().length())/2.0; - //} - - //ROS_INFO_STREAM("WAYPOINT " << i << " dist: " << distance << " vel: " << velocity << " time: " << (prev_wp.time() + distance/velocity) << " prev_time: " << prev_wp.time() << " inc: " << (distance/velocity)); - - curr_wp.set_time(prev_wp.time() + distance/velocity); - } - - generated_waypoint_times = true; -} - -bool Trajectory::get_closest_point(tf::Vector3 point, tf::Vector3* closest, int* wp_index, double* path_distance){ - double closest_distance = std::numeric_limits::max(); - double best_t = 0; - int best_wp_index = 0; - - if(waypoints.size() == 0){ - if(wp_index != NULL) - *wp_index = 0; - if(path_distance != NULL) - path_distance = 0; - return false; - } - else if(waypoints.size() == 1){ - *closest = waypoints[0].position(); - best_wp_index = 0; - if(path_distance != NULL) - path_distance = 0; - } - else{ - for(int i = 1; i < waypoints.size(); i++){ - // parameteric representation of segment between waypoints: segment_start + t*segment_vec - tf::Vector3 segment_start = waypoints[i-1].position(); - tf::Vector3 segment_end = waypoints[i].position(); - tf::Vector3 segment_vec = segment_end - segment_start; - - // project the vector (point - segment_start) onto the parametric line - double t = ((point - segment_start).dot(segment_vec)) / (segment_vec.dot(segment_vec)); - t = std::max(0.0, std::min(1.0, t)); - tf::Vector3 closest_point = segment_start + t*segment_vec; - - // find the distance between the point and the closest point on the current segment - double distance = closest_point.distance(point); - if(distance < closest_distance){ - closest_distance = distance; - *closest = closest_point; - best_wp_index = i-1; - best_t = t; - } +} + +void Trajectory::init_listener() { + if (!tf_buffer) { + tf_buffer = std::make_unique(node_->get_clock()); + tf_listener = std::make_unique(*tf_buffer); } +} + +void Trajectory::clear() { + waypoints.clear(); + generated_waypoint_times = false; +} + +void Trajectory::generate_waypoint_times() { + if (generated_waypoint_times) return; - if(path_distance != NULL){ - *path_distance = 0; - for(int i = 0; i <= best_wp_index; i++){ - tf::Vector3 segment_start = waypoints[i].position(); - tf::Vector3 segment_end = waypoints[i+1].position(); - tf::Vector3 segment_vec = segment_end - segment_start; - - if(i == best_wp_index) - *path_distance += best_t*segment_vec.length(); - else - *path_distance += segment_vec.length(); - } + /* + if(waypoints.size() > 1){ + ROS_INFO_STREAM("WAYPOINT " << 0 << waypoints[0]); } - } - - - if(wp_index != NULL) - *wp_index = best_wp_index; - - return true; -} - -bool Trajectory::get_trajectory_distance_at_closest_point(tf::Vector3 point, - double* trajectory_distance){ - double closest_distance = std::numeric_limits::max(); - *trajectory_distance = 0; - double current_trajectory_distance = 0; - - if(waypoints.size() == 0) - return false; - else if(waypoints.size() == 1) - return true; - else{ - for(int i = 1; i < waypoints.size(); i++){ - // parameteric representation of segment between waypoints: segment_start + t*segment_vec - tf::Vector3 segment_start = waypoints[i-1].position(); - tf::Vector3 segment_end = waypoints[i].position(); - tf::Vector3 segment_vec = segment_end - segment_start; - double segment_length = segment_start.distance(segment_end); - - // project the vector (point - segment_start) onto the parametric line - double t = ((point - segment_start).dot(segment_vec)) / (segment_vec.dot(segment_vec)); - t = std::max(0.0, std::min(1.0, t)); - tf::Vector3 closest_point = segment_start + t*segment_vec; - - // find the distance between the point and the closest point on the current segment - double distance = closest_point.distance(point); - if(distance < closest_distance){ - closest_distance = distance; - *trajectory_distance = current_trajectory_distance + t*segment_length; - } - - current_trajectory_distance += segment_length; + */ + + for (int i = 1; i < waypoints.size(); i++) { + Waypoint& curr_wp = waypoints[i]; + Waypoint& prev_wp = waypoints[i - 1]; + + double distance = curr_wp.position().distance(prev_wp.position()); + double velocity = std::max(0.01, curr_wp.velocity().length()); + // if(i+1 < waypoints.size()){ + // velocity = (velocity + waypoints[i+1].velocity().length())/2.0; + // } + + // ROS_INFO_STREAM("WAYPOINT " << i << " dist: " << distance << " vel: " << velocity << " + // time: " << (prev_wp.time() + distance/velocity) << " prev_time: " << prev_wp.time() << " + // inc: " << (distance/velocity)); + + curr_wp.set_time(prev_wp.time() + distance / velocity); } - } - - return true; -} -bool Trajectory::merge(Trajectory traj){ - if(traj.waypoints.size() == 0){ + generated_waypoint_times = true; +} + +bool Trajectory::get_closest_point(tf2::Vector3 point, tf2::Vector3* closest, int* wp_index, + double* path_distance) { + double closest_distance = std::numeric_limits::max(); + double best_t = 0; + int best_wp_index = 0; + + if (waypoints.size() == 0) { + if (wp_index != NULL) *wp_index = 0; + if (path_distance != NULL) path_distance = 0; + return false; + } else if (waypoints.size() == 1) { + *closest = waypoints[0].position(); + best_wp_index = 0; + if (path_distance != NULL) path_distance = 0; + } else { + for (int i = 1; i < waypoints.size(); i++) { + // parameteric representation of segment between waypoints: segment_start + + // t*segment_vec + tf2::Vector3 segment_start = waypoints[i - 1].position(); + tf2::Vector3 segment_end = waypoints[i].position(); + tf2::Vector3 segment_vec = segment_end - segment_start; + + // project the vector (point - segment_start) onto the parametric line + double t = ((point - segment_start).dot(segment_vec)) / (segment_vec.dot(segment_vec)); + t = std::max(0.0, std::min(1.0, t)); + tf2::Vector3 closest_point = segment_start + t * segment_vec; + + // find the distance between the point and the closest point on the current segment + double distance = closest_point.distance(point); + if (distance < closest_distance) { + closest_distance = distance; + *closest = closest_point; + best_wp_index = i - 1; + best_t = t; + } + } + + if (path_distance != NULL) { + *path_distance = 0; + for (int i = 0; i <= best_wp_index; i++) { + tf2::Vector3 segment_start = waypoints[i].position(); + tf2::Vector3 segment_end = waypoints[i + 1].position(); + tf2::Vector3 segment_vec = segment_end - segment_start; + + if (i == best_wp_index) + *path_distance += best_t * segment_vec.length(); + else + *path_distance += segment_vec.length(); + } + } + } + + if (wp_index != NULL) *wp_index = best_wp_index; + return true; - } - generated_waypoint_times = false; - - Trajectory transformed_traj; - try{ - transformed_traj = traj.to_frame(frame_id, stamp); - } - catch(tf::TransformException& ex){ - ROS_ERROR_STREAM("Transform exception while merging trajectories: " << ex.what()); - } - if(transformed_traj.waypoints.size() == 0){ +} + +bool Trajectory::get_trajectory_distance_at_closest_point(tf2::Vector3 point, + double* trajectory_distance) { + double closest_distance = std::numeric_limits::max(); + *trajectory_distance = 0; + double current_trajectory_distance = 0; + + if (waypoints.size() == 0) + return false; + else if (waypoints.size() == 1) + return true; + else { + for (int i = 1; i < waypoints.size(); i++) { + // parameteric representation of segment between waypoints: segment_start + + // t*segment_vec + tf2::Vector3 segment_start = waypoints[i - 1].position(); + tf2::Vector3 segment_end = waypoints[i].position(); + tf2::Vector3 segment_vec = segment_end - segment_start; + double segment_length = segment_start.distance(segment_end); + + // project the vector (point - segment_start) onto the parametric line + double t = ((point - segment_start).dot(segment_vec)) / (segment_vec.dot(segment_vec)); + t = std::max(0.0, std::min(1.0, t)); + tf2::Vector3 closest_point = segment_start + t * segment_vec; + + // find the distance between the point and the closest point on the current segment + double distance = closest_point.distance(point); + if (distance < closest_distance) { + closest_distance = distance; + *trajectory_distance = current_trajectory_distance + t * segment_length; + } + + current_trajectory_distance += segment_length; + } + } + return true; - } - - if(waypoints.size() == 0){ - waypoints.insert(waypoints.end(), transformed_traj.waypoints.begin(), transformed_traj.waypoints.end()); +} + +bool Trajectory::merge(Trajectory traj) { + if (traj.waypoints.size() == 0) { + return true; + } + generated_waypoint_times = false; + + Trajectory transformed_traj; + try { + transformed_traj = traj.to_frame(frame_id, stamp); + } catch (tf2::TransformException& ex) { + RCLCPP_ERROR_STREAM(node_->get_logger(), + "Transform exception while merging trajectories: " << ex.what()); + } + if (transformed_traj.waypoints.size() == 0) { + return true; + } + + if (waypoints.size() == 0) { + waypoints.insert(waypoints.end(), transformed_traj.waypoints.begin(), + transformed_traj.waypoints.end()); + return true; + } + + tf2::Vector3 closest_point; + int wp_index; + bool valid = + get_closest_point(transformed_traj.waypoints[0].position(), &closest_point, &wp_index); + + waypoints.erase(waypoints.begin() + wp_index + 1, waypoints.end()); + waypoints.insert(waypoints.end(), transformed_traj.waypoints.begin(), + transformed_traj.waypoints.end()); return true; - } - - tf::Vector3 closest_point; - int wp_index; - bool valid = get_closest_point(transformed_traj.waypoints[0].position(), &closest_point, &wp_index); - - waypoints.erase(waypoints.begin() + wp_index+1, waypoints.end()); - waypoints.insert(waypoints.end(), transformed_traj.waypoints.begin(), transformed_traj.waypoints.end()); - return true; -} - -double Trajectory::get_duration(){ - generate_waypoint_times(); - - if(waypoints.size() == 0) - return 0; - - return waypoints.back().time(); -} - -bool Trajectory::get_odom(double time, nav_msgs::Odometry* odom){ - generate_waypoint_times(); - - if(waypoints.size() == 0){ - return false; - } - else if(waypoints.size() == 1){ - *odom = waypoints[0].odometry(ros::Time::now(), frame_id); +} + +double Trajectory::get_duration() { + generate_waypoint_times(); + + if (waypoints.size() == 0) return 0; + + return waypoints.back().time(); +} + +bool Trajectory::get_odom(double time, nav_msgs::msg::Odometry* odom) { + generate_waypoint_times(); + + if (waypoints.size() == 0) { + return false; + } else if (waypoints.size() == 1) { + *odom = waypoints[0].odometry(rclcpp::Clock().now(), frame_id); + return true; + } + + // figure out what waypoints we are between + Waypoint prev_wp = waypoints.back(); + Waypoint curr_wp = waypoints.back(); + Waypoint next_wp = waypoints.back(); + for (int i = 1; i < waypoints.size(); i++) { + if (time <= waypoints[i].time()) { + prev_wp = waypoints[i - 1]; + curr_wp = waypoints[i]; + next_wp = curr_wp; + if (i + 1 < waypoints.size()) next_wp = waypoints[i + 1]; + break; + } + } + + // figure out where we are in between the current and previous waypoints + double t = (time - prev_wp.time()) / (curr_wp.time() - prev_wp.time()); + t = std::max(0.0, std::min(1.0, t)); + + // set frame and timestamp + odom->header.stamp = rclcpp::Clock().now(); // TODO: figure out if this is correct + odom->header.frame_id = frame_id; + odom->child_frame_id = frame_id; + + // interpolate position + tf2::Vector3 position = prev_wp.position() + t * (curr_wp.position() - prev_wp.position()); + odom->pose.pose.position.x = position.x(); + odom->pose.pose.position.y = position.y(); + odom->pose.pose.position.z = position.z(); + + // interpolate velocity + tf2::Vector3 velocity = curr_wp.velocity() + t * (next_wp.velocity() - curr_wp.velocity()); + odom->twist.twist.linear.x = velocity.x(); + odom->twist.twist.linear.y = velocity.y(); + odom->twist.twist.linear.z = velocity.z(); + + // interpolate orientation + tf2::Quaternion q = prev_wp.q().slerp(curr_wp.q(), t); + odom->pose.pose.orientation.x = q.x(); + odom->pose.pose.orientation.y = q.y(); + odom->pose.pose.orientation.z = q.z(); + odom->pose.pose.orientation.w = q.w(); + return true; - } - - // figure out what waypoints we are between - Waypoint prev_wp = waypoints.back(); - Waypoint curr_wp = waypoints.back(); - Waypoint next_wp = waypoints.back(); - for(int i = 1; i < waypoints.size(); i++){ - if(time <= waypoints[i].time()){ - prev_wp = waypoints[i-1]; - curr_wp = waypoints[i]; - next_wp = curr_wp; - if(i+1 < waypoints.size()) - next_wp = waypoints[i+1]; - break; +} + +Trajectory Trajectory::to_frame(std::string target_frame, rclcpp::Time time) { + init_listener(); + + geometry_msgs::msg::TransformStamped transform; + // listener->waitForTransform(target_frame, frame_id, time, ros::Duration(0.1)); + // listener->lookupTransform(target_frame, frame_id, time, transform); + try { + // Use tf2_buffer to get the transform + transform = tf_buffer->lookupTransform(target_frame, frame_id, time); + } catch (const tf2::TransformException& ex) { + RCLCPP_WARN(node_->get_logger(), "Transform error: %s", ex.what()); + return *this; // Handle the error as needed + } + + Trajectory transformed_traj; + transformed_traj.stamp = time; + transformed_traj.frame_id = target_frame; + + for (int i = 0; i < waypoints.size(); i++) { + Waypoint wp = waypoints[i]; + + // tf2::Vector3 transformed_position = transform * wp.position(); + // tf2::Vector3 transformed_velocity = tf::Transform(transform.getRotation()) * + // wp.velocity(); tf2::Quaternion transformed_q = transform * wp.q(); + + tf2::Vector3 transformed_position; + tf2::doTransform(wp.position(), transformed_position, transform); + + tf2::Vector3 transformed_velocity; + tf2::doTransform(wp.velocity(), transformed_velocity, transform); + + tf2::Quaternion transformed_q; + tf2::doTransform(wp.q(), transformed_q, transform); + Waypoint transformed_wp(transformed_position.x(), transformed_position.y(), + transformed_position.z(), getYawFromQuaternion(transformed_q), + transformed_velocity.x(), transformed_velocity.y(), + transformed_velocity.z()); + + transformed_traj.waypoints.push_back(transformed_wp); } - } - - // figure out where we are in between the current and previous waypoints - double t = (time - prev_wp.time()) / (curr_wp.time() - prev_wp.time()); - t = std::max(0.0, std::min(1.0, t)); - - // set frame and timestamp - odom->header.stamp = ros::Time::now(); // TODO: figure out if this is correct - odom->header.frame_id = frame_id; - odom->child_frame_id = frame_id; - - // interpolate position - tf::Vector3 position = prev_wp.position() + t*(curr_wp.position() - prev_wp.position()); - odom->pose.pose.position.x = position.x(); - odom->pose.pose.position.y = position.y(); - odom->pose.pose.position.z = position.z(); - - // interpolate velocity - tf::Vector3 velocity = curr_wp.velocity() + t*(next_wp.velocity() - curr_wp.velocity()); - odom->twist.twist.linear.x = velocity.x(); - odom->twist.twist.linear.y = velocity.y(); - odom->twist.twist.linear.z = velocity.z(); - - // interpolate orientation - tf::Quaternion q = prev_wp.q().slerp(curr_wp.q(), t); - odom->pose.pose.orientation.x = q.x(); - odom->pose.pose.orientation.y = q.y(); - odom->pose.pose.orientation.z = q.z(); - odom->pose.pose.orientation.w = q.w(); - - return true; -} - -Trajectory Trajectory::to_frame(std::string target_frame, ros::Time time) { - init_listener(); - - tf::StampedTransform transform; - listener->waitForTransform(target_frame, frame_id, time, ros::Duration(0.1)); - listener->lookupTransform(target_frame, frame_id, time, transform); - - Trajectory transformed_traj; - transformed_traj.stamp = time; - transformed_traj.frame_id = target_frame; - - for(int i = 0; i < waypoints.size(); i++){ - Waypoint wp = waypoints[i]; - - tf::Vector3 transformed_position = transform*wp.position(); - tf::Vector3 transformed_velocity = tf::Transform(transform.getRotation())*wp.velocity(); - tf::Quaternion transformed_q = transform*wp.q(); - - Waypoint transformed_wp(transformed_position.x(), transformed_position.y(), transformed_position.z(), tf::getYaw(transformed_q), - transformed_velocity.x(), transformed_velocity.y(), transformed_velocity.z()); - - transformed_traj.waypoints.push_back(transformed_wp); - } - - return transformed_traj; -} - -Trajectory Trajectory::respace(double spacing){ - Trajectory traj; - traj.stamp = stamp; - traj.frame_id = frame_id; - //ROS_INFO("RESPACE"); - - if(waypoints.size() > 0){ - double distance = 0; - traj.waypoints.push_back(waypoints[0]); // always add the first waypoint - - for(int i = 1; i < waypoints.size(); i++){ - if(i == waypoints.size()-1){ // always add the last waypoint - traj.waypoints.push_back(waypoints[i]); - continue; - } - //ROS_INFO_STREAM("Waypoint " << i); - Waypoint prev_wp = waypoints[i-1]; - Waypoint curr_wp = waypoints[i]; - double segment_length = prev_wp.position().distance(curr_wp.position()); - //ROS_INFO_STREAM("segment_length: " << segment_length << " distance: " << distance << " spacing: " << spacing); - - if(distance + segment_length >= spacing){ - //ROS_INFO("interpolating"); - Waypoint interp_wp = prev_wp.interpolate(curr_wp, (spacing - distance)/segment_length); - traj.waypoints.push_back(interp_wp); - distance = 0; - } - else - distance += segment_length; + + return transformed_traj; +} + +Trajectory Trajectory::respace(double spacing) { + Trajectory traj; + traj.stamp = stamp; + traj.frame_id = frame_id; + // ROS_INFO("RESPACE"); + + if (waypoints.size() > 0) { + double distance = 0; + traj.waypoints.push_back(waypoints[0]); // always add the first waypoint + + for (int i = 1; i < waypoints.size(); i++) { + if (i == waypoints.size() - 1) { // always add the last waypoint + traj.waypoints.push_back(waypoints[i]); + continue; + } + // ROS_INFO_STREAM("Waypoint " << i); + Waypoint prev_wp = waypoints[i - 1]; + Waypoint curr_wp = waypoints[i]; + double segment_length = prev_wp.position().distance(curr_wp.position()); + // ROS_INFO_STREAM("segment_length: " << segment_length << " distance: " << distance << + // " spacing: " << spacing); + + if (distance + segment_length >= spacing) { + // ROS_INFO("interpolating"); + Waypoint interp_wp = + prev_wp.interpolate(curr_wp, (spacing - distance) / segment_length); + traj.waypoints.push_back(interp_wp); + distance = 0; + } else + distance += segment_length; + } } - } - - return traj; -} - -Trajectory Trajectory::shorten(double new_length){ - Trajectory traj; - traj.stamp = stamp; - traj.frame_id = frame_id; - - if(waypoints.size() > 0){ - double distance = 0; - traj.waypoints.push_back(waypoints[0]); // always add the first waypoint - - for(int i = 1; i < waypoints.size(); i++){ - Waypoint prev_wp = waypoints[i-1]; - Waypoint curr_wp = waypoints[i]; - double segment_length = prev_wp.position().distance(curr_wp.position()); - - if(distance + segment_length >= new_length){ - Waypoint interp_wp = prev_wp.interpolate(curr_wp, (new_length - distance)/segment_length); - traj.waypoints.push_back(interp_wp); - break; - } - else{ - traj.waypoints.push_back(curr_wp); - distance += segment_length; - } + + return traj; +} + +Trajectory Trajectory::shorten(double new_length) { + Trajectory traj; + traj.stamp = stamp; + traj.frame_id = frame_id; + + if (waypoints.size() > 0) { + double distance = 0; + traj.waypoints.push_back(waypoints[0]); // always add the first waypoint + + for (int i = 1; i < waypoints.size(); i++) { + Waypoint prev_wp = waypoints[i - 1]; + Waypoint curr_wp = waypoints[i]; + double segment_length = prev_wp.position().distance(curr_wp.position()); + + if (distance + segment_length >= new_length) { + Waypoint interp_wp = + prev_wp.interpolate(curr_wp, (new_length - distance) / segment_length); + traj.waypoints.push_back(interp_wp); + break; + } else { + traj.waypoints.push_back(curr_wp); + distance += segment_length; + } + } } - } - - return traj; -} - -Trajectory Trajectory::get_subtrajectory_distance(double start, double end){ - Trajectory traj; - traj.stamp = stamp; - traj.frame_id = frame_id; - - if(waypoints.size() > 0){ - double distance = 0; - - for(int i = 1; i < waypoints.size(); i++){ - Waypoint prev_wp = waypoints[i-1]; - Waypoint curr_wp = waypoints[i]; - double segment_length = prev_wp.position().distance(curr_wp.position()); - - if(start >= distance && start <= distance+segment_length){ - Waypoint interp_start_wp = prev_wp.interpolate(curr_wp, (start-distance)/segment_length); - traj.waypoints.push_back(interp_start_wp); - } - - if(distance+segment_length > start && distance+segment_length < end){ - traj.waypoints.push_back(curr_wp); - } - - if(end >= distance && end <= distance+segment_length){ - Waypoint interp_end_wp = prev_wp.interpolate(curr_wp, (end-distance)/segment_length); - traj.waypoints.push_back(interp_end_wp); - } - - distance += segment_length; + + return traj; +} + +Trajectory Trajectory::get_subtrajectory_distance(double start, double end) { + Trajectory traj; + traj.stamp = stamp; + traj.frame_id = frame_id; + + if (waypoints.size() > 0) { + double distance = 0; + + for (int i = 1; i < waypoints.size(); i++) { + Waypoint prev_wp = waypoints[i - 1]; + Waypoint curr_wp = waypoints[i]; + double segment_length = prev_wp.position().distance(curr_wp.position()); + + if (start >= distance && start <= distance + segment_length) { + Waypoint interp_start_wp = + prev_wp.interpolate(curr_wp, (start - distance) / segment_length); + traj.waypoints.push_back(interp_start_wp); + } + + if (distance + segment_length > start && distance + segment_length < end) { + traj.waypoints.push_back(curr_wp); + } + + if (end >= distance && end <= distance + segment_length) { + Waypoint interp_end_wp = + prev_wp.interpolate(curr_wp, (end - distance) / segment_length); + traj.waypoints.push_back(interp_end_wp); + } + + distance += segment_length; + } + } + + return traj; +} + +void Trajectory::set_fixed_height(double height) { + for (int i = 0; i < waypoints.size(); i++) waypoints[i].z_ = height; +} + +int Trajectory::waypoint_count() { return waypoints.size(); } + +Waypoint Trajectory::get_waypoint(int index) { return waypoints[index]; } + +std::string Trajectory::get_frame_id() { return frame_id; } + +core_trajectory_msgs::msg::TrajectoryXYZVYaw Trajectory::get_TrajectoryXYZVYaw() { + core_trajectory_msgs::msg::TrajectoryXYZVYaw path; + path.header.stamp = stamp; + path.header.frame_id = frame_id; + + for (int i = 0; i < waypoints.size(); i++) { + Waypoint wp = waypoints[i]; + + core_trajectory_msgs::msg::WaypointXYZVYaw w; + w.position.x = wp.x(); + w.position.y = wp.y(); + w.position.z = wp.z(); + w.yaw = getYawFromQuaternion(wp.q()); + w.velocity = wp.velocity().length(); + + path.waypoints.push_back(w); } - } - - return traj; -} - -void Trajectory::set_fixed_height(double height){ - for(int i = 0; i < waypoints.size(); i++) - waypoints[i].z_ = height; -} - -int Trajectory::waypoint_count(){ - return waypoints.size(); -} - -Waypoint Trajectory::get_waypoint(int index){ - return waypoints[index]; -} - -std::string Trajectory::get_frame_id(){ - return frame_id; -} - -core_trajectory_msgs::TrajectoryXYZVYaw Trajectory::get_TrajectoryXYZVYaw(){ - core_trajectory_msgs::TrajectoryXYZVYaw path; - path.header.stamp = stamp; - path.header.frame_id = frame_id; - - for(int i = 0; i < waypoints.size(); i++){ - Waypoint wp = waypoints[i]; - - core_trajectory_msgs::WaypointXYZVYaw w; - w.position.x = wp.x(); - w.position.y = wp.y(); - w.position.z = wp.z(); - w.yaw = tf::getYaw(wp.q()); - w.velocity = wp.velocity().length(); - - path.waypoints.push_back(w); - } - - return path; -} - -std::vector Trajectory::get_vector_PointStamped(){ - std::vector points; - - for(int i = 0; i < waypoints.size(); i++){ - Waypoint wp = waypoints[i]; - - geometry_msgs::PointStamped point; - point.header.stamp = stamp; - point.header.frame_id = frame_id; - point.point.x = wp.x(); - point.point.y = wp.y(); - point.point.z = wp.z(); - - points.push_back(point); - } - - return points; -} - -visualization_msgs::MarkerArray Trajectory::get_markers(float r, float g, float b, float a, bool show_poses, bool show_velocity){ - visualization_msgs::MarkerArray marker_array; - ros::Time now = ros::Time::now(); - - visualization_msgs::Marker clear; - clear.ns = marker_namespace; - clear.action = visualization_msgs::Marker::DELETEALL; - marker_array.markers.push_back(clear); - - visualization_msgs::Marker lines; - lines.header.stamp = now; - lines.header.frame_id = frame_id; - lines.ns = marker_namespace; - lines.id = waypoints.size(); - lines.type = visualization_msgs::Marker::LINE_STRIP; - lines.action = visualization_msgs::Marker::ADD; - lines.scale.x = 0.1; - - for(int i = 0; i < waypoints.size(); i++){ - Waypoint wp = waypoints[i]; - - if(show_poses){ - visualization_msgs::Marker arrow; - arrow.header.stamp = now; - arrow.header.frame_id = frame_id; - arrow.ns = marker_namespace; - arrow.id = i; - arrow.type = visualization_msgs::Marker::ARROW; - arrow.action = visualization_msgs::Marker::ADD; - - arrow.pose.position.x = wp.position().x(); - arrow.pose.position.y = wp.position().y(); - arrow.pose.position.z = wp.position().z(); - arrow.pose.orientation.x = wp.q().x(); - arrow.pose.orientation.y = wp.q().y(); - arrow.pose.orientation.z = wp.q().z(); - arrow.pose.orientation.w = wp.q().w(); - arrow.scale.x = 0.5; // length - arrow.scale.y = 0.1; // width - arrow.scale.z = 0.1; // height - arrow.color.r = r; - arrow.color.g = g; - arrow.color.b = b; - arrow.color.a = a; - - marker_array.markers.push_back(arrow); + + return path; +} + +std::vector Trajectory::get_vector_PointStamped() { + std::vector points; + + for (int i = 0; i < waypoints.size(); i++) { + Waypoint wp = waypoints[i]; + + geometry_msgs::msg::PointStamped point; + point.header.stamp = stamp; + point.header.frame_id = frame_id; + point.point.x = wp.x(); + point.point.y = wp.y(); + point.point.z = wp.z(); + + points.push_back(point); } - if(show_velocity){ - visualization_msgs::Marker vel_arrow; - vel_arrow.header.stamp = now; - vel_arrow.header.frame_id = frame_id; - vel_arrow.ns = marker_namespace + "_velocities"; - vel_arrow.id = i; - vel_arrow.type = visualization_msgs::Marker::ARROW; - vel_arrow.action = visualization_msgs::Marker::ADD; - - geometry_msgs::Point point1, point2; - point1.x = wp.position().x(); - point1.y = wp.position().y(); - point1.z = wp.position().z()+0.2; - point2.x = wp.position().x() + wp.velocity().normalized().x()/3.; - point2.y = wp.position().y() + wp.velocity().normalized().y()/3.; - point2.z = wp.position().z()+0.2 + wp.velocity().normalized().z()/3.; - vel_arrow.points.push_back(point1); - vel_arrow.points.push_back(point2); - vel_arrow.scale.x = 0.1; - vel_arrow.scale.y = 0.15; - vel_arrow.scale.z = 0.1; - vel_arrow.color.r = r; - vel_arrow.color.g = g; - vel_arrow.color.b = b; - vel_arrow.color.a = a; - - marker_array.markers.push_back(vel_arrow); + return points; +} + +visualization_msgs::msg::MarkerArray Trajectory::get_markers(float r, float g, float b, float a, + bool show_poses, bool show_velocity) { + visualization_msgs::msg::MarkerArray marker_array; + auto now = rclcpp::Clock().now(); + + visualization_msgs::msg::Marker clear; + clear.ns = marker_namespace; + clear.action = visualization_msgs::msg::Marker::DELETEALL; + marker_array.markers.push_back(clear); + + visualization_msgs::msg::Marker lines; + lines.header.stamp = now; + lines.header.frame_id = frame_id; + lines.ns = marker_namespace; + lines.id = waypoints.size(); + lines.type = visualization_msgs::msg::Marker::LINE_STRIP; + lines.action = visualization_msgs::msg::Marker::ADD; + lines.scale.x = 0.1; + + for (int i = 0; i < waypoints.size(); i++) { + Waypoint wp = waypoints[i]; + + if (show_poses) { + visualization_msgs::msg::Marker arrow; + arrow.header.stamp = now; + arrow.header.frame_id = frame_id; + arrow.ns = marker_namespace; + arrow.id = i; + arrow.type = visualization_msgs::msg::Marker::ARROW; + arrow.action = visualization_msgs::msg::Marker::ADD; + + arrow.pose.position.x = wp.position().x(); + arrow.pose.position.y = wp.position().y(); + arrow.pose.position.z = wp.position().z(); + arrow.pose.orientation.x = wp.q().x(); + arrow.pose.orientation.y = wp.q().y(); + arrow.pose.orientation.z = wp.q().z(); + arrow.pose.orientation.w = wp.q().w(); + arrow.scale.x = 0.5; // length + arrow.scale.y = 0.1; // width + arrow.scale.z = 0.1; // height + arrow.color.r = r; + arrow.color.g = g; + arrow.color.b = b; + arrow.color.a = a; + + marker_array.markers.push_back(arrow); + } + + if (show_velocity) { + visualization_msgs::msg::Marker vel_arrow; + vel_arrow.header.stamp = now; + vel_arrow.header.frame_id = frame_id; + vel_arrow.ns = marker_namespace + "_velocities"; + vel_arrow.id = i; + vel_arrow.type = visualization_msgs::msg::Marker::ARROW; + vel_arrow.action = visualization_msgs::msg::Marker::ADD; + + geometry_msgs::msg::Point point1, point2; + point1.x = wp.position().x(); + point1.y = wp.position().y(); + point1.z = wp.position().z() + 0.2; + point2.x = wp.position().x() + wp.velocity().normalized().x() / 3.; + point2.y = wp.position().y() + wp.velocity().normalized().y() / 3.; + point2.z = wp.position().z() + 0.2 + wp.velocity().normalized().z() / 3.; + vel_arrow.points.push_back(point1); + vel_arrow.points.push_back(point2); + vel_arrow.scale.x = 0.1; + vel_arrow.scale.y = 0.15; + vel_arrow.scale.z = 0.1; + vel_arrow.color.r = r; + vel_arrow.color.g = g; + vel_arrow.color.b = b; + vel_arrow.color.a = a; + + marker_array.markers.push_back(vel_arrow); + } + + geometry_msgs::msg::Point p; + p.x = wp.position().x(); + p.y = wp.position().y(); + p.z = wp.position().z(); + lines.points.push_back(p); + std_msgs::msg::ColorRGBA color; + color.r = r; + color.g = g; + color.b = b; + color.a = a; + lines.colors.push_back(color); } - - geometry_msgs::Point p; - p.x = wp.position().x(); - p.y = wp.position().y(); - p.z = wp.position().z(); - lines.points.push_back(p); - std_msgs::ColorRGBA color; - color.r = r; - color.g = g; - color.b = b; - color.a = a; - lines.colors.push_back(color); - } - - marker_array.markers.push_back(lines); - - return marker_array; + + marker_array.markers.push_back(lines); + + return marker_array; } //=================================================================================== //--------------------------------- Dynamic Trajectories ---------------------------- //=================================================================================== -TakeoffTrajectory::TakeoffTrajectory(double height, double velocity, double path_roll, double path_pitch, bool relative_to_orientation){ - this->height = height; - this->velocity = velocity; - this->path_roll = path_roll; - this->path_pitch = path_pitch; - this->relative_to_orientation = relative_to_orientation; -} - -core_trajectory_msgs::TrajectoryXYZVYaw TakeoffTrajectory::get_trajectory(nav_msgs::Odometry odom){ - core_trajectory_msgs::TrajectoryXYZVYaw traj; - traj.header.frame_id = odom.header.frame_id; - traj.header.stamp = odom.header.stamp; - - core_trajectory_msgs::WaypointXYZVYaw wp1, wp2; - - wp1.position.x = odom.pose.pose.position.x; - wp1.position.y = odom.pose.pose.position.y; - wp1.position.z = odom.pose.pose.position.z; - - tf::Quaternion q(odom.pose.pose.orientation.x, - odom.pose.pose.orientation.y, - odom.pose.pose.orientation.z, - odom.pose.pose.orientation.w); - double roll, pitch, yaw; - tf::Matrix3x3(q).getRPY(roll, pitch, yaw); - wp1.yaw = yaw;//tf::getYaw(q); - wp1.velocity = velocity; - - - - wp2.position.x = odom.pose.pose.position.x + height*sin(path_pitch + (relative_to_orientation ? pitch : 0)); - wp2.position.y = odom.pose.pose.position.y + height*sin(path_roll - (relative_to_orientation ? roll : 0)); - wp2.position.z = odom.pose.pose.position.z + height; - wp2.yaw = wp1.yaw; - wp2.velocity = velocity; - - traj.waypoints.push_back(wp1); - traj.waypoints.push_back(wp2); - - return traj; -} - - -AccelerationTrajectory::AccelerationTrajectory(tf::TransformListener* listener, std::string frame, double ax, double ay, double az, double dt, double ht, double max_velocity){ - this->listener = listener; - - ros::NodeHandle nh("acceleration_trajectory"); - set_max_velocity_sub = nh.subscribe("set_max_velocity", 1, &AccelerationTrajectory::set_max_velocity_callback, this); - - this->ax = ax; - this->ay = ay; - this->az = az; - this->dt = dt; - this->ht = ht; - this->max_velocity = max_velocity; - this->frame = frame; -} - -void AccelerationTrajectory::set_max_velocity_callback(std_msgs::Float32 msg){ - max_velocity = msg.data; -} - -core_trajectory_msgs::TrajectoryXYZVYaw AccelerationTrajectory::get_trajectory(nav_msgs::Odometry odom){ - core_trajectory_msgs::TrajectoryXYZVYaw traj; - traj.header.frame_id = frame; - traj.header.stamp = odom.header.stamp; - - try{ - tf::StampedTransform pose_tf; - listener->waitForTransform(frame, odom.header.frame_id, odom.header.stamp, ros::Duration(0.1)); - listener->lookupTransform(frame, odom.header.frame_id, odom.header.stamp, pose_tf); - tf::StampedTransform velocity_tf; - listener->waitForTransform(frame, odom.child_frame_id, odom.header.stamp, ros::Duration(0.1)); - listener->lookupTransform(frame, odom.child_frame_id, odom.header.stamp, velocity_tf); - velocity_tf.setOrigin(tf::Vector3(0, 0, 0)); // only use rotation to transform the velocity - - tf::Vector3 position = pose_tf*tflib::to_tf(odom.pose.pose.position); - tf::Quaternion orientation = pose_tf*tflib::to_tf(odom.pose.pose.orientation); - tf::Vector3 velocity = velocity_tf*tflib::to_tf(odom.twist.twist.linear); - - tf::Vector3 acceleration(ax, ay, az); - - core_trajectory_msgs::WaypointXYZVYaw wp0; - wp0.position.x = position.x(); - wp0.position.y = position.y(); - wp0.position.z = position.z(); - wp0.yaw = 0; - wp0.velocity = velocity.length(); - traj.waypoints.push_back(wp0); - - for(double t = 0; t < ht; t += dt){ - velocity += acceleration*dt; - position += velocity*dt; - - core_trajectory_msgs::WaypointXYZVYaw wp; - wp.position.x = position.x(); - wp.position.y = position.y(); - wp.position.z = position.z(); - wp.yaw = 0; - wp.velocity = std::min(velocity.length(), max_velocity); - traj.waypoints.push_back(wp); +TakeoffTrajectory::TakeoffTrajectory(double height, double velocity, double path_roll, + double path_pitch, bool relative_to_orientation) { + this->height = height; + this->velocity = velocity; + this->path_roll = path_roll; + this->path_pitch = path_pitch; + this->relative_to_orientation = relative_to_orientation; +} + +core_trajectory_msgs::msg::TrajectoryXYZVYaw TakeoffTrajectory::get_trajectory( + nav_msgs::msg::Odometry odom) { + core_trajectory_msgs::msg::TrajectoryXYZVYaw traj; + traj.header.frame_id = odom.header.frame_id; + traj.header.stamp = odom.header.stamp; + + core_trajectory_msgs::msg::WaypointXYZVYaw wp1, wp2; + + wp1.position.x = odom.pose.pose.position.x; + wp1.position.y = odom.pose.pose.position.y; + wp1.position.z = odom.pose.pose.position.z; + + tf2::Quaternion q(odom.pose.pose.orientation.x, odom.pose.pose.orientation.y, + odom.pose.pose.orientation.z, odom.pose.pose.orientation.w); + double roll, pitch, yaw; + tf2::Matrix3x3(q).getRPY(roll, pitch, yaw); + wp1.yaw = yaw; // tf::getYaw(q); + wp1.velocity = velocity; + + wp2.position.x = odom.pose.pose.position.x + + height * sin(path_pitch + (relative_to_orientation ? pitch : 0)); + wp2.position.y = + odom.pose.pose.position.y + height * sin(path_roll - (relative_to_orientation ? roll : 0)); + wp2.position.z = odom.pose.pose.position.z + height; + wp2.yaw = wp1.yaw; + wp2.velocity = velocity; + + traj.waypoints.push_back(wp1); + traj.waypoints.push_back(wp2); + + return traj; +} + +AccelerationTrajectory::AccelerationTrajectory(std::shared_ptr tf_buffer, + std::string frame, double ax, double ay, double az, + double dt, double ht, double max_velocity) + : Node("acceleration_trajectory"), + ax(ax), + ay(ay), + az(az), + dt(dt), + ht(ht), + max_velocity(max_velocity), + frame(frame) { + tf_listener = std::make_shared(*tf_buffer); + + // Create the subscription + set_max_velocity_sub = this->create_subscription( + "set_max_velocity", 1, [this](const std_msgs::msg::Float32::SharedPtr msg) { + this->set_max_velocity_callback(msg); + }); +} + +void AccelerationTrajectory::set_max_velocity_callback(std_msgs::msg::Float32::ConstSharedPtr msg) { + max_velocity = msg->data; +} + +core_trajectory_msgs::msg::TrajectoryXYZVYaw AccelerationTrajectory::get_trajectory( + nav_msgs::msg::Odometry odom) { + core_trajectory_msgs::msg::TrajectoryXYZVYaw traj; + traj.header.frame_id = frame; + traj.header.stamp = odom.header.stamp; + + try { + /* + geometry_msgs::msg::TransformStamped pose_tf; + listener->waitForTransform(frame, odom.header.frame_id, odom.header.stamp, + ros::Duration(0.1)); + listener->lookupTransform(frame, odom.header.frame_id, odom.header.stamp, pose_tf); + geometry_msgs::msg::TransformStamped velocity_tf; + listener->waitForTransform(frame, odom.child_frame_id, odom.header.stamp, + ros::Duration(0.1)); + listener->lookupTransform(frame, odom.child_frame_id, odom.header.stamp, velocity_tf); + */ + geometry_msgs::msg::TransformStamped pose_tf = tf_buffer->lookupTransform( + frame, odom.header.frame_id, odom.header.stamp, rclcpp::Duration::from_seconds(0.1)); + geometry_msgs::msg::TransformStamped velocity_tf = tf_buffer->lookupTransform( + frame, odom.child_frame_id, odom.header.stamp, rclcpp::Duration::from_seconds(0.1)); + + // velocity_tf.setOrigin(tf::Vector3(0, 0, 0)); // only use rotation to transform the + // velocity + velocity_tf.transform.translation.x = 0; + velocity_tf.transform.translation.y = 0; + velocity_tf.transform.translation.z = 0; + + // tf2::Vector3 position = pose_tf * tflib::to_tf(odom.pose.pose.position); + // tf2::Quaternion orientation = pose_tf * tflib::to_tf(odom.pose.pose.orientation); + // tf2::Vector3 velocity = velocity_tf * tflib::to_tf(odom.twist.twist.linear); + + tf2::Vector3 position = tf2::Transform(tf2::Quaternion( + pose_tf.transform.rotation.x, pose_tf.transform.rotation.y, + pose_tf.transform.rotation.z, pose_tf.transform.rotation.w)) * + tflib::to_tf(odom.pose.pose.position); + + tf2::Quaternion orientation = + tf2::Transform( + tf2::Quaternion(pose_tf.transform.rotation.x, pose_tf.transform.rotation.y, + pose_tf.transform.rotation.z, pose_tf.transform.rotation.w)) * + tflib::to_tf(odom.pose.pose.orientation); + + tf2::Vector3 velocity = + tf2::Transform(tf2::Quaternion( + velocity_tf.transform.rotation.x, velocity_tf.transform.rotation.y, + velocity_tf.transform.rotation.z, velocity_tf.transform.rotation.w)) * + tflib::to_tf(odom.twist.twist.linear); + + tf2::Vector3 acceleration(ax, ay, az); + + core_trajectory_msgs::msg::WaypointXYZVYaw wp0; + wp0.position.x = position.x(); + wp0.position.y = position.y(); + wp0.position.z = position.z(); + wp0.yaw = 0; + wp0.velocity = velocity.length(); + traj.waypoints.push_back(wp0); + + for (double t = 0; t < ht; t += dt) { + velocity += acceleration * dt; + position += velocity * dt; + + core_trajectory_msgs::msg::WaypointXYZVYaw wp; + wp.position.x = position.x(); + wp.position.y = position.y(); + wp.position.z = position.z(); + wp.yaw = 0; + wp.velocity = std::min(velocity.length(), max_velocity); + traj.waypoints.push_back(wp); + } + } catch (tf2::TransformException& e) { + RCLCPP_ERROR_STREAM( + rclcpp::get_logger("AccelerationTrajectory"), + "TransformException in AccelerationTrajectory::get_trajectory: " << e.what()); } - } - catch(tf::TransformException& e){ - ROS_ERROR_STREAM("TransformException in AccelerationTrajectory::get_trajectory: " << e.what()); - } - return traj; + return traj; } //=================================================================================== @@ -778,143 +848,145 @@ core_trajectory_msgs::TrajectoryXYZVYaw AccelerationTrajectory::get_trajectory(n //=================================================================================== CurveTrajectory::CurveTrajectory(float linear_velocity, float angular_velocity, std::string frame, - float time, float dt, bool use_heading, float yaw){ - this->linear_velocity = linear_velocity; - this->angular_velocity = angular_velocity; - this->frame = frame; - this->time = time; - this->dt = dt; - this->use_heading = use_heading; - this->yaw = yaw; - - generate_trajectory(); -} - - -void CurveTrajectory::generate_trajectory(){ - float prev_x = 0.f; - float prev_y = 0.f; - float prev_heading = 0.f; - - //TODO: when to fill in trajectory.header.stamp? - trajectory.header.frame_id = frame; - - for(float t = 0; t <= time; t += dt){ - core_trajectory_msgs::WaypointXYZVYaw wp; - - if(t > 0){ - wp.position.x = prev_x + cos(prev_heading)*linear_velocity*dt; - wp.position.y = prev_y + sin(prev_heading)*linear_velocity*dt; - wp.yaw = prev_heading + angular_velocity*dt; - prev_x = wp.position.x; - prev_y = wp.position.y; - prev_heading = wp.yaw; - + float time, float dt, bool use_heading, float yaw) { + this->linear_velocity = linear_velocity; + this->angular_velocity = angular_velocity; + this->frame = frame; + this->time = time; + this->dt = dt; + this->use_heading = use_heading; + this->yaw = yaw; + + generate_trajectory(); +} + +void CurveTrajectory::generate_trajectory() { + float prev_x = 0.f; + float prev_y = 0.f; + float prev_heading = 0.f; + + // TODO: when to fill in trajectory.header.stamp? + trajectory.header.frame_id = frame; + + for (float t = 0; t <= time; t += dt) { + core_trajectory_msgs::msg::WaypointXYZVYaw wp; + + if (t > 0) { + wp.position.x = prev_x + cos(prev_heading) * linear_velocity * dt; + wp.position.y = prev_y + sin(prev_heading) * linear_velocity * dt; + wp.yaw = prev_heading + angular_velocity * dt; + prev_x = wp.position.x; + prev_y = wp.position.y; + prev_heading = wp.yaw; + } + + wp.velocity = linear_velocity; + if (!use_heading) wp.yaw = yaw; + + trajectory.waypoints.push_back(wp); } - - wp.velocity = linear_velocity; - if(!use_heading) - wp.yaw = yaw; - - trajectory.waypoints.push_back(wp); - } } -core_trajectory_msgs::TrajectoryXYZVYaw CurveTrajectory::get_trajectory(){ - return trajectory; +core_trajectory_msgs::msg::TrajectoryXYZVYaw CurveTrajectory::get_trajectory() { + return trajectory; } //=================================================================================== //--------------------------------- Trajectory Library ------------------------------ //=================================================================================== -TrajectoryLibrary::TrajectoryLibrary(std::string config_filename, tf::TransformListener* listener){ - this->listener = listener; - pnh = new ros::NodeHandle("~"); - - YAML::Node config = YAML::LoadFile(config_filename); - - YAML::Node trajectories = config["trajectories"]; - for(int i = 0; i < trajectories.size(); i++){ - YAML::Node traj_node = trajectories[i]; - std::string type = parse(traj_node["type"]); - - if(type == "curve"){ - float linear_velocity = parse(traj_node["linear_velocity"]); - float angular_velocity = M_PI/180. * parse(traj_node["angular_velocity"]); - std::string frame = parse(traj_node["frame"]); - float time = parse(traj_node["time"]); - float dt = parse(traj_node["dt"]); - bool use_heading = true; - float yaw = 0.f; - if(parse(traj_node["yaw"]) == std::string("heading")) - use_heading = true; - else{ - use_heading = false; - yaw = M_PI/180. * parse(traj_node["yaw"]); - } - - CurveTrajectory* traj = new CurveTrajectory(linear_velocity, angular_velocity, frame, time, dt, use_heading, yaw); - - static_trajectories.push_back(traj); - } - else if(type == "acceleration"){ - std::string frame = parse(traj_node["frame"]); - double x; - double y; - double z; - - if(traj_node["x"] && traj_node["y"] && traj_node["z"]){ - x = parse(traj_node["x"]); - y = parse(traj_node["y"]); - z = parse(traj_node["z"]); - } - else if(traj_node["magnitude"]){ - double magnitude = parse(traj_node["magnitude"]); - double magnitude_yaw = M_PI/180. * parse(traj_node["magnitude_yaw"]); - double magnitude_pitch = M_PI/180. * parse(traj_node["magnitude_pitch"]); - - tf::Quaternion q; - q.setRPY(0, magnitude_pitch, magnitude_yaw); - tf::Vector3 vector = tf::Transform(q)*tf::Vector3(magnitude, 0, 0); - x = vector.x(); - y = vector.y(); - z = vector.z(); - } - else{ - std::cout << "Couldn't construct acceleration trajectory. Need to have either x, y, z or magnitude, magnitude_yaw, magnitude_pitch." << std::endl; - continue; - } - double dt = parse(traj_node["dt"]); - double ht = parse(traj_node["ht"]); - double max_velocity = parse(traj_node["max_velocity"]); - - AccelerationTrajectory* traj = new AccelerationTrajectory(listener, frame, x, y, z, dt, ht, max_velocity); - - dynamic_trajectories.push_back(traj); +TrajectoryLibrary::TrajectoryLibrary(std::string config_filename, + std::shared_ptr tf_buffer, + rclcpp::Node::SharedPtr node) + : tf_buffer_(tf_buffer), + tf_listener_(std::make_shared(*tf_buffer_)), + node_(node) { + // this->listener = listener; + // pnh = new ros::NodeHandle("~"); + + YAML::Node config = YAML::LoadFile(config_filename); + + YAML::Node trajectories = config["trajectories"]; + for (int i = 0; i < trajectories.size(); i++) { + YAML::Node traj_node = trajectories[i]; + std::string type = parse(traj_node["type"]); + + if (type == "curve") { + float linear_velocity = parse(traj_node["linear_velocity"]); + float angular_velocity = M_PI / 180. * parse(traj_node["angular_velocity"]); + std::string frame = parse(traj_node["frame"]); + float time = parse(traj_node["time"]); + float dt = parse(traj_node["dt"]); + bool use_heading = true; + float yaw = 0.f; + if (parse(traj_node["yaw"]) == std::string("heading")) + use_heading = true; + else { + use_heading = false; + yaw = M_PI / 180. * parse(traj_node["yaw"]); + } + + CurveTrajectory* traj = new CurveTrajectory(linear_velocity, angular_velocity, frame, + time, dt, use_heading, yaw); + + static_trajectories.push_back(traj); + } else if (type == "acceleration") { + std::string frame = parse(traj_node["frame"]); + double x; + double y; + double z; + + if (traj_node["x"] && traj_node["y"] && traj_node["z"]) { + x = parse(traj_node["x"]); + y = parse(traj_node["y"]); + z = parse(traj_node["z"]); + } else if (traj_node["magnitude"]) { + double magnitude = parse(traj_node["magnitude"]); + double magnitude_yaw = M_PI / 180. * parse(traj_node["magnitude_yaw"]); + double magnitude_pitch = M_PI / 180. * parse(traj_node["magnitude_pitch"]); + + tf2::Quaternion q; + q.setRPY(0, magnitude_pitch, magnitude_yaw); + tf2::Vector3 vector = tf2::Transform(q) * tf2::Vector3(magnitude, 0, 0); + x = vector.x(); + y = vector.y(); + z = vector.z(); + } else { + std::cout << "Couldn't construct acceleration trajectory. Need to have either x, " + "y, z or magnitude, magnitude_yaw, magnitude_pitch." + << std::endl; + continue; + } + double dt = parse(traj_node["dt"]); + double ht = parse(traj_node["ht"]); + double max_velocity = parse(traj_node["max_velocity"]); + + AccelerationTrajectory* traj = + new AccelerationTrajectory(tf_buffer, frame, x, y, z, dt, ht, max_velocity); + + dynamic_trajectories.push_back(traj); + } } - } } -std::vector TrajectoryLibrary::get_static_trajectories(){ - std::vector trajectories; - - for(int i = 0; i < static_trajectories.size(); i++){ - trajectories.push_back(Trajectory(static_trajectories[i]->get_trajectory())); - } - - return trajectories; -} +std::vector TrajectoryLibrary::get_static_trajectories() { + std::vector trajectories; -std::vector TrajectoryLibrary::get_dynamic_trajectories(nav_msgs::Odometry odom){ - std::vector trajectories; - - for(int i = 0; i < dynamic_trajectories.size(); i++){ - core_trajectory_msgs::TrajectoryXYZVYaw path = dynamic_trajectories[i]->get_trajectory(odom); - if(path.waypoints.size() > 0) - trajectories.push_back(Trajectory(path)); - } - - return trajectories; + for (int i = 0; i < static_trajectories.size(); i++) { + trajectories.push_back(Trajectory(static_trajectories[i]->get_trajectory())); + } + + return trajectories; } +std::vector TrajectoryLibrary::get_dynamic_trajectories(nav_msgs::msg::Odometry odom) { + std::vector trajectories; + + for (int i = 0; i < dynamic_trajectories.size(); i++) { + core_trajectory_msgs::msg::TrajectoryXYZVYaw path = + dynamic_trajectories[i]->get_trajectory(odom); + if (path.waypoints.size() > 0) trajectories.push_back(Trajectory(path)); + } + + return trajectories; +} diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/CMakeLists.txt b/ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/CMakeLists.txt index 292da8bb5..3c105724c 100644 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/CMakeLists.txt +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/CMakeLists.txt @@ -21,7 +21,7 @@ project(disparity_graph) #) find_package(ament_cmake REQUIRED) -find_package(disparity_graph REQUIRED) +#find_package(disparity_graph REQUIRED) find_package(cv_bridge REQUIRED) find_package(geometry_msgs REQUIRED) find_package(image_geometry REQUIRED) @@ -36,7 +36,6 @@ find_package(tf2_geometry_msgs REQUIRED) find_package(pcl_conversions REQUIRED) find_package(pcl_ros REQUIRED) find_package(visualization_msgs REQUIRED) - find_package(tf2_geometry_msgs REQUIRED) find_package(pcl_conversions REQUIRED) # CONFIGURE OPENCV @@ -85,15 +84,22 @@ include_directories( ${pcl_conversions_INCLUDE_DIRS} ${nav_msgs_INCLUDE_DIRS} ${tf2_geometry_msgs_INCLUDE_DIRS} - ${disparity_graph_INCLUDE_DIRS} + #${disparity_graph_INCLUDE_DIRS} ) add_library(disparity_graph src/disparity_graph.cpp) +target_include_directories(disparity_graph +PUBLIC +$ +$) + target_link_libraries(disparity_graph ${catkin_LIBRARIES} ${OpenCV_LIBS}) + + ament_target_dependencies(disparity_graph rclcpp @@ -110,7 +116,7 @@ ament_target_dependencies(disparity_graph cv_bridge image_geometry pcl_conversions - disparity_graph + #disparity_graph ) #Install files # install(DIRECTORY include/${PROJECT_NAME}/ @@ -118,15 +124,37 @@ ament_target_dependencies(disparity_graph # FILES_MATCHING PATTERN "*.h" # PATTERN ".svn" EXCLUDE # ) - +ament_export_targets(disparity_graphTargets HAS_LIBRARY_TARGET) +ament_export_dependencies(rclcpp sensor_msgs +std_msgs +nav_msgs +tf2 +tf2_ros +tf2_eigen +tf2_geometry_msgs +image_transport +image_geometry +visualization_msgs +cv_bridge +image_geometry +pcl_conversions) # install(TARGETS disparity_graph # ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} # LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} # RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} #) -install(TARGETS disparity_graph - DESTINATION lib/${PROJECT_NAME} + install( + TARGETS disparity_graph + EXPORT disparity_graphTargets + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib + RUNTIME DESTINATION bin + INCLUDES DESTINATION include ) +#install(EXPORT export_disparity_graph +# FILE disparity_graphTargets.cmake +# DESTINATION lib/cmake/${PROJECT_NAME} +#) install(DIRECTORY launch DESTINATION share/${PROJECT_NAME}) install(FILES package.xml DESTINATION share/${PROJECT_NAME} @@ -134,8 +162,9 @@ install(FILES package.xml #install(DIRECTORY include ## DESTINATION include/${PROJECT_NAME} #S) -install(DIRECTORY include/ - DESTINATION include/disparity_graph +install( + DIRECTORY include/${PROJECT_NAME}/ + DESTINATION include/${PROJECT_NAME} FILES_MATCHING PATTERN "*.h" ) diff --git a/ros_ws/src/robot/autonomy/planning/local/tflib/CMakeLists.txt b/ros_ws/src/robot/autonomy/planning/local/tflib/CMakeLists.txt index 6f5601386..c7534a9c1 100644 --- a/ros_ws/src/robot/autonomy/planning/local/tflib/CMakeLists.txt +++ b/ros_ws/src/robot/autonomy/planning/local/tflib/CMakeLists.txt @@ -1,36 +1,64 @@ -cmake_minimum_required(VERSION 2.8.3) +cmake_minimum_required(VERSION 3.5) project(tflib) -find_package(catkin REQUIRED COMPONENTS - geometry_msgs - nav_msgs - roscpp - rospy - std_msgs - tf -) +find_package(ament_cmake REQUIRED) +find_package(geometry_msgs REQUIRED) +find_package(nav_msgs REQUIRED) +find_package(rclcpp REQUIRED) +find_package(std_msgs REQUIRED) +find_package(tf2 REQUIRED) +find_package(tf2_ros REQUIRED) -catkin_package( - INCLUDE_DIRS include - CATKIN_DEPENDS rospy roscpp tf - LIBRARIES tflib +include_directories( + ${rclcpp_INCLUDE_DIRS} + ${geometry_msgs_INCLUDE_DIRS} + ${nav_msgs_INCLUDE_DIRS} + ${std_msgs_INCLUDE_DIRS} + ${tf2_INCLUDE_DIRS} + ${tf2_ros_INCLUDE_DIRS} + ${CMAKE_CURRENT_SOURCE_DIR}/include ) -include_directories(${catkin_INCLUDE_DIRS} include ${base_INCLUDE_DIRS}) - - -add_library(tflib - src/tflib.cpp - ) - -target_link_libraries(tflib ${catkin_LIBRARIES} ${base_LIBRARIES}) - +add_library(tflib src/tflib.cpp) -install(TARGETS tflib - ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} - LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} - RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION}) +target_link_libraries(tflib + ${rclcpp_LIBRARIES} + ${geometry_msgs_LIBRARIES} + ${nav_msgs_LIBRARIES} + ${std_msgs_LIBRARIES} + ${tf2_LIBRARIES} + ${tf2_ros_LIBRARIES} +) -install(DIRECTORY include/${PROJECT_NAME}/ - DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}) +ament_export_targets(tflibTargets HAS_LIBRARY_TARGET) +ament_export_dependencies(ament_cmake rclcpp sensor_msgs std_msgs nav_msgs +tf2 +tf2_ros +geometry_msgs +) +# install(TARGETS disparity_graph + # ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} + # LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} + # RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} + #) + install( + TARGETS tflib + EXPORT tflibTargets + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib + RUNTIME DESTINATION bin + INCLUDES DESTINATION include +) +#install(DIRECTORY launch DESTINATION share/${PROJECT_NAME}) +install(FILES package.xml + DESTINATION share/${PROJECT_NAME} +) +#install(DIRECTORY include +## DESTINATION include/${PROJECT_NAME} +#S) +install(DIRECTORY include/ + DESTINATION include/ + FILES_MATCHING PATTERN "*.h" +) +ament_package() \ No newline at end of file diff --git a/ros_ws/src/robot/autonomy/planning/local/tflib/include/tflib/tflib.h b/ros_ws/src/robot/autonomy/planning/local/tflib/include/tflib/tflib.h index 5ab201f19..1930ccd45 100644 --- a/ros_ws/src/robot/autonomy/planning/local/tflib/include/tflib/tflib.h +++ b/ros_ws/src/robot/autonomy/planning/local/tflib/include/tflib/tflib.h @@ -1,44 +1,57 @@ #ifndef _TFLIB_H_ #define _TFLIB_H_ -#include -#include +/* #include +#include #include #include #include +*/ +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +namespace tflib { + +// ========================================================================== +// -------------------------------- Conversion ------------------------------ +// ========================================================================== + +tf2::Quaternion to_tf(geometry_msgs::msg::Quaternion q); +tf2::Vector3 to_tf(geometry_msgs::msg::Point p); +tf2::Vector3 to_tf(geometry_msgs::msg::Vector3 v); +geometry_msgs::msg::TransformStamped to_tf(nav_msgs::msg::Odometry odom, std::string frame); + +// ========================================================================== +// --------------------------------- Utils ---------------------------------- +// ========================================================================== + +tf2::Quaternion get_stabilized(tf2::Quaternion q); +tf2::Transform get_stabilized(tf2::Transform transform); +geometry_msgs::msg::TransformStamped get_stabilized(geometry_msgs::msg::TransformStamped transform); +bool transform_odometry(tf2_ros::Buffer* tf_buffer, nav_msgs::msg::Odometry odom, + std::string new_frame_id, std::string new_child_frame_id, + nav_msgs::msg::Odometry* out_odom); +// This can throw any exception that lookupTransform throws +nav_msgs::msg::Odometry transform_odometry(tf2_ros::Buffer* tf_buffer, nav_msgs::msg::Odometry odom, + std::string new_frame_id, std::string new_child_frame_id, + rclcpp::Duration polling_sleep_duration); + +// ========================================================================== +// ------------------------------ Transforms -------------------------------- +// ========================================================================== -namespace tflib{ - - // ========================================================================== - // -------------------------------- Conversion ------------------------------ - // ========================================================================== - - tf::Quaternion to_tf(geometry_msgs::Quaternion q); - tf::Vector3 to_tf(geometry_msgs::Point p); - tf::Vector3 to_tf(geometry_msgs::Vector3 v); - tf::StampedTransform to_tf(nav_msgs::Odometry odom, std::string frame); - - // ========================================================================== - // --------------------------------- Utils ---------------------------------- - // ========================================================================== - - tf::Quaternion get_stabilized(tf::Quaternion q); - tf::Transform get_stabilized(tf::Transform transform); - tf::StampedTransform get_stabilized(tf::StampedTransform transform); - bool transform_odometry(tf::TransformListener* listener, nav_msgs::Odometry odom, - std::string new_frame_id, std::string new_child_frame_id, nav_msgs::Odometry* out_odom); - // This can throw any exception that lookupTransform throws - nav_msgs::Odometry transform_odometry(tf::TransformListener* listener, nav_msgs::Odometry odom, - std::string new_frame_id, std::string new_child_frame_id, ros::Duration polling_sleep_duration); - - // ========================================================================== - // ------------------------------ Transforms -------------------------------- - // ========================================================================== - - bool to_frame(tf::TransformListener* listener, - tf::Vector3 vec, std::string source, std::string target, ros::Time stamp, - tf::Vector3* out, ros::Duration duration=ros::Duration(0.1)); -} +bool to_frame(tf2_ros::Buffer* tf_buffer, tf2::Vector3 vec, std::string source, std::string target, + rclcpp::Time stamp, tf2::Vector3* out, + rclcpp::Duration duration = rclcpp::Duration(0, 100000000)); // 0.1 second; +} // namespace tflib #endif diff --git a/ros_ws/src/robot/autonomy/planning/local/tflib/package.xml b/ros_ws/src/robot/autonomy/planning/local/tflib/package.xml index 5ac836eed..4cf9afe9d 100644 --- a/ros_ws/src/robot/autonomy/planning/local/tflib/package.xml +++ b/ros_ws/src/robot/autonomy/planning/local/tflib/package.xml @@ -1,77 +1,30 @@ - + + tflib 0.0.0 The tflib package - - - john - - - - - TODO + ament_cmake + rclcpp - - - - - + rclpy + + geometry_msgs + nav_msgs + std_msgs + tf2 + tf2_ros - - - - + builtin_interfaces + ament_lint_auto + ament_lint_common - - - - - - - - - - - - - - - - - - - - - catkin - geometry_msgs - nav_msgs - roscpp - rospy - std_msgs - tf - geometry_msgs - nav_msgs - roscpp - rospy - std_msgs - tf - geometry_msgs - nav_msgs - roscpp - rospy - std_msgs - tf - - - - - + ament_cmake - + \ No newline at end of file diff --git a/ros_ws/src/robot/autonomy/planning/local/tflib/src/tflib.cpp b/ros_ws/src/robot/autonomy/planning/local/tflib/src/tflib.cpp index 46fdc3284..7a54a2100 100644 --- a/ros_ws/src/robot/autonomy/planning/local/tflib/src/tflib.cpp +++ b/ros_ws/src/robot/autonomy/planning/local/tflib/src/tflib.cpp @@ -2,137 +2,192 @@ namespace tflib { - // ========================================================================== - // -------------------------------- Conversion ------------------------------ - // ========================================================================== - - tf::Quaternion to_tf(geometry_msgs::Quaternion q){ - tf::Quaternion quat(q.x, q.y, q.z, q.w); +// ========================================================================== +// -------------------------------- Conversion ------------------------------ +// ========================================================================== + +tf2::Quaternion to_tf(geometry_msgs::msg::Quaternion q) { + tf2::Quaternion quat(q.x, q.y, q.z, q.w); return quat; - } - - tf::Vector3 to_tf(geometry_msgs::Point p){ - tf::Vector3 v(p.x, p.y, p.z); +} + +tf2::Vector3 to_tf(geometry_msgs::msg::Point p) { + tf2::Vector3 v(p.x, p.y, p.z); return v; - } - - - tf::Vector3 to_tf(geometry_msgs::Vector3 v){ - tf::Vector3 vec(v.x, v.y, v.z); - return vec; - } +} - - tf::StampedTransform to_tf(nav_msgs::Odometry odom, std::string frame){ +tf2::Vector3 to_tf(geometry_msgs::msg::Vector3 v) { + tf2::Vector3 vec(v.x, v.y, v.z); + return vec; +} +/* +geometry_msgs::msg::TransformStamped to_tf(nav_msgs::msg::Odometry odom, std::string frame) { tf::Transform transform; transform.setOrigin(to_tf(odom.pose.pose.position)); transform.setRotation(to_tf(odom.pose.pose.orientation)); - - tf::StampedTransform stamped_transform(transform, odom.header.stamp, odom.header.frame_id, frame); + + tf::StampedTransform stamped_transform(transform, odom.header.stamp, odom.header.frame_id, + frame); return stamped_transform; - } +} +*/ +geometry_msgs::msg::TransformStamped to_tf(nav_msgs::msg::Odometry odom, std::string frame) { + geometry_msgs::msg::TransformStamped stamped_transform; + stamped_transform.header.stamp = odom.header.stamp; + stamped_transform.header.frame_id = odom.header.frame_id; + stamped_transform.child_frame_id = frame; + stamped_transform.transform.translation.x = odom.pose.pose.position.x; + stamped_transform.transform.translation.y = odom.pose.pose.position.y; + stamped_transform.transform.translation.z = odom.pose.pose.position.z; + stamped_transform.transform.rotation = odom.pose.pose.orientation; - // ========================================================================== - // --------------------------------- Utils ---------------------------------- - // ========================================================================== + return stamped_transform; +} +// ========================================================================== +// --------------------------------- Utils ---------------------------------- +// ========================================================================== - tf::Quaternion get_stabilized(tf::Quaternion q){ - tf::Quaternion stabilized_q; +tf2::Quaternion get_stabilized(tf2::Quaternion q) { + tf2::Quaternion stabilized_q; double roll, pitch, yaw; - tf::Matrix3x3(q).getRPY(roll, pitch, yaw); + tf2::Matrix3x3(q).getRPY(roll, pitch, yaw); stabilized_q.setRPY(0, 0, yaw); return stabilized_q; - } +} - tf::Transform get_stabilized(tf::Transform transform){ - tf::Transform stabilized_transform; +tf2::Transform get_stabilized(tf2::Transform transform) { + tf2::Transform stabilized_transform; stabilized_transform.setOrigin(transform.getOrigin()); stabilized_transform.setRotation(get_stabilized(transform.getRotation())); return stabilized_transform; - } - - tf::StampedTransform get_stabilized(tf::StampedTransform transform){ - tf::StampedTransform stabilized_transform(transform); +} +/* +tf2::StampedTransform get_stabilized(tf2::StampedTransform transform) { + tf2::StampedTransform stabilized_transform(transform); stabilized_transform.setRotation(get_stabilized(transform.getRotation())); return stabilized_transform; - } - - bool transform_odometry(tf::TransformListener* listener, nav_msgs::Odometry odom, - std::string new_frame_id, std::string new_child_frame_id, nav_msgs::Odometry* out_odom){ - try{ - *out_odom = transform_odometry(listener, odom, new_frame_id, new_child_frame_id, ros::Duration(0.1)); - } - catch(tf::TransformException& ex){ - ROS_ERROR_STREAM("Transform exception in transform_odometry: " << ex.what()); - return false; +} +*/ +geometry_msgs::msg::TransformStamped get_stabilized( + geometry_msgs::msg::TransformStamped transform) { + geometry_msgs::msg::TransformStamped stabilized_transform = transform; + tf2::Quaternion q, stabilized_q; + tf2::fromMsg(transform.transform.rotation, q); + stabilized_q = get_stabilized(q); + stabilized_transform.transform.rotation = + tf2::toMsg(stabilized_q); + return stabilized_transform; +} +bool transform_odometry(tf2_ros::Buffer* tf_buffer, nav_msgs::msg::Odometry odom, + std::string new_frame_id, std::string new_child_frame_id, + nav_msgs::msg::Odometry* out_odom) { + try { + *out_odom = transform_odometry(tf_buffer, odom, new_frame_id, new_child_frame_id, + rclcpp::Duration(0, 100000000)); + } catch (tf2::TransformException& ex) { + RCLCPP_ERROR(rclcpp::get_logger("tflib"), "Transform exception in transform_odometry: %s", + ex.what()); + + return false; } return true; - } - - // This can throw any exception that lookupTransform throws - nav_msgs::Odometry transform_odometry(tf::TransformListener* listener, nav_msgs::Odometry odom, - std::string new_frame_id, std::string new_child_frame_id, ros::Duration polling_sleep_duration){ - nav_msgs::Odometry out_odom; - tf::StampedTransform transform_frame_id, transform_child_frame_id; - listener->waitForTransform(new_frame_id, odom.header.frame_id, odom.header.stamp, polling_sleep_duration); - listener->lookupTransform(new_frame_id, odom.header.frame_id, odom.header.stamp, transform_frame_id); - listener->waitForTransform(new_child_frame_id, odom.child_frame_id, odom.header.stamp, polling_sleep_duration); - listener->lookupTransform(new_child_frame_id, odom.child_frame_id, odom.header.stamp, transform_child_frame_id); - transform_child_frame_id.setOrigin(tf::Vector3(0, 0, 0)); // don't want translation when transforming linear and angular velocities +} + +// This can throw any exception that lookupTransform throws +nav_msgs::msg::Odometry transform_odometry(tf2_ros::Buffer* tf_buffer, nav_msgs::msg::Odometry odom, + std::string new_frame_id, std::string new_child_frame_id, + rclcpp::Duration polling_sleep_duration) { + nav_msgs::msg::Odometry out_odom; + geometry_msgs::msg::TransformStamped transform_frame_id, transform_child_frame_id; + /* + listener->waitForTransform(new_frame_id, odom.header.frame_id, odom.header.stamp, + polling_sleep_duration); + listener->lookupTransform(new_frame_id, odom.header.frame_id, odom.header.stamp, + transform_frame_id); + listener->waitForTransform(new_child_frame_id, odom.child_frame_id, odom.header.stamp, + polling_sleep_duration); + listener->lookupTransform(new_child_frame_id, odom.child_frame_id, odom.header.stamp, + transform_child_frame_id); + */ + transform_frame_id = tf_buffer->lookupTransform(new_frame_id, odom.header.frame_id, + odom.header.stamp, polling_sleep_duration); + transform_child_frame_id = tf_buffer->lookupTransform( + new_child_frame_id, odom.child_frame_id, odom.header.stamp, polling_sleep_duration); + + // transform_child_frame_id.setOrigin(tf::Vector3( + // 0, 0, 0)); // don't want translation when transforming linear and angular velocities + transform_child_frame_id.transform.translation.x = 0; + transform_child_frame_id.transform.translation.y = 0; + transform_child_frame_id.transform.translation.z = 0; out_odom.header.stamp = odom.header.stamp; out_odom.header.frame_id = new_frame_id; out_odom.child_frame_id = new_child_frame_id; - - tf::Vector3 position = transform_frame_id*tflib::to_tf(odom.pose.pose.position); - out_odom.pose.pose.position.x = position.x(); - out_odom.pose.pose.position.y = position.y(); - out_odom.pose.pose.position.z = position.z(); - - tf::Quaternion quaternion = transform_frame_id*tflib::to_tf(odom.pose.pose.orientation); - out_odom.pose.pose.orientation.x = quaternion.x(); - out_odom.pose.pose.orientation.y = quaternion.y(); - out_odom.pose.pose.orientation.z = quaternion.z(); - out_odom.pose.pose.orientation.w = quaternion.w(); - - tf::Vector3 velocity = transform_child_frame_id*tflib::to_tf(odom.twist.twist.linear); - out_odom.twist.twist.linear.x = velocity.x(); - out_odom.twist.twist.linear.y = velocity.y(); - out_odom.twist.twist.linear.z = velocity.z(); - - tf::Vector3 angular = transform_child_frame_id*tflib::to_tf(odom.twist.twist.angular); - out_odom.twist.twist.angular.x = angular.x(); - out_odom.twist.twist.angular.y = angular.y(); - out_odom.twist.twist.angular.z = angular.z(); - + /* + tf2::Vector3 position = transform_frame_id * tflib::to_tf(odom.pose.pose.position); + out_odom.pose.pose.position.x = position.x(); + out_odom.pose.pose.position.y = position.y(); + out_odom.pose.pose.position.z = position.z(); + + tf2::Quaternion quaternion = transform_frame_id * tflib::to_tf(odom.pose.pose.orientation); + out_odom.pose.pose.orientation.x = quaternion.x(); + out_odom.pose.pose.orientation.y = quaternion.y(); + out_odom.pose.pose.orientation.z = quaternion.z(); + out_odom.pose.pose.orientation.w = quaternion.w(); + + tf2::Vector3 velocity = transform_child_frame_id * tflib::to_tf(odom.twist.twist.linear); + out_odom.twist.twist.linear.x = velocity.x(); + out_odom.twist.twist.linear.y = velocity.y(); + out_odom.twist.twist.linear.z = velocity.z(); + + tf2::Vector3 angular = transform_child_frame_id * tflib::to_tf(odom.twist.twist.angular); + out_odom.twist.twist.angular.x = angular.x(); + out_odom.twist.twist.angular.y = angular.y(); + out_odom.twist.twist.angular.z = angular.z(); + */ + // Transform position + tf2::doTransform(odom.pose.pose.position, out_odom.pose.pose.position, transform_frame_id); + + // Transform orientation + tf2::doTransform(odom.pose.pose.orientation, out_odom.pose.pose.orientation, + transform_frame_id); + + // Transform linear velocity + tf2::doTransform(odom.twist.twist.linear, out_odom.twist.twist.linear, + transform_child_frame_id); + + // Transform angular velocity + tf2::doTransform(odom.twist.twist.angular, out_odom.twist.twist.angular, + transform_child_frame_id); return out_odom; - } - - - // ========================================================================== - // ------------------------------ Transforms -------------------------------- - // ========================================================================== - - bool to_frame(tf::TransformListener* listener, - tf::Vector3 vec, std::string source, std::string target, ros::Time stamp, - tf::Vector3* out, ros::Duration duration){ - if(out == NULL) - return false; - - try{ - tf::StampedTransform transform; - listener->waitForTransform(target, source, stamp, duration); - listener->lookupTransform(target, source, stamp, transform); - - *out = transform*vec; - } - catch(tf::TransformException& ex){ - ROS_ERROR_STREAM("TransformException in to_frame: " << ex.what()); - return false; +} + +// ========================================================================== +// ------------------------------ Transforms -------------------------------- +// ========================================================================== + +bool to_frame(tf2_ros::Buffer* tf_buffer, tf2::Vector3 vec, std::string source, std::string target, + rclcpp::Time stamp, tf2::Vector3* out, rclcpp::Duration duration) { + if (out == NULL) return false; + + try { + // tf::StampedTransform transform; + // listener->waitForTransform(target, source, stamp, duration); + // listener->lookupTransform(target, source, stamp, transform); + geometry_msgs::msg::TransformStamped transform = + tf_buffer->lookupTransform(target, source, stamp, duration); + + tf2::Transform tf2_transform; + tf2::fromMsg(transform.transform, tf2_transform); + + *out = tf2_transform * vec; + } catch (tf2::TransformException& ex) { + RCLCPP_ERROR(rclcpp::get_logger("tflib"), "TransformException in to_frame: %s", ex.what()); + return false; } return true; - } - } + +} // namespace tflib From 8105a959806fe97f2b2b3795089f59fb87f7fea0 Mon Sep 17 00:00:00 2001 From: Robbi Exley Date: Mon, 12 Aug 2024 13:33:42 -0400 Subject: [PATCH 17/50] adding base class package --- .../local/base_main_class/CMakeLists.txt | 80 +++++++++++++++++ .../planning/local/base_main_class/LICENSE | 11 +++ .../planning/local/base_main_class/README.md | 18 ++++ .../local/base_main_class/include/base/Base.h | 53 ++++++++++++ .../base_main_class/include/base/BaseNode.h | 27 ++++++ .../include/base/BaseNodelet.h | 20 +++++ .../include/base/HealthMonitor.h | 39 +++++++++ .../local/base_main_class/package.xml | 21 +++++ .../local/base_main_class/src/Base.cpp | 86 +++++++++++++++++++ .../local/base_main_class/src/BaseNode.cpp | 26 ++++++ .../local/base_main_class/src/BaseNodelet.cpp | 22 +++++ .../base_main_class/src/HealthMonitor.cpp | 86 +++++++++++++++++++ .../local/base_main_class/src/main.cpp | 25 ++++++ 13 files changed, 514 insertions(+) create mode 100644 ros_ws/src/robot/autonomy/planning/local/base_main_class/CMakeLists.txt create mode 100644 ros_ws/src/robot/autonomy/planning/local/base_main_class/LICENSE create mode 100644 ros_ws/src/robot/autonomy/planning/local/base_main_class/README.md create mode 100644 ros_ws/src/robot/autonomy/planning/local/base_main_class/include/base/Base.h create mode 100644 ros_ws/src/robot/autonomy/planning/local/base_main_class/include/base/BaseNode.h create mode 100644 ros_ws/src/robot/autonomy/planning/local/base_main_class/include/base/BaseNodelet.h create mode 100644 ros_ws/src/robot/autonomy/planning/local/base_main_class/include/base/HealthMonitor.h create mode 100644 ros_ws/src/robot/autonomy/planning/local/base_main_class/package.xml create mode 100644 ros_ws/src/robot/autonomy/planning/local/base_main_class/src/Base.cpp create mode 100644 ros_ws/src/robot/autonomy/planning/local/base_main_class/src/BaseNode.cpp create mode 100644 ros_ws/src/robot/autonomy/planning/local/base_main_class/src/BaseNodelet.cpp create mode 100644 ros_ws/src/robot/autonomy/planning/local/base_main_class/src/HealthMonitor.cpp create mode 100644 ros_ws/src/robot/autonomy/planning/local/base_main_class/src/main.cpp diff --git a/ros_ws/src/robot/autonomy/planning/local/base_main_class/CMakeLists.txt b/ros_ws/src/robot/autonomy/planning/local/base_main_class/CMakeLists.txt new file mode 100644 index 000000000..a71ca1e56 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/base_main_class/CMakeLists.txt @@ -0,0 +1,80 @@ +cmake_minimum_required(VERSION 2.8.3) +project(base) + +add_compile_options(-Wno-reorder -Wno-unused-parameter) + +find_package(catkin REQUIRED COMPONENTS + roscpp + std_msgs + nodelet +) + + +catkin_package( + INCLUDE_DIRS include + LIBRARIES base_node base_nodelet + CATKIN_DEPENDS roscpp std_msgs nodelet +) + +include_directories( + ${catkin_INCLUDE_DIRS} + include +) + +#============================================================================================ +# ---------------------------- Base Nodelet Library ----------------------------------------- +#============================================================================================ + +add_library(base_nodelet + src/Base.cpp + src/BaseNodelet.cpp + src/HealthMonitor.cpp +) + +add_dependencies(base_nodelet ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) + +target_link_libraries(base_nodelet + ${catkin_LIBRARIES} +) + +install(DIRECTORY include/${PROJECT_NAME}/ + DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} +) + + +#target_link_libraries(base_nodelet ${catkin_LIBRARIES}) +#if(catkin_EXPORTED_LIBRARIES) +# add_dependencies(base_nodelet ${catkin_EXPORTED_LIBRARIES}) +#endif() + +#install(FILES base_nodelet.xml +#DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}) + +#============================================================================================ +# ---------------------------- Base Node Library -------------------------------------------- +#============================================================================================ + +add_library(base_node + src/Base.cpp + src/BaseNode.cpp + src/HealthMonitor.cpp + src/main.cpp +) + +add_dependencies(base_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) + +target_link_libraries(base_node + ${catkin_LIBRARIES} +) + +install(TARGETS base_nodelet base_node + ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} + LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} + RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}) + +install(DIRECTORY include/base/ + DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} + FILES_MATCHING PATTERN "*.h" + PATTERN ".svn" EXCLUDE +) + diff --git a/ros_ws/src/robot/autonomy/planning/local/base_main_class/LICENSE b/ros_ws/src/robot/autonomy/planning/local/base_main_class/LICENSE new file mode 100644 index 000000000..b039fc086 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/base_main_class/LICENSE @@ -0,0 +1,11 @@ +Copyright 2020 Carnegie Mellon University + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +* Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/ros_ws/src/robot/autonomy/planning/local/base_main_class/README.md b/ros_ws/src/robot/autonomy/planning/local/base_main_class/README.md new file mode 100644 index 000000000..5fb8cd906 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/base_main_class/README.md @@ -0,0 +1,18 @@ +This package contains the BaseNode and BaseNodelet classes which monitor the status of the process. All nodes and nodelets you create should inherit from these classes. + +For both nodes and nodelets three functions need to be implemented by derived classes: + +initialize(): This is where you should set up ROS related objects like publishers and subscribers and check for ROS parameters. + +execute(): This is where your main program logic should go. It gets called in a loop at a rate set by the execute_target parameter in your node’s namespace. + +~Destructor(): Do cleanup, like memory deallocation etc., in the destructor. + +For nodes, you also need to implement the BaseNode::get() function to return a pointer to an instance of your class derived from BaseNode. This is used by the main function to run your node. For nodelets, this is not necessary. They are started automatically. + +This package also contains a HealthMonitor class. This lets you time code's running time by calling tic("name") then toc("name"). When tic("name") is called for the first time, a ROS parameter with the name "name_target" is looked up which indicates what the target update rate for the code between tic and toc is. For now, a message is printed if the target rate is not achieved. + +An example implementation of a BaseNode can be found in the example_node package. +An example implementation of a BaseNodelet can be found in the example_nodelet package. + +Author: John Keller jkeller2@andrew.cmu.edu slack: kellerj diff --git a/ros_ws/src/robot/autonomy/planning/local/base_main_class/include/base/Base.h b/ros_ws/src/robot/autonomy/planning/local/base_main_class/include/base/Base.h new file mode 100644 index 000000000..6a984ed34 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/base_main_class/include/base/Base.h @@ -0,0 +1,53 @@ +#ifndef _BASE_H_ +#define _BASE_H_ + +#include +#include +#include "HealthMonitor.h" + +class Base{ + private: + bool failed_; + ros::Timer execute_timer; + + public: + HealthMonitor monitor; + + // These functions will be called by main, do health monitoring + // and call the dervied funtions below + bool _initialize(); + bool _execute(); + virtual ~Base(); + + void execute_timer_callback(const ros::TimerEvent& te); + + // These functions are implemented by the user + virtual bool initialize() = 0; + virtual bool execute() = 0; + + // Failing will stop execution and deinitialize + void fail(std::string reason); + + // Returns the name the user gave to the node/nodelet + std::string get_node_name(); + + // Get node handles. + ros::NodeHandle* get_node_handle(); + ros::NodeHandle* get_private_node_handle(); + + protected: + Base(std::string node_name); + + ros::NodeHandle* node_handle_; + ros::NodeHandle* private_node_handle_; + + std::string node_name_; + + // If this is true, the pure virtual deinitialize() function will not be + // called in _deinitialize(), since you can only catch the end of + // a nodelet by implementing its destructor. + bool is_nodelet_; +}; + + +#endif diff --git a/ros_ws/src/robot/autonomy/planning/local/base_main_class/include/base/BaseNode.h b/ros_ws/src/robot/autonomy/planning/local/base_main_class/include/base/BaseNode.h new file mode 100644 index 000000000..0880aeecc --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/base_main_class/include/base/BaseNode.h @@ -0,0 +1,27 @@ +#ifndef _BASE_NODE_H_ +#define _BASE_NODE_H_ + +#include +#include "Base.h" + +class BaseNode : public Base { + public: + // This will be implemented by a specific task and will return an instance of itself, it will be called by the main function + static BaseNode* get(); + + virtual ~BaseNode(); + + // Needed to call ros init + static int argc; + static char** argv; + + protected: + BaseNode(std::string node_name, bool anonymous=false); + + private: + bool anonymous_; +}; + + + +#endif diff --git a/ros_ws/src/robot/autonomy/planning/local/base_main_class/include/base/BaseNodelet.h b/ros_ws/src/robot/autonomy/planning/local/base_main_class/include/base/BaseNodelet.h new file mode 100644 index 000000000..4d799c14f --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/base_main_class/include/base/BaseNodelet.h @@ -0,0 +1,20 @@ +#ifndef _BASE_NODELET_H_ +#define _BASE_NODELET_H_ + +#include +#include +#include +#include "Base.h" + +class BaseNodelet : public Base, public nodelet::Nodelet { + public: + // This is inherited from nodelet::Nodelet + virtual void onInit(); + + protected: + BaseNodelet(std::string node_name); + ~BaseNodelet(); +}; + + +#endif diff --git a/ros_ws/src/robot/autonomy/planning/local/base_main_class/include/base/HealthMonitor.h b/ros_ws/src/robot/autonomy/planning/local/base_main_class/include/base/HealthMonitor.h new file mode 100644 index 000000000..0ec4a2aba --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/base_main_class/include/base/HealthMonitor.h @@ -0,0 +1,39 @@ +#ifndef _HEALTH_MONITOR_H_ +#define _HEALTH_MONITOR_H_ + +#include +#include +#include +#include + +class Base; //forward declaration + +// Struct for time logging. +struct time_info { + boost::chrono::time_point start; + int64_t elapsed, min_us, max_us; + uint64_t calls; + double target_hz; +}; + +class HealthMonitor { + private: + std::map times; + Base* base_; + + public: + HealthMonitor(Base* base); + + + //========================================================================================= + // ---------------------------- Time Measurement Functions -------------------------------- + //========================================================================================= + + void tic(std::string id); + int64_t toc(std::string id); + double get_target_hz(std::string id); + void print_time_statistics(); +}; + + +#endif diff --git a/ros_ws/src/robot/autonomy/planning/local/base_main_class/package.xml b/ros_ws/src/robot/autonomy/planning/local/base_main_class/package.xml new file mode 100644 index 000000000..ca89dd118 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/base_main_class/package.xml @@ -0,0 +1,21 @@ + + + base + 0.0.0 + The base package + + john + TODO + + catkin + roscpp + std_msgs + nodelet + + roscpp + std_msgs + nodelet + + + + diff --git a/ros_ws/src/robot/autonomy/planning/local/base_main_class/src/Base.cpp b/ros_ws/src/robot/autonomy/planning/local/base_main_class/src/Base.cpp new file mode 100644 index 000000000..102372a40 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/base_main_class/src/Base.cpp @@ -0,0 +1,86 @@ +#include +#include +#include "base/Base.h" +#include "base/HealthMonitor.h" +#include +#include + +Base::Base(std::string node_name) + : node_name_(node_name) + , monitor(this) + , is_nodelet_(false) + , failed_(false){ + +} + +Base::~Base(){ + monitor.print_time_statistics(); +} + +bool Base::_initialize(){ + // get the rate that execute should be called at + double execute_timer_rate; + bool found_param = get_private_node_handle()->getParam("execute_target", execute_timer_rate); + if(!found_param){ + ROS_FATAL_STREAM("The execute_target parameter was not set. Exiting."); + return false; + } + + if (execute_timer_rate <= 0.0){ + ROS_FATAL_STREAM("The execute_target parameter must be larger than 0.0, Exiting."); + return false; + } + + // call the derived class's initialize + bool status = initialize(); + if(!status){ + ROS_FATAL_STREAM("The initialize() function failed. Exiting."); + return false; + } + + // setup the execute timer + execute_timer = get_node_handle()->createTimer(ros::Duration(1./execute_timer_rate), + &Base::execute_timer_callback, this); + + return true; +} + +void Base::execute_timer_callback(const ros::TimerEvent& te){ + bool status = _execute(); + + if(!status){ + execute_timer.stop(); + + if(!is_nodelet_) + ros::shutdown(); + } +} + +bool Base::_execute(){ + monitor.tic("execute"); + bool status = execute(); + monitor.toc("execute"); + + return status && !failed_; +} + + +void Base::fail(std::string reason){ + ROS_FATAL_STREAM("Node " << get_node_name() << " has failed." << std::endl + << "Reason: " << reason); + + failed_ = true; +} + +std::string Base::get_node_name(){ + return ros::this_node::getName(); +} + + +ros::NodeHandle* Base::get_node_handle(){ + return node_handle_; +} + +ros::NodeHandle* Base::get_private_node_handle(){ + return private_node_handle_; +} diff --git a/ros_ws/src/robot/autonomy/planning/local/base_main_class/src/BaseNode.cpp b/ros_ws/src/robot/autonomy/planning/local/base_main_class/src/BaseNode.cpp new file mode 100644 index 000000000..d6a213efb --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/base_main_class/src/BaseNode.cpp @@ -0,0 +1,26 @@ +#include + +#include "base/BaseNode.h" + + +BaseNode::BaseNode(std::string node_name, bool anonymous) + : Base(node_name) + , anonymous_(anonymous){ + + // call ros init + if(anonymous_) + ros::init(argc, argv, node_name_, ros::init_options::AnonymousName | ros::init_options::NoSigintHandler); + else + ros::init(argc, argv, node_name_, ros::init_options::NoSigintHandler); + + // set up the node handles + node_handle_ = new ros::NodeHandle(); + private_node_handle_ = new ros::NodeHandle("~"); +} + +BaseNode::~BaseNode(){ + +} + +int BaseNode::argc = 0; +char** BaseNode::argv = NULL; diff --git a/ros_ws/src/robot/autonomy/planning/local/base_main_class/src/BaseNodelet.cpp b/ros_ws/src/robot/autonomy/planning/local/base_main_class/src/BaseNodelet.cpp new file mode 100644 index 000000000..f70f5263a --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/base_main_class/src/BaseNodelet.cpp @@ -0,0 +1,22 @@ +#include +#include +#include +#include + +#include "base/BaseNodelet.h" + + +BaseNodelet::BaseNodelet(std::string node_name) + : Base(node_name){ + is_nodelet_ = true; +} + +BaseNodelet::~BaseNodelet(){ + +} + +void BaseNodelet::onInit(){ + node_handle_ = &getNodeHandle(); + private_node_handle_ = &getPrivateNodeHandle(); + _initialize(); +} diff --git a/ros_ws/src/robot/autonomy/planning/local/base_main_class/src/HealthMonitor.cpp b/ros_ws/src/robot/autonomy/planning/local/base_main_class/src/HealthMonitor.cpp new file mode 100644 index 000000000..0eba857a7 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/base_main_class/src/HealthMonitor.cpp @@ -0,0 +1,86 @@ +#include +#include "base/HealthMonitor.h" +#include "base/Base.h" +#include + +HealthMonitor::HealthMonitor(Base* base) + : base_(base) +{ +} + +//========================================================================================= +// ---------------------------- Time Measurement Functions -------------------------------- +//========================================================================================= + +void HealthMonitor::tic(std::string id){ + // initialize time struct if tic is called for the first time on id + if(times.count(id) == 0){ + times[id].elapsed = 0; + times[id].calls = 0; + times[id].min_us = std::numeric_limits::max(); + times[id].max_us = std::numeric_limits::min(); + + base_->get_private_node_handle()->param(id + "_target", times[id].target_hz, -1); + } + + // log the current time + times[id].start = boost::chrono::system_clock::now(); +} + +int64_t HealthMonitor::toc(std::string id){ + // get elapsed time if tic has been called. + if(times.count(id) > 0){ + typedef boost::chrono::duration microseconds; + microseconds delta_us = boost::chrono::duration_cast(boost::chrono::system_clock::now() - times[id].start); + int64_t count = delta_us.count(); + times[id].elapsed += count; + times[id].calls++; + times[id].min_us = std::min(count, times[id].min_us); + times[id].max_us = std::max(count, times[id].max_us); + + double hz = 1000000./count; + bool is_hitting_target_hz = hz >= times[id].target_hz; + if(!is_hitting_target_hz) + ROS_ERROR_STREAM(std::setprecision(2) << "execute function is not running fast enought." + << " Actual Hz: " << hz + << " Target Hz: " << times[id].target_hz); + + return count; + } + + // otherwise return -1 + return -1; +} + +double HealthMonitor::get_target_hz(std::string id){ + return times[id].target_hz; +} + +void HealthMonitor::print_time_statistics(){ + ROS_INFO_STREAM( "Time Statistics for " << base_->get_node_name());//node_name_); + int col_width = 15; + ROS_INFO_STREAM(std::setw(col_width) << "Name" + << std::setw(col_width) << "Avg Hz" + << std::setw(col_width) << "Target Hz" + << std::setw(col_width) << "Avg ms" + << std::setw(col_width) << "Min ms" + << std::setw(col_width) << "Max ms" + << std::setw(col_width) << "Calls"); + + for(std::map::iterator it = times.begin(); it != times.end(); it++){ + if(it->second.calls == 0){ + ROS_INFO_STREAM(it->first << ": toc(\"" << it->first << "\"); was never called"); + } + else{ + double average_elapsed = (double)it->second.elapsed/(double)it->second.calls; + double average_hz = 1000000./average_elapsed; + ROS_INFO_STREAM(std::setprecision(2) << std::setw(col_width) << it->first + << std::setw(col_width) << average_hz + << std::setw(col_width) << it->second.target_hz + << std::setw(col_width) << average_elapsed/1000. + << std::setw(col_width) << (double)it->second.min_us/1000. + << std::setw(col_width) << (double)it->second.max_us/1000. + << std::setw(col_width) << it->second.calls); + } + } +} diff --git a/ros_ws/src/robot/autonomy/planning/local/base_main_class/src/main.cpp b/ros_ws/src/robot/autonomy/planning/local/base_main_class/src/main.cpp new file mode 100644 index 000000000..9e2696ee9 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/base_main_class/src/main.cpp @@ -0,0 +1,25 @@ +#include "base/BaseNode.h" +#include +#include + +BaseNode* base_node; + +void interrupt_handler(int sig){ + delete base_node; + ros::shutdown(); +} + +int main(int argc, char** argv){ + BaseNode::argc = argc; + BaseNode::argv = argv; + base_node = BaseNode::get(); + + signal(SIGINT, interrupt_handler); + + if(base_node->_initialize()) + ros::spin(); + else + ROS_FATAL_STREAM("Node initialization failed. Exiting."); + + return 0; +} From c8d208dc27ce7c2a12013d6afee662e68adf280a Mon Sep 17 00:00:00 2001 From: Robbi Exley Date: Wed, 14 Aug 2024 13:11:31 -0400 Subject: [PATCH 18/50] Planner Updates --- .../COLCON_IGNORE} | 0 .../base_main_class/src/HealthMonitor.cpp | 126 +- .../local/behavior_tree/CMakeLists.txt | 263 -- .../planning/local/behavior_tree/README.md | 213 -- .../behavior_tree/config/drone_tree.tree | 36 - .../config/parallel_state_machine.yaml | 29 - .../config/parallel_state_machine_drone.yaml | 50 - .../behavior_tree/config/state_machine.yaml | 65 - .../images/behavior_tree_rqt.png | Bin 165797 -> 0 bytes .../behavior_tree/images/rviz_example.png | Bin 80383 -> 0 bytes .../behavior_tree/.behavior_tree.h.swp | Bin 1024 -> 0 bytes .../include/behavior_tree/behavior_tree.h | 69 - .../behavior_tree/launch/behavior_tree.launch | 9 - .../launch/parallel_state_machine.launch | 10 - .../behavior_tree/launch/state_machine.launch | 10 - .../planning/local/behavior_tree/package.xml | 69 - .../planning/local/behavior_tree/plugin.xml | 15 - .../behavior_tree.perspective | 372 --- .../parallel_state_machine.perspective | 71 - .../behavior_tree/scripts/rqt_state_machine | 10 - .../planning/local/behavior_tree/setup.py | 9 - .../local/behavior_tree/src/behavior_tree.cpp | 91 - .../src/behavior_tree/behavior_tree.py | 417 --- .../behavior_tree/behavior_tree_graphviz.py | 103 - .../src/behavior_tree/behavior_tree_node.py | 43 - .../behavior_tree/parallel_state_machine.py | 153 -- .../src/behavior_tree/pydot_test.py | 17 - .../src/behavior_tree/rc_to_state.py | 45 - .../src/behavior_tree/rqt_test.png | Bin 17804 -> 0 bytes .../rqt_behavior_tree/rqt_behavior_tree.py | 282 --- .../src/rqt_behavior_tree/xdot/__init__.py | 0 .../src/rqt_behavior_tree/xdot/wxxdot.py | 585 ----- .../src/rqt_behavior_tree/xdot/xdot.py | 2174 ---------------- .../src/rqt_behavior_tree/xdot/xdot_qt.py | 2233 ----------------- .../local/behavior_tree_msgs/CMakeLists.txt | 25 - .../msg/BehaviorTreeCommand.msg | 2 - .../msg/BehaviorTreeCommands.msg | 1 - .../local/behavior_tree_msgs/msg/Status.msg | 5 - .../local/behavior_tree_msgs/package.xml | 22 - .../local/core_local_planner/CMakeLists.txt | 2 - .../core_trajectory_controller/CMakeLists.txt | 226 +- .../core_trajectory_controller/package.xml | 10 +- .../src/trajectory_controller.cpp | 364 ++- .../local/core_trajectory_msgs/CMakeLists.txt | 6 +- .../msg/Trajectory.msg | 0 .../srv/TrajectoryMode.srv | 0 .../COLCON_IGNORE} | 0 47 files changed, 372 insertions(+), 7860 deletions(-) rename ros_ws/src/robot/autonomy/planning/local/{behavior_tree/src/behavior_tree/__init__.py => base_main_class/COLCON_IGNORE} (100%) delete mode 100755 ros_ws/src/robot/autonomy/planning/local/behavior_tree/CMakeLists.txt delete mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree/README.md delete mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree/config/drone_tree.tree delete mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree/config/parallel_state_machine.yaml delete mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree/config/parallel_state_machine_drone.yaml delete mode 100755 ros_ws/src/robot/autonomy/planning/local/behavior_tree/config/state_machine.yaml delete mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree/images/behavior_tree_rqt.png delete mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree/images/rviz_example.png delete mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree/include/behavior_tree/.behavior_tree.h.swp delete mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree/include/behavior_tree/behavior_tree.h delete mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree/launch/behavior_tree.launch delete mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree/launch/parallel_state_machine.launch delete mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree/launch/state_machine.launch delete mode 100755 ros_ws/src/robot/autonomy/planning/local/behavior_tree/package.xml delete mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree/plugin.xml delete mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree/rqt_perspectives/behavior_tree.perspective delete mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree/rqt_perspectives/parallel_state_machine.perspective delete mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree/scripts/rqt_state_machine delete mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree/setup.py delete mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree.cpp delete mode 100755 ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/behavior_tree.py delete mode 100755 ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/behavior_tree_graphviz.py delete mode 100755 ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/behavior_tree_node.py delete mode 100755 ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/parallel_state_machine.py delete mode 100755 ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/pydot_test.py delete mode 100755 ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/rc_to_state.py delete mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/rqt_test.png delete mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/rqt_behavior_tree/rqt_behavior_tree.py delete mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/rqt_behavior_tree/xdot/__init__.py delete mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/rqt_behavior_tree/xdot/wxxdot.py delete mode 100755 ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/rqt_behavior_tree/xdot/xdot.py delete mode 100755 ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/rqt_behavior_tree/xdot/xdot_qt.py delete mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree_msgs/CMakeLists.txt delete mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree_msgs/msg/BehaviorTreeCommand.msg delete mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree_msgs/msg/BehaviorTreeCommands.msg delete mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree_msgs/msg/Status.msg delete mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree_msgs/package.xml rename ros_ws/src/robot/autonomy/planning/local/{core_trajectory_controller => core_trajectory_msgs}/msg/Trajectory.msg (100%) rename ros_ws/src/robot/autonomy/planning/local/{core_trajectory_controller => core_trajectory_msgs}/srv/TrajectoryMode.srv (100%) rename ros_ws/src/robot/autonomy/planning/local/{behavior_tree/src/rqt_behavior_tree/__init__.py => disparity_expansion/COLCON_IGNORE} (100%) diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/__init__.py b/ros_ws/src/robot/autonomy/planning/local/base_main_class/COLCON_IGNORE similarity index 100% rename from ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/__init__.py rename to ros_ws/src/robot/autonomy/planning/local/base_main_class/COLCON_IGNORE diff --git a/ros_ws/src/robot/autonomy/planning/local/base_main_class/src/HealthMonitor.cpp b/ros_ws/src/robot/autonomy/planning/local/base_main_class/src/HealthMonitor.cpp index 0eba857a7..8c7aedf26 100644 --- a/ros_ws/src/robot/autonomy/planning/local/base_main_class/src/HealthMonitor.cpp +++ b/ros_ws/src/robot/autonomy/planning/local/base_main_class/src/HealthMonitor.cpp @@ -1,86 +1,82 @@ -#include #include "base/HealthMonitor.h" -#include "base/Base.h" + +#include + #include -HealthMonitor::HealthMonitor(Base* base) - : base_(base) -{ -} +#include "base/Base.h" + +HealthMonitor::HealthMonitor(Base* base) : base_(base) {} //========================================================================================= // ---------------------------- Time Measurement Functions -------------------------------- //========================================================================================= -void HealthMonitor::tic(std::string id){ - // initialize time struct if tic is called for the first time on id - if(times.count(id) == 0){ - times[id].elapsed = 0; - times[id].calls = 0; - times[id].min_us = std::numeric_limits::max(); - times[id].max_us = std::numeric_limits::min(); +void HealthMonitor::tic(std::string id) { + // initialize time struct if tic is called for the first time on id + if (times.count(id) == 0) { + times[id].elapsed = 0; + times[id].calls = 0; + times[id].min_us = std::numeric_limits::max(); + times[id].max_us = std::numeric_limits::min(); - base_->get_private_node_handle()->param(id + "_target", times[id].target_hz, -1); - } + base_->get_private_node_handle()->param(id + "_target", times[id].target_hz, -1); + } - // log the current time - times[id].start = boost::chrono::system_clock::now(); + // log the current time + times[id].start = boost::chrono::system_clock::now(); } -int64_t HealthMonitor::toc(std::string id){ - // get elapsed time if tic has been called. - if(times.count(id) > 0){ - typedef boost::chrono::duration microseconds; - microseconds delta_us = boost::chrono::duration_cast(boost::chrono::system_clock::now() - times[id].start); - int64_t count = delta_us.count(); - times[id].elapsed += count; - times[id].calls++; - times[id].min_us = std::min(count, times[id].min_us); - times[id].max_us = std::max(count, times[id].max_us); +int64_t HealthMonitor::toc(std::string id) { + // get elapsed time if tic has been called. + if (times.count(id) > 0) { + typedef boost::chrono::duration microseconds; + microseconds delta_us = boost::chrono::duration_cast( + boost::chrono::system_clock::now() - times[id].start); + int64_t count = delta_us.count(); + times[id].elapsed += count; + times[id].calls++; + times[id].min_us = std::min(count, times[id].min_us); + times[id].max_us = std::max(count, times[id].max_us); - double hz = 1000000./count; - bool is_hitting_target_hz = hz >= times[id].target_hz; - if(!is_hitting_target_hz) - ROS_ERROR_STREAM(std::setprecision(2) << "execute function is not running fast enought." - << " Actual Hz: " << hz - << " Target Hz: " << times[id].target_hz); + double hz = 1000000. / count; + bool is_hitting_target_hz = hz >= times[id].target_hz; + if (!is_hitting_target_hz) + ROS_ERROR_STREAM(std::setprecision(2) + << "execute function is not running fast enought." + << " Actual Hz: " << hz << " Target Hz: " << times[id].target_hz); - return count; - } + return count; + } - // otherwise return -1 - return -1; + // otherwise return -1 + return -1; } -double HealthMonitor::get_target_hz(std::string id){ - return times[id].target_hz; -} +double HealthMonitor::get_target_hz(std::string id) { return times[id].target_hz; } -void HealthMonitor::print_time_statistics(){ - ROS_INFO_STREAM( "Time Statistics for " << base_->get_node_name());//node_name_); - int col_width = 15; - ROS_INFO_STREAM(std::setw(col_width) << "Name" - << std::setw(col_width) << "Avg Hz" - << std::setw(col_width) << "Target Hz" - << std::setw(col_width) << "Avg ms" - << std::setw(col_width) << "Min ms" - << std::setw(col_width) << "Max ms" - << std::setw(col_width) << "Calls"); +void HealthMonitor::print_time_statistics() { + ROS_INFO_STREAM("Time Statistics for " << base_->get_node_name()); // node_name_); + int col_width = 15; + ROS_INFO_STREAM(std::setw(col_width) + << "Name" << std::setw(col_width) << "Avg Hz" << std::setw(col_width) + << "Target Hz" << std::setw(col_width) << "Avg ms" << std::setw(col_width) + << "Min ms" << std::setw(col_width) << "Max ms" << std::setw(col_width) + << "Calls"); - for(std::map::iterator it = times.begin(); it != times.end(); it++){ - if(it->second.calls == 0){ - ROS_INFO_STREAM(it->first << ": toc(\"" << it->first << "\"); was never called"); - } - else{ - double average_elapsed = (double)it->second.elapsed/(double)it->second.calls; - double average_hz = 1000000./average_elapsed; - ROS_INFO_STREAM(std::setprecision(2) << std::setw(col_width) << it->first - << std::setw(col_width) << average_hz - << std::setw(col_width) << it->second.target_hz - << std::setw(col_width) << average_elapsed/1000. - << std::setw(col_width) << (double)it->second.min_us/1000. - << std::setw(col_width) << (double)it->second.max_us/1000. - << std::setw(col_width) << it->second.calls); + for (std::map::iterator it = times.begin(); it != times.end(); it++) { + if (it->second.calls == 0) { + ROS_INFO_STREAM(it->first << ": toc(\"" << it->first << "\"); was never called"); + } else { + double average_elapsed = (double)it->second.elapsed / (double)it->second.calls; + double average_hz = 1000000. / average_elapsed; + ROS_INFO_STREAM(std::setprecision(2) + << std::setw(col_width) << it->first << std::setw(col_width) + << average_hz << std::setw(col_width) << it->second.target_hz + << std::setw(col_width) << average_elapsed / 1000. + << std::setw(col_width) << (double)it->second.min_us / 1000. + << std::setw(col_width) << (double)it->second.max_us / 1000. + << std::setw(col_width) << it->second.calls); + } } - } } diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/CMakeLists.txt b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/CMakeLists.txt deleted file mode 100755 index 9a3a47894..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/CMakeLists.txt +++ /dev/null @@ -1,263 +0,0 @@ -cmake_minimum_required(VERSION 3.5) -project(behavior_tree) - -## Compile as C++11, supported in ROS Kinetic and newer -#add_compile_options(-std=c++11) -if(NOT CMAKE_CXX_STANDARD) - set(CMAKE_CXX_STANDARD 14) -endif() - -if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") - add_compile_options(-Wall -Wextra -Wpedantic) -endif() - -## Find catkin macros and libraries -## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz) -## is used, also find other catkin packages -find_package(ament_cmake REQUIRED) -find_package(ament_cmake_python REQUIRED) -find_package(rclcpp REQUIRED) -find_package(rclpy REQUIRED) -find_package(std_msgs REQUIRED) -find_package(behavior_tree_msgs REQUIRED) - -## System dependencies are found with CMake's conventions -# find_package(Boost REQUIRED COMPONENTS system) - - -## Uncomment this if the package has a setup.py. This macro ensures -## modules and global scripts declared therein get installed -## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html -#catkin_python_setup() -ament_python_install_package(${PROJECT_NAME} - PACKAGE_DIR src/${PROJECT_NAME} -) - - -################################################ -## Declare ROS messages, services and actions ## -################################################ - -## To declare and build messages, services or actions from within this -## package, follow these steps: -## * Let MSG_DEP_SET be the set of packages whose message types you use in -## your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...). -## * In the file package.xml: -## * add a build_depend tag for "message_generation" -## * add a build_depend and a exec_depend tag for each package in MSG_DEP_SET -## * If MSG_DEP_SET isn't empty the following dependency has been pulled in -## but can be declared for certainty nonetheless: -## * add a exec_depend tag for "message_runtime" -## * In this file (CMakeLists.txt): -## * add "message_generation" and every package in MSG_DEP_SET to -## find_package(catkin REQUIRED COMPONENTS ...) -## * add "message_runtime" and every package in MSG_DEP_SET to -## catkin_package(CATKIN_DEPENDS ...) -## * uncomment the add_*_files sections below as needed -## and list every .msg/.srv/.action file to be processed -## * uncomment the generate_messages entry below -## * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...) - -## Generate messages in the 'msg' folder -# add_message_files( -# FILES -# Message1.msg -# Message2.msg -# ) - -## Generate services in the 'srv' folder -# add_service_files( -# FILES -# Service1.srv -# Service2.srv -# ) - -## Generate actions in the 'action' folder -# add_action_files( -# FILES -# Action1.action -# Action2.action -# ) - -## Generate added messages and services with any dependencies listed here -# generate_messages( -# DEPENDENCIES -# std_msgs -# ) - -################################################ -## Declare ROS dynamic reconfigure parameters ## -################################################ - -## To declare and build dynamic reconfigure parameters within this -## package, follow these steps: -## * In the file package.xml: -## * add a build_depend and a exec_depend tag for "dynamic_reconfigure" -## * In this file (CMakeLists.txt): -## * add "dynamic_reconfigure" to -## find_package(catkin REQUIRED COMPONENTS ...) -## * uncomment the "generate_dynamic_reconfigure_options" section below -## and list every .cfg file to be processed - -## Generate dynamic reconfigure parameters in the 'cfg' folder -# generate_dynamic_reconfigure_options( -# cfg/DynReconf1.cfg -# cfg/DynReconf2.cfg -# ) - -################################### -## catkin specific configuration ## -################################### -## The catkin_package macro generates cmake config files for your package -## Declare things to be passed to dependent projects -## INCLUDE_DIRS: uncomment this if your package contains header files -## LIBRARIES: libraries you create in this project that dependent projects also need -## CATKIN_DEPENDS: catkin_packages dependent projects also need -## DEPENDS: system dependencies of this project that dependent projects also need -#catkin_package( -# INCLUDE_DIRS include -# LIBRARIES behavior_tree -# CATKIN_DEPENDS roscpp rospy std_msgs behavior_tree_msgs -# DEPENDS system_lib -#) -add_library(${PROJECT_NAME} - src/behavior_tree.cpp -) - -target_include_directories(${PROJECT_NAME} -PUBLIC - $ - $ -) - -########### -## Build ## -########### - -## Specify additional locations of header files -## Your package locations should be listed before other locations -include_directories( - include - ${catkin_INCLUDE_DIRS} -) - -#add_library(behavior_tree - # src/behavior_tree.cpp -#) - -ament_target_dependencies(${PROJECT_NAME} - rclcpp - std_msgs - behavior_tree_msgs -) - -target_link_libraries(behavior_tree - ${catkin_LIBRARIES} -) - -install(TARGETS - behavior_tree - DESTINATION lib/${PROJECT_NAME}) - -install(DIRECTORY - launch - DESTINATION share/${PROJECT_NAME}) - -install(DIRECTORY - config - DESTINATION share/${PROJECT_NAME}) - - - -## Declare a C++ library -# add_library(${PROJECT_NAME} -# src/${PROJECT_NAME}/state_machine.cpp -# ) - -## Add cmake target dependencies of the library -## as an example, code may need to be generated before libraries -## either from message generation or dynamic reconfigure -# add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) - -## Declare a C++ executable -## With catkin_make all packages are built within a single CMake context -## The recommended prefix ensures that target names across packages don't collide -# add_executable(${PROJECT_NAME}_node src/state_machine_node.cpp) - -## Rename C++ executable without prefix -## The above recommended prefix causes long target names, the following renames the -## target back to the shorter version for ease of user use -## e.g. "rosrun someones_pkg node" instead of "rosrun someones_pkg someones_pkg_node" -# set_target_properties(${PROJECT_NAME}_node PROPERTIES OUTPUT_NAME node PREFIX "") - -## Add cmake target dependencies of the executable -## same as for the library above -# add_dependencies(${PROJECT_NAME}_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) - -## Specify libraries to link a library or executable target against -# target_link_libraries(${PROJECT_NAME}_node -# ${catkin_LIBRARIES} -# ) - -############# -## Install ## -############# - -#catkin_install_python(PROGRAMS src/state_machine.py -# DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}) - -install(PROGRAMS - scripts/rqt_state_machine - DESTINATION bin/${PROJECT_NAME} -) - -install(FILES - plugin.xml - DESTINATION share/${PROJECT_NAME} -) - - -# all install targets should use catkin DESTINATION variables -# See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html - -## Mark executable scripts (Python etc.) for installation -## in contrast to setup.py, you can choose the destination -# install(PROGRAMS -# scripts/my_python_script -# DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} -# ) - -## Mark executables and/or libraries for installation -# install(TARGETS ${PROJECT_NAME} ${PROJECT_NAME}_node -# ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} -# LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} -# RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} -# ) - -## Mark cpp header files for installation -# install(DIRECTORY include/${PROJECT_NAME}/ -# DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} -# FILES_MATCHING PATTERN "*.h" -# PATTERN ".svn" EXCLUDE -# ) - -## Mark other files for installation (e.g. launch and bag files, etc.) -# install(FILES -# # myfile1 -# # myfile2 -# DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} -# ) - -############# -## Testing ## -############# - -## Add gtest based cpp test target and link libraries -# catkin_add_gtest(${PROJECT_NAME}-test test/test_state_machine.cpp) -# if(TARGET ${PROJECT_NAME}-test) -# target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME}) -# endif() - -## Add folders to be run by python nosetests -# catkin_add_nosetests(test) -ament_package() \ No newline at end of file diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/README.md b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/README.md deleted file mode 100644 index fcc66277d..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/README.md +++ /dev/null @@ -1,213 +0,0 @@ -# Behavior Tree - -This package is a ROS implementation of a behavior tree. - -![picture](images/rviz_example.png) - -## Overview - -Behavior trees define how a set of actions and conditions should be used to accomplish a task. The tree is made up of execution nodes, control flow nodes, and decorator nodes. - -Action nodes and condition nodes are the two types of execution nodes. These nodes are where the state of the system is checked and actions are performed. A condition node returns either SUCCESS or FAILURE to indicate what the state of some part of the system is. For example, an "On Ground" condition node could indicate whether or not the robot is on the ground. These are shown as the oval shaped nodes in the figure above. Green ones indicate SUCCESS, red ones indicate FAILURE. If the body of the node is filled with color, this indicates that the behavior tree is currently checking the value of the condition. If the body color is white but the outline is colored, this means that the behavior tree is not currently checking the value of the condition, so it is not using it to decide which actions to perform. Action nodes are used to make the system perform some action if they are active. Action nodes are shown as square nodes with text in the figure above. They can be either active or inactive. Active nodes are shown with a red, blue, or green body color, inactive nodes are shown with a white body color. If a node is active this means the behavior tree has decided to perform the action. If the node is inactive the behavior tree is not trying to perform the action. For example, if the robot should be taking off, then the "Takeoff" action should be active, while the "Land" action should be inactive. An active action node can have a SUCCESS, RUNNING, or FAILURE status. SUCCESS indicates that the action has is done being performed and finished successfully, FAILURE indicates the action is done but has failed, RUNNING indicates that the action is still being performed. In the figure above green corresponds to SUCCESS, blue to RUNNING and red to FAILURE for action nodes. - -Control flow nodes determine which condition nodes are checked and which action nodes are active or inactive. There are three types of control nodes currently implemented: - -- Fallback Nodes: This node returns FAILURE if and only if all of its children return FAILURE. If one of its children return RUNNING or SUCCESS, it returns RUNNING or SUCCESS and no subsequent children's statuses are checked. These are shown with a ? in the figure above. -- Sequence Nodes: This node returns SUCCESS if and only if all of its children return SUCCESS. If one of its children return RUNNING or FAILURE, it returns RUNNING or FAILURE and no subsequent children's statuses are checked. These are shown with a → in the figure above. -- Parallel Nodes: This node has N chldren. It returns SUCCESS if M of these children return SUCCESS, for some M ≤ N. It returns FAILURE of N - M + 1 children return FAILURE. Otherwise, it returns RUNNING. - -Decorator nodes have one child and its return value is determined by some user defined rule given the child's status as input. There is currently one type of decorator nodes implemented: - -- Not Decorator Node: This has a single condition node as a child. If the child returns SUCCESS, the Not Decorator returns FAILURE. If the child returns FAILURE, the Not Decorator returns SUCCESS. - -A more detailed description of behavior trees can be found here: https://arxiv.org/pdf/1709.00084.pdf. - -## ROS Interface - -This section describes how the behavior tree is implemented in ROS and how nodes implementing conditions and actions should interact with it. A full working example can be found in this repository: [https://bitbucket.org/cmusubt/behavior_tree_example/src/master/] - -Click the image below to play the video. This is a demo of the behavior tree. It can be run using the behavior_tree_example package. - -[![Behavior Tree Example](http://img.youtube.com/vi/-xRF52uCHo8/0.jpg)](https://www.youtube.com/watch?v=-xRF52uCHo8 "Behavior Tree Example") - -### Defining the Structure - -The strucutre of the behavior tree is defined with a configuration file, an example of which is shown below: - -``` --> - ? - (Example Condition) - [Example Action] -``` - -The first node in the behavior tree above is a Sequence node indicated by a "->". Tabs are used to indicate a parent chlid relationship. The Sequence node has a child Fallback node, indicated by a "?". This Fallback node has two children, a condition node "(Example Condition)" and an action node "\[Example Node\]". Condition nodes must be surrounded by parenthesis, action nodes must be surrounded by square brackets. The text inside of the parenthesis/brackets can be anything. This is meant to correspond to how the are visualized in the graph. - -Parallel nodes are declared with "|| 2", where 2 is the number of child nodes that need to return SUCCESS. Decorator nodes are declared with "" where X is the type of decorator node, for example, a Not Decorator Node would be declared "". Other behavior tree files can also be included using the syntax "include filename" where filename is an absolute path to a behavior tree file. This filename supports the $(find pacakge_name) syntax that roslaunch also supports. Examples use cases can be found in the behavior_tree_example package in examples 2 and 3. - -### Implementing Conditions and Actions - -The `behavior_tree_node.py` takes a configuration file and uses the condition and action nodes defined in it to determine what topics to subscribe and publish to. As mentioned in the Overview section above, a condition node must return SUCCESS or FAILURE and an action node must return SUCCESS, RUNNING, or FAILURE if it is active. The behavior tree node expects the status of conditions to be published to a topic that is the name of the label of the node, converted to lowercase, with spaces replaced with underscores, and "\_success" appended to it. In the example config file above, the status of the node defined by the "(Example Condition)" line would be listened to on a topic named "/example_condition_success". A std_msgs::Bool should be published to this topic by a ROS node implementing a condition, where true indicates success and false indicates failure. For action nodes, the behavior tree notifies a ROS node that the topic is active by publishing a std_msgs::Bool topic, the name of which is determined in a similar way to the condition node topic. For the node defined by the "[Example Action]" line in the config file above, the behavior tree will publish the std_msgs::Bool to a topic named "/example_action_active". True indicates that the action is active, false indicates it is inactive. While the action is active, the behavior tree expects to receive a status from the node indicating SUCCESS, RUNNING, or FAILURE. For the node defined by the "[Example Action]" line, the behavior tree would subscribe to a behavior_tree_msgs::Status published on a topic named "/example_action_status". The Status message type contains one uint8, which should be one of the constants defined in the message, either behavior_tree_msgs::Status::SUCCESS, behavior_tree_msgs::Status::RUNNING, or behavior_tree_msgs::Status::FAILURE. - -Writing a ROS node which implements an action or condition can be done by directly publishing and subscribing to the topics as described above. Alternatively, Condition and Action c++ classes that are defined in the behavior_tree library of this package can be used. The two methods are described below. The behavior_tree_example package, linked above has examples of both methods. - -*Important Note:* In both cases, you need to publish the status of the action or condition at a sufficiently high frequency so that the behavior tree does not consider them to be timed out. The behavior tree has a ROS parameter called "timeout" which indicates the amount of time in seconds it can go without receiving a status from before it considers the action or conditions to be timed out. - -#### Publishing and Subscribing directly - -- Conditions - -For conditions you only need to a publish a std_msgs::Bool. - - -First make sure you include the message type header: - -```c++ -#include -``` - -Ddeclare the publisher somewhere in your code: - -```c++ -ros::Publisher condition_pub = node_handle.advertise("/example_condition_success", 1); -``` - -Now simply publish to it at a sufficiently high frequency. This can be done, for example, in a ros::Timer callback or in a while loop with a ros::Rate.sleep() call: - -```c++ -std_msgs::Bool msg; -msg.data = true; -condition_pub.publish(msg); -``` - -- Actions - -For actions you need to subscribe to the std_msgs::Bool from the behavior tree which indiates whether or not the action is active. When it is active you need to publish the status as a behavior_tree_msgs::Status at a sufficiently high frequency. - -First make sure you include the message type headers: - -```c++ -#include -#include -``` - -Initialize the subscriber and publisher: - -```c++ -bool is_action_active = false; -ros::Subscriber action_active_sub = node_handle.subscribe("/example_action_active", 10, action_active_callback); -ros::Publisher action_status_pub = node_handle.advertise("/example_action_status", 1); -``` - -In the subscriber's callback function, update the bool variable: - -```c++ -void action_active_callback(std_msgs::Bool msg){ - is_action_active = true; -} -``` - -Now check whether the action is active and if it is perform some task and publish it's status. Again, make sure the status is published at a sufficiently high rate. - -```c++ -if(is_action_active){ - behavior_tree_msgs::Status status; - - if( /* the action isn't done yet */ ) - status.status = behavior_tree_msgs::Status::RUNNING; - else if( /* the actions is done and was successful */ ) - status.status = behavior_tree_msgs::Status::SUCCESS; - else - status.status = behavior_tree_msgs::Status::FAILURE; - - action_status_pub.publish(status); -} -``` - -#### Condition and Action Helper Classes - -Instead of directly sending ROS messages, you can use Condition and Action helper classes that set up the publishers and subscribers for you. Make sure your CMakeLists.txt and package.xml depend on the behavior_tree package. - -- Conditions - -Include the library: - -```c++ -#include -``` - -Initialize a condition: - -```c++ -bt::Condition condition(node_handle, "Example Condition"); -``` - -The second argument to the Condition class's construcutor is the same text that the condition node is labled with in your config file. The class automatically creates a subscriber to the corresponding topic that the behavior_tree expects to receive the std_msgs::Bool on. - -Now, set the value of the condition and publish it. As before, make sure to publish at a high enough frequency: - -```c++ -condition.set(true); -condition.publish(); -``` - -You can also get the value of the condition using get(), which returns a bool: - -```c++ -bool success = condition.get(); -``` - -- Actions - -Include the library: - -```c++ -#include -``` - -Initialize an action: - -```c++ -bt::Action action(node_handle, "Example Action"); -``` - -Like the condition node, the Action constructor's second argument is the same text that is on the label of the action node in your config file. The class automatically creates a subscriber to the std_msgs::Bool topic that tells whether the action is active, and a publisher that publishes the std_msgs::String status. Make sure that the node handle you pass to the Action class has a callback queue that can handle receiving the std_msgs::Bool without being delayed too much by other callbacks. - -Now, if the action is active, set the status of the action and publish it. Make sure to publish at a high enough frequency. - -```c++ -if(action.is_active()){ - action.set_success(); - // or action.set_running(); - // or action.set_failure(); - - action->publish(); -} -``` - -You can also check the status you set the action to with the following functions which return bools: - -```c++ -action.is_success(); -action.is_running(); -action.is_failure(); -``` - -### Debugging Tools - -There are also some debugging tools for visualizing the tree and seeing how it behaves with different conditions and actions. - -#### Image Publisher - -The behavior tree publishes a graphviz string that can be made into an image. You can use the `behavior_tree_image_publisher.py` node to subscribe to the graphviz string and publish an image. This is done in the behavior_tree_example launch file. - -#### RQT Debug GUI - -There is an rqt GUI for debugging that your behavior tree works as you expect. Using the interface shown below, you can set the status published by each condition and action using the buttons. This way you don't have to debug the strucuture of your behavior tree by creating ROS nodes. - -To use the plugin, make sure the workspace you build the behavior_tree packages is sourced (source devel/setup.bash) and run `rqt`. In the `Plugins` menu there should be a `Behavior Tree` menu containing the `Behavior Tree` plugin. When you open it for the first time, it won't have a config file loaded. Use the `Open Config...` button and select your behavior tree config file. - -![picture](images/behavior_tree_rqt.png) - - -Author: John Keller slack: kellerj email: jkeller2@andrew.cmu.edu \ No newline at end of file diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/config/drone_tree.tree b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/config/drone_tree.tree deleted file mode 100644 index b36a6b47a..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/config/drone_tree.tree +++ /dev/null @@ -1,36 +0,0 @@ -? - -> - (User Pressed Land Button) - ? - (Landed) - [Land] - -> - (User Pressed Hover Button) - ? - (On Ground) - [Hover] - -> - (User Pressed Return Home Button) - ? - (At Home) - [Go To Home] - -> - (User Pressed Resume Button) - ? - (Is In Offboard Mode) - [Offboard] - ? - (Is Armed) - [Arm] - ? - (Takeoff Complete) - [Takeoff] - ? - (Low Battery) - [Explore] - ? - (At Landing Spot) - [Go To Landing Spot] - ? - (Landed) - [Land] diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/config/parallel_state_machine.yaml b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/config/parallel_state_machine.yaml deleted file mode 100644 index a66d88db2..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/config/parallel_state_machine.yaml +++ /dev/null @@ -1,29 +0,0 @@ -state_machines: - - Idle: - states: - - INITIALIZING - - PAUSED - transitions: - initialize: - from: INITIALIZING - to: PAUSED - resume: - from: PAUSED - to: Mission - - Mission: - states: - - EXPLORING - - RETURNING_HOME - - DROPPING_COMMS - transitions: - explore: - from: [DROPPING_COMMS, RETURNING_HOME] - to: EXPLORING - drop_comms: - from: EXPLORING - to: DROPPING_COMMS - return_home: - from: [EXPLORING, DROPPING_COMMS] - to: RETURNING_HOME - pause: - to: Idle \ No newline at end of file diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/config/parallel_state_machine_drone.yaml b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/config/parallel_state_machine_drone.yaml deleted file mode 100644 index 6d22bd060..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/config/parallel_state_machine_drone.yaml +++ /dev/null @@ -1,50 +0,0 @@ -state_machines: - - Autonomy: - states: - - MANUAL - - OFFBOARD - - DISARMED - - ARMED - - TAKING_OFF - - LANDING - - EXPLORING - - RETURNING_HOME - - GOING_TO_SAFE_SPOT - transitions: - offboard: - from: MANUAL - to: OFFBOARD - manual: - from: OFFBOARD - to: MANUAL - disarm: - from: [OFFBOARD, ARMED, LANDING] - to: DISARMED - arm: - from: [OFFBOARD, DISARMED] - to: ARMED - takeoff: - from: [ARMED, OFFBOARD] - to: TAKING_OFF - land: - from: [TAKING_OFF, EXPLORING, RETURNING_HOME, GOING_TO_SAFE_SPOT, RETURNING_HOME] - to: LANDING - pause: - from: [TAKING_OFF, LANDING, EXPLORING, RETURNING_HOME, GOING_TO_SAFE_SPOT] - to: Pause - explore: - from: [TAKING_OFF, RETURNING_HOME, GOING_TO_SAFE_SPOT] - to: EXPLORING - return_home: - from: EXPLORING - to: RETURNING_HOME - go_to_safe_spot: - from: [EXPLORING] - to: GOING_TO_SAFE_SPOT - - Pause: - states: - - PAUSED - transitions: - resume: - from: PAUSED - to: Autonomy \ No newline at end of file diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/config/state_machine.yaml b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/config/state_machine.yaml deleted file mode 100755 index 56ab47139..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/config/state_machine.yaml +++ /dev/null @@ -1,65 +0,0 @@ -state_machine: - - state: MANUAL - transitions: - - event: offboard - to: OFFBOARD - - state: OFFBOARD - transitions: - - event: arm - to: ARMED - - event: manual - to: MANUAL - - state: DISARMED - transitions: - - event: arm - to: ARMED - - event: manual - to: MANUAL - - state: ARMED - transitions: - - event: takeoff - to: TAKING_OFF - - event: disarm - to: DISARMED - - state: TAKING_OFF - transitions: - - event: explore - to: EXPLORING - - event: land - to: LANDING - - state: EXPLORING - transitions: - - event: land - to: LANDING - - event: go_to_safe_spot - to: GOING_TO_SAFE_SPOT - - event: pause - to: PAUSED - - event: rewind - to: REWINDING - - state: PAUSED - transitions: - - event: explore - to: EXPLORING - - event: land - to: LANDING - - event: rewind - to: REWINDING - - state: REWINDING - transitions: - - event: land - to: LANDING - - event: explore - to: EXPLORING - - event: pause - to: PAUSED - - state: GOING_TO_SAFE_SPOT - transitions: - - event: land - to: LANDING - - state: LANDING - transitions: - - event: pause - to: PAUSED - - event: landed - to: DISARMED \ No newline at end of file diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/images/behavior_tree_rqt.png b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/images/behavior_tree_rqt.png deleted file mode 100644 index e0361577bd58c92ec181c95111988f6bca791c07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 165797 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 diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/images/rviz_example.png b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/images/rviz_example.png deleted file mode 100644 index e6a6116c20df6e71b415e3c96b05c224d1e9076d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 80383 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 $oa3;V&Jcz| zp}Z10&m&6#$~zF=y0zuK_v|?gFoj#r>%W|1vBbco2ZrLO0s9=ic1;BZ0^8hD5#D4p zR=lgNcnSVs$qFe!#1u8sD3?j@~27FzhY1X%#AbVOXS)b`S@f z)gvT4CE>&g^43EE!inr&4WSN6Mw&M=g7Ny~mM<@{FU$!vW5$CE=dw>TVJYp#M(b@W z(IF@f$Jq`Yqbqk{KrjbzFW}x=pUAq1I{vyR^atI!Sulo?&8MtGQ+S8*geiz{bQ!` zlc!Dt!1FVeC!1I zM@3HASQOkyknX6&6LCQh3fj207~Oz9Z-nMo{LMdC zI5VTKY+M?v4-T{nHH5P(M{VU{n5L}0_C;3%BY$3FI8 z3uqp0_ye)rQG^O$h#Vh!1{pa3XBqb#%Mo37A z0n&r|zzcVw`OEOE{^7c{=_%$zoOjEac+B`3?#Ifz3T#FDxMug%8z1%45X2 zNt-v9S`8GyghgoP%m{S2kVD@gE}(d09acOOcq`oNEdb3LZU$Q`qaG#+bRS$?OWX4FF@rs zUqwX}uX++gZSmqzD{Ci5y=?6(8 zo*X`XdL}TwtTwz2G69Du3LtHz+_TB zBX@(w_294|d*Z>di z)Y9m?uLSXE?EdE}WN}OkW*OonZ-?o~FeuPm$YJ<`RG8_f$+4yh0~!=@-~bl_)3jds zn5S9R%3WPu=b<`5l%!i}dgYnv?%#j>pk#?}SXo!chp{T7@v%SNPzg7Cuvpt4LgIo} zW4Vpvp)fcbMK#XRsNq;793PHrwrJPmnv!sk0#I8UBhbcM>Tcfqxwn@M!TCF+BjkCZ zn9>P8_&*!9U8v2fuyBKevxtvLP|VdCY&Me)lS?9mY&yU3Wbim$P`@8adOZP zPzdfPsHf8`rQ_JWnScY8H8ng5O4f$v=7NZ63filb6O)pF0Jsp`Lz0tc(_KH>k?dX> zaPOf+_Nb`|;piFyGI*nD0rbz>zT+NSnCw6ivilJnBeAUaXjyq)f^~$=t2(ZFc=_rT zexI4;h1#d)*c_ww-rmVL@>2SNQm{P0gT6${@j^icX~_I9>af^70w;L&P9N`A9+ZfTw`ZlHriTlIGTY-@Wm{S4L zDQJJXPJtAd1+Xdkv2-44G?0S4g}DmMi*V)*Au267natf>U0s`3ZFud1nRW1=yd{X@6!af*uC2?EqdkU9~C%f?)c%e26O27*wSe z6!{Tua`-gdhmY^|<+X-@l-9ZrabMoQ=Rv84wNU(%8)>R@zk3gm^DI0e?CK({l)|zX zIv!pphVN5@3I&-v0<8)hV&;KN03JCdB|bocT7Y^`8yxtQfGHEley)m&0H8AoardXE zy+~Kp26S(0gm^Ok%$X>}V;I;v`U(nLgn=&<#)cihF0N>6lO}+O3X zv}Qq{L5@^BcrXQTG&OKE^RY}Sdx@Qeg>bmQtiw3zPKdFFZS#%BcY%p!1Y_do0?Jmf z31RI_#Irn98xV7Jn^t}$sHm9anm@o!w0oXMBa|AW@UuK*QFme zX08CBz0a?o#i>u{^F|jEBb#D`jIfn&csx;vnI)}{x*29R027rGsCkYhC&ysUZSoFT z=0l&pw&mbNoFOG6p9{y6mfi?FHDK9-oQ^2Y>dvq(H5Cuj$91#(5g9nM0LJzKjw&fD`ICWNYcRG%&)}F4(7`lOG?f~07 z{RJ5VscgRU{Z&CYiKQh7ZT5$X{ChZbOqGXJ^`Q^W3V8lqaT$iMI*MS=hY>zQ3x$5Sq=-c z1=lKYjuEbke+mmH9L1WJBgueU0#KO;geI#U*%l0XE^xSm7aNrKFQ#C9&%x~-YJ0j& z;b%gcEMst@?a0+2gV^RM=KOKWXbZHzd&lYS?*930nWL{rrYu!#Pgxr`&cc9AG~R?9 zIN0#;a7r9?|KPVXEEQoAJsCcSQrf##nXwdU!8~;+l70 z`=jP_m>L*pQ@6FVt12&N;D?hrmhrr1J7hj1U_ChR$Du=raKk*X0GY@b3NlOqP(vRV zW{Y4$rRSlbPr>CdzkyHo~;o1Tpek|4 zvmICA$VP`81Rkj5i*x{9y#MealIk^_Mo9aEfrx;h=1>)XahA9^d85*TqdNBjJ=(k~ z!;p}&B^R<_;_`z_Y2RS%)|AeE5ir2SLA>;jWGggz=t|L?Kh7ZQvi1C=H9WAp!?cjK zFCX3}teC=Jm5l%eY?$Hp`0?W=__1MWQIO0=izNNT6)97B5i)LtxCUzN@QJ700Pz4K zx)Tn~OL(}$non3vZ0_Hu#fj6<5W_CkLpqCrL@3IfDON#oKS~E0KWK{vp#7|R^l0tG z)86)j1H_jv1JD+Cf+HKT0L>f4NJ9J)w}P1ci<}W7Zy@qEV^vM?;^1Qzj=#)Q zR~I%hF`);YI&0AceS~-j+JT^2Z;Y0cD6;ebmweoZ`OVq&6! zQUX(1nV&`=R8&;Z*4OuXF&j~q7*r&eb@ukrWG9X9o_@kqZQ?0$pROVx5g3>FlP5DY zs>GO&?O)_LM!^39BKgS}Y@uET%90t$7p)NExp)Pwih8~SJtH_tWAPIVl@j)7ED~|Ys_*#NAuSyp zIV>*(AlP(3A7)G8wG7(?8fJhE>-1zJ*7prWJ`i1vu}qqa1c+oq!#uH`%V=#H8t$RX zuMYbhT!_OqXL3v&cXgr|5tk_f;Vn{BI}?2xs0%oOFZ?LB>QvVcH38h6$h`)=^G7auRNN+D(oaloA2MY3H|@!Ckr^ z#10vmka-=BJNae*eOh3ID!iv$RF%UcBWc&Jt??C6oJHA5sSC%!%iB97AwdkcM@ddB zYBy?GBEKM{Z^mr46fUFr#4Cs(eh-2^>pj0dUWVJ}I*{b3{pm585Y4i|35mmPyc)>5 zDSwAe^D6n5m==K7{#3k1x`T#tz1^qB7x`h8c!V07SZm^5Xb7EjT`i3vm_AWy^8Z6fFUnC_D?S@540UN|fAuN}Orl37wkbvj&m-x)DB<sR2~7hLZWxxdYy7m=egYB|$V5)8HxRr3f= zC_stnhqO#M`QmYyu*apRGcn4|Huv8NOPv*ClRN0=T1Ooumd_u z$uKX+%!ME1SVj}*0RpKNDC*Efpxb5U$jeWnv<7&0WRaShfr|?hv#5M4SFRKl6$R?% zt1J@}5uUOL*joy2eFz9>SBg;>9kY^6kmSHLRV$Q}nei7pAof?{my7ZJP=a)A|^iSKN+3-YrNoIh81 zkk}UcsiOuddKZhv88+^*GiUg4Q#tCG4s13+7)~!R@$%&WKDihk2BU|_K=kLR4Pj5v z>eLAV=)|NZ2T;e%uN4<*XX5s&kwhe9; zJOW|_pI$v+*b8z|N$kAo$rqQRp@TaWo(+yRp^gz>vP}q6JV(*IL*BBA{ra|S8fqGd z8K=-01A74g!qfcX#Y(_J0RaJ^(VB$$tPF1=?m+1x(!ImyQPb31dEmh4>b{_%ubV-& zDCHhwn-oLN|Q_6Ru~1Q))G-WMPGkyfp``v@?j;dH}Xw1Fv140t; z*VZZ}RN{!?U(?Mw#yw3z=i62@QDe8FW@`sbL&-Ubo15_JXau&CGbtNyd(EL6hEPV9 z8E zOhe&SJx4)-2O?5P2g-4HfFh?hZ~Q)E*iJ{-g4=(%e-6$(HNl`rGQ>g~TmA=G}fUIFTIkmqneLcgV*ivFuOAO%T;+4mU) z!?GA;;6;c4OGI--bSzVfKoX;PAzXsOg7mpa0wT#5)e)yDfP$)y#PcD7ti;m@OG+vu zEjt+Djxj`WN*>rbK(;8JI2lCbp|3iOu`Xh1sS@e_2=D{PA|nrv4`pqIcxNEB{kzYj z=QEuUAT@T-(Lfgj`&sfGdO=st?F1bKuBi&Y>Fn-4k4pEX)>eC1WpjXNBpwo67B7Ey zFQ`&n)^nJ}6i&AMin@z*Zny{?!TCEMx|C?Z1Vbr;_~w6oqvbOF-~C+BCD3hNe~B1Y z_j{B{5G*z1X&#r5kTA3vs#Yz*A#%kh1&GL9G(D1i1RK==aR52-Uh>1I0u&#*d%=BB z!HSi!|GgiazMW(dR6tH8v=;<||Mq;vFjxWM~D~EQ6gxoI38li9=uW0#0I6b8|>a zN}K-JU3w-FQ($}-g$Wdli$UNaEX-&} zxfh(5w-~Ivkch}(cr3u$*v9viNmNWs82C3dl;>$*Y_&#n1V|cm07W%!;%0HXi~wqX zR91jq-_15`*Z@1Z6`1s)`=TcvTEp|D5C;bbkydbBI0C(3JGycp92bHgOZg%MZu&6b z6JPdRre!QnHT599e0}f1lz|?aa>x}ayd-!{325$WH9#u`;D%DQGhR*a)6D6DGJ4U7 z|8lrpLHV)Lec*s&DJj|UEjIey;4pD^Ixyu%XXz1LA%jlS4NRUu&S2py*t~=8x}xeD z&hh7|IZaeP?%9$ikuQaf^XD0;uZ)n8&qMzRw(i9pH-HBPTzo_Z>O^H>m!J>;@%o3q z^f2^Jf`};88NGd5>)-BxN6}@w4J}Y^gLDQ76Pll&->VXH3LYm#_JX)%r&&?#5(YP} ztiLP>24o&i)p@^c8EEin31dO3tk%_Rr-W6NfA1JnuvbyL#> zHy^Kn-$?@m%kCbBHXuKDL5DxuIG?S8O8DqSdk-?r!1W&tN4rbYkl9h7j=c^a>P z;F-=P(IMzF;d7eSlcW%xG`i$wUte1cqC2X5cH?6|04cP-3ru$Z?ewF$d5rLNnCT8N zF|i6*(jzM%{Dr|YqE|k>aE7SpB#6TyMm(du4&T>$WazGtu*YN_9UT?h8w~V*Abb}} zHc}<>wAl{sG=hk1&FB{cNUXu$@IZyW2x7E!wBYGxL*)Es0Dn_Q9G$?X;z2E`{Z&Q9%q~dRUyfsP}=4GOQylaQl2UW)ZI}y zwsQLV=q{B^Ad%f*dISL7(FHXD0-n%YLYVawe%eH4L5)wHNsx{xi2<&y5wuY}Igu2@ zSP_b<+VxSukLvGcej%tD#CiQY(y?RBraA0Bf;3DC0bbN?Y!r#J|=_=a& zGBR=R-noDrFSXcQO?BJ%a9D~7VFm-by>HbzOcBF{r;U^n-cf)F3*#ng3fxLm<6|?N zj4QYh3-e10@f0LGLIJ)QzQ~89tge2oq_zLNLPj;bW<-tC8Y&~R5difGBPsC(Jk~n z^&E|(*|-yA5(uznMKg*}NWl~RF}`?{yKrIwxD2Oy4$Th2%O}`M(I`X1r^&>E$LSz8 z8b_a&gk)l9yi&VpqU&n3cH(Ky5Xpm}0yjlzIDI73t1$$PNxz7)MBi}=DjF#Ga(vRs zLgez=)aO}WuBHxxV}cwu7o9+)O$iv8t-q0*i|JD93D8Q7P7#Z+v#@?gqNCun zb7u@)kb=4m$LTV<$uproLdks|Wm5Y3li8@NAhGNQ-zV0E^5#Zf9;UqZ!uvV|`vZdn zmVB7qqO*$?Fflie#fQb0WjY9g^2SC%ly|oS|7bI+x3+@$4@GI`0#V&z{(OFlH95{O z$hluvR|(0|2&c5L;xiOs(2P#TC8wfD)ka9Z@FkbiUQLmX35uDB@+dVNLI~IIA?JWP z^Ein$y8tyMu3%e6r~`sA8()!lOUPT!;}Qe1;i4J|VUQM!wRY_^;1MeO5n3?k8$@Dh zw3z2BE7Q+Y-J8xLBI*ydjp;yBaK)hl%8Q?|Z0|?WJH8(dqmrev7>Re&{_C5q6Oxi5 zp@~Dhv%}M2DzoX?vub=Mdb()n*iZ&e2SYj`fWx3S7T=J*Gb&Tt{Ot+7q7zHTgftNC zbFzY^q>4? z111Gj05=kzSTZvjdPNjZMKKx{%U;1f7OI1$97lbs`z9Jm>?7o6kC7OAL4WwD9DIV=QUEj@)i4n8Cw3$%sfk+SoTxhD^xOM9uRFFih+`0!-eA4j% z@ftDXWdUL*NJNzbjVSGqmN`+IH7i!4T1AZNz!^t`dAbSdi!dz6Gzh@{Vpx%dXk*{G zb7!Ij_jipBqar|G0is4RX!nNe`^6ck6pke%{P;Y2-zsk21cxc5LtKkTy0}5%nKx*Im2AI5Da4cYiw~b!sEMI zwJ`J^UbbIkxijXjuqYB}@|gq%mj2!DSq3PGsZUBbs{tyZVm#e;y2VzRmv*@-)yF8A zWI;w?sA3{I5yeE3Gqkf{K*Jyivg*4CatBI4Lu4}J%ah%=ZJP`!VvwinX7mOy8is0j zijth=wAH6nD%iqu{qQAn!4wJLCzM_pmT%jiT>?@oI;}HCHC4{;fI zUc4wZv9tdHX+`%ZVFqL(+#;=NLH2H4mDl1nZA$a}xXgzo4b{Xnaq~yU?oDeiFTIzV7!LsTg zog6xpr2K9x_9r1C2t}5Avoa)8MwrC_G)`Y{6`qtd3(R>KA{X7;K*Ck55*K59w9%Ql z6OXJy%|77v>RTR9aH=zxfYcyr8STJ;iIMhro+r)C72pP`QGsr%-rX;KkelYBo4&Qj zWA?RNzCqD2hsobN1|H_ncR!G30}81N7Wc?S>CYttT8z^$MD*R4SrfNU3oh#zaiu z)=3o@q`b0=7f;6w_KalXoK;vp3}1pN$3t4-h(XD6^2O_vGj_Jq6>-c6Eg=LWhKeCO zg90`ELLzBw3PY0I{S6r+>({R*4`{pZEsI-&>$snCR=(3%jzo(vtaP1{Au;NL&Ls6Q-cd|R7p z0zT2DY?P1V?morK7Ekhb@UBT3Jbjkp+VujoHqiZLqRLWzk0R+6NDH7!8dE@tMdO$0 zCwiyO29N_wSOI|>>+%&yYd6C}HVrik>X6^7BktRWta+Uck{pd?qNyQbpU`kbnqH5Q zUM@jQ3#tYT6HwKFuez$SKL&=CWo_5_g8LYLT;iPVtpJx5d$a0_U@K$GjnV1a_!fEK^&ugavAcnuN$ML^R@yLz_cOz)3Io zpTl-bsQU_(zx==vTnSx{K`ij=09a4v2q)yA(@H5GDUya`pz!TSH;dhvUMPFIp4uYer*ds1k_FabCkwcDo{X0oKz)w&K1jd#&mKthp6ClBU z^ugtHbR;4ELC1W&0yx?0YwI#ROtYd=CeBhKYUPMethMObivv=SGzSb9X;pw9B#bek z2hRr$dO(nVwGUzm)7U$DG-Bj zXAA~N(bqwf16LpXKHY-e2WeTO8s}P`K^nH*v?(1ucgWboFt67uKN?2^Ao<(F&<|#t zTWlm=D42uG$;qkzbW0Iu(yfO;VjW#wM=-5GGA2x*0X;9V#PxjtjuA1UG#OZg`mti^(?A~X$Ig?O0 z{Y&$rLGnAb z=h4BQwu4^}HXdyJ)p$l@^$u?(U0`G7X07)yZGd3qjodNAv^l^rSFc^U_c_MAZo}u*@4;fhiZO2*AzW6AVw`16|gnDSB(Va zDm%uLm;s1E35_0z+3-b}xGC&ghpJcq`|KpR zGD{CBBS~>(a%FM8q+cG~28pl;a2N2MN40aFeFfg_1aw=Qb|b5=plW#fQEPp&Yygb55X+`VJEbN@Y~pIJjZQB2y+I_uuFknOzE!g01V%;35C_tP673&?}`f z3l93zB$DA1BHBLKi@7!T;)2200SCDn+ZI2fqEnJMjKxxACn>uvCYFp$PIs7-a)vRv zEWLJm|EC4em%%FR_5=?L)ZqNkPr$;!Yy<5|&)^`EN>3%1ugoSM1wG9VATbZz;n8m( z`dRIe90xQANoRrwDya{82H2mlY8oWH!4wQ6&FlO(&p*Pa+J&jfNP_{ZA~?mXWPCji z&pJppYmFQhO+h`Z1Y&Ax9foayqfx++90b2OdEZ4;FL&1{uVC_j-;)GBMgS1p5O!CC zc8X}k?3;J7plmaR99^oXnr=we8?=inkTwTGk-E0p=4NpuCob%k8k;U60|FRl4z41k za)&hqi=zD+ND*R>XMN}aD*z>H54>QccmRkt4@N#~hpbS=qbW7*oKX4_7I1|>NW+S^ z<_>IEgGw_K4rI`mRJg2b0Df6b_H^zRsOw)WHqE@|TZ7XzNyIr%tV5OJLujZ8fEmbK zasY9g9xnn`4yJ>rd*?r+2iZ0FeUcm zhwK6eP>Yf`c>yj9lub0S6`-h!+pWLB7}z#7l?IV{QhiL5< z$Sm>GaTd|QZ<+^JPWp^3c*HXR5d{{Z3hE9xN=%?9AKmznb??Bvg^H{2I&?3HL20y1 zkD9lm+;gGJ=u7Ipdng2FjkU1O- z(C{Kw3m6R653nOLY7_hj5ZDk3fRZ)0QSNf)J35X(d6+qscflzdc1xA57m?Ax!(!#< z|FLxhg&VTYkO*$*qa;E2Im4CN9*4u&Z`Z95fE;3{u!C0tDFl>m8JPhJ2c~v#p)%Wa z2fQ}7^WAT!AOXZ(OoxdY&^h0LK|gSUaF)OG=a2{a0y2OEE`6CTHR#(x+^GO?+YDP$ z`$u?yl>pwMp`&lUUM!;Q##NFY2!XqfRfnnU-Y%AHV!tyBBy`Y*60x*uGfDhX1*$Sha{ z=nKaBq{I0=WE>&U1ylo08?ZGnte6~FXA^j42-#r#l(ftUdPmrtBuzsgUYfZTmc<5P z1Hf_+Apr#@(l9@UW0#79L_6dEZ)E72B0+~j(x6v9J_4@+DvCdk3*q}_{`Y;QVv>@2 zV7u9G{Tb@(TL6?5^wH^1puuog<1m&IDk$K8dlJAA+64wc0R7XtV0nZ)BeN*M7KTug zZmYQoD1bQRf}9-j(jX`=LYFPSC<^Wk`eMlTx(UczxVg`dTd!pDM;e}Tz!8H9u^@2x zQAfIb1x-~F_?zG!%7E4f88Qt^+L|l3Jr3*;t-mIg+*{Is_iRvMl2L)t!k<8G3!@}; z+TL>oG6)H2JnA9AJuCPpgIsky5RoAcR*X*fXypK3lDKPQ=tc0q@4_-hzT0a^0p6?= zhpbo_RoeKXs7My1%itwOGcgZSjVB?!7VxDFI?n#LbKoil!S)b@Cd$AL>gnx8bSUC5 zF`7!Q=sRwUegqI@AOp!aQy?AH%q-|ff<*0qi&x#oWyAo?2ubY+Rd+N9cEw0qRaHLy zSU*Ibq}@seoc@5@J^%eg{5_0pdI#G?6*N6)`cY;2Ek&7d)qDN_t(gp)G3$xa4fsmn z=58Oj0o(G?|F-2a`FR7nS{n5V*Of7lZCJ2|*x&y1>06*J8(zSBnX`khtppU6pSao# zqMfaRAK>m#wUAUv4S+9Z)}lEl0*@%q_xg+c5hSgmv{RLB!kNhH0;dwc&4 zc*DT3V2G2NqiTNk8+k$EG2s95hTsVB4uwqL78XtbqcRe?2J0xqgkf_NJ&2ethfWSsis^EZ1^Y;i~?NoDpiWbC^D20 zhwc(!UqMbJrz&aOp!OMfFA(WXPfn$bv6mVN=k+5Zi4GtO|IRekVcp=E?g1r-QkB^N z?toD#R9x_sDjusoM^#Mmb)DrNQPM$go$=r$vYS=3vEu=?Q;?g3-VE5N5)frf^(;^M9=)lg2As3;h%TyW2G|x@VzZY= z!hory78#3UX*H4A&Azsd(u+zJQqph28ZT?8u|dHiP{lHlDRf&-GRI{*{|Q$H3^?ou zLsZmFB8DUUZe(GA1G)8L)1K-{4jh*Q{+M{U1NUpY4EccK=|jFMKp4n?xEZ!o zDLmvkgPNqj(I56BLZB#7{?nE96o*8M<#b`}BNPe0L>LBjU}^qzSv#Iv4Qr9(ZIJ;~ zHd*t?SSdab)}XmTQ)>06A!|5OSBsM*7`G3y=z~-E^F~&of?tFq3EBBDvT|l%__@L* zKK>7FoS^oH0Ot+C`57Flhdvzg1vneGxghdswj?P$n^|PWB{E+RxJ>I?QBs)>w}HGd z132ilIeqf?)mMLCi9$6w2&fkFB{Xb;@AmFq?udrTuTVL-CO7& za|gbr5>(fBW1%9f4*?c8@`dyX5gZnZ`OLR&1;VMG2!M5(*U<}Mxq|Qhz(&E@J+Ka- z7K|8@eDtA+LM|b`A@#dD&a#}yNcW*fK5CZs%a~3e<>BNB5xHolHlMz&~6QEzJm$C2)!T1qRN&MF)R-y z*6CA)po3RQm6axq9^;iWuUj;@`NF?*ROmO=vH+W669wX{yGUK3 zpt_d5;M;&6SGXJ$w`zUQWJ};Rz!HQi1W~yiALqjCuYGeWGTr`ENZ_-bo_^ne49Wtvpns_jckB2n1K;<(&28Q( z0nhJ@W_vOW^nQUr-^PAP}%nfPdS9&vCizw-4w_S6^RW z3OO-x29`4?Y<^CN!(01cX<6wbCP5qectN9~;g!`7f8!rN5ciGvG zxtQ|v6JWnkRzX$4GJ!HH@!-|_@VD0EFf-e3I&${fHDYq?4MkZp%xe z+_i$#4Pu&pN5*=f^`POk=jHwFy+Ckz)XRBtQoyE(E92JF(*w?sG}t&@PoW z!*v^w1{45A3Y#9}^WPz90~QgKAOgIgEEs{=2i<6B>?yk~Rnrqh0&&B!g*UZJo;ZsR*`19StvWo?3g{Dfy;$z##eTRtJgiL_13 zU;sd~*3#cUCaxturdJY>+h>Q&GW0o z3iwiJn;}eFY7h+3A;c~EO0f3f)PRo-fdYo!^dF-kPt~mf)Kehgm=!M=HpzjjF8G;( z6q;@`j%N9@)ZIzJLQefwp2IGkx}48iQdjM_{!r|kA^n-8r&R$qZHC=t#)K$tb*wu5xV zEU4eg$TU^RjEqfnmJci^yc;|xhU0sBo!lK`BC$-~4K$00M5b_!EcJD6gExX(o5ZHC z+8TRv>e2pkZ+(e!Y&29~AYvJWU5+ep5R<{_fHXI-YzMFw;7^<8Y&Zn+YJb4)>h%l- zeN+{H1N_>%HoqcaFC}B^3&N)Y0ut;+f4M%9LW$*~+k}j~>xpr=6xXe1P!stVUE)Rq z!yT8q2VJ+H8M}Cjr%31=coR_fdT-X+nu0_YGHe@NQkklxRH$N6q5Z*y<$_K4gn6S- zt+I-RHP7Z-k)~338WDbM_S(e-cVCUQ+%XMAalGnNsWN-WY-h$wA-0CPN_gw`w|T6o zSoyL=RkfuJzfgSqHpM^Ii*i(vUCY0;l8!dm*~$~htL+G`U$11&lOzB8Q{i(cY49_c zp-cFG> z(bI=6KPYF9KGAh3zu*+Sdq(KcSD&{0$8B+W`35Pe4A6FE&`;Gf)Bd1Yc-0r{>Z#&=!`&oQ(T!^A~p8~&|_za1N4S)G`MgO zul9%FV2&x2aI5ZjRrmLnl&2EWqIkn5yRmCT_i~Ne#}nuEx&p zB*8r(P&LsgVf^t>cN7Kwv58E#OV2sm8tXpPPqd;>0-VOnDkZY#9XN~FfXV@hv;)ZJ zK^M{gcpkRT4Jcl0Y-}>WiwtH6?Hw*fcq*JS8`z@y(oOITGa6Wrg-$(Oi?7+FQHsbd zjWv@W2wh+87K-F{^`%MnvST*zv+UM1!exjoZ?)kne=IvC>pNlGJux3j{bXAL-XXFH zA$#Uyt4@uT4Cs&`KIS<(53GBSr_Z7<+F{jZ?|w4QO}|A-!*$lOJ{I%ONYb|xvnD-# z16$b5YUeQbWf;}@`r^}9AeX=oh)(4`YgPD{(L?asswicKhFYguQz<6OZM@9?bRbzy zqQcqy%^%dizx7rFaTBtkLzgjSmY_Y_jN$D=$Nux@p~&9Mbt$RE_s8+vORgbgdz}*% zneq=GP7W>)^fK-5nR9{3-t)!hz|x++0Ou8x$~-q`%O^s)XIq>U z2`@4smJ|yeI@<-Pg;MT&eFTu*0hm;{{nXb6y&mMCmPPG0W$ubmSh5LGhA8xZa@YR%^tE9&k}a4jngo;vvg)0mIaOEXl6`Ma zlnR>-izKq)i;tq!R?2D)C^@lbk`3!%rr)5Jq#?G|t=*OWn3&iNTV$faIbUQ5&VJBA zAtpX>Kt2P64Uzl@$86vm8R6ENhSPFR?pTFIM2v2iP6@Eq`F8Q$qga?p2r@M0Ag{A~ zn(#i47<4 zkWj!{0E4ZQTUOz_r5chz&*x*pJmX)CZV7o|Q>mF2%&0}ZU7Qk{t*gKGYx8l0$l7R zk^xxp6D_ur-Jb!^H3jRBykqcL1g#G1ZiDl;c~LPTjWz$DRXMf<{rvm_rFxv>UY?78 z+V6X1xZ3}nP;2bbU`u(wwxrI+Au1xWGi6_4OKmg5Ax0i-t$cbSsg;-#X8kdanv7NK zh4=-_!isF^(dN?Mv#cj_F|_>VL)vCK>7pzK?LY5e%Ja^Q6)(A$YJV>#$ESec;XXym zv1y)Bw>N}o#l#RV)e(3iE?_YnrVDXHbS<4`J^{Sq=jXh zKHQ1K`l^+4@uza2uJl@`Azz|c6@WtKgU9>(+0X!*X?}x>3*e&6y0p$5Hc5GTd}J;J z%&B}mlP`>kMWM!<@d3}2U-0H(w|O?@_aQ3}vf;>Pf?v2aZAQxXAr=8B+BpCNO@a9k z-|xQz%#F03N6@!u;5(t{M8-`ZE*5BcJ3R^t-g-J#qqmoSeiS9KP3rfto7}L^=%@$F z$T#H4!k);&@e8gkzQ{X&kl924biV+{6$yS{2m=7lad_f(y_GWof=qdGiBF=Af*SlgtS+uXB1(M9+6a$a8i z;y)R0HPIi*t0XXf7Dm-@=}8joWW+}S109iS1!~H-KpZ-OLkH>*YeMdMHkZiFk7klM zs^&IE{nnwKPjutN9x8P03>&r?$%o&`D{gZ!ZZtcu6<+K&OZx~;!eLC2z6V7umdEiE? ziKqLe5HpZ6M#2uxI##iE$^};v%$Yt28b)w4P;S`|7DMe0D5W4ZDPYp~mwE{(BM#_c zUKk*ZoF>)((D?`{6n>0L;B1_O6HP+FL-`_!*Y>@+#`iCDYU9D zeylEru0|4zgmioi#8~Z}n(R|I$}&Bxv92%*l4lT;r+1UCHMN&{T03%?&8_Mf5X7bfv;dd|2~KUVpZV1uIVuvlN#TIe!qIE&KEcO5%gN~`OlfTg|R+?|7w$zHX`fyBtV0ooN2 zwL>RF!dE>DW0g^rm;hTFNRnBk1(`E;2l6vlv(z1ser3aI7?kaJtD zSKdWQ^DFA8@E|+Iwwu2K;vP|hONAkin$}(w+7%v6Sb|Q5?qOS7WAVcujFG8;EqO?< zj6;}wzoB!>HT8ZgHR?31&`igX;bA}ucwf6J{Xr%G0M-r`@pw4eCT9x?oq~M~GN`{_ zqYTkf5%|&ea5112U8KERalH{*8-#iW@eZ&(-MEh1_flhSzZ{^Ni2uY-k$CM|)Mldh zMb4LdT=H%h9N`6Qs~@aZ6er@@+rzlHb)G%iOXT14Ief+O!F!un=>b9C0593ZR>>{6 zj01poObqJ;`;<$!hw7b0-(Q4JQooyUm32IlEy57~L=iK@guRgV`151Awb&y#o1xD( z%XR{<0F+WLrEPYs3=BxrAbNoBvuU5~9R@A}>ImEM=?3PO$KJb`8^85_3D!hJyqXcW zNgSn}sww{HZfsY!G4#9fxuTGmQ_hah(mEdV2~L9dVZrKmnM8GX2*3O`^i+7ZVX-d|;e8@|G^f$g>@U``7F zJ0qYsgq|m&C^_XXN<%aKX1%lyNrJ%bcMrudLo+TEkD*pVNk=zeFgH#-0UQB_(|C0S z5Zx~bGkhG2+CZaDjJ^l`nHCIx1PE*q{0BjeAov!ic2k3- zlNP?}Ehqe+?2B#F$t>q(;P*8nQUdy-YzNB}z}0$sA|ZxvonP96Doj2cv{{C=wjNXn zc-D`Sia)heV&qYziuO6b4#6@z7}Xl3hRgCN3-qS6%7FspRX=G zKzj5QFfJf#II1JahjlFIGlX{-l&4BnIZ_nJD(HU&rDVJ&KEpD#x3`D>yc0ZWy`X|u z1PSU4dtM)+LWDAS5g6~~W{)VljCYnSvDEd1o+w;jomyN(Y2m;&1AzY{0huz^qSK!* zSSA1j!%iLoV>BqeJm%hX9YzvOGq)MW_TjoZqOGPG(mKRSjg%mhht-rMIt?!O$dSg` z`&73R<}x+AIdy$1^_cWUp=32Xu%Hl-rivmRye+0f71Mg9PdGDyM)iMM0BOa_56Wu` z%;s7BDeP16Y0{V@+kG;aTWo>^Z)aeAf_|#{fnm@49uHN`;?YS7BMuHWO?C?Yc|L&> zWtBwyUbrI=Ql2h1Tf`r5J8Enuj2Z~# z60Eqx^Z*z|SeXuB`=tRy!Kgf|m$V|Bzw-Nq!8CJpsaiOkD^EQ2uo+{X4tJKw7liWH z!9som#1EukiO`Ml1<0Jbi+Yc2(`u}zu1g+&3_T{Bq6L4U_h z_9C8XG@m4$J@Kju;4X!-bZ$taL=sPslm;H%gwe-4vKUj>7cDQh3zhKw8*rG|UX?=H z1Y#}ifcvcab8hdqGzlquT8=R+UejEOhN9p9Obe4%**iMdMzQz6SShkKB782#BOvM5ryiX)b78pV$kqS#AkxEu(U#2L5Dw*h*;!5=8c~E9oz-Ny$_zOw`%8d z#N^>bSdMpm!`tn@qiRr1CU8&decdeC{681lrD85{8Ff@!2DyA`lVmg-B4fIvW_^t_ zMPI#;4Gv36?nQv>g>K#IPRK2{pL=#bKt4=a+8G`jO%gJfe`yWSylsys}9Az@+RA=V-U^&*nj z_uwz{cX>d_7%p;?jI?U6rL9EN%`dDEMak8*Acc$$6v0^^jt5~pa2Ln&@9*9nZzlZ;% z+&LJi0^Z!{xIw%kA-SSjXqCgs@HxXIzzP2S4iL#RKoDh(cS^7{W#n@wpFI?GC%ZCY z_}Mo%o}V4?vj zvt4p$GW=*v<31ME1P0H)k4PBrQSbSvTC6eI`YI0f#T_2N(-5|(DSPkh!)5{|?X#c$ z&*(ndF`8Q+pk!uOynG3{%tk<7Y0oZqI>9{XA3)kyO)E%l9Qj`Tys0Ys{+iJEA?O=P zv4jWzsluVGoYD*fo8RE zN*9sWO-bp=7$+~;c0VA7yhsW2$HndUJ&thrZM5bn7tpbAGM8-L5RGo@y?ysOc6n*( z14J6gfXhb%v^Y2(j~iZhzaDs56mL!$CoZgq#ZTXXLj0TLv-zQW3-JE$5Zfq7O1}T& z=kyg|C|3B2NwLjEwOCXG!y68`Cv<;Vs|c{r;R&)F zPdgJK>4z(0L{e?%r{8N!ZJH8|>|mr*lk3;tEqtE${=S;*Eo4i>rVl(^pXAOpV{hED<|&j$wwT#%2#`3ZA*`DnCor%@D{rv#7D)}Cs< zLCfrZeazeK@rs2Hi!y+EvB?D%m3;dBRB-X`K=A_dz3ixJTp7~k?1&6G@_U|IW!PBl zx6|7?L-=ezhPstFNC;ZB_3?hqmD?F_)xJC?pw3Xc{j2(^&M6690K!vlJ;pgXQ2RSW zJ(w2fCTP`-^)KlTjC4EsXT_PF^=h=7$mgo*F3p3plBL`xw<^!oGK2C`Puv7V9|de9 zq#fZw$0^{tSBtic&fm4oL)BYQkQj)%&A6RO&p$+X(pvz_W4%o|9~ z%%>7ipZhya39|*!u`@helM+%1pfNo7i%OSe4sti>o}s+RflCPC$U&`{SXYC7AES)1 zI6vR-?d1DH<$LlHhD;S$PcSsl(JSy@Ba%-LZ~&G4pJN%qTf=TWXDcEW5#e(a=>N!) zfC_o1H*e?Y7yfIn$@KQps*t2Q5PKc#_Thu-Y`TPw&IAda-+vGP7K_Z_Gp{X?zP`QP zZ%b@ImiVoW36d(QD6Wmg1fWB7T;uCFx2I2cx|w&{@gmcaXP?g$_y^+tb3q*s-Z5X# zg~Lt14c!J`8dSYUk0?pw&?TI@zS*}48NMH@1uZTT2lCr}og1hM!6+g~2K0jvPH-Ng zwHZWaU$zLwbnmZX+jJU9U;YUo(t>!-m_!63`V{}vZD z*Inr4%%_wLuog14%>*=ERJd5@|B7j7ETbU<;pD{lo(nFWw-$WKrF?5m5f9G^fdU=P zWm<8ZsHk}BvI2FWd-x$c2Vv_#7tz0+WN1iM$stP6jE`Y?J5Nf5=iK*GcT!J+Z=Ii6 zmn}fc$Z!BK&HKsHd&NRSWyJ!2sR063FE8doco*FVKJKJnwJAM#IFdKnn-}?N?bcb9 zfv1XlZqLv=O?^MgJ6yltl03hG=nSSiOLc}zr{cMtfY#P(xB){UL6I1zFsIAJY>GWK zWgno=Yo0okjIDJ48Wq(Wl0jy6_75P7*ay{MRD3*^q}m@mL!!!U%@#w_vJ85sEn`eEuIgsnZz^e-rE_xJ0y9xAG?+;6PGn4g89I5?OZ>PW@^gg$7#FOrs8_QH z{(uDtgqM}S2kiDWOSL%J51dLvue3H?TMMgm*ppuBz8R1is zuKRiZHP6z&`}~8lAslBf#@NUvPWX_AGWk_WIRjH%^y*UG;m+=_cNcmJbM z(B>3ih)eF?_s>_A0A$HCV(%S7gncj-0N#@DJKAfq?%@sZ_cC${sNOJ7ZQb_U21wi+ zMrDAGDGxj$kOZW2=M-4gNBU_8&6Wamu74TMx|o?mu2Q9Ry21i%r?@UAt}ca}&&p~A z*zf))5YvoFz>c_&n@1_5*9e2m1T+%cjrj(cTtow~zotnz1=6-b{;nKvLte=<|Gu)I zn@ER?sGT7+GBTCBl~J#`(1Lr38I>}7&8rl%P*NQ|5B(deT1O9r`Zc(`)kZ9s%{yoe zVn!MnqO^VOciJQu_TbPvfyJ4fd#~&^`LFyM;xxI(kFj9iR&@xs5?M-@$g6!(&)vTF zyBj6v3bWY+Ck!gWG&o%v^3U&>!?@CV56!Znk1TpL$!08U;%EtfhxGM#F3)z#eR`65 zPEVb7+Kx5{d5dq%_1GpMe*ZRfA_qW>B^!^ts0-y3rGw}kNrqb5gNL)=*v5{!6TMEo zKa~DJ39Jo>Q%eeGU{Q^YL!90d<-sLe!lOsInuA?oHE~bpC}x`atj&i{XWj8??Zz}% zgIE!H^PJUhcf6zRgudfhUh3(?b@HoZr)Z!`VZ4qe43=sN(QmMr7FHt%m;}U^Ns_$FpcQrW;~_>~kFdy&3A!Dba|+2HL6gp%47{ZpQ^p-!r!{Y0lgNMbdxB!B~Dbh7>{i(h!OlqLL?3}nM;y)eW88cH|txZ zA_pk`4a`UG-3;~yWdN*>;SwDPgNgz3GAcr8B9;Drtt_2ej*~n0-ye_O{vKU5dDBIC zCr8eSsAEjjEABIWAV{)k&yKETj^m+9jh6FD+m!T$fNeJ4;#Wl`Oa=|-qrjKKVT6;Z z6GrJsg9oJ(xQbMbpMWSyLro_G#9Rl|KH7#;KqJc_Ln5@a5=VNSF@cgs;_}9N)B&OsBScAA>QT$0f-IA_>W1E#K_^ znRN25P+mB1xvTO{szb@$g-Um#A8Sf#TzdA+)(>*PDZ^!=w0TOi6K?bK)ro@?TQ+9b*I6h%D(72N_VytUW z2;KiBP8RWW?v8|d{1DG#i{-YDHu8aQ4)(>|-!}Rz3!YIXc;0$Wyts^kFmhRrR?sMr zxT`jZQ^huEcsoi{u1tNS z9y1nUHA%f^gLQ8Ogsh%3puoi6N~2>~Pud^8fzRuvFNl~bnZ>z_xgP?BnEVm4B(&}pa`vP8iHm^1_WGvdhx~A@bGThQ7i55^~HP4*Nh{N7Qb7n z`>k(0t!eIOGCKi=2r9we65R*IVXt}H*&3>{?p`Bq37wstwCNLEUb*+FBn$uRndI~< z!w0e>&xn&Z7t>KxXr*!9-wG?sY#M&2B`Su{JI>h6RU)1z6%8qrJokvqXZL?vV!StF zm}C??sQzr0_iAu$QX!G=3(I(^Jl5hB<4F%I5ia%B{f7>dehWdAKHK3+6#gF1q70_L zb^Zru{K$EF^Tk_Ue`dS$h!i)8jT!2^q5BxZw7-Ua3_Zg@K82(*?L!>@Tes7aZ+q@t z$M5pwEz_>)T|LesmU>^T8MJd4cc}K{y*2iIDp*~WbG5bdW_jQ}-b?$w8hForRB$Qw zQERz_Eu}C;tmH5WAcqv!uh#hfF*tlx`$OjjmjSEZJsw90%(0mlmiP1qhR2ApTbz5)V0##z>l~_X+muyT3LHEj#oE~c6-?2XK0AdAD zu}gt(L>{EJW!;}6L3V?9PTz%Vrr6E>yfoo{sz}Df_C$Z^EkRKCfQy2N>GzQ7(h<$c zvrG!~N~f2l%Jsoj<}b&28pPl5g;LDzF|G6`JpvOEFX?sTc@@K_t9;BYNVh|qX$wZ_?#}0gM}y9_$6CB!$9Y*c}7@> zDLeOgWZDkRz<4CR&v_I`8yoiUzssmOrbHASqz2Gw1)iF=So~lbkF7GoOw_%)xY+)K zRo7g^y)buj`UQ|JQ%1vGBikjF*!RT#07^zDC*!rX?&7Bo90c-KSJ{dPs7Ky0_%R;E z)0Dc6(Ry$f?edy5`Ipb-_a=b4^_!b%kCJLjhsvCrgY8h5@u z=v_K_vl>4ANLjRH9npZcKQGZSf8o7MSw~{IS3cWNb-@-3Iw;@J>zI|BOHZglLi7$pmr+Qwu}2vRS?eE@1Z2nQkp@ziZW z!8o9f;1uB9Un?%(gAXSF8eDzPT^UHAL4_`p9faAbDsv#ZU5Qb;&mOt*x532JbQk%H z5P$vKb6-Km_u{AoO{V#L12N=0H*mYa-9!l{pYrBCT(~B)AVmp@)hm!3 zZ+{4H+e~QQGjKhuD147uph!iHfiw|+RQ53g$K`6xcj5`QK@2){r;v$bp<%vLj^Q1l zUni;B?mv1k6;XY-&C;JsDwwSNuwj@@yz=S3_sM`{w@I61%fX$_k}V}DG{;2Y>B`dI zD^K#ofQ_BCU>l=!j^%UR0bQ=EuRfRi^a-&qgSr2PY#2HU4%V+c?3(f*O!N~7ws|33Dj;kQ{ogOWXh?ltd9g|r$)GoUNn|6Za0mMWrm4gTeWDNtLw zT4SG;QzVXe8k|Vje69Jd^JozNlbW>^)o#_%(@8O5k1N0I^16BTd$N6KD=l_4W;lFb z>pj7j5>mE&-R7=0`4wG^QtOAx>NUA3Vh6J!Kf$%0!h1@DhVB~v0ht(jeMz2|rz;4y zBcCJ?1SSPQNP=|EAWPv7s52n7Vm}n`-@4o|9z?&q03#xJ+w+0!JO@2JVt54;R0Vj< z0I6*QcNkoOOyc6rk&4iV>Oq*!R{&5HAQS=dzUC`7WHJi4Rhmu&thEpSJz#y-_;@f! zb(&}^ji6Lnow6%5O6{un`OPdGa@;{yxJDsFg}g}#w#C31#K#1KW%HV3^YL#Fm=XQh z^KeWPjTne4&ZB!sd<>|GU)OEIWQ+b(vGEinz#qs<4iNeuQew6(MY+6W>B&VgA5c z)83w9zr;9D50k%$5$_>D-BGS(l<9?HRJ^N2sd(RBt;9|ex~h>? zxW9QyHoY<|j=$PQ?s{PQ>tgufFqPEmG|7JsGGrQFsyH;~@ORc&4#+9Pjm6dxBO|6ZNsO9!_zz*kMo=Ehwxw3frK=`*}iMThOxQD zwB=yu>!8GI{(@S0Ov^s`bUQbD5#k3GqxD~cYQ9yQ!f$m4V0YQwC_UydZZB{1aRZk2 zQYrSX^fl2W_Hu3kx=)rD{5f<6qnEYo{_}^&;yK=n<6vV}~g-EAU%sb47mHt-;?9#5pbnZK6*AYUqWEXYL-)lbG| zir290`A6PAdA_x1@IZLKB#x^}TCw*&{^cr|sy`?YELz4cctd%}%B#p1d3+dmiOCXv z+hUH^OkO6cq-FIsTE)%hu=($-@en7St+8%I+&!G(+Y`zcE4IqgnfN4fp zEbejGqDxrltAX9V4Dz_g`RNaQK7%zp?@^dfEHAhJ^bKqYBmk9iIW@5h$sBrkRgEc@m^19OiiWMPF`JRTLxz}E?iVj5rE72F!ZJEBHO=`@nSVjRMoPV* zc~kbv^WiH`-z-vDSyLC8k7g{g&z=R3q=&)7#gi2O!*rVJHH2q^J?2<^_{PL$)l&YbcG6BjOaC#I=}lX2pNvGT2`r3q z>IC~==XSaLKJn;IWVd}(=*g)gp)Fk8eV4G%7`tT5i?t{5dXI|1_)fyXrwjZ2>$=k4 zKLuVyUmtx;Wv-A;6gfT}HS`?A1qS-zy{;8=pN)OB#WIt=_0Og*_N?6JqOU>NST`kC z|D(uA!#5tRvG_s;+oXv5mDBXtM50$Gc6% zD90a=3YZhblw(zP?m_ zX*YP@Ao$~noLp6t1bFOW3Ixc7Uk;8;e0Zb+qnRre_=keoIl=7%b=}mAos-0PmJA*^ zWN>4j!yoT^pB+6lh^uwP1w;)~OE*VU>gmcJaQDfkm5<9^ou6CqX~oZwV0TQ2U!Ctm zN0|ZwsuZ|0kx8Y_Hrz<{hAO{e#P;$5cZKWmC~B~e`(_mlC8MRlutd2aYeZ%34{3MG zR$8BDEbckS1Ff+Y26{Q)MtDn1Cf~Arws%}aS3+a&KCwE=;umq(XSo=9=ZmvpZA&D^ zP+VN$efG&wxUdU#heonGfIGA5SSiP0BjIV|Hne*UlQ%i4WMcfFTh;$!hD zwv;;RI$h3XGS}WT(!C505+{F;WmKWw!?Me3;&T6HJyCbYU$%-Pwn7eJksjNZ`(oz0 zbGm<6Rd2gUld)Z$`Wu(OmVI77@9=Y7L*>TYle%sw`VDchf1u&COW;;>_9-icFYH-_ zV!4|D0-f%4M2Q5T<&R{JtOCHq2nO#Z2vnZ?=OU|pwv;dKp4oEJ0z*f*|7e^du)4G~ zLm*o$o%b&Sg6kuP2MiZk)uJtTT#lm)xQ+wNE$cwdp7jv@G&K@sb=8i&5`zCwQY1Wn zZXH3o19UKQz^(S`X#h-xDz`8}rnbm{p{yf_Fkk zxo+)0AT*-p*~vPq1t4kut0MHXW|R|@{U{Z$t*@VOT+7SHmOtvMAqP^rE}$B|&BOaIMEn(n_~hWw9T)#P&5d{~|bP-bH5C zYopmSa8h{mV}6$DYOcx4dDr_qF1qXP-Bk>_8~-L(3!cq3XwBRPgu`j;)A|^?y?uk{ zYP55N9)1zGnmAqdgW}rI72S{<7M7u!so3XvrEIS$!_-MXW9nn)#qHI7i@GjFgf0=a z5J8ihQ*_=q<~?X87Kwh~s*JpA(co+jT}O2x!A)F;fqFzDPQdahw|sZ%(xcyr#iq6V z*Tzae=R&Ul^m;D~bjXV+Nl%J3XH*x#!ubX){kW7r;Q7hGI=~}u%&*zDYT*OA2VlKzMP7nUW%{iEumt4K?+e|ITGa0zAvOwZM8$<|h z+QF6_vK%eA4&qm*hCcVrnsFo!63o|?Iw~T;mZM?pe_J4#w%+PKVa2JJKLKH^n zsH&U6Ok7<3b}#JA`^fq#SML`xoSzQ)NC^T4>OS!OdC*3f>^YLCIaO?G^@PYF%_67(TO9qIS_|d8$8UB6^Ahzgdi<{m z9^Vy*-)=#S$)&YI6;*9a*b#F!icHDfh7Iph!+H!IY0m~;E48C|O3!_{j$-UkglmPa6$cupH{w!0WN4tF;1RaLQTS+aTaL28$~Fnu z!Q=$nVlJf&svV}`whMGsFNfH=sJxE@ZR1aB7Q&2<#wq*wRaBqTnd!P7kq$mAl1TM4 zr;Wu7eqb==%t^#j=nx+Jd}6eELJKQe=YiVfKGk=c#318Repg*e&A8086x_o_^>RXB zvzH`180xC4KFPiNV)zF{az^ce?WGrR7eWG6KWN>0x+|)WKo95Uw$yrA`!68d{pAY) zx!z<{qNcIZt_o~v9lXYxf00ejw zJf1f}`g#-6ba^XmA;1oenCSkAVP+-7Z}q!@pbKQiQgEr@hV(#SqQQIvL?!4#Jl_XIt_1Kx2xvfIPVQ^x<|K$xzHzB{ zJ2Hw4rwm+-7?Bl)Hkjm+*GaDvhtwE^ zP?H@_SzWAZcCI~=vBj&sz}1k}IV+uiq*LR|rTqd^CQ|PUL!iWl*i+v?79`6mm4)+V z()80k@4*Fev*p2o={s`EY0me}QAe)J-w7@^J*4K-OkL3Wmbzl)7(VVgJi%KN`t9iD zc>9{phvU@(=Mp|XgSe_8YQwi_-_}LP&va2(2O4}HBoeiWW1FFLjvEyhsV~w{qcxEY zLNK-*HFw*8S~(hR^=rwq4VVLuYHn&2>fu!hOUcf8Km^1=3JdTRRilSze%@ z*6$y4_qvJGJ;He_LUF$>^6y3~{#Ql((v&k9ib11#!be{C)+w#LZIR0x&aL}2LoX?O z8Ogss#i!-Jn|vHH-D2Z0eLbeh2m6)oCSRVrzz}ZIS(y z73;M+?y-sG^n4QYbrG^KQ@m*$%iz?YCTg=84;n*@9ur1Aetga-FF@^5$^{E%IS0JUZK7nZ>gw|9RVKqqJx zt(%7+E5IDFx!-}i6A7V8%ujRgZ9W*5L%ct~y^eke@>c~X>ohQ6SY78uuc4x{8Z z3OohLh$+CJHP2e&A!WW-*JbQ^9;AA)a&r%Wj_;=~{1K9gyjm4);4A1j^VWMkVVVc?#{T;co-?a}z%a@(q!--j`n9bH-NY)W{Z0Wj8vu>3 zyp)tbrGUwMH&EOZZ&eleqg3*DAx|s$%HaPMcjn{%`q+AP_3l~RO4 zDZ3_QUmMFC~HNwLY6_cu_tRGqp@Wz#-6eBoYVEY@8@^@?th-+IgaOe<~WkX znEB3UKFfK&->>)e8jXO*|f;ls!ciRjHaIerV8$0DeDB%*6I zU}#cVlV;jwy9Y%;@+S9RebIk?V9iG>?y# z>R#rbuG3E3Q}>&WEkp&ye)jg`NzCu`&teF^xdGpxEn;7=y#%G9{o7(*gelMP1fepRfsO|SVo3kWkO5%S=5m~n^GTE7lTm? z%T!rQc8Jv^ouBHo#|BTs-4TZ|F{YlBuCC%ab|wWb%2kW}3$B`p{CirFQW-n1 z;2KGepLZX*mZ^R*;Fx)XS*M4z>u$5!P*6c}{XxTdtieEkK>mWQp!ma12ao075T9%Q z_w;5~8S(f@QLUa%5|78CrDc=>vd{W{iI~T7h9sXNVL{_km}J00-LZR!$t`=61O`{C z0WLHo)H_2N5lwXvF*Sk^tu=Mzp_wAO^PjvWyk+5dm0iN zg7@#%EZ>dnJo)_P;D@sl{GGOE5Lc)Z|FUE@TE1Cf`cW}HX{7C;<&5G6Fg+wex54yj zFI$rHAj~pI&lX-ToAjh$Rb;-L#2{W1*||BFWIK9%T3%1S%;Jn|?z5JcPNS*|)3hwy zH*elf+po}kdt9LVK@HMbT7rO|LkcSv6i>x5g_~gkpE_B^@S;1-#2}`lmI6URSyBvJpdx688Ak_Ty@+<$3)%xb$8mQ#q1Kzen4&BNqsjSZ zE;MY^oFPZq5%&6)05s^JOiOj@2|X+VWK^h@F7u#ecDN|#^|x0RuDvM2UY6P2N~bCc z1LdWpuypS(jjZF{_RbXN=}UvsSlq%^clieu1pQ~a2=)B0*ciD{VpT$1M6qnPi>)SM}z! z&rnz3%;7x)D+-7Uwp7!kwdij+G)&TldXmDd%(N`b>$muRff&q^CUkE_t!5}xd(4Jls8dHL&xH7tzRSt<7+H{#c`Re1n8rFZt~)HQv^so(sGqJGmvAUl;I zw)Ui_Zqt0y(&Bvf=QrXseVK1QEFQQ-HRzSLQ0({PA)YVm$>$6Dp^Vg@jA?Ei1%3Q| zSm%Zz{4W$0f^He?h%G-Nb?{_GuXOYA##==2|)rrV~<6sKGE+UDm>E1Obl8} zA;Q)f4KPt>8%@(QfbyUJI4g#=Jt=Wm{)bJJX}ZA9^3Fjnv`aHIKcHF$8Vsr%zbpa< z%9;n>-C8uga56$Gl022PXk;6+G}U1>rs1^$MR}MaDDXbIbk=o&Q5%xoMGZeP%^uw# z%^`Urh52aiGs(Vo=9s?O&ZIa-vCQRrgg?-YLl&h{?^OD!PPwt~O$>O238LP=WfE$>%*3I~6PyE)uu}F|C|0PT)ZW&T; z-MCf76|l5lNm%|U?Qj6^>%O)!+_kp2OX&|E5r-916bH5(zNwGY6uQ018+dkNxrx(t zXVrBvy*jXkPr^C5(&yQJ%u0uxRN$^36u%L8WICq=hXspuh4k%UQ^&KD=hLGq2N<+$ zKP){E!^?HzK;0(kF?9t55H%-S&qG2d>`B(9rp@g~EL*jI=vdZxR6;j&5W7$MyFNPgrKLEv6d{EUEZ&ARTf9l?}%rm6qt?<_T7 zw?9p@kZIvuOIC5P?b%$|!=WBoSz&0kY6G07uZVSnme2#}^IEWLK`4c^b2;8xRvC>5 z_c`cx{(uDg&nUioq+bOIF)0~u0ei8aaWPB}Zan!lys4E;+IV~QTI0qlmB;k}6 z9e3uQu#!7URsVM=m!15)0SL`?)9@R zytfvGpTnQ9#R9B^qT>WB@lX zFvh^E%*^7Y7_!ef|8yJ#wP^f@m%R3Z{o!c#}Ur84jLrY4nnWkA4VILY?WbU zcm=)4{0Rq09~njmBDZ;VSPYxbj53pcIt9rMdml-ky`jAd^rA-4c60r_MSe}ig&Mrn z!5?{wT+AOncYLD6Ue3NZ3oa>E$VkWXdzg8s5#+np7 z9ejiEaVxr$44MS6i8e#;*n6po6Y#R0r=x{rbPeN9YkJ@RgkAgoLSb*$OR3>8ZS;L= z?`^mBjV}Kq(E`5vhP@kx{2u2WQs>CgVqgFzqeOsmuiMnr);jube`nN@;8eiirAY6$pQ%A?Tppn_eUfv5X_29u zrW}ztyGDRs7J#zuz-eiCA)Obj92-!Ft3GmTnEGOR4(rJxsx6->nE60`$PerhPLHE? zq9CLJDDe{P)(`UXI>>d>DAIV*Y?-zv(>7lr2}N{`@*yGNH;_WAb*`A?;FJnIJsz;e zH|U#JotDO;r$Wc4h!;sKPm-(fZc8}7FuXV#f_Z-~C{@L3QcEfCSudq$JxOuRgQ;We zi>AP8ezYI!x>PsAmWOobfUrK_o%1sRoTJU&TLc1G!^i5@cVPU4m z3=9%3{NC~Qiau=o-gxGs&z%?}UA|v4VkyHs0aw=b=_Eea~H9R@~FL9H`(KE&zn#x7Q-yw??Cr!9e`Ng)#h z0QLYI8#VrhBg<|)-lb6c=9A>;Dhm6JIh~Ar{Grc1Eu{x${acuH229D4vR|7Hki-`W=x9oIItX*#aR+JSo=Z_&j1I)7?J=cZ+x3`I z&(g(oM}Ds#avPcAoGG-J<^Ipawp#83oH&!1m^N55w^ zde1S*6+3#NYOY==^DttU(KOO5*5Po?#gFi=gN%Yk@K0`l{%50A@4m~c?!1DUmmu81 z((rkFcw;nmW8J7!li!t7f^qT6`X<;QV6%MGW%^*uGBEupCI-mkgsj+?Ly6%jGxF?8 zLbnV|jKs4F8(u3?sWlM|M3t43L2^w=xZ?Mjh#B4ThwYdqfADFO(Jz|*Z`h_fOAXjC zbBwT~RJ^X`YFtH#5?&bQd#k&ub41}T>m8f=l`e;k6k`A($H002A*29EdCi+b49t)B zJ<0WA2Ft8Z@9zxopiVV&#vOF)xj|yGl%vx5Fzc(=RQA>j;uN5iFb#)jG}H{M$lo0( z*qfC0C%rb&YR*ap_ZFNNrl;y-_0A>9LT8}XR{CWcKS_ug zpn^TE)mYs-Bh1MolGz_SE?9%kH*6gHu&u0|?M8qc@B)@cpUPrruO z$(_3p(*@Y;IM638Qy7`jg;ZV78! z6xMxALnlZKjA}(?%6>;yg{ws3XpPafR7sjk)}Hz0V~o%TZvg{+BE)~e>QPpPeh^lk zai0EW5iQ^XvyHl(iKT5~Z@%QjqK-PeXu-?7;+c)LwL`wV`Aek5+2srM?v9I+;Ag3B z9a?k$num}{7V($n!@&+i}Uo`D-Rz&q%c*dU{fax9XlCvDVFxVAUo|}3p9Vuesg6b&fv^)hEU--a{u~$(7%190DhayjTjRH zgO4-b?|PN{6(iB0;Q z`|!YlW+p!S_6Y9gLx;*!+P+V>bEBs^Wv22e^@tPx`7=E&iQ+Y`Z~^+#{Q_Gf4*$Zw zKkIIu^9c}o9V4**Nvn!$j)=k_{0cK6?!7YEi#!kg%{_@-@<8ycM& zIGku!IoM&L1KH5c+sg@=ZTC?;Tq`YVJh5pD80I{)itLNW)uI+Jgh@8j3QM0B;w1gN zR(WYhX#u9@CV~B^hk5z;tr|$8g!t1#t!Sr0o5++-NK#PBEzjUrA;pdFty*ACM_aN9 zTu@-`rlR7$bXnu9p-WaUw*-|<7e+}g7}WnR#?NbaP_P~jZ6`N?y)_Z+NpLc$eIe(< zFQW3Mf9C;>5p_Sc|A*?$@m%Qy_nZ`}cih}Hy-mo=D*2i;ouz@cbp zB}QWll^Y89nlvzOBDugw@|-WDmbpio(;a2Ok1Y8Q!>NVhbfFkE8k;Is(o}3a4?F+f zb*8S{Ddsli#|NaVL*|@An$<1HFoB9K(xrNp0|Fl36i)QIpbEpEu^^qPXKwiOJ7mh> zJuO2$Dj$Hp(tV+NZ5a+t^m}*5S3WrNRgquv)wzyoEVYb{S&pikByh{K-bTZP(lNS9 zwK6sE5k`jVy6aNQkt4u$sXQEQ>$GZlt>g0==VUPb=)&;9a2K;BdqFj|G_ZRwf+d<_ zq7Q&Fhx=M&UHr~R#866a=t~o1TzDCu(yd1#?_ZC-hyZ*CWQB{vVPA@}0Zlyhy2;8-4kR;Su##imku^pQZlT`fm!p+xzvF95sa1!O|hCn4E+Z#&D( zc&d_ZML_nhC9x#UoBDp{Tn)c|2M1`u5UOR;4~d z5Q2Qix9>VD`=qY9!~Hj!Kib5d&~2O+am>RZDs{VKoD%Lw<$H>e$LOAhm;(wN>a(_> z1cQ2TI4m>?6&76GbV`%=yc`>}k+R*V>azAJ9b45BdGDIv6;~Vx`~*t&V%e~-L#ZPv z`yI4V%|Yxt>^+VG@Xzc}0No<*sI9t=0`@&(xUo~16!>i(Y`6dm7Y12AMg+}F_f-5G zEB(`*x#8+0D9ES5l$QX)-T2|Z7?o^y?-73G7c{0iPK?db)p&kAELizl45*h-<&A)o zV*)@W*^}6C&8-~|L3wlU#bled8b2QjPWwAs#NH3+zUdFb10}8B&{JJy))Q4{>Q6&? zad|oHKzE@P{NI^ew~gJZzVy(qFk&gMB{T_vKCvHocw?>aX3=fId_hqG{i`&o1`NVJ zgkRl(RA*9VW$>>&w#^_N7k(%ciq(`12nxntJ}Wqrs>rZfkVz0r8gl5L@SlDEm2Y&W zFT}*(&sNX9+UDmDp847jLdnQT+TInkg~`ZR}C znGD_%%qJ`YZdJ*}YkEqX`j?`F*XB`XmASSzE-(v(TDO66n@A|~Ej1f2&sg^^pX4C+ z%*C7JYCbhbOxQPZH9$Q-5qS6z@i+#Rf6R%e*5P&encq>w#jgj-nNXs6_H_7YUE>fG zN5R{%;U&1JzvqXNpi$sDbg!QxsjsiM*P9TAb}XlbUkoG>j9Sn-(GIc*Zj`qDbfy3X&$A6sPF)?>wxuFB>!iz zPAXF$XVY!A;(~<{8u>_NIkeefArUf2AkwJ9pfDGt}`BBQ2D(D2!b3 z5x*4_2n}o@rRJS+X>R>yq$XpHr8`!TuM+3Pm~Ig=A2f`IUMnUbq{bN)`Ev>OQ()uvA@NNv>ok?*a>doK5XG0tT;ijq7 zor_cO=ehANsKUc()VqU6iJ_!6Ta@bz?R*UpIUG{zXBN_S;jA9i4S1#ql34vj*^X4f zC;@S7?V>A|dZ$&-5q-AI8FFV9b;?X3`jI5v+m=8qaeR@&pQ+s1ieq&rI^q60d8TM) z+4s0;km-8}{40W-Cl{7opkTO{-|1>&I~NpB_|nQ(h!W#g=joR3=Fa~SMQySqgYnKU zLs)w%92W*b6y$P#&C(M9(foPP$w11{KF83!V9K@!w!czN-%Ioj<}g&DG-YUBmXJQl zQIAoyqm1hUGHzvF2&ri2pNXy)(Uq zq1P>pyg2l6W9CePg*i51VW7B0SLJ6;%P9+H&8WC)mrMIRf8FL~bgAqZ&eyfSyHRtc zH2YOac6JyH3CJ?51CBfec|3qTj$^?9hp6Q@Z9u9JYc+9Jw^-M?Uo@UNm4}qsfa`fKwSE^p!T(w^4Dg4XS1ND2( zf!^reykkhajE*_~J7epR84G_p?Syjy0l#+Y>q%EKYuD+R1ejOz>JAH(W}6=Jq#VlY zpeE!}TiT=Fo@C2=s54IP)(P^&z}raFDKFAKZf@5BYamEzN*H;yMAdzJk5gZ2V3EC> z{DOg4mM|YYSzxY0^mrc_$SaXQZ}9VYkm!6?`{JT8f39H(jW_HEgc^QKVopMEFo$324_n^ubN6hZ?421+!VS$c~{sRxoG zDm(HZG)~uY{NhS-$^EZ<`v4J(%z4-}(k)WsIgzlf5Tng zHQhZhDVgcL@jzTW^0YC*>G9+4lALOc$I*!rK(9auQP&#!B2%mZkI3|Px3hh_@E6w+~cMwC>q!j8QI z=KeZJ&ZXcp+U5?>@5S(M(5Sez#^O*Hp6-xp3T-sjDX(N7pq!^Skl0v7Lk2vtm3- zsT}^?9UknESgSZ5$>lds@K0;5C|@m4nIg5cOqE7()o-I=o3Ay@OU zeWvf~3w3>s2k$GrXU@R&On293gO1g#WF&8;lJ!V14V1Cpx51Je(zLsp2xj`;91k@; zjR$;@b2%-)XXt+YLUaW@&(WF0%EZOz6c#>(b4U@K)*l4mz{pET%pUQ1y|C=k?L@;#JVD*O-e3aW;^7vNj249qVLJIMwY z8CK!DLmy?pq*&rS^b*Q#J#c^l%kn`(so&)~e@2>o5UH!@fZG?LB#;xSmCt-Bmn?Cb z)jn;kzA}ZYN_?hY8j|PkG54|wOD2@~6wh5sd~RK^a>7^;r6hANnjfQXn5K%ExOXq< zY){(f3-dXGL8e1(>O%VZLm$a${&=bpsNFaoX>8QWSoMe_$WyxI4oP?@mJ05-ml0dPg_02oZEo!zq^*QY`lg4`E6 zitXSS0(FKZP#3qS)%L7_zXrb3rpgfnspLyq!ur-7$M#%F972NIg2s}oW+9_aR|QqG z5G4{{B0#*0W0yB7z5}rLesk<;O3odqLxJgTPT0@Mzy@7lN&p6M3w+D0ZEcI)C$;`i zrJAjKGjaKqjZGUD<#^GvBK%o;MBRMbuJ4NN zU*6PgUNKK~+FquO>M9ONTO*_%=!YKA@#=!|*WSAt_K9G2gaK+Wb%hyD{da6_u{59I zH5G!SIe0XbC@;!#(#rT96{To5?lX0q!@^R5!zB7~V``01VOFlIpLN$J!QkbzOPeBk zePMio3)eogaEe?qRjU^>axZE`HPygcwMKAB;T$XH(Gw@009!H!*!A#ExpevRE8qeS ztGj_4oBb$93|{L}kX3^twF$FH6#*BFy-12D9l|cA>x}prkUgO78`6s6AuL+j!(%6@xcU1Nv2K*b7JERYa;R**I*lk2BwHnmbfta33;p`5UK7 zZ$L#Ez(84)V*tMr40Ry+E+XUBNCOQ}zJbzq?V2wb+mapJpB>cw&YhTW^%#UbT+!EO z1L5I{xt!hCM&47p5b;r@xHkB%8DQjGXYTAfAIgLv{hr&;amo^?)v$AY0+p8MjFxjA z`sq-<{ezdjH`^@JZwe*xYIfykJOz-9SpvjQt5hU6$>$CLo!?p1rotJj2;IVrArb0e zv8RBBvp(~x*cGa%pHMiidmUOL46s8#3g$IC>^f5?_AI;e_bbtNC{v<@+ zLf?=ggoH#nN~8o-?WFB{KbhFtgUA>1C8Td;`5j=8WnjQ;PMNr@IuWah$Y=ferAM$T zIaQNqnFVmII>(P=Bn*>e$(zeWoUdGi}BqW8Ty0Xkk+ z$XALni|H-RTmw(GwT%>h(yq`^h7R>#>(}an9nscE0A5!UYYDr>UvB zzH~i@QvrhvtP_eon8KO{{Ea+?^&HK=I!xAsfGdj86(TycP)#{c z89Y#C_UhG!hR4sr3Mq&*NmxGi*w6&*a>IE0%gtP52#bJMTLI!FV9i>Q?OlKi4-eFJ z6psKpqCBKRR2cMGFhcVXqTmvs3PJHvXlV&SX&ICtKw7#xSS|_oOG)MfOYQ4kkJ?SU z@4at%oke#D!890LW;NCyF&;wi)IA`@Loi5C7>N;h&d%qgDcu6ojEWpAyJu2;ujoHR zamm@SB`SyY>ZiH~!qe-lSOE2LHDVHQG%>NU2B)46#zVXm=qME2#%RGkH3cC*)75@g z)4gXdg1xsl&nOy7dC=s03~+cjy1@Ph(sFig6P1a)GWHXw!;c=s$%q+iWW3b6{GnAX zn@RRk^7F~0bH4pzCK&MJ;jjWK_L}>RY;tjyT5=4UveL+DNHOW&ROMIehVGKb zM9SD>a=|QrR!fT!2ITZk8RYST1P@a8^v<3|fUdZKD?~CBeM~V4YzgsIY_k<$yo~4R ze0gLqP^+$|pN?l5zx!8RMRAoOqE`~)H$ zd7tH@P@ry9nofrHAe>Xj`K(?YCu@l5LW2>83uXO#zMBL!QV6l0*RkwJlNXbXlqtVu z>Ew~-#zt0d?q5!)3M^_>VJ_)oLX?`_ey#KTM^4$q1VORmg%qY^(y#V{%yz=a@d`t| zI~niG9y}r{M%elYJin%q`w;q)Um-atJb+)%)>v<#$AEqo!(x-*vIaxyuYsxT+k3Z z2c0e|Ll(9JId-q#IDL(f)YpFaF$Dqdfd6)5VCD%vC8QtQ@dBN7?eDMW=muXDegE5y>d*H}4Pkhbm49Kxa&H*FBr3p*4Ef68G098~k1A8bb2$(Ez%c*0 zhbPds*2oa{T{A255Tqnj3%Lg<{&5?FY3t7~{Pzbc7_0yO2j!E-1M?WQ81ix54~)FH=hEkEk=p=Uk`|_QTk!&zwiFf zCshCS?f?6$aA^AHlSIG?_@7_VEGKgRxw8NIa*VN<>hRp*u=D@*`2PL$XuJ3Q^WNOf zugyPAn#G9Om$iwDmtOuKzbwa>MfGkhExV4@>3==wzyJQfx~{K4TK13I|JAdFYS=#? z3-y1z>QDjw=SxcaAFul1|9PSJQG{>*xXJ&=h5mmv;Ql{em>}0OsecVtxUBkEf0n@? z7~zZ?H-EvKAmimfE?lF`R^7Bhj1aWZ6GjmeXGK*4mQ&NkwOY#eFC}T)U%}6ZE a%rA;BDN0S%%fO{ -#include -#include -#include -#include -#include -#include -#include - -namespace bt { - -class Condition { - private: - std_msgs::msg::Bool success; - std::string label; - - rclcpp::Publisher::SharedPtr success_pub; - - public: - Condition(std::string label, rclcpp::Node::SharedPtr node); - void set(bool b); - void publish(); - bool get(); - std::string get_label(); - - static std::string get_published_topic_name(std::string label); -}; - -class Action { - private: - bool active, prev_active, active_changed; - behavior_tree_msgs::msg::Status status; - std::string label; - - // ros::Subscriber active_sub; - // ros::Publisher status_pub; - rclcpp::Subscription::SharedPtr active_sub; - rclcpp::Publisher::SharedPtr status_pub; - - void active_callback(const std_msgs::msg::Bool::SharedPtr msg); - - public: - Action(std::string label, rclcpp::Node::SharedPtr node); - - static std::string get_published_topic_name(std::string label); - static std::string get_subscribed_topic_name(std::string label); - - void set_success(); - void set_running(); - void set_failure(); - - bool is_active(); - bool active_has_changed(); - - bool is_success(); - bool is_running(); - bool is_failure(); - - std::string get_label(); - - void publish(); -}; - -}; // namespace bt - -#endif diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/launch/behavior_tree.launch b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/launch/behavior_tree.launch deleted file mode 100644 index b2b9e7100..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/launch/behavior_tree.launch +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/launch/parallel_state_machine.launch b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/launch/parallel_state_machine.launch deleted file mode 100644 index 198615ff2..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/launch/parallel_state_machine.launch +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/launch/state_machine.launch b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/launch/state_machine.launch deleted file mode 100644 index 402a6441c..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/launch/state_machine.launch +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/package.xml b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/package.xml deleted file mode 100755 index 4f5fd5672..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/package.xml +++ /dev/null @@ -1,69 +0,0 @@ - - - behavior_tree - 0.0.0 - The behavior_tree package - - - - - john - - - - - - TODO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ament_cmake - ament_cmake_python - - rclcpp - rclpy - std_msgs - behavior_tree_msgs - - rqt_gui - rqt_gui_py - - ament_lint_auto - ament_lint_common - - - ament_cmake - - - diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/plugin.xml b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/plugin.xml deleted file mode 100644 index 794676bf6..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/plugin.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - An example Python GUI plugin to create a great user interface. - - - - - - - system-help - Behavior tree interface. - - - diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/rqt_perspectives/behavior_tree.perspective b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/rqt_perspectives/behavior_tree.perspective deleted file mode 100644 index cecd551f4..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/rqt_perspectives/behavior_tree.perspective +++ /dev/null @@ -1,372 +0,0 @@ -{ - "keys": {}, - "groups": { - "pluginmanager": { - "keys": { - "running-plugins": { - "type": "repr", - "repr": "{u'behavior_tree/BehaviorTreePlugin': [1]}" - } - }, - "groups": { - "plugin__state_machine__StateMachinePlugin__1": { - "keys": {}, - "groups": { - "dock_widget__": { - "keys": { - "dockable": { - "type": "repr", - "repr": "u'false'" - }, - "parent": { - "type": "repr", - "repr": "None" - }, - "dock_widget_title": { - "type": "repr", - "repr": "u''" - } - }, - "groups": {} - }, - "plugin": { - "keys": { - "config_filename": { - "type": "repr", - "repr": "u'/home/john/subt/ws/src/state_machine/config/parallel_state_machine.yaml'" - } - }, - "groups": {} - } - } - }, - "plugin__rqt_rviz__RViz__1": { - "keys": {}, - "groups": { - "dock_widget__": { - "keys": { - "dockable": { - "type": "repr", - "repr": "u'true'" - }, - "parent": { - "type": "repr", - "repr": "None" - }, - "dock_widget_title": { - "type": "repr", - "repr": "u'RViz[*]'" - } - }, - "groups": {} - }, - "plugin": { - "keys": { - "rviz_config_file": { - "type": "repr", - "repr": "u'/home/john/subt/temp.rviz'" - }, - "hide_menu": { - "type": "repr", - "repr": "u'false'" - } - }, - "groups": {} - } - } - }, - "plugin__state_machine__StateMachinePlugin__2": { - "keys": {}, - "groups": { - "dock_widget__": { - "keys": { - "dockable": { - "type": "repr", - "repr": "u'true'" - }, - "parent": { - "type": "repr", - "repr": "None" - }, - "dock_widget_title": { - "type": "repr", - "repr": "u'/home/john/subt/temp.rviz'" - } - }, - "groups": {} - }, - "plugin": { - "keys": { - "config_filename": { - "type": "repr", - "repr": "u'/home/john/subt/sim_ws/src/state_machine/config/state_machine.yaml'" - } - }, - "groups": {} - } - } - }, - "plugin__rqt_reconfigure__Param__1": { - "keys": {}, - "groups": { - "dock_widget___plugincontainer_top_widget": { - "keys": { - "dockable": { - "type": "repr", - "repr": "u'true'" - }, - "parent": { - "type": "repr", - "repr": "None" - }, - "dock_widget_title": { - "type": "repr", - "repr": "u'Dynamic Reconfigure'" - } - }, - "groups": {} - }, - "plugin": { - "keys": { - "splitter": { - "type": "repr(QByteArray.hex)", - "repr(QByteArray.hex)": "QtCore.QByteArray('000000ff0000000100000002000001120000029a01ffffffff010000000100')", - "pretty-print": " " - }, - "_splitter": { - "type": "repr(QByteArray.hex)", - "repr(QByteArray.hex)": "QtCore.QByteArray('000000ff0000000100000002000004d40000004b0100000009010000000200')", - "pretty-print": " K " - } - }, - "groups": {} - } - } - }, - "plugin__rqt_reconfigure__Param__2": { - "keys": {}, - "groups": { - "plugin": { - "keys": { - "splitter": { - "type": "repr(QByteArray.hex)", - "repr(QByteArray.hex)": "QtCore.QByteArray('000000ff0000000100000002000000ae0000006401ffffffff010000000100')", - "pretty-print": " d " - }, - "_splitter": { - "type": "repr(QByteArray.hex)", - "repr(QByteArray.hex)": "QtCore.QByteArray('000000ff00000001000000020000012c000000640100000009010000000200')", - "pretty-print": " , d " - } - }, - "groups": {} - } - } - }, - "plugin__MultiplotPlugin__1": { - "keys": {}, - "groups": { - "dock_widget__MultiplotWidget": { - "keys": { - "dockable": { - "type": "repr", - "repr": "u'true'" - }, - "parent": { - "type": "repr", - "repr": "None" - }, - "dock_widget_title": { - "type": "repr", - "repr": "u'Multiplot - [file:///home/john/subt/sim_ws/src/drone_main_launch/rqt_multiplot.xml]'" - } - }, - "groups": {} - }, - "plugin": { - "keys": {}, - "groups": { - "history": { - "keys": { - "max_length": { - "type": "repr", - "repr": "u'10'" - }, - "config_2": { - "type": "repr", - "repr": "u'file:///home/john/subt/ws/src/drone_main_launch/rqt_multiplot.xml'" - }, - "config_1": { - "type": "repr", - "repr": "u'file:///home/john/subt/sim_ws/src/drone_main_launch/hex_pose_rqt_multiplot.xml'" - }, - "config_0": { - "type": "repr", - "repr": "u'file:///home/john/subt/sim_ws/src/drone_main_launch/rqt_multiplot.xml'" - } - }, - "groups": {} - } - } - } - } - }, - "plugin__rosmon__1": { - "keys": {}, - "groups": { - "dock_widget__MonGUI": { - "keys": { - "dockable": { - "type": "repr", - "repr": "u'true'" - }, - "parent": { - "type": "repr", - "repr": "None" - }, - "dock_widget_title": { - "type": "repr", - "repr": "u'Node Monitor'" - } - }, - "groups": {} - }, - "plugin": { - "keys": { - "namespace": { - "type": "repr", - "repr": "u'/rosmon_1554213615858358785'" - }, - "viewState": { - "type": "repr(QByteArray.hex)", - "repr(QByteArray.hex)": "QtCore.QByteArray('000000ff000000000000000100000001000000020100000000000000000000000000000000000001f4000000040001010000000000000000000000000064ffffffff000000840000000000000004000000c80000000100000000000000640000000100000000000000640000000100000000000000640000000100000000000003e80000000000')", - "pretty-print": " d d d d " - } - }, - "groups": {} - } - } - }, - "plugin__basestation_gui_python__BasestationGuiPlugin__1": { - "keys": {}, - "groups": { - "dock_widget__": { - "keys": { - "dockable": { - "type": "repr", - "repr": "u'true'" - }, - "parent": { - "type": "repr", - "repr": "None" - }, - "dock_widget_title": { - "type": "repr", - "repr": "u''" - } - }, - "groups": {} - }, - "plugin": { - "keys": { - "config_filename": { - "type": "repr", - "repr": "u'/home/john/subt/ws/src/basestation_gui_python/config/gui_params.yaml'" - } - }, - "groups": {} - } - } - }, - "plugin__rqt_robot_monitor__RobotMonitor__1": { - "keys": {}, - "groups": { - "dock_widget__Robot Monitor": { - "keys": { - "dockable": { - "type": "repr", - "repr": "u'true'" - }, - "parent": { - "type": "repr", - "repr": "None" - }, - "dock_widget_title": { - "type": "repr", - "repr": "u'Robot Monitor'" - } - }, - "groups": {} - }, - "plugin": { - "keys": { - "splitter": { - "type": "repr(QByteArray.hex)", - "repr(QByteArray.hex)": "QtCore.QByteArray('000000ff00000001000000030000006400000064000000c80100000009010000000200')", - "pretty-print": " d d " - } - }, - "groups": {} - } - } - }, - "plugin__behavior_tree__BehaviorTreePlugin__1": { - "keys": {}, - "groups": { - "dock_widget__": { - "keys": { - "dockable": { - "type": "repr", - "repr": "True" - }, - "parent": { - "type": "repr", - "repr": "None" - }, - "dock_widget_title": { - "type": "repr", - "repr": "u''" - } - }, - "groups": {} - }, - "plugin": { - "keys": { - "config_filename": { - "type": "repr", - "repr": "u'/home/john/subt/ws/src/behavior_tree/config/drone_tree.tree'" - } - }, - "groups": {} - } - } - } - } - }, - "mainwindow": { - "keys": { - "geometry": { - "type": "repr(QByteArray.hex)", - "repr(QByteArray.hex)": "QtCore.QByteArray('01d9d0cb00020000000000430000001b00000d6f0000059f000000430000003700000d6f0000059f00000000000000000d70')", - "pretty-print": " C o C 7 o p" - }, - "state": { - "type": "repr(QByteArray.hex)", - "repr(QByteArray.hex)": "QtCore.QByteArray('000000ff00000000fd000000010000000300000d2d0000053dfc0100000005fb0000004c00730074006100740065005f006d0061006300680069006e0065005f005f00530074006100740065004d0061006300680069006e00650050006c007500670069006e005f005f0031005f005f0100000000000005400000000000000000fb00000062006200610073006500730074006100740069006f006e005f006700750069005f0070007900740068006f006e005f005f004200610073006500730074006100740069006f006e0047007500690050006c007500670069006e005f005f0031005f005f0100000000000005400000000000000000fb00000046004d0075006c007400690070006c006f00740050006c007500670069006e005f005f0031005f005f004d0075006c007400690070006c006f0074005700690064006700650074010000000000000d2d0000000000000000fb0000006c007200710074005f007200650063006f006e006600690067007500720065005f005f0050006100720061006d005f005f0031005f005f005f0070006c007500670069006e0063006f006e007400610069006e00650072005f0074006f0070005f00770069006400670065007401000007aa000005830000000000000000fb0000004c006200650068006100760069006f0072005f0074007200650065005f005f004200650068006100760069006f007200540072006500650050006c007500670069006e005f005f0031005f005f010000000000000d2d00000bf600ffffff00000d2d0000000000000004000000040000000800000008fc00000001000000030000000100000036004d0069006e0069006d0069007a006500640044006f0063006b00570069006400670065007400730054006f006f006c0062006100720000000000ffffffff0000000000000000')", - "pretty-print": " Lstate_machine__StateMachinePlugin__1__ bbasestation_gui_python__BasestationGuiPlugin__1__ FMultiplotPlugin__1__MultiplotWidget lrqt_reconfigure__Param__1___plugincontainer_top_widget Lbehavior_tree__BehaviorTreePlugin__1__ 6MinimizedDockWidgetsToolbar " - } - }, - "groups": { - "toolbar_areas": { - "keys": { - "MinimizedDockWidgetsToolbar": { - "type": "repr", - "repr": "8" - } - }, - "groups": {} - } - } - } - } -} \ No newline at end of file diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/rqt_perspectives/parallel_state_machine.perspective b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/rqt_perspectives/parallel_state_machine.perspective deleted file mode 100644 index df70865e6..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/rqt_perspectives/parallel_state_machine.perspective +++ /dev/null @@ -1,71 +0,0 @@ -{ - "keys": {}, - "groups": { - "pluginmanager": { - "keys": { - "running-plugins": { - "type": "repr", - "repr": "{u'parallel_state_machine/ParallelStateMachinePlugin': [1]}" - } - }, - "groups": { - "plugin__parallel_state_machine__ParallelStateMachinePlugin__1": { - "keys": {}, - "groups": { - "dock_widget__": { - "keys": { - "dockable": { - "type": "repr", - "repr": "True" - }, - "parent": { - "type": "repr", - "repr": "None" - }, - "dock_widget_title": { - "type": "repr", - "repr": "u''" - } - }, - "groups": {} - }, - "plugin": { - "keys": { - "config_filename": { - "type": "repr", - "repr": "u'/home/john/subt/ws/src/parallel_state_machine/config/parallel_state_machine_drone.yaml'" - } - }, - "groups": {} - } - } - } - } - }, - "mainwindow": { - "keys": { - "geometry": { - "type": "repr(QByteArray.hex)", - "repr(QByteArray.hex)": "QtCore.QByteArray('01d9d0cb00020000000004f30000003c00000b09000004f7000004f30000005a00000b09000004f700000000000000000d70')", - "pretty-print": " < Z p" - }, - "state": { - "type": "repr(QByteArray.hex)", - "repr(QByteArray.hex)": "QtCore.QByteArray('000000ff00000000fd00000001000000030000061700000472fc0100000001fb0000006e0070006100720061006c006c0065006c005f00730074006100740065005f006d0061006300680069006e0065005f005f0050006100720061006c006c0065006c00530074006100740065004d0061006300680069006e00650050006c007500670069006e005f005f0031005f005f0100000000000006170000033b00ffffff000006170000000000000004000000040000000800000008fc00000001000000030000000100000036004d0069006e0069006d0069007a006500640044006f0063006b00570069006400670065007400730054006f006f006c0062006100720000000000ffffffff0000000000000000')", - "pretty-print": " nparallel_state_machine__ParallelStateMachinePlugin__1__ 6MinimizedDockWidgetsToolbar " - } - }, - "groups": { - "toolbar_areas": { - "keys": { - "MinimizedDockWidgetsToolbar": { - "type": "repr", - "repr": "8" - } - }, - "groups": {} - } - } - } - } -} \ No newline at end of file diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/scripts/rqt_state_machine b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/scripts/rqt_state_machine deleted file mode 100644 index 9ad1666f5..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/scripts/rqt_state_machine +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/env python - -import sys - -from rqt_behavior_tree.rqt_behavior_tree import BehaviorTreePlugin -from rqt_gui.main import Main - -plugin = 'rqt_behavior_tree' -main = Main(filename=plugin) -sys.exit(main.main(standalone=plugin)) diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/setup.py b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/setup.py deleted file mode 100644 index a181c35c1..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/setup.py +++ /dev/null @@ -1,9 +0,0 @@ -from distutils.core import setup -from catkin_pkg.python_setup import generate_distutils_setup - -d = generate_distutils_setup( - packages=['rqt_behavior_tree', 'behavior_tree'], - package_dir={'': 'src'}, -) - -setup(**d) diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree.cpp b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree.cpp deleted file mode 100644 index cdbe6bc3a..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree.cpp +++ /dev/null @@ -1,91 +0,0 @@ -#include - -namespace bt { - -// ============================================================================== -// -------------------------------- Condition ----------------------------------- -// ============================================================================== - -std::string Condition::get_published_topic_name(std::string label) { - std::string topic_name = label; - std::transform(topic_name.begin(), topic_name.end(), topic_name.begin(), ::tolower); - std::replace(topic_name.begin(), topic_name.end(), ' ', '_'); - topic_name += "_success"; - return topic_name; -} - -Condition::Condition(std::string label, rclcpp::Node::SharedPtr node) : label(label) { - success_pub = - node->create_publisher(Condition::get_published_topic_name(label), 10); - success.data = false; -} - -std::string Condition::get_label() { return label; } - -void Condition::set(bool b) { success.data = b; } - -bool Condition::get() { return success.data; } - -void Condition::publish() { success_pub->publish(success); } - -// ============================================================================== -// --------------------------------- Action ------------------------------------- -// ============================================================================== - -std::string Action::get_published_topic_name(std::string label) { - std::string topic_name = label; - std::transform(topic_name.begin(), topic_name.end(), topic_name.begin(), ::tolower); - std::replace(topic_name.begin(), topic_name.end(), ' ', '_'); - topic_name += "_status"; - return topic_name; -} - -std::string Action::get_subscribed_topic_name(std::string label) { - std::string topic_name = label; - std::transform(topic_name.begin(), topic_name.end(), topic_name.begin(), ::tolower); - std::replace(topic_name.begin(), topic_name.end(), ' ', '_'); - topic_name += "_active"; - return topic_name; -} - -Action::Action(std::string label, rclcpp::Node::SharedPtr node) : label(label) { - active_sub = node->create_subscription( - Action::get_subscribed_topic_name(label), 10, - std::bind(&Action::active_callback, this, std::placeholders::_1)); - status_pub = node->create_publisher( - Action::get_published_topic_name(label), 1); - - active = false; - prev_active = false; - active_changed = false; - status.status = behavior_tree_msgs::msg::Status::FAILURE; -} - -// void Action::active_callback(std_msgs::msg::Bool msg) { active = msg.data; } -void Action::active_callback(const std_msgs::msg::Bool::SharedPtr msg) { active = msg->data; } - -void Action::set_success() { status.status = behavior_tree_msgs::msg::Status::SUCCESS; } - -void Action::set_running() { status.status = behavior_tree_msgs::msg::Status::RUNNING; } - -void Action::set_failure() { status.status = behavior_tree_msgs::msg::Status::FAILURE; } - -bool Action::is_active() { - active_changed = prev_active != active; - prev_active = active; - return active; -} - -bool Action::active_has_changed() { return active_changed; } - -bool Action::is_success() { return status.status == behavior_tree_msgs::msg::Status::SUCCESS; } - -bool Action::is_running() { return status.status == behavior_tree_msgs::msg::Status::RUNNING; } - -bool Action::is_failure() { return status.status == behavior_tree_msgs::msg::Status::FAILURE; } - -std::string Action::get_label() { return label; } - -void Action::publish() { status_pub->publish(status); } - -}; // namespace bt diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/behavior_tree.py b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/behavior_tree.py deleted file mode 100755 index 539f4eb4c..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/behavior_tree.py +++ /dev/null @@ -1,417 +0,0 @@ -#!/usr/bin/python -import rospy -from std_msgs.msg import Bool -from std_msgs.msg import String -from behavior_tree_msgs.msg import Status -import sys -import rospkg - -#================================================================================================================ -# ----------------------------------------------- Return Status ------------------------------------------------ -#================================================================================================================ - -class ReturnStatus: - def __init__(self, status): - if status == Status.FAILURE or status == Status.RUNNING or status == Status.SUCCESS: - self.status = status - else: - print('Invalid return status: ' + status +', defaulting to FAILURE.') - self.status = Status.FAILURE - - def __eq__(self, other): - return self.status == other.status - - def __ne__(self, other): - return self.status != other.status - - def __str__(self): - return self.status - -ReturnStatus.FAILURE = ReturnStatus(Status.FAILURE) -ReturnStatus.RUNNING = ReturnStatus(Status.RUNNING) -ReturnStatus.SUCCESS = ReturnStatus(Status.SUCCESS) - -#================================================================================================================ -# ----------------------------------------------- Base Node Class ----------------------------------------------- -#================================================================================================================ - -class Node(object): - def __init__(self, label): - self.label = label - self.children = [] - self.is_active = False - self.status = ReturnStatus.FAILURE - self.max_wait_time = 1.0 - - def add_child(self, node): - self.children.append(node) - - def tick(self, active, traversal_count): - print('tick not implemented for node ' + self.label) - - def init_ros(self): - pass - - -#================================================================================================================ -# ---------------------------------------------- Control Flow Nodes --------------------------------------------- -#================================================================================================================ - -class ControlFlowNode(Node): - label = 'Unlabeled Control Flow Node' - def __init__(self): - Node.__init__(self, self.label) - -class Fallback(ControlFlowNode): - label = '?' - - def __init__(self): - ControlFlowNode.__init__(self) - - def tick(self, active, traversal_count): - if not active: - for child in self.children: - child.tick(False, traversal_count) - else: - self.status = ReturnStatus.FAILURE - for child in self.children: - if self.status == ReturnStatus.FAILURE: - child.tick(True, traversal_count) - self.status = child.status - else: - child.tick(False, traversal_count) - - self.is_active = active - -class Sequence(ControlFlowNode): - label = u'\u2192' # arrow - - def __init__(self): - ControlFlowNode.__init__(self) - - def tick(self, active, traversal_count): - if not active: - for child in self.children: - child.tick(False, traversal_count) - else: - self.status = ReturnStatus.SUCCESS - for child in self.children: - if self.status == ReturnStatus.SUCCESS: - child.tick(True, traversal_count) - self.status = child.status - else: - child.tick(False, traversal_count) - - self.is_active = active - -class Parallel(ControlFlowNode): - label = '||' - - def __init__(self, child_success_threshold): - ControlFlowNode.__init__(self) - self.child_success_threshold = child_success_threshold - - def tick(self, active, traversal_count): - if not active: - for child in self.children: - child.tick(False, traversal_count) - else: - child_success_count = 0 - child_failure_count = 0 - for child in self.children: - child.tick(True, traversal_count) - if child.status == ReturnStatus.SUCCESS: - child_success_count += 1 - elif child.status == ReturnStatus.FAILURE: - child_failure_count += 1 - - if child_success_count >= self.child_success_threshold: - self.status = ReturnStatus.SUCCESS - elif child_failure_count >= len(self.children) - self.child_success_threshold + 1: - self.status = ReturnStatus.FAILURE - else: - self.status = ReturnStatus.RUNNING - - self.is_active = active - - -#================================================================================================================ -# ----------------------------------------------- Execution Nodes ----------------------------------------------- -#================================================================================================================ - -def get_condition_topic_name(name): - topic_name = name.lower().replace(' ', '_') + '_success' - return topic_name - -class ExecutionNode(Node): - def __init__(self, label): - Node.__init__(self, label) - self.publisher = None - self.subscriber = None - self.status_modification_time = None - - def callback(self, msg): - self.is_waiting = False - if isinstance(msg, Bool): - if msg.data: - self.set_status(ReturnStatus.SUCCESS) - else: - self.set_status(ReturnStatus.FAILURE) - elif isinstance(msg, Status): - self.set_status(ReturnStatus(msg.status)) - if msg.status != self.status.status: - print('Invalid return status "' + msg.status + '" for node ' + self.label) - else: - print('invalid message type received in callback for node ' + self.label) - - def init_ros(self): - self.init_publisher() - self.init_subscriber() - - def get_publisher_name(self): - pass - - def init_publisher(self): - pass - - def get_subscriber_name(self): - raise NotImplementedError - - def init_subscriber(self): - raise NotImplementedError - - def set_status(self, status): - self.status = status - self.status_modification_time = rospy.Time.now() - - def get_status_age(self): - if self.status_modification_time == None: - return float('inf') - else: - return (rospy.Time.now() - self.status_modification_time).to_sec() - -class Condition(ExecutionNode): - def __init__(self, label): - ExecutionNode.__init__(self, label) - self.current_traversal_count = -1 - - def tick(self, active, traversal_count): - if self.current_traversal_count != traversal_count: - self.current_traversal_count = traversal_count - else: - if self.is_active: - return - - if self.is_active == False and active == True and self.status == ReturnStatus.FAILURE: - self.set_status(ReturnStatus.FAILURE)#RUNNING) - if self.get_status_age() > self.max_wait_time: - self.set_status(ReturnStatus.FAILURE) - - self.is_active = active - - def get_subscriber_name(self): - #sub_name = self.label.lower().replace(' ', '_') + '_success' - sub_name = get_condition_topic_name(self.label) - return sub_name - - def init_subscriber(self): - self.subscriber = rospy.Subscriber(self.get_subscriber_name(), Bool, self.callback) - -class Action(ExecutionNode): - def __init__(self, label): - ExecutionNode.__init__(self, label) - self.current_traversal_count = -1 - - def tick(self, active, traversal_count): - if self.current_traversal_count != traversal_count: - self.current_traversal_count = traversal_count - else: - if self.is_active: - return - - if self.is_active == False and active == True and self.status == ReturnStatus.FAILURE: - self.set_status(ReturnStatus.RUNNING) - if self.get_status_age() > self.max_wait_time: - self.set_status(ReturnStatus.FAILURE) - - self.is_active = active - - def get_publisher_name(self): - pub_name = self.label.lower().replace(' ', '_') + '_active' - return pub_name - - def init_publisher(self): - self.publisher = rospy.Publisher(self.get_publisher_name(), Bool, queue_size=1) - - def get_subscriber_name(self): - sub_name = self.label.lower().replace(' ', '_') + '_status' - return sub_name - - def init_subscriber(self): - self.subscriber = rospy.Subscriber(self.get_subscriber_name(), Status, self.callback) - -#================================================================================================================ -# ----------------------------------------------- Decorator Nodes ----------------------------------------------- -#================================================================================================================ - -class Decorator(Node): - def __init__(self, label): - Node.__init__(self, label) - - def add_child(self, node): - if len(self.children) == 0: - self.children.append(node) - else: - raise Exception('A Decorator can have only one child.') - - -class NotDecorator(Decorator): - def __init__(self): - Decorator.__init__(self, '!') - - def add_child(self, node): - if isinstance(node, Condition): - super(NotDecorator, self).add_child(node) - else: - raise Exception('Not Decorators must have a Condition node child.') - - def tick(self, active, traversal_count): - child = self.children[0] - child.tick(active, traversal_count) - if child.status == ReturnStatus.SUCCESS: - self.status = ReturnStatus.FAILURE - elif child.status == ReturnStatus.FAILURE: - self.status = ReturnStatus.SUCCESS - - self.is_active = active - -def get_decorator(label): - if label == '!': - return NotDecorator() - -#================================================================================================================ -# ------------------------------------------------ Behavior Tree ------------------------------------------------ -#================================================================================================================ - -class BehaviorTree: - def __init__(self, config_filename): - self.root = None - self.nodes = [] - self.traversal_count = 0 - - self.parse_config(config_filename) - - self.active_actions_pub = rospy.Publisher('active_actions', String, queue_size=1) - - def parse_config(self, config_filename): - rospack = rospkg.RosPack() - - fin = open(config_filename) - nodes_worklist = [] - prev_tabs = 0 - - lines = fin.read().split('\n') - - include = 'include' - did_include = True - - while did_include: - did_include = False - for i in range(len(lines)): - line = lines[i] - tabs = len(line) - len(line.lstrip('\t')) - label = line.strip() - - if len(label) >= len(include) and label[:len(include)] == include: - did_include = True - filename = label.split(include)[-1].strip() - while True: - try: - start = filename.index('$(') - end = filename.index(')') - except: - break - find_statement = filename[start:end] - package_name = find_statement.split('find')[-1].strip() - filename = filename[0:start] + rospack.get_path(package_name) + filename[end+1:] - subtree_lines = open(filename).read().split('\n') - add_tabs = tabs*'\t' - subtree_lines = map(lambda x:add_tabs+x, subtree_lines) - del lines[i] - lines = lines[:i] + subtree_lines + lines[i:] - - - for line in lines: - if len(line) == 0: - continue - - tabs = len(line) - len(line.lstrip('\t')) - label = line.strip() - node = None - - if label[:2] == '->': - node = Sequence() - elif label[0] == '?': - node = Fallback() - elif label[:2] == '||': - arguments = map(lambda x:x.strip(), label[2:].split(',')) - node = Parallel(int(arguments[0])) - elif label[0] == '(': - node_label = label.replace('(', '').replace(')', '') - node = Condition(node_label) - elif label[0] == '[': - node_label = label.replace('[', '').replace(']', '') - node = Action(node_label) - elif label[0] == '<': - node_label = label.replace('<', '').replace('>', '') - node = get_decorator(node_label) - - self.nodes.append(node) - - if self.root == None: - self.root = node - nodes_worklist.append(node) - continue - - if tabs == prev_tabs+1: - parent = nodes_worklist[-1] - parent.add_child(node) - else: - for i in range(prev_tabs - tabs + 1): - nodes_worklist.pop() - parent = nodes_worklist[-1] - parent.add_child(node) - - - nodes_worklist.append(node) - prev_tabs = tabs - - def tick(self): - if self.root != None: - self.root.tick(True, self.traversal_count) - self.traversal_count += 1 - active_actions = String() - active_actions.data = '' - - # Make sure that if there are more than one of the same action, if any are active, then active should be published - unique_action_nodes = {} - for node in self.nodes: - if isinstance(node, Action): - if node.label in unique_action_nodes.keys(): - if node.is_active: - unique_action_nodes[node.label] = node - else: - unique_action_nodes[node.label] = node - - for label, node in unique_action_nodes.iteritems(): - active_msg = Bool() - active_msg.data = node.is_active - node.publisher.publish(active_msg) - - if node.is_active: - active_actions.data += label + ', ' - active_actions.data = active_actions.data[:-2] # strip the final comma and space - self.active_actions_pub.publish(active_actions) - -if __name__ == '__main__': - BehaviorTree(sys.argv[1]) diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/behavior_tree_graphviz.py b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/behavior_tree_graphviz.py deleted file mode 100755 index 5df4aad29..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/behavior_tree_graphviz.py +++ /dev/null @@ -1,103 +0,0 @@ -#!/usr/bin/python -#import graphviz -#import cv2 -import sys -import behavior_tree as bt -import os - -import sys -reload(sys) -sys.setdefaultencoding('utf8') - - -def get_graphviz(tree): - nodes_worklist = [tree.root] - - gv = 'digraph G {\n' - - counts = {bt.Condition: 0, bt.Action: 0, bt.Fallback: 0, bt.Sequence: 0, bt.Parallel: 0, bt.Decorator: 0} - node_names = {} - - while len(nodes_worklist) > 0: - node = nodes_worklist.pop() - - style = '' - if node.is_active: - style += 'penwidth=2 color=black style=filled ' - if node.status == bt.ReturnStatus.SUCCESS: - style += 'fillcolor=green' - elif node.status == bt.ReturnStatus.RUNNING: - style += 'fillcolor=blue' - elif node.status == bt.ReturnStatus.FAILURE: - style += 'fillcolor=red' - else: - style += 'penwidth=2 ' - if node.status == bt.ReturnStatus.SUCCESS: - style += 'color=green' - elif node.status == bt.ReturnStatus.RUNNING: - style += 'color=blue' - elif node.status == bt.ReturnStatus.FAILURE: - style += 'color=red' - - if isinstance(node, bt.Condition): - name = 'condition_%d' % (counts[bt.Condition]) - gv += '\t%s [label="%s" %s]\n' % (name, node.label, style) - counts[bt.Condition] += 1 - elif isinstance(node, bt.Action): - name = 'action_%d' % (counts[bt.Action]) - gv += '\t%s [label="%s" shape=square %s]\n' % (name, node.label, style) - counts[bt.Action] += 1 - elif isinstance(node, bt.Fallback): - name = 'fallback_%d' % (counts[bt.Fallback]) - gv += '\t%s [label="%s" shape=square %s]\n' % (name, node.label, style) - counts[bt.Fallback] += 1 - elif isinstance(node, bt.Sequence): - name = 'sequence_%d' % (counts[bt.Sequence]) - gv += '\t%s [label="%s" shape=square %s]\n' % (name, node.label, style) - counts[bt.Sequence] += 1 - elif isinstance(node, bt.Parallel): - name = 'parallel_%d' % (counts[bt.Parallel]) - gv += '\t%s [label="%s" shape=parallelogram %s]\n' % (name, node.label, style) - counts[bt.Parallel] += 1 - elif isinstance(node, bt.Decorator): - name = 'decorator_%d' % (counts[bt.Decorator]) - gv += '\t%s [label="%s" shape=diamond %s]\n' % (name, node.label, style) - counts[bt.Decorator] += 1 - - node_names[node] = name - - for child in node.children: - nodes_worklist.append(child) - - gv += '\n\tordering=out;\n\n' - - nodes_worklist.append(tree.root) - while len(nodes_worklist) > 0: - node = nodes_worklist.pop() - - for child in node.children: - gv += '\t%s -> %s;\n' % (node_names[node], node_names[child]) - nodes_worklist.append(child) - - - gv += '}\n' - - return gv - -''' -def get_graphviz_image(gv_source, filename='temp'): - s = graphviz.Source(gv_source, filename=filename, format='png', engine='dot') - s.render() - - img = cv2.imread(filename + '.png') - return img -''' - -if __name__ == '__main__': - tree = bt.BehaviorTree(sys.argv[1]) - source = get_graphviz(tree) - -''' - if (len(sys.argv)) > 2: - get_graphviz_image(source, os.path.basename(sys.argv[2]).split('.')[0]) -''' diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/behavior_tree_node.py b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/behavior_tree_node.py deleted file mode 100755 index fc8782dea..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/behavior_tree_node.py +++ /dev/null @@ -1,43 +0,0 @@ -#!/usr/bin/python -import rospy -from std_msgs.msg import String, Bool -import behavior_tree as bt -import behavior_tree_graphviz as gv -#import cv2 -import zlib - -class BehaviorTreeNode: - def __init__(self, config_filename): - self.tree = bt.BehaviorTree(config_filename) - for node in self.tree.nodes: - node.init_ros() - -def timer_callback(event): - node.tree.tick()#root.tick(True) - - source = gv.get_graphviz(node.tree) - source_msg = String() - source_msg.data = source - graphviz_pub.publish(source_msg) - - compressed = String() - compressed.data = zlib.compress(source) - compressed_pub.publish(compressed) - ''' - img = gv.get_graphviz_image(source) - cv2.imshow('img', img) - cv2.waitKey(1) - ''' - -if __name__ == '__main__': - rospy.init_node('behavior_tree_node') - - config_filename = rospy.get_param('~config', '') - - node = BehaviorTreeNode(config_filename) - - graphviz_pub = rospy.Publisher('behavior_tree_graphviz', String, queue_size=1) - compressed_pub = rospy.Publisher('behavior_tree_graphviz_compressed', String, queue_size=1) - timer = rospy.Timer(rospy.Duration(0.05), timer_callback) - - rospy.spin() diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/parallel_state_machine.py b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/parallel_state_machine.py deleted file mode 100755 index bae6c4957..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/parallel_state_machine.py +++ /dev/null @@ -1,153 +0,0 @@ -#!/usr/bin/python -import rospy -from std_msgs.msg import String -import yaml -import sys -import collections - -# Comments: -# 1. State names must be unique across all state machines -# - Would be confusing to interpret if you were reading what state the robot is in -# - Graphviz doesn't seem to support having the same name in different subgraphs -# 2. Can transition from state -> state (within a state machine), from state -> state machine and from state machine -> state machine, but not from a state machine -> state - -class State: - def __init__(self, name, state_machine): - self.name = name - self.state_machine = state_machine - self.transitions = collections.OrderedDict() - - def add_transition(self, transition, state): - self.transitions[transition] = state - - def transition(self, trans): - if trans in self.transitions.keys(): - print(self.name + ': transitioning to ' + self.transitions[trans].name) - return self.transitions[trans] - else: - print(self.name + ': invalid transition ' + trans) - return None - - def print_structure(self): - print('\t' + self.name) - for transition, state_or_state_machine in self.transitions.iteritems(): - print('\t\t' + transition + ': this -> ' + state_or_state_machine.name) - -class StateMachine: - def __init__(self, name): - self.name = name - self.states = collections.OrderedDict() - self.transitions = collections.OrderedDict() - self.current_state = None - - def add_state(self, state): - self.states[state.name] = state - if self.current_state == None: - self.current_state = state - - def add_transition(self, transition, state_machine): - self.transitions[transition] = state_machine - - def transition(self, trans): - if trans in self.transitions.keys(): - print(self.name + ': transitioning to new state machine ' + self.transitions[trans].name) - return self.transitions[trans] - else: - new_state_or_state_machine = self.current_state.transition(trans) - print(new_state_or_state_machine.name, isinstance(new_state_or_state_machine, State)) - if isinstance(new_state_or_state_machine, State): - self.current_state = new_state_or_state_machine - print(self.current_state.name) - return new_state_or_state_machine - - def print_structure(self): - print(self.name) - for transition, state_machine in self.transitions.iteritems(): - print('\t' + transition + ': this -> ' + state_machine.name) - for state_name, state in self.states.iteritems(): - state.print_structure() - -class ParallelStateMachine: - def __init__(self, config_filename): - self.states = collections.OrderedDict() - self.state_machines = collections.OrderedDict() - self.current_state_machine = None - - # parse the config file - config = yaml.load(open(config_filename, 'r').read()) - - # Do a first pass to initialize all of the state machines and states - for state_machine_dict in config['state_machines']: - name = state_machine_dict.keys()[0] - state_machine = StateMachine(name) - self.state_machines[name] = state_machine - - for state_name in state_machine_dict[name]['states']: # TODO: check that len(states) > 0 - state = State(state_name, state_machine) # TODO: check that name is unique - self.states[state_name] = state - state_machine.add_state(state) - # TODO: check that state names and state machines names are unique - - # Do a second pass to build the structure of the state machines - # TODO: check that transitions are valid according to rules above - for state_machine_dict in config['state_machines']: - name = state_machine_dict.keys()[0] - state_machine = self.state_machines[name] - - for transition in state_machine_dict[name]['transitions']: - transition_dict = state_machine_dict[name]['transitions'][transition] - to_name = transition_dict['to'] - - if to_name in self.states.keys(): - to = self.states[to_name] - elif to_name in self.state_machines.keys(): - to = self.state_machines[to_name] - - if 'from' in transition_dict.keys(): - from_states = transition_dict['from'] - if type(from_states) == str: - from_states = [from_states] - for from_state in from_states: - self.states[from_state].add_transition(transition, to) - else: - state_machine.add_transition(transition, to) - - self.current_state_machine = self.state_machines[self.state_machines.keys()[0]] - - self.print_structure() - - def print_structure(self): - for state_machine_name, state_machine in self.state_machines.iteritems(): - state_machine.print_structure() - - - def transition(self, trans): - state_or_state_machine = self.current_state_machine.transition(trans) - - if isinstance(state_or_state_machine, StateMachine): - self.current_state_machine = state_or_state_machine - - -def transition_callback(msg): - parallel_state_machine.transition(msg.data) - -def timer_callback(x): - state_pub.publish(parallel_state_machine.current_state_machine.current_state.name) - -if __name__ == '__main__': - #parallel_state_machine = ParallelStateMachine(sys.argv[1]) - #exit() - rospy.init_node('state_machine', anonymous=True) - - config_filename = rospy.get_param('~config', '') - state_pub_rate = 1./rospy.get_param('~state_pub_rate', 10.) - - parallel_state_machine = ParallelStateMachine(config_filename) - - - - transition_sub = rospy.Subscriber('/transition', String, transition_callback) - state_pub = rospy.Publisher('/state', String, queue_size=10) - state_pub_timer = rospy.Timer(rospy.Duration(state_pub_rate), timer_callback) - - rospy.spin() diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/pydot_test.py b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/pydot_test.py deleted file mode 100755 index 727e926ad..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/pydot_test.py +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin/python -import pydot - -graph = pydot.Dot(graph_type='digraph') -node_a = pydot.Node("Node A", style="filled", fillcolor="red") -node_b = pydot.Node("Node B", style="filled", fillcolor="green") -node_c = pydot.Node("Node C", style="filled", fillcolor="#0000ff") -node_d = pydot.Node("Node D", style="filled", fillcolor="#976856") -graph.add_node(node_a) -graph.add_node(node_b) -graph.add_node(node_c) -graph.add_node(node_d) -graph.add_edge(pydot.Edge(node_a, node_b)) -graph.add_edge(pydot.Edge(node_b, node_c)) -graph.add_edge(pydot.Edge(node_c, node_d)) -graph.add_edge(pydot.Edge(node_d, node_a, label="and back we go again", labelfontcolor="#009933", fontsize="10.0", color="blue")) -graph.write_png('rqt_test.png') diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/rc_to_state.py b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/rc_to_state.py deleted file mode 100755 index ccb0c5c6f..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/rc_to_state.py +++ /dev/null @@ -1,45 +0,0 @@ -#!/usr/bin/python -import rospy -from mavros_msgs.msg import RCIn -from std_msgs.msg import String - -switch = None -prev_switch = None -channel_upper_bound = 2000 -channel_lower_bound = 1000 -toggles = 0 - - -def rc_callback(rc): - global prev_switch, switch, toggles - channel = rc.channels[8] - if channel >= channel_upper_bound: - switch = True - elif channel <= channel_lower_bound: - switch = False - - if prev_switch == None or switch == None: - prev_switch = switch - return - - if switch != prev_switch: - toggles += 1 - transition = String() - - if toggles == 1: - transition.data = 'rewind' - transition_pub.publish(transition) - elif toggles == 2: - transition.data = 'land' - transition_pub.publish(transition) - - prev_switch = switch - - -if __name__ == '__main__': - rospy.init_node('rc_to_state') - - rc_sub = rospy.Subscriber('/mavros/rc/in', RCIn, rc_callback) - transition_pub = rospy.Publisher('/transition', String, queue_size=1) - - rospy.spin() diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/rqt_test.png b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/rqt_test.png deleted file mode 100644 index c43adc852f91b303e482c763ebf8176975fed1e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17804 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

      =W3D-qhlwe?Bka~Y_y-~FumRe+t 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. - -from xdot import * - -__all__ = ['WxDotWindow', 'WxDotFrame'] - -# We need to get the wx version with built-in cairo support -import wxversion -wxversion.select("2.8") -import wx -import wx.lib.wxcairo as wxcairo - -# This is a crazy hack to get this to work on 64-bit systems -if 'wxMac' in wx.PlatformInfo: - pass # Implement if necessary -elif 'wxMSW' in wx.PlatformInfo: - pass # Implement if necessary -elif 'wxGTK' in wx.PlatformInfo: - import ctypes - gdkLib = wx.lib.wxcairo._findGDKLib() - gdkLib.gdk_cairo_create.restype = ctypes.c_void_p - -class WxDragAction(object): - def __init__(self, dot_widget): - self.dot_widget = dot_widget - - def on_button_press(self, event): - x,y = event.GetPositionTuple() - self.startmousex = self.prevmousex = x - self.startmousey = self.prevmousey = y - self.start() - - def on_motion_notify(self, event): - x,y = event.GetPositionTuple() - deltax = self.prevmousex - x - deltay = self.prevmousey - y - self.drag(deltax, deltay) - self.prevmousex = x - self.prevmousey = y - - def on_button_release(self, event): - x,y = event.GetPositionTuple() - self.stopmousex = x - self.stopmousey = y - self.stop() - - def draw(self, cr): - pass - - def start(self): - pass - - def drag(self, deltax, deltay): - pass - - def stop(self): - pass - - def abort(self): - pass - -class WxNullAction(WxDragAction): - def on_motion_notify(self, event): - pass - -class WxPanAction(WxDragAction): - def start(self): - self.dot_widget.set_cursor(wx.CURSOR_SIZING) - - def drag(self, deltax, deltay): - self.dot_widget.x += deltax / self.dot_widget.zoom_ratio - self.dot_widget.y += deltay / self.dot_widget.zoom_ratio - self.dot_widget.Refresh() - - def stop(self): - self.dot_widget.set_cursor(wx.CURSOR_ARROW) - - abort = stop - -class WxZoomAction(WxDragAction): - def drag(self, deltax, deltay): - self.dot_widget.zoom_ratio *= 1.005 ** (deltax + deltay) - self.dot_widget.zoom_to_fit_on_resize = False - self.dot_widget.Refresh() - - def stop(self): - self.dot_widget.Refresh() - -class WxZoomAreaAction(WxDragAction): - def drag(self, deltax, deltay): - self.dot_widget.Refresh() - - def draw(self, cr): - cr.save() - cr.set_source_rgba(.5, .5, 1.0, 0.25) - cr.rectangle(self.startmousex, self.startmousey, - self.prevmousex - self.startmousex, - self.prevmousey - self.startmousey) - cr.fill() - cr.set_source_rgba(.5, .5, 1.0, 1.0) - cr.set_line_width(1) - cr.rectangle(self.startmousex - .5, self.startmousey - .5, - self.prevmousex - self.startmousex + 1, - self.prevmousey - self.startmousey + 1) - cr.stroke() - cr.restore() - - def stop(self): - x1, y1 = self.dot_widget.window2graph(self.startmousex, - self.startmousey) - x2, y2 = self.dot_widget.window2graph(self.stopmousex, - self.stopmousey) - self.dot_widget.zoom_to_area(x1, y1, x2, y2) - - def abort(self): - self.dot_widget.Refresh() - -class WxDotWindow(wx.Panel): - """wxpython Frame that draws dot graphs.""" - filter = 'dot' - - def __init__(self, parent, id): - """constructor""" - wx.Panel.__init__(self, parent, id) - - self.graph = Graph() - self.openfilename = None - - self.x, self.y = 0.0, 0.0 - self.zoom_ratio = 1.0 - self.zoom_to_fit_on_resize = False - self.animation = NoAnimation(self) - self.drag_action = WxNullAction(self) - self.presstime = None - self.highlight = None - - # Bind events - self.Bind(wx.EVT_PAINT, self.OnPaint) - self.Bind(wx.EVT_SIZE, self.OnResize) - - self.Bind(wx.EVT_MOUSEWHEEL, self.OnScroll) - - self.Bind(wx.EVT_MOUSE_EVENTS, self.OnMouse) - - self.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown) - - # Callback register - self.select_cbs = [] - self.dc = None - self.ctx = None - self.items_by_url = {} - - ### User callbacks - def register_select_callback(self, cb): - self.select_cbs.append(cb) - - ### Event handlers - def OnResize(self, event): - self.Refresh() - - def OnPaint(self, event): - """Redraw the graph.""" - dc = wx.PaintDC(self) - - #print dc - ctx = wxcairo.ContextFromDC(dc) - ctx = pangocairo.CairoContext(ctx) - #print "DRAW" - - # Get widget size - width, height = self.GetSize() - #width,height = self.dc.GetSizeTuple() - - ctx.rectangle(0,0,width,height) - ctx.clip() - - ctx.set_source_rgba(1.0, 1.0, 1.0, 1.0) - ctx.paint() - - ctx.save() - ctx.translate(0.5*width, 0.5*height) - - ctx.scale(self.zoom_ratio, self.zoom_ratio) - ctx.translate(-self.x, -self.y) - self.graph.draw(ctx, highlight_items=self.highlight) - ctx.restore() - - self.drag_action.draw(ctx) - - def OnScroll(self, event): - """Zoom the view.""" - if event.GetWheelRotation() > 0: - self.zoom_image(self.zoom_ratio * self.ZOOM_INCREMENT, - pos=(event.GetX(), event.GetY())) - else: - self.zoom_image(self.zoom_ratio / self.ZOOM_INCREMENT, - pos=(event.GetX(), event.GetY())) - - def OnKeyDown(self, event): - """Process key down event.""" - key = event.GetKeyCode() - if key == wx.WXK_LEFT: - self.x -= self.POS_INCREMENT/self.zoom_ratio - self.Refresh() - if key == wx.WXK_RIGHT: - self.x += self.POS_INCREMENT/self.zoom_ratio - self.Refresh() - if key == wx.WXK_UP: - self.y -= self.POS_INCREMENT/self.zoom_ratio - self.Refresh() - if key == wx.WXK_DOWN: - self.y += self.POS_INCREMENT/self.zoom_ratio - self.Refresh() - if key == wx.WXK_PAGEUP: - self.zoom_image(self.zoom_ratio * self.ZOOM_INCREMENT) - self.Refresh() - if key == wx.WXK_PAGEDOWN: - self.zoom_image(self.zoom_ratio / self.ZOOM_INCREMENT) - self.Refresh() - if key == wx.WXK_ESCAPE: - self.drag_action.abort() - self.drag_action = WxNullAction(self) - if key == ord('F'): - self.zoom_to_fit() - if key == ord('R'): - self.reload() - if key == ord('Q'): - self.reload() - exit(0) - - ### Helper functions - def get_current_pos(self): - """Get the current graph position.""" - return self.x, self.y - - def set_current_pos(self, x, y): - """Set the current graph position.""" - self.x = x - self.y = y - self.Refresh() - - def set_highlight(self, items): - """Set a number of items to be hilighted.""" - if self.highlight != items: - self.highlight = items - self.Refresh() - - ### Cursor manipulation - def set_cursor(self, cursor_type): - self.cursor = wx.StockCursor(cursor_type) - self.SetCursor(self.cursor) - - ### Zooming methods - def zoom_image(self, zoom_ratio, center=False, pos=None): - """Zoom the graph.""" - if center: - self.x = self.graph.width/2 - self.y = self.graph.height/2 - elif pos is not None: - width, height = self.GetSize() - x, y = pos - x -= 0.5*width - y -= 0.5*height - self.x += x / self.zoom_ratio - x / zoom_ratio - self.y += y / self.zoom_ratio - y / zoom_ratio - self.zoom_ratio = zoom_ratio - self.zoom_to_fit_on_resize = False - self.Refresh() - - def zoom_to_area(self, x1, y1, x2, y2): - """Zoom to an area of the graph.""" - width, height = self.GetSize() - area_width = abs(x1 - x2) - area_height = abs(y1 - y2) - self.zoom_ratio = min( - float(width)/float(area_width), - float(height)/float(area_height) - ) - self.zoom_to_fit_on_resize = False - self.x = (x1 + x2) / 2 - self.y = (y1 + y2) / 2 - self.Refresh() - - def zoom_to_fit(self): - """Zoom to fit the size of the graph.""" - width,height = self.GetSize() - x = self.ZOOM_TO_FIT_MARGIN - y = self.ZOOM_TO_FIT_MARGIN - width -= 2 * self.ZOOM_TO_FIT_MARGIN - height -= 2 * self.ZOOM_TO_FIT_MARGIN - - if float(self.graph.width) > 0 and float(self.graph.height) > 0 and width > 0 and height > 0: - zoom_ratio = min( - float(width)/float(self.graph.width), - float(height)/float(self.graph.height) - ) - self.zoom_image(zoom_ratio, center=True) - self.zoom_to_fit_on_resize = True - - ZOOM_INCREMENT = 1.25 - ZOOM_TO_FIT_MARGIN = 12 - - def on_zoom_in(self, action): - self.zoom_image(self.zoom_ratio * self.ZOOM_INCREMENT) - - def on_zoom_out(self, action): - self.zoom_image(self.zoom_ratio / self.ZOOM_INCREMENT) - - def on_zoom_fit(self, action): - self.zoom_to_fit() - - def on_zoom_100(self, action): - self.zoom_image(1.0) - - POS_INCREMENT = 100 - - def get_drag_action(self, event): - """Get a drag action for this click.""" - # Grab the button - button = event.GetButton() - # Grab modifier keys - control_down = event.ControlDown() - alt_down = event.AltDown() - shift_down = event.ShiftDown() - - drag = event.Dragging() - motion = event.Moving() - - # Get the correct drag action for this click - if button in (wx.MOUSE_BTN_LEFT, wx.MOUSE_BTN_MIDDLE): # left or middle button - if control_down: - if shift_down: - return WxZoomAreaAction(self) - else: - return WxZoomAction(self) - else: - return WxPanAction(self) - - return WxNullAction(self) - - def OnMouse(self, event): - x,y = event.GetPositionTuple() - - item = None - - # Get the item - if not event.Dragging(): - item = self.get_url(x, y) - if item is None: - item = self.get_jump(x, y) - - if item is not None: - self.set_cursor(wx.CURSOR_HAND) - self.set_highlight(item.highlight) - - for cb in self.select_cbs: - cb(item,event) - else: - self.set_cursor(wx.CURSOR_ARROW) - self.set_highlight(None) - - if item is None: - if event.ButtonDown(): - self.animation.stop() - self.drag_action.abort() - - # Get the drag action - self.drag_action = self.get_drag_action(event) - self.drag_action.on_button_press(event) - - self.pressx = x - self.pressy = y - - if event.Dragging() or event.Moving(): - self.drag_action.on_motion_notify(event) - - if event.ButtonUp(): - self.drag_action.on_button_release(event) - self.drag_action = WxNullAction(self) - - event.Skip() - - - def on_area_size_allocate(self, area, allocation): - if self.zoom_to_fit_on_resize: - self.zoom_to_fit() - - def animate_to(self, x, y): - self.animation = ZoomToAnimation(self, x, y) - self.animation.start() - - def window2graph(self, x, y): - "Get the x,y coordinates in the graph from the x,y coordinates in the window.""" - width, height = self.GetSize() - x -= 0.5*width - y -= 0.5*height - x /= self.zoom_ratio - y /= self.zoom_ratio - x += self.x - y += self.y - return x, y - - def get_url(self, x, y): - x, y = self.window2graph(x, y) - return self.graph.get_url(x, y) - - def get_jump(self, x, y): - x, y = self.window2graph(x, y) - return self.graph.get_jump(x, y) - - def set_filter(self, filter): - self.filter = filter - - def set_dotcode(self, dotcode, filename=''): - if isinstance(dotcode, unicode): - dotcode = dotcode.encode('utf8') - p = subprocess.Popen( - [self.filter, '-Txdot'], - stdin=subprocess.PIPE, - stdout=subprocess.PIPE, - stderr=subprocess.PIPE, - shell=False, - universal_newlines=True - ) - xdotcode, error = p.communicate(dotcode) - if p.returncode != 0: - print "ERROR PARSING DOT CODE", error - dialog = gtk.MessageDialog(type=gtk.MESSAGE_ERROR, - message_format=error, - buttons=gtk.BUTTONS_OK) - dialog.set_title('Dot Viewer') - dialog.run() - dialog.destroy() - return False - try: - self.set_xdotcode(xdotcode) - - # Store references to all the items - self.items_by_url = {} - for item in self.graph.nodes + self.graph.edges: - if item.url is not None: - self.items_by_url[item.url] = item - - # Store references to subgraph states - self.subgraph_shapes = self.graph.subgraph_shapes - - except ParseError, ex: - print "ERROR PARSING XDOT CODE" - dialog = gtk.MessageDialog(type=gtk.MESSAGE_ERROR, - message_format=str(ex), - buttons=gtk.BUTTONS_OK) - dialog.set_title('Dot Viewer') - dialog.run() - dialog.destroy() - return False - else: - self.openfilename = filename - return True - - def set_xdotcode(self, xdotcode): - """Set xdot code.""" - #print xdotcode - parser = XDotParser(xdotcode) - self.graph = parser.parse() - self.highlight = None - #self.zoom_image(self.zoom_ratio, center=True) - - def reload(self): - if self.openfilename is not None: - try: - fp = file(self.openfilename, 'rt') - self.set_dotcode(fp.read(), self.openfilename) - fp.close() - except IOError: - pass - - -class WxDotFrame(wx.Frame): - def __init__(self): - wx.Frame.__init__(self, None, -1, "Dot Viewer", size=(512,512)) - - vbox = wx.BoxSizer(wx.VERTICAL) - - # Construct toolbar - toolbar = wx.ToolBar(self, -1) - toolbar.AddLabelTool(wx.ID_OPEN, 'Open File', - wx.ArtProvider.GetBitmap(wx.ART_FOLDER_OPEN,wx.ART_OTHER,(16,16))) - toolbar.AddLabelTool(wx.ID_HELP, 'Help', - wx.ArtProvider.GetBitmap(wx.ART_HELP,wx.ART_OTHER,(16,16)) ) - toolbar.Realize() - - self.Bind(wx.EVT_TOOL, self.DoOpenFile, id=wx.ID_OPEN) - self.Bind(wx.EVT_TOOL, self.ShowControlsDialog, id=wx.ID_HELP) - - # Create dot widge - self.widget = WxDotWindow(self, -1) - - # Add elements to sizer - vbox.Add(toolbar, 0, wx.EXPAND) - vbox.Add(self.widget, 100, wx.EXPAND | wx.ALL) - - self.SetSizer(vbox) - self.Center() - - def ShowControlsDialog(self,event): - dial = wx.MessageDialog(None, - "\ -Pan: Arrow Keys\n\ -Zoom: PageUp / PageDown\n\ -Zoom To Fit: F\n\ -Refresh: R", - 'Keyboard Controls', wx.OK) - dial.ShowModal() - - def DoOpenFile(self,event): - wcd = 'All files (*)|*|GraphViz Dot Files(*.dot)|*.dot|' - dir = os.getcwd() - open_dlg = wx.FileDialog(self, message='Choose a file', defaultDir=dir, defaultFile='', - wildcard=wcd, style=wx.OPEN|wx.CHANGE_DIR) - if open_dlg.ShowModal() == wx.ID_OK: - path = open_dlg.GetPath() - - try: - self.open_file(path) - - except IOError, error: - dlg = wx.MessageDialog(self, 'Error opening file\n' + str(error)) - dlg.ShowModal() - - except UnicodeDecodeError, error: - dlg = wx.MessageDialog(self, 'Error opening file\n' + str(error)) - dlg.ShowModal() - - open_dlg.Destroy() - - def OnExit(self, event): - pass - - def set_dotcode(self, dotcode, filename=''): - if self.widget.set_dotcode(dotcode, filename): - self.SetTitle(os.path.basename(filename) + ' - Dot Viewer') - self.widget.zoom_to_fit() - - def set_xdotcode(self, xdotcode, filename=''): - if self.widget.set_xdotcode(xdotcode): - self.SetTitle(os.path.basename(filename) + ' - Dot Viewer') - self.widget.zoom_to_fit() - - def open_file(self, filename): - try: - fp = file(filename, 'rt') - self.set_dotcode(fp.read(), filename) - fp.close() - except IOError, ex: - """ - dlg = gtk.MessageDialog(type=gtk.MESSAGE_ERROR, - message_format=str(ex), - buttons=gtk.BUTTONS_OK) - dlg.set_title('Dot Viewer') - dlg.run() - dlg.destroy() - """ - - def set_filter(self, filter): - self.widget.set_filter(filter) - diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/rqt_behavior_tree/xdot/xdot.py b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/rqt_behavior_tree/xdot/xdot.py deleted file mode 100755 index 092152d5b..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/rqt_behavior_tree/xdot/xdot.py +++ /dev/null @@ -1,2174 +0,0 @@ -#!/usr/bin/env python -# -# Copyright 2008 Jose Fonseca -# -# This program is free software: you can redistribute it and/or modify it -# under the terms of the GNU Lesser General Public License as published -# by the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# - -'''Visualize dot graphs via the xdot format.''' - -__author__ = "Jose Fonseca" - -__version__ = "0.4" - - -import os -import sys -import subprocess -import math -import colorsys -import time -import re - -import gobject -import gtk -import gtk.gdk -import gtk.keysyms -import cairo -import pango -import pangocairo - - -# See http://www.graphviz.org/pub/scm/graphviz-cairo/plugin/cairo/gvrender_cairo.c - -# For pygtk inspiration and guidance see: -# - http://mirageiv.berlios.de/ -# - http://comix.sourceforge.net/ - - -class Pen: - """Store pen attributes.""" - - def __init__(self): - # set default attributes - self.color = (0.0, 0.0, 0.0, 1.0) - self.fillcolor = (0.0, 0.0, 0.0, 1.0) - self.linewidth = 1.0 - self.fontsize = 14.0 - self.fontname = "Times-Roman" - self.dash = () - - def copy(self): - """Create a copy of this pen.""" - pen = Pen() - pen.__dict__ = self.__dict__.copy() - return pen - - def highlighted(self): - pen = self.copy() - pen.color = (1, 0, 0, 1) - pen.fillcolor = (1, .8, .8, 1) - return pen - - -class Shape: - """Abstract base class for all the drawing shapes.""" - - def __init__(self): - pass - - def draw(self, cr, highlight=False): - """Draw this shape with the given cairo context""" - raise NotImplementedError - - def select_pen(self, highlight): - if highlight: - if not hasattr(self, 'highlight_pen'): - self.highlight_pen = self.pen.highlighted() - return self.highlight_pen - else: - return self.pen - - -class TextShape(Shape): - - #fontmap = pangocairo.CairoFontMap() - #fontmap.set_resolution(72) - #context = fontmap.create_context() - - LEFT, CENTER, RIGHT = -1, 0, 1 - - def __init__(self, pen, x, y, j, w, t): - Shape.__init__(self) - self.pen = pen.copy() - self.x = x - self.y = y - self.j = j - self.w = w - self.t = t - - def draw(self, cr, highlight=False): - - try: - layout = self.layout - except AttributeError: - layout = cr.create_layout() - - # set font options - # see http://lists.freedesktop.org/archives/cairo/2007-February/009688.html - context = layout.get_context() - fo = cairo.FontOptions() - fo.set_antialias(cairo.ANTIALIAS_DEFAULT) - fo.set_hint_style(cairo.HINT_STYLE_NONE) - fo.set_hint_metrics(cairo.HINT_METRICS_OFF) - try: - pangocairo.context_set_font_options(context, fo) - except TypeError: - # XXX: Some broken pangocairo bindings show the error - # 'TypeError: font_options must be a cairo.FontOptions or None' - pass - - # set font - font = pango.FontDescription() - font.set_family(self.pen.fontname) - font.set_absolute_size(self.pen.fontsize*pango.SCALE) - layout.set_font_description(font) - - # set text - layout.set_text(self.t) - - # cache it - self.layout = layout - else: - cr.update_layout(layout) - - descent = 2 # XXX get descender from font metrics - - width, height = layout.get_size() - width = float(width)/pango.SCALE - height = float(height)/pango.SCALE - # we know the width that dot thinks this text should have - # we do not necessarily have a font with the same metrics - # scale it so that the text fits inside its box - if width > self.w: - f = self.w / width - width = self.w # equivalent to width *= f - height *= f - descent *= f - else: - f = 1.0 - - if self.j == self.LEFT: - x = self.x - elif self.j == self.CENTER: - x = self.x - 0.5*width - elif self.j == self.RIGHT: - x = self.x - width - else: - assert 0 - - y = self.y - height + descent - - cr.move_to(x, y) - - cr.save() - cr.scale(f, f) - cr.set_source_rgba(*self.select_pen(highlight).color) - cr.show_layout(layout) - cr.restore() - - if 0: # DEBUG - # show where dot thinks the text should appear - cr.set_source_rgba(1, 0, 0, .9) - if self.j == self.LEFT: - x = self.x - elif self.j == self.CENTER: - x = self.x - 0.5*self.w - elif self.j == self.RIGHT: - x = self.x - self.w - cr.move_to(x, self.y) - cr.line_to(x+self.w, self.y) - cr.stroke() - - -class EllipseShape(Shape): - - def __init__(self, pen, x0, y0, w, h, filled=False): - Shape.__init__(self) - self.pen = pen.copy() - self.x0 = x0 - self.y0 = y0 - self.w = w - self.h = h - self.filled = filled - - def draw(self, cr, highlight=False): - cr.save() - cr.translate(self.x0, self.y0) - cr.scale(self.w, self.h) - cr.move_to(1.0, 0.0) - cr.arc(0.0, 0.0, 1.0, 0, 2.0*math.pi) - cr.restore() - pen = self.select_pen(highlight) - if self.filled: - cr.set_source_rgba(*pen.fillcolor) - cr.fill() - else: - cr.set_dash(pen.dash) - cr.set_line_width(pen.linewidth) - cr.set_source_rgba(*pen.color) - cr.stroke() - - -class PolygonShape(Shape): - - def __init__(self, pen, points, filled=False): - Shape.__init__(self) - self.pen = pen.copy() - self.points = points - self.filled = filled - - def draw(self, cr, highlight=False): - x0, y0 = self.points[-1] - cr.move_to(x0, y0) - for x, y in self.points: - cr.line_to(x, y) - cr.close_path() - pen = self.select_pen(highlight) - if self.filled: - cr.set_source_rgba(*pen.fillcolor) - cr.fill_preserve() - cr.fill() - else: - cr.set_dash(pen.dash) - cr.set_line_width(pen.linewidth) - cr.set_source_rgba(*pen.color) - cr.stroke() - - -class LineShape(Shape): - - def __init__(self, pen, points): - Shape.__init__(self) - self.pen = pen.copy() - self.points = points - - def draw(self, cr, highlight=False): - x0, y0 = self.points[0] - cr.move_to(x0, y0) - for x1, y1 in self.points[1:]: - cr.line_to(x1, y1) - pen = self.select_pen(highlight) - cr.set_dash(pen.dash) - cr.set_line_width(pen.linewidth) - cr.set_source_rgba(*pen.color) - cr.stroke() - - -class BezierShape(Shape): - - def __init__(self, pen, points, filled=False): - Shape.__init__(self) - self.pen = pen.copy() - self.points = points - self.filled = filled - - def draw(self, cr, highlight=False): - x0, y0 = self.points[0] - cr.move_to(x0, y0) - for i in xrange(1, len(self.points), 3): - x1, y1 = self.points[i] - x2, y2 = self.points[i + 1] - x3, y3 = self.points[i + 2] - cr.curve_to(x1, y1, x2, y2, x3, y3) - pen = self.select_pen(highlight) - if self.filled: - cr.set_source_rgba(*pen.fillcolor) - cr.fill_preserve() - cr.fill() - else: - cr.set_dash(pen.dash) - cr.set_line_width(pen.linewidth) - cr.set_source_rgba(*pen.color) - cr.stroke() - - -class CompoundShape(Shape): - - def __init__(self, shapes): - Shape.__init__(self) - self.shapes = shapes - - def draw(self, cr, highlight=False): - for shape in self.shapes: - shape.draw(cr, highlight=highlight) - - -class Url(object): - - def __init__(self, item, url, highlight=None): - self.item = item - self.url = url - if highlight is None: - highlight = set([item]) - self.highlight = highlight - - -class Jump(object): - - def __init__(self, item, x, y, highlight=None, url=None): - self.item = item - self.x = x - self.y = y - if highlight is None: - highlight = set([item]) - self.highlight = highlight - self.url = url - - -class Element(CompoundShape): - """Base class for graph nodes and edges.""" - - def __init__(self, shapes): - CompoundShape.__init__(self, shapes) - - def get_url(self, x, y): - return None - - def get_jump(self, x, y): - return None - - -class Node(Element): - - def __init__(self, x, y, w, h, shapes, url): - Element.__init__(self, shapes) - - self.x = x - self.y = y - - self.x1 = x - 0.5*w - self.y1 = y - 0.5*h - self.x2 = x + 0.5*w - self.y2 = y + 0.5*h - - self.url = url - - def is_inside(self, x, y): - return self.x1 <= x and x <= self.x2 and self.y1 <= y and y <= self.y2 - - def get_url(self, x, y): - if self.url is None: - return None - #print (x, y), (self.x1, self.y1), "-", (self.x2, self.y2) - if self.is_inside(x, y): - return Url(self, self.url) - return None - - def get_jump(self, x, y): - if self.is_inside(x, y): - return Jump(self, self.x, self.y) - return None - - -def square_distance(x1, y1, x2, y2): - deltax = x2 - x1 - deltay = y2 - y1 - return deltax*deltax + deltay*deltay - - -class Edge(Element): - - def __init__(self, src, dst, points, shapes, url): - Element.__init__(self, shapes) - self.src = src - self.dst = dst - self.points = points - self.url = url - - RADIUS = 10 - - def get_jump(self, x, y): - if square_distance(x, y, *self.points[0]) <= self.RADIUS*self.RADIUS: - return Jump(self, self.dst.x, self.dst.y, highlight=set([self, self.dst]),url=self.url) - if square_distance(x, y, *self.points[-1]) <= self.RADIUS*self.RADIUS: - return Jump(self, self.src.x, self.src.y, highlight=set([self, self.src]),url=self.url) - return None - - -class Graph(Shape): - - def __init__(self, width=1, height=1, shapes=(), nodes=(), edges=(), subgraph_shapes={}): - Shape.__init__(self) - - self.width = width - self.height = height - self.shapes = shapes - self.nodes = nodes - self.edges = edges - self.subgraph_shapes = subgraph_shapes - - def get_size(self): - return self.width, self.height - - def draw(self, cr, highlight_items=None): - if highlight_items is None: - highlight_items = () - cr.set_source_rgba(0.0, 0.0, 0.0, 1.0) - - cr.set_line_cap(cairo.LINE_CAP_BUTT) - cr.set_line_join(cairo.LINE_JOIN_MITER) - - for shape in self.shapes: - shape.draw(cr) - for edge in self.edges: - edge.draw(cr, highlight=(edge in highlight_items)) - for node in self.nodes: - node.draw(cr, highlight=(node in highlight_items)) - - def get_url(self, x, y): - for node in self.nodes: - url = node.get_url(x, y) - if url is not None: - return url - return None - - def get_jump(self, x, y): - for edge in self.edges: - jump = edge.get_jump(x, y) - if jump is not None: - return jump - for node in self.nodes: - jump = node.get_jump(x, y) - if jump is not None: - return jump - return None - - -class XDotAttrParser: - """Parser for xdot drawing attributes. - See also: - - http://www.graphviz.org/doc/info/output.html#d:xdot - """ - - def __init__(self, parser, buf): - self.parser = parser - self.buf = self.unescape(buf) - self.pos = 0 - - self.pen = Pen() - self.shapes = [] - - def __nonzero__(self): - return self.pos < len(self.buf) - - def unescape(self, buf): - buf = buf.replace('\\"', '"') - buf = buf.replace('\\n', '\n') - return buf - - def read_code(self): - pos = self.buf.find(" ", self.pos) - res = self.buf[self.pos:pos] - self.pos = pos + 1 - while self.pos < len(self.buf) and self.buf[self.pos].isspace(): - self.pos += 1 - return res - - def read_number(self): - return int(float(self.read_code())) - - def read_float(self): - return float(self.read_code()) - - def read_point(self): - x = self.read_number() - y = self.read_number() - return self.transform(x, y) - - def read_text(self): - num = self.read_number() - pos = self.buf.find("-", self.pos) + 1 - self.pos = pos + num - res = self.buf[pos:self.pos] - while self.pos < len(self.buf) and self.buf[self.pos].isspace(): - self.pos += 1 - return res - - def read_polygon(self): - n = self.read_number() - p = [] - for i in range(n): - x, y = self.read_point() - p.append((x, y)) - return p - - def read_color(self): - # See http://www.graphviz.org/doc/info/attrs.html#k:color - c = self.read_text() - c1 = c[:1] - if c1 == '#': - hex2float = lambda h: float(int(h, 16)/255.0) - r = hex2float(c[1:3]) - g = hex2float(c[3:5]) - b = hex2float(c[5:7]) - try: - a = hex2float(c[7:9]) - except (IndexError, ValueError): - a = 1.0 - return r, g, b, a - elif c1.isdigit() or c1 == ".": - # "H,S,V" or "H S V" or "H, S, V" or any other variation - h, s, v = map(float, c.replace(",", " ").split()) - r, g, b = colorsys.hsv_to_rgb(h, s, v) - a = 1.0 - return r, g, b, a - else: - return self.lookup_color(c) - - def lookup_color(self, c): - try: - color = gtk.gdk.color_parse(c) - except ValueError: - pass - else: - s = 1.0/65535.0 - r = color.red*s - g = color.green*s - b = color.blue*s - a = 1.0 - return r, g, b, a - - try: - dummy, scheme, index = c.split('/') - r, g, b = brewer_colors[scheme][int(index)] - except (ValueError, KeyError): - pass - else: - s = 1.0/255.0 - r = r*s - g = g*s - b = b*s - a = 1.0 - return r, g, b, a - - sys.stderr.write("unknown color '%s'\n" % c) - return None - - def parse(self): - s = self - - while s: - op = s.read_code() - if op == "c": - color = s.read_color() - if color is not None: - self.handle_color(color, filled=False) - elif op == "C": - color = s.read_color() - if color is not None: - self.handle_color(color, filled=True) - elif op == "S": - # http://www.graphviz.org/doc/info/attrs.html#k:style - style = s.read_text() - if style.startswith("setlinewidth("): - lw = style.split("(")[1].split(")")[0] - lw = float(lw) - self.handle_linewidth(lw) - elif style in ("solid", "dashed"): - self.handle_linestyle(style) - elif op == "F": - size = s.read_float() - name = s.read_text() - self.handle_font(size, name) - elif op == "T": - x, y = s.read_point() - j = s.read_number() - w = s.read_number() - t = s.read_text() - self.handle_text(x, y, j, w, t) - elif op == "E": - x0, y0 = s.read_point() - w = s.read_number() - h = s.read_number() - self.handle_ellipse(x0, y0, w, h, filled=True) - elif op == "e": - x0, y0 = s.read_point() - w = s.read_number() - h = s.read_number() - self.handle_ellipse(x0, y0, w, h, filled=False) - elif op == "L": - points = self.read_polygon() - self.handle_line(points) - elif op == "B": - points = self.read_polygon() - self.handle_bezier(points, filled=False) - elif op == "b": - points = self.read_polygon() - self.handle_bezier(points, filled=True) - elif op == "P": - points = self.read_polygon() - self.handle_polygon(points, filled=True) - elif op == "p": - points = self.read_polygon() - self.handle_polygon(points, filled=False) - else: - sys.stderr.write("unknown xdot opcode '%s'\n" % op) - break - - return self.shapes - - def transform(self, x, y): - return self.parser.transform(x, y) - - def handle_color(self, color, filled=False): - if filled: - self.pen.fillcolor = color - else: - self.pen.color = color - - def handle_linewidth(self, linewidth): - self.pen.linewidth = linewidth - - def handle_linestyle(self, style): - if style == "solid": - self.pen.dash = () - elif style == "dashed": - self.pen.dash = (6, ) # 6pt on, 6pt off - - def handle_font(self, size, name): - self.pen.fontsize = size - self.pen.fontname = name - - def handle_text(self, x, y, j, w, t): - self.shapes.append(TextShape(self.pen, x, y, j, w, t)) - - def handle_ellipse(self, x0, y0, w, h, filled=False): - if filled: - # xdot uses this to mean "draw a filled shape with an outline" - self.shapes.append(EllipseShape(self.pen, x0, y0, w, h, filled=True)) - self.shapes.append(EllipseShape(self.pen, x0, y0, w, h)) - - def handle_line(self, points): - self.shapes.append(LineShape(self.pen, points)) - - def handle_bezier(self, points, filled=False): - if filled: - # xdot uses this to mean "draw a filled shape with an outline" - self.shapes.append(BezierShape(self.pen, points, filled=True)) - self.shapes.append(BezierShape(self.pen, points)) - - def handle_polygon(self, points, filled=False): - if filled: - # xdot uses this to mean "draw a filled shape with an outline" - self.shapes.append(PolygonShape(self.pen, points, filled=True)) - self.shapes.append(PolygonShape(self.pen, points)) - - -EOF = -1 -SKIP = -2 - - -class ParseError(Exception): - - def __init__(self, msg=None, filename=None, line=None, col=None): - self.msg = msg - self.filename = filename - self.line = line - self.col = col - - def __str__(self): - return ':'.join([str(part) for part in (self.filename, self.line, self.col, self.msg) if part != None]) - - -class Scanner: - """Stateless scanner.""" - - # should be overriden by derived classes - tokens = [] - symbols = {} - literals = {} - ignorecase = False - - def __init__(self): - flags = re.DOTALL - if self.ignorecase: - flags |= re.IGNORECASE - self.tokens_re = re.compile( - '|'.join(['(' + regexp + ')' for type, regexp, test_lit in self.tokens]), - flags - ) - - def next(self, buf, pos): - if pos >= len(buf): - return EOF, '', pos - mo = self.tokens_re.match(buf, pos) - if mo: - text = mo.group() - type, regexp, test_lit = self.tokens[mo.lastindex - 1] - pos = mo.end() - if test_lit: - type = self.literals.get(text, type) - return type, text, pos - else: - c = buf[pos] - return self.symbols.get(c, None), c, pos + 1 - - -class Token: - - def __init__(self, type, text, line, col): - self.type = type - self.text = text - self.line = line - self.col = col - - -class Lexer: - - # should be overriden by derived classes - scanner = None - tabsize = 8 - - newline_re = re.compile(r'\r\n?|\n') - - def __init__(self, buf = None, pos = 0, filename = None, fp = None): - if fp is not None: - try: - fileno = fp.fileno() - length = os.path.getsize(fp.name) - import mmap - except: - # read whole file into memory - buf = fp.read() - pos = 0 - else: - # map the whole file into memory - if length: - # length must not be zero - buf = mmap.mmap(fileno, length, access = mmap.ACCESS_READ) - pos = os.lseek(fileno, 0, 1) - else: - buf = '' - pos = 0 - - if filename is None: - try: - filename = fp.name - except AttributeError: - filename = None - - self.buf = buf - self.pos = pos - self.line = 1 - self.col = 1 - self.filename = filename - - def next(self): - while True: - # save state - pos = self.pos - line = self.line - col = self.col - - type, text, endpos = self.scanner.next(self.buf, pos) - assert pos + len(text) == endpos - self.consume(text) - type, text = self.filter(type, text) - self.pos = endpos - - if type == SKIP: - continue - elif type is None: - msg = 'unexpected char ' - if text >= ' ' and text <= '~': - msg += "'%s'" % text - else: - msg += "0x%X" % ord(text) - raise ParseError(msg, self.filename, line, col) - else: - break - return Token(type = type, text = text, line = line, col = col) - - def consume(self, text): - # update line number - pos = 0 - for mo in self.newline_re.finditer(text, pos): - self.line += 1 - self.col = 1 - pos = mo.end() - - # update column number - while True: - tabpos = text.find('\t', pos) - if tabpos == -1: - break - self.col += tabpos - pos - self.col = ((self.col - 1)//self.tabsize + 1)*self.tabsize + 1 - pos = tabpos + 1 - self.col += len(text) - pos - - -class Parser: - - def __init__(self, lexer): - self.lexer = lexer - self.lookahead = self.lexer.next() - - def match(self, type): - if self.lookahead.type != type: - raise ParseError( - msg = 'unexpected token %r' % self.lookahead.text, - filename = self.lexer.filename, - line = self.lookahead.line, - col = self.lookahead.col) - - def skip(self, type): - while self.lookahead.type != type: - self.consume() - - def consume(self): - token = self.lookahead - self.lookahead = self.lexer.next() - return token - - -ID = 0 -STR_ID = 1 -HTML_ID = 2 -EDGE_OP = 3 - -LSQUARE = 4 -RSQUARE = 5 -LCURLY = 6 -RCURLY = 7 -COMMA = 8 -COLON = 9 -SEMI = 10 -EQUAL = 11 -PLUS = 12 - -STRICT = 13 -GRAPH = 14 -DIGRAPH = 15 -NODE = 16 -EDGE = 17 -SUBGRAPH = 18 - - -class DotScanner(Scanner): - - # token regular expression table - tokens = [ - # whitespace and comments - (SKIP, - r'[ \t\f\r\n\v]+|' - r'//[^\r\n]*|' - r'/\*.*?\*/|' - r'#[^\r\n]*', - False), - - # Alphanumeric IDs - (ID, r'[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*', True), - - # Numeric IDs - (ID, r'-?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)', False), - - # String IDs - (STR_ID, r'"[^"\\]*(?:\\.[^"\\]*)*"', False), - - # HTML IDs - (HTML_ID, r'<[^<>]*(?:<[^<>]*>[^<>]*)*>', False), - - # Edge operators - (EDGE_OP, r'-[>-]', False), - ] - - # symbol table - symbols = { - '[': LSQUARE, - ']': RSQUARE, - '{': LCURLY, - '}': RCURLY, - ',': COMMA, - ':': COLON, - ';': SEMI, - '=': EQUAL, - '+': PLUS, - } - - # literal table - literals = { - 'strict': STRICT, - 'graph': GRAPH, - 'digraph': DIGRAPH, - 'node': NODE, - 'edge': EDGE, - 'subgraph': SUBGRAPH, - } - - ignorecase = True - - -class DotLexer(Lexer): - - scanner = DotScanner() - - def filter(self, type, text): - # TODO: handle charset - if type == STR_ID: - text = text[1:-1] - - # line continuations - text = text.replace('\\\r\n', '') - text = text.replace('\\\r', '') - text = text.replace('\\\n', '') - - text = text.replace('\\r', '\r') - text = text.replace('\\n', '\n') - text = text.replace('\\t', '\t') - text = text.replace('\\', '') - - type = ID - - elif type == HTML_ID: - text = text[1:-1] - type = ID - - return type, text - - -class DotParser(Parser): - - def __init__(self, lexer): - Parser.__init__(self, lexer) - self.graph_attrs = {} - self.node_attrs = {} - self.edge_attrs = {} - - def parse(self): - self.parse_graph() - self.match(EOF) - - def parse_graph(self): - if self.lookahead.type == STRICT: - self.consume() - self.skip(LCURLY) - self.consume() - while self.lookahead.type != RCURLY: - self.parse_stmt() - self.consume() - - def parse_subgraph(self): - id = None - shapes_before = set(self.shapes) - if self.lookahead.type == SUBGRAPH: - self.consume() - if self.lookahead.type == ID: - id = self.lookahead.text - self.consume() - if self.lookahead.type == LCURLY: - self.consume() - while self.lookahead.type != RCURLY: - self.parse_stmt() - self.consume() - new_shapes = set(self.shapes) - shapes_before - self.subgraph_shapes[id] = [s for s in new_shapes if not any([s in ss for ss in self.subgraph_shapes.values()])] - return id - - def parse_stmt(self): - if self.lookahead.type == GRAPH: - self.consume() - attrs = self.parse_attrs() - self.graph_attrs.update(attrs) - self.handle_graph(attrs) - elif self.lookahead.type == NODE: - self.consume() - self.node_attrs.update(self.parse_attrs()) - elif self.lookahead.type == EDGE: - self.consume() - self.edge_attrs.update(self.parse_attrs()) - elif self.lookahead.type in (SUBGRAPH, LCURLY): - self.parse_subgraph() - else: - id = self.parse_node_id() - if self.lookahead.type == EDGE_OP: - self.consume() - node_ids = [id, self.parse_node_id()] - while self.lookahead.type == EDGE_OP: - node_ids.append(self.parse_node_id()) - attrs = self.parse_attrs() - for i in range(0, len(node_ids) - 1): - self.handle_edge(node_ids[i], node_ids[i + 1], attrs) - elif self.lookahead.type == EQUAL: - self.consume() - self.parse_id() - else: - attrs = self.parse_attrs() - self.handle_node(id, attrs) - if self.lookahead.type == SEMI: - self.consume() - - def parse_attrs(self): - attrs = {} - while self.lookahead.type == LSQUARE: - self.consume() - while self.lookahead.type != RSQUARE: - name, value = self.parse_attr() - attrs[name] = value - if self.lookahead.type == COMMA: - self.consume() - self.consume() - return attrs - - def parse_attr(self): - name = self.parse_id() - if self.lookahead.type == EQUAL: - self.consume() - value = self.parse_id() - else: - value = 'true' - return name, value - - def parse_node_id(self): - node_id = self.parse_id() - if self.lookahead.type == COLON: - self.consume() - port = self.parse_id() - if self.lookahead.type == COLON: - self.consume() - compass_pt = self.parse_id() - else: - compass_pt = None - else: - port = None - compass_pt = None - # XXX: we don't really care about port and compass point values when parsing xdot - return node_id - - def parse_id(self): - self.match(ID) - id = self.lookahead.text - self.consume() - return id - - def handle_graph(self, attrs): - pass - - def handle_node(self, id, attrs): - pass - - def handle_edge(self, src_id, dst_id, attrs): - pass - - -class XDotParser(DotParser): - - def __init__(self, xdotcode): - lexer = DotLexer(buf = xdotcode) - DotParser.__init__(self, lexer) - - self.nodes = [] - self.edges = [] - self.shapes = [] - self.node_by_name = {} - self.top_graph = True - self.subgraph_shapes = {} - - def handle_graph(self, attrs): - if self.top_graph: - try: - bb = attrs['bb'] - except KeyError: - return - - if not bb: - return - - xmin, ymin, xmax, ymax = map(float, bb.split(",")) - - self.xoffset = -xmin - self.yoffset = -ymax - self.xscale = 1.0 - self.yscale = -1.0 - # FIXME: scale from points to pixels - - self.width = xmax - xmin - self.height = ymax - ymin - - self.top_graph = False - - for attr in ("_draw_", "_ldraw_", "_hdraw_", "_tdraw_", "_hldraw_", "_tldraw_"): - if attr in attrs: - parser = XDotAttrParser(self, attrs[attr]) - self.shapes.extend(parser.parse()) - - def handle_node(self, id, attrs): - try: - pos = attrs['pos'] - except KeyError: - return - - x, y = self.parse_node_pos(pos) - w = float(attrs['width'])*72 - h = float(attrs['height'])*72 - shapes = [] - for attr in ("_draw_", "_ldraw_"): - if attr in attrs: - parser = XDotAttrParser(self, attrs[attr]) - shapes.extend(parser.parse()) - url = attrs.get('URL', None) - node = Node(x, y, w, h, shapes, url) - self.node_by_name[id] = node - if shapes: - self.nodes.append(node) - - def handle_edge(self, src_id, dst_id, attrs): - try: - pos = attrs['pos'] - except KeyError: - return - - points = self.parse_edge_pos(pos) - shapes = [] - for attr in ("_draw_", "_ldraw_", "_hdraw_", "_tdraw_", "_hldraw_", "_tldraw_"): - if attr in attrs: - parser = XDotAttrParser(self, attrs[attr]) - shapes.extend(parser.parse()) - url = attrs.get('URL', None) - if shapes: - src = self.node_by_name[src_id] - dst = self.node_by_name[dst_id] - self.edges.append(Edge(src, dst, points, shapes, url)) - - def parse(self): - DotParser.parse(self) - - """ - for k,shapes in self.subgraph_shapes.iteritems(): - self.shapes += shapes - """ - - return Graph(self.width, self.height, self.shapes, self.nodes, self.edges, self.subgraph_shapes) - - def parse_node_pos(self, pos): - x, y = pos.split(",") - return self.transform(float(x), float(y)) - - def parse_edge_pos(self, pos): - points = [] - for entry in pos.split(' '): - fields = entry.split(',') - try: - x, y = fields - except ValueError: - # TODO: handle start/end points - continue - else: - points.append(self.transform(float(x), float(y))) - return points - - def transform(self, x, y): - # XXX: this is not the right place for this code - x = (x + self.xoffset)*self.xscale - y = (y + self.yoffset)*self.yscale - return x, y - - -class Animation(object): - - step = 0.03 # seconds - - def __init__(self, dot_widget): - self.dot_widget = dot_widget - self.timeout_id = None - - def start(self): - self.timeout_id = gobject.timeout_add(int(self.step * 1000), self.tick) - - def stop(self): - self.dot_widget.animation = NoAnimation(self.dot_widget) - if self.timeout_id is not None: - gobject.source_remove(self.timeout_id) - self.timeout_id = None - - def tick(self): - self.stop() - - -class NoAnimation(Animation): - - def start(self): - pass - - def stop(self): - pass - - -class LinearAnimation(Animation): - - duration = 0.6 - - def start(self): - self.started = time.time() - Animation.start(self) - - def tick(self): - t = (time.time() - self.started) / self.duration - self.animate(max(0, min(t, 1))) - return (t < 1) - - def animate(self, t): - pass - - -class MoveToAnimation(LinearAnimation): - - def __init__(self, dot_widget, target_x, target_y): - Animation.__init__(self, dot_widget) - self.source_x = dot_widget.x - self.source_y = dot_widget.y - self.target_x = target_x - self.target_y = target_y - - def animate(self, t): - sx, sy = self.source_x, self.source_y - tx, ty = self.target_x, self.target_y - self.dot_widget.x = tx * t + sx * (1-t) - self.dot_widget.y = ty * t + sy * (1-t) - self.dot_widget.queue_draw() - - -class ZoomToAnimation(MoveToAnimation): - - def __init__(self, dot_widget, target_x, target_y): - MoveToAnimation.__init__(self, dot_widget, target_x, target_y) - self.source_zoom = dot_widget.zoom_ratio - self.target_zoom = self.source_zoom - self.extra_zoom = 0 - - middle_zoom = 0.5 * (self.source_zoom + self.target_zoom) - - distance = math.hypot(self.source_x - self.target_x, - self.source_y - self.target_y) - rect = self.dot_widget.get_allocation() - visible = min(rect.width, rect.height) / self.dot_widget.zoom_ratio - visible *= 0.9 - if distance > 0: - desired_middle_zoom = visible / distance - self.extra_zoom = min(0, 4 * (desired_middle_zoom - middle_zoom)) - - def animate(self, t): - a, b, c = self.source_zoom, self.extra_zoom, self.target_zoom - self.dot_widget.zoom_ratio = c*t + b*t*(1-t) + a*(1-t) - self.dot_widget.zoom_to_fit_on_resize = False - MoveToAnimation.animate(self, t) - - -class DragAction(object): - - def __init__(self, dot_widget): - self.dot_widget = dot_widget - - def on_button_press(self, event): - self.startmousex = self.prevmousex = event.x - self.startmousey = self.prevmousey = event.y - self.start() - - def on_motion_notify(self, event): - if event.is_hint: - x, y, state = event.window.get_pointer() - else: - x, y, state = event.x, event.y, event.state - deltax = self.prevmousex - x - deltay = self.prevmousey - y - self.drag(deltax, deltay) - self.prevmousex = x - self.prevmousey = y - - def on_button_release(self, event): - self.stopmousex = event.x - self.stopmousey = event.y - self.stop() - - def draw(self, cr): - pass - - def start(self): - pass - - def drag(self, deltax, deltay): - pass - - def stop(self): - pass - - def abort(self): - pass - - -class NullAction(DragAction): - - def on_motion_notify(self, event): - if event.is_hint: - x, y, state = event.window.get_pointer() - else: - x, y, state = event.x, event.y, event.state - dot_widget = self.dot_widget - item = dot_widget.get_url(x, y) - if item is None: - item = dot_widget.get_jump(x, y) - if item is not None: - dot_widget.window.set_cursor(gtk.gdk.Cursor(gtk.gdk.HAND2)) - dot_widget.set_highlight(item.highlight) - else: - dot_widget.window.set_cursor(gtk.gdk.Cursor(gtk.gdk.ARROW)) - dot_widget.set_highlight(None) - - -class PanAction(DragAction): - - def start(self): - self.dot_widget.window.set_cursor(gtk.gdk.Cursor(gtk.gdk.FLEUR)) - - def drag(self, deltax, deltay): - self.dot_widget.x += deltax / self.dot_widget.zoom_ratio - self.dot_widget.y += deltay / self.dot_widget.zoom_ratio - self.dot_widget.queue_draw() - - def stop(self): - self.dot_widget.window.set_cursor(gtk.gdk.Cursor(gtk.gdk.ARROW)) - - abort = stop - - -class ZoomAction(DragAction): - - def drag(self, deltax, deltay): - self.dot_widget.zoom_ratio *= 1.005 ** (deltax + deltay) - self.dot_widget.zoom_to_fit_on_resize = False - self.dot_widget.queue_draw() - - def stop(self): - self.dot_widget.queue_draw() - - -class ZoomAreaAction(DragAction): - - def drag(self, deltax, deltay): - self.dot_widget.queue_draw() - - def draw(self, cr): - cr.save() - cr.set_source_rgba(.5, .5, 1.0, 0.25) - cr.rectangle(self.startmousex, self.startmousey, - self.prevmousex - self.startmousex, - self.prevmousey - self.startmousey) - cr.fill() - cr.set_source_rgba(.5, .5, 1.0, 1.0) - cr.set_line_width(1) - cr.rectangle(self.startmousex - .5, self.startmousey - .5, - self.prevmousex - self.startmousex + 1, - self.prevmousey - self.startmousey + 1) - cr.stroke() - cr.restore() - - def stop(self): - x1, y1 = self.dot_widget.window2graph(self.startmousex, - self.startmousey) - x2, y2 = self.dot_widget.window2graph(self.stopmousex, - self.stopmousey) - self.dot_widget.zoom_to_area(x1, y1, x2, y2) - - def abort(self): - self.dot_widget.queue_draw() - - -class DotWidget(gtk.DrawingArea): - """PyGTK widget that draws dot graphs.""" - - __gsignals__ = { - 'expose-event': 'override', - 'clicked' : (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_STRING, gtk.gdk.Event)) - } - - filter = 'dot' - - def __init__(self): - gtk.DrawingArea.__init__(self) - - self.graph = Graph() - self.openfilename = None - - self.set_flags(gtk.CAN_FOCUS) - - self.add_events(gtk.gdk.BUTTON_PRESS_MASK | gtk.gdk.BUTTON_RELEASE_MASK) - self.connect("button-press-event", self.on_area_button_press) - self.connect("button-release-event", self.on_area_button_release) - self.add_events(gtk.gdk.POINTER_MOTION_MASK | gtk.gdk.POINTER_MOTION_HINT_MASK | gtk.gdk.BUTTON_RELEASE_MASK) - self.connect("motion-notify-event", self.on_area_motion_notify) - self.connect("scroll-event", self.on_area_scroll_event) - self.connect("size-allocate", self.on_area_size_allocate) - - self.connect('key-press-event', self.on_key_press_event) - - self.x, self.y = 0.0, 0.0 - self.zoom_ratio = 1.0 - self.zoom_to_fit_on_resize = False - self.animation = NoAnimation(self) - self.drag_action = NullAction(self) - self.presstime = None - self.highlight = None - - def set_filter(self, filter): - self.filter = filter - - def set_dotcode(self, dotcode, filename=''): - if isinstance(dotcode, unicode): - dotcode = dotcode.encode('utf8') - p = subprocess.Popen( - [self.filter, '-Txdot'], - stdin=subprocess.PIPE, - stdout=subprocess.PIPE, - stderr=subprocess.PIPE, - shell=False, - universal_newlines=True - ) - xdotcode, error = p.communicate(dotcode) - if p.returncode != 0: - print "UNABLE TO SHELL TO DOT", error - dialog = gtk.MessageDialog(type=gtk.MESSAGE_ERROR, - message_format=error, - buttons=gtk.BUTTONS_OK) - dialog.set_title('Dot Viewer') - dialog.run() - dialog.destroy() - return False - try: - self.set_xdotcode(xdotcode) - except ParseError, ex: - dialog = gtk.MessageDialog(type=gtk.MESSAGE_ERROR, - message_format=str(ex), - buttons=gtk.BUTTONS_OK) - dialog.set_title('Dot Viewer') - dialog.run() - dialog.destroy() - return False - else: - self.openfilename = filename - return True - - def set_xdotcode(self, xdotcode): - #print xdotcode - parser = XDotParser(xdotcode) - self.graph = parser.parse() - self.zoom_image(self.zoom_ratio, center=False) - - def reload(self): - if self.openfilename is not None: - try: - fp = file(self.openfilename, 'rt') - self.set_dotcode(fp.read(), self.openfilename) - fp.close() - except IOError: - pass - - def do_expose_event(self, event): - cr = self.window.cairo_create() - - # set a clip region for the expose event - cr.rectangle( - event.area.x, event.area.y, - event.area.width, event.area.height - ) - cr.clip() - - cr.set_source_rgba(1.0, 1.0, 1.0, 1.0) - cr.paint() - - cr.save() - rect = self.get_allocation() - cr.translate(0.5*rect.width, 0.5*rect.height) - cr.scale(self.zoom_ratio, self.zoom_ratio) - cr.translate(-self.x, -self.y) - - self.graph.draw(cr, highlight_items=self.highlight) - cr.restore() - - self.drag_action.draw(cr) - - return False - - def get_current_pos(self): - return self.x, self.y - - def set_current_pos(self, x, y): - self.x = x - self.y = y - self.queue_draw() - - def set_highlight(self, items): - if self.highlight != items: - self.highlight = items - self.queue_draw() - - def zoom_image(self, zoom_ratio, center=False, pos=None): - if center: - self.x = self.graph.width/2 - self.y = self.graph.height/2 - elif pos is not None: - rect = self.get_allocation() - x, y = pos - x -= 0.5*rect.width - y -= 0.5*rect.height - self.x += x / self.zoom_ratio - x / zoom_ratio - self.y += y / self.zoom_ratio - y / zoom_ratio - self.zoom_ratio = zoom_ratio - self.zoom_to_fit_on_resize = False - self.queue_draw() - - def zoom_to_area(self, x1, y1, x2, y2): - rect = self.get_allocation() - width = abs(x1 - x2) - height = abs(y1 - y2) - self.zoom_ratio = min( - float(rect.width)/float(width), - float(rect.height)/float(height) - ) - self.zoom_to_fit_on_resize = False - self.x = (x1 + x2) / 2 - self.y = (y1 + y2) / 2 - self.queue_draw() - - def zoom_to_fit(self): - rect = self.get_allocation() - rect.x += self.ZOOM_TO_FIT_MARGIN - rect.y += self.ZOOM_TO_FIT_MARGIN - rect.width -= 2 * self.ZOOM_TO_FIT_MARGIN - rect.height -= 2 * self.ZOOM_TO_FIT_MARGIN - zoom_ratio = min( - float(rect.width)/float(self.graph.width), - float(rect.height)/float(self.graph.height) - ) - self.zoom_image(zoom_ratio, center=True) - self.zoom_to_fit_on_resize = True - - ZOOM_INCREMENT = 1.25 - ZOOM_TO_FIT_MARGIN = 12 - - def on_zoom_in(self, action): - self.zoom_image(self.zoom_ratio * self.ZOOM_INCREMENT) - - def on_zoom_out(self, action): - self.zoom_image(self.zoom_ratio / self.ZOOM_INCREMENT) - - def on_zoom_fit(self, action): - self.zoom_to_fit() - - def on_zoom_100(self, action): - self.zoom_image(1.0) - - POS_INCREMENT = 100 - - def on_key_press_event(self, widget, event): - if event.keyval == gtk.keysyms.Left: - self.x -= self.POS_INCREMENT/self.zoom_ratio - self.queue_draw() - return True - if event.keyval == gtk.keysyms.Right: - self.x += self.POS_INCREMENT/self.zoom_ratio - self.queue_draw() - return True - if event.keyval == gtk.keysyms.Up: - self.y -= self.POS_INCREMENT/self.zoom_ratio - self.queue_draw() - return True - if event.keyval == gtk.keysyms.Down: - self.y += self.POS_INCREMENT/self.zoom_ratio - self.queue_draw() - return True - if event.keyval == gtk.keysyms.Page_Up: - self.zoom_image(self.zoom_ratio * self.ZOOM_INCREMENT) - self.queue_draw() - return True - if event.keyval == gtk.keysyms.Page_Down: - self.zoom_image(self.zoom_ratio / self.ZOOM_INCREMENT) - self.queue_draw() - return True - if event.keyval == gtk.keysyms.Escape: - self.drag_action.abort() - self.drag_action = NullAction(self) - return True - if event.keyval == gtk.keysyms.r: - self.reload() - return True - if event.keyval == gtk.keysyms.q: - gtk.main_quit() - return True - return False - - def get_drag_action(self, event): - state = event.state - if event.button in (1, 2): # left or middle button - if state & gtk.gdk.CONTROL_MASK: - return ZoomAction - elif state & gtk.gdk.SHIFT_MASK: - return ZoomAreaAction - else: - return PanAction - return NullAction - - def on_area_button_press(self, area, event): - self.animation.stop() - self.drag_action.abort() - action_type = self.get_drag_action(event) - self.drag_action = action_type(self) - self.drag_action.on_button_press(event) - self.presstime = time.time() - self.pressx = event.x - self.pressy = event.y - return False - - def is_click(self, event, click_fuzz=4, click_timeout=1.0): - assert event.type == gtk.gdk.BUTTON_RELEASE - if self.presstime is None: - # got a button release without seeing the press? - return False - # XXX instead of doing this complicated logic, shouldn't we listen - # for gtk's clicked event instead? - deltax = self.pressx - event.x - deltay = self.pressy - event.y - return (time.time() < self.presstime + click_timeout - and math.hypot(deltax, deltay) < click_fuzz) - - def on_area_button_release(self, area, event): - self.drag_action.on_button_release(event) - self.drag_action = NullAction(self) - if event.button == 1 and self.is_click(event): - x, y = int(event.x), int(event.y) - url = self.get_url(x, y) - if url is not None: - self.emit('clicked', unicode(url.url), event) - else: - jump = self.get_jump(x, y) - if jump is not None: - self.animate_to(jump.x, jump.y) - - return True - if event.button == 1 or event.button == 2: - return True - return False - - def on_area_scroll_event(self, area, event): - if event.direction == gtk.gdk.SCROLL_UP: - self.zoom_image(self.zoom_ratio * self.ZOOM_INCREMENT, - pos=(event.x, event.y)) - return True - if event.direction == gtk.gdk.SCROLL_DOWN: - self.zoom_image(self.zoom_ratio / self.ZOOM_INCREMENT, - pos=(event.x, event.y)) - return True - return False - - def on_area_motion_notify(self, area, event): - self.drag_action.on_motion_notify(event) - return True - - def on_area_size_allocate(self, area, allocation): - if self.zoom_to_fit_on_resize: - self.zoom_to_fit() - - def animate_to(self, x, y): - self.animation = ZoomToAnimation(self, x, y) - self.animation.start() - - def window2graph(self, x, y): - rect = self.get_allocation() - x -= 0.5*rect.width - y -= 0.5*rect.height - x /= self.zoom_ratio - y /= self.zoom_ratio - x += self.x - y += self.y - return x, y - - def get_url(self, x, y): - x, y = self.window2graph(x, y) - return self.graph.get_url(x, y) - - def get_jump(self, x, y): - x, y = self.window2graph(x, y) - return self.graph.get_jump(x, y) - - -class DotWindow(gtk.Window): - - ui = ''' - - - - - - - - - - - - ''' - - def __init__(self): - gtk.Window.__init__(self) - - self.graph = Graph() - - window = self - - window.set_title('Dot Viewer') - window.set_default_size(512, 512) - vbox = gtk.VBox() - window.add(vbox) - - self.widget = DotWidget() - - # Create a UIManager instance - uimanager = self.uimanager = gtk.UIManager() - - # Add the accelerator group to the toplevel window - accelgroup = uimanager.get_accel_group() - window.add_accel_group(accelgroup) - - # Create an ActionGroup - actiongroup = gtk.ActionGroup('Actions') - self.actiongroup = actiongroup - - # Create actions - actiongroup.add_actions(( - ('Open', gtk.STOCK_OPEN, None, None, None, self.on_open), - ('Reload', gtk.STOCK_REFRESH, None, None, None, self.on_reload), - ('ZoomIn', gtk.STOCK_ZOOM_IN, None, None, None, self.widget.on_zoom_in), - ('ZoomOut', gtk.STOCK_ZOOM_OUT, None, None, None, self.widget.on_zoom_out), - ('ZoomFit', gtk.STOCK_ZOOM_FIT, None, None, None, self.widget.on_zoom_fit), - ('Zoom100', gtk.STOCK_ZOOM_100, None, None, None, self.widget.on_zoom_100), - )) - - # Add the actiongroup to the uimanager - uimanager.insert_action_group(actiongroup, 0) - - # Add a UI descrption - uimanager.add_ui_from_string(self.ui) - - # Create a Toolbar - toolbar = uimanager.get_widget('/ToolBar') - vbox.pack_start(toolbar, False) - - vbox.pack_start(self.widget) - - self.set_focus(self.widget) - - self.show_all() - - def update(self, filename): - import os - if not hasattr(self, "last_mtime"): - self.last_mtime = None - - current_mtime = os.stat(filename).st_mtime - if current_mtime != self.last_mtime: - self.last_mtime = current_mtime - self.open_file(filename,True) - - return True - - def set_filter(self, filter): - self.widget.set_filter(filter) - - def set_dotcode(self, dotcode, filename='',refresh=False): - if self.widget.set_dotcode(dotcode, filename): - self.set_title(os.path.basename(filename) + ' - Dot Viewer') - if not refresh: - self.widget.zoom_to_fit() - - def set_xdotcode(self, xdotcode, filename=''): - if self.widget.set_xdotcode(xdotcode): - self.set_title(os.path.basename(filename) + ' - Dot Viewer') - self.widget.zoom_to_fit() - - def open_file(self, filename, refresh=False): - try: - fp = file(filename, 'rt') - self.set_dotcode(fp.read(), filename ,refresh) - fp.close() - except IOError, ex: - dlg = gtk.MessageDialog(type=gtk.MESSAGE_ERROR, - message_format=str(ex), - buttons=gtk.BUTTONS_OK) - dlg.set_title('Dot Viewer') - dlg.run() - dlg.destroy() - - def on_open(self, action): - chooser = gtk.FileChooserDialog(title="Open dot File", - action=gtk.FILE_CHOOSER_ACTION_OPEN, - buttons=(gtk.STOCK_CANCEL, - gtk.RESPONSE_CANCEL, - gtk.STOCK_OPEN, - gtk.RESPONSE_OK)) - chooser.set_default_response(gtk.RESPONSE_OK) - filter = gtk.FileFilter() - filter.set_name("Graphviz dot files") - filter.add_pattern("*.dot") - chooser.add_filter(filter) - filter = gtk.FileFilter() - filter.set_name("All files") - filter.add_pattern("*") - chooser.add_filter(filter) - if chooser.run() == gtk.RESPONSE_OK: - filename = chooser.get_filename() - chooser.destroy() - self.open_file(filename) - else: - chooser.destroy() - - def on_reload(self, action): - self.widget.reload() - - -def main(): - import optparse - - parser = optparse.OptionParser( - usage='\n\t%prog [file]', - version='%%prog %s' % __version__) - parser.add_option( - '-f', '--filter', - type='choice', choices=('dot', 'neato', 'twopi', 'circo', 'fdp'), - dest='filter', default='dot', - help='graphviz filter: dot, neato, twopi, circo, or fdp [default: %default]') - - (options, args) = parser.parse_args(sys.argv[1:]) - if len(args) > 1: - parser.error('incorrect number of arguments') - - win = DotWindow() - win.connect('destroy', gtk.main_quit) - win.set_filter(options.filter) - if len(args) >= 1: - if args[0] == '-': - win.set_dotcode(sys.stdin.read()) - else: - win.open_file(args[0]) - gobject.timeout_add(1000, win.update, args[0]) - gtk.main() - - -# Apache-Style Software License for ColorBrewer software and ColorBrewer Color -# Schemes, Version 1.1 -# -# Copyright (c) 2002 Cynthia Brewer, Mark Harrower, and The Pennsylvania State -# University. All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# 1. Redistributions as source code must retain the above copyright notice, -# this list of conditions and the following disclaimer. -# -# 2. The end-user documentation included with the redistribution, if any, -# must include the following acknowledgment: -# -# This product includes color specifications and designs developed by -# Cynthia Brewer (http://colorbrewer.org/). -# -# Alternately, this acknowledgment may appear in the software itself, if and -# wherever such third-party acknowledgments normally appear. -# -# 3. The name "ColorBrewer" must not be used to endorse or promote products -# derived from this software without prior written permission. For written -# permission, please contact Cynthia Brewer at cbrewer@psu.edu. -# -# 4. Products derived from this software may not be called "ColorBrewer", -# nor may "ColorBrewer" appear in their name, without prior written -# permission of Cynthia Brewer. -# -# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, -# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL CYNTHIA -# BREWER, MARK HARROWER, OR THE PENNSYLVANIA STATE UNIVERSITY BE LIABLE FOR ANY -# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -brewer_colors = { - 'accent3': [(127, 201, 127), (190, 174, 212), (253, 192, 134)], - 'accent4': [(127, 201, 127), (190, 174, 212), (253, 192, 134), (255, 255, 153)], - 'accent5': [(127, 201, 127), (190, 174, 212), (253, 192, 134), (255, 255, 153), (56, 108, 176)], - 'accent6': [(127, 201, 127), (190, 174, 212), (253, 192, 134), (255, 255, 153), (56, 108, 176), (240, 2, 127)], - 'accent7': [(127, 201, 127), (190, 174, 212), (253, 192, 134), (255, 255, 153), (56, 108, 176), (240, 2, 127), (191, 91, 23)], - 'accent8': [(127, 201, 127), (190, 174, 212), (253, 192, 134), (255, 255, 153), (56, 108, 176), (240, 2, 127), (191, 91, 23), (102, 102, 102)], - 'blues3': [(222, 235, 247), (158, 202, 225), (49, 130, 189)], - 'blues4': [(239, 243, 255), (189, 215, 231), (107, 174, 214), (33, 113, 181)], - 'blues5': [(239, 243, 255), (189, 215, 231), (107, 174, 214), (49, 130, 189), (8, 81, 156)], - 'blues6': [(239, 243, 255), (198, 219, 239), (158, 202, 225), (107, 174, 214), (49, 130, 189), (8, 81, 156)], - 'blues7': [(239, 243, 255), (198, 219, 239), (158, 202, 225), (107, 174, 214), (66, 146, 198), (33, 113, 181), (8, 69, 148)], - 'blues8': [(247, 251, 255), (222, 235, 247), (198, 219, 239), (158, 202, 225), (107, 174, 214), (66, 146, 198), (33, 113, 181), (8, 69, 148)], - 'blues9': [(247, 251, 255), (222, 235, 247), (198, 219, 239), (158, 202, 225), (107, 174, 214), (66, 146, 198), (33, 113, 181), (8, 81, 156), (8, 48, 107)], - 'brbg10': [(84, 48, 5), (0, 60, 48), (140, 81, 10), (191, 129, 45), (223, 194, 125), (246, 232, 195), (199, 234, 229), (128, 205, 193), (53, 151, 143), (1, 102, 94)], - 'brbg11': [(84, 48, 5), (1, 102, 94), (0, 60, 48), (140, 81, 10), (191, 129, 45), (223, 194, 125), (246, 232, 195), (245, 245, 245), (199, 234, 229), (128, 205, 193), (53, 151, 143)], - 'brbg3': [(216, 179, 101), (245, 245, 245), (90, 180, 172)], - 'brbg4': [(166, 97, 26), (223, 194, 125), (128, 205, 193), (1, 133, 113)], - 'brbg5': [(166, 97, 26), (223, 194, 125), (245, 245, 245), (128, 205, 193), (1, 133, 113)], - 'brbg6': [(140, 81, 10), (216, 179, 101), (246, 232, 195), (199, 234, 229), (90, 180, 172), (1, 102, 94)], - 'brbg7': [(140, 81, 10), (216, 179, 101), (246, 232, 195), (245, 245, 245), (199, 234, 229), (90, 180, 172), (1, 102, 94)], - 'brbg8': [(140, 81, 10), (191, 129, 45), (223, 194, 125), (246, 232, 195), (199, 234, 229), (128, 205, 193), (53, 151, 143), (1, 102, 94)], - 'brbg9': [(140, 81, 10), (191, 129, 45), (223, 194, 125), (246, 232, 195), (245, 245, 245), (199, 234, 229), (128, 205, 193), (53, 151, 143), (1, 102, 94)], - 'bugn3': [(229, 245, 249), (153, 216, 201), (44, 162, 95)], - 'bugn4': [(237, 248, 251), (178, 226, 226), (102, 194, 164), (35, 139, 69)], - 'bugn5': [(237, 248, 251), (178, 226, 226), (102, 194, 164), (44, 162, 95), (0, 109, 44)], - 'bugn6': [(237, 248, 251), (204, 236, 230), (153, 216, 201), (102, 194, 164), (44, 162, 95), (0, 109, 44)], - 'bugn7': [(237, 248, 251), (204, 236, 230), (153, 216, 201), (102, 194, 164), (65, 174, 118), (35, 139, 69), (0, 88, 36)], - 'bugn8': [(247, 252, 253), (229, 245, 249), (204, 236, 230), (153, 216, 201), (102, 194, 164), (65, 174, 118), (35, 139, 69), (0, 88, 36)], - 'bugn9': [(247, 252, 253), (229, 245, 249), (204, 236, 230), (153, 216, 201), (102, 194, 164), (65, 174, 118), (35, 139, 69), (0, 109, 44), (0, 68, 27)], - 'bupu3': [(224, 236, 244), (158, 188, 218), (136, 86, 167)], - 'bupu4': [(237, 248, 251), (179, 205, 227), (140, 150, 198), (136, 65, 157)], - 'bupu5': [(237, 248, 251), (179, 205, 227), (140, 150, 198), (136, 86, 167), (129, 15, 124)], - 'bupu6': [(237, 248, 251), (191, 211, 230), (158, 188, 218), (140, 150, 198), (136, 86, 167), (129, 15, 124)], - 'bupu7': [(237, 248, 251), (191, 211, 230), (158, 188, 218), (140, 150, 198), (140, 107, 177), (136, 65, 157), (110, 1, 107)], - 'bupu8': [(247, 252, 253), (224, 236, 244), (191, 211, 230), (158, 188, 218), (140, 150, 198), (140, 107, 177), (136, 65, 157), (110, 1, 107)], - 'bupu9': [(247, 252, 253), (224, 236, 244), (191, 211, 230), (158, 188, 218), (140, 150, 198), (140, 107, 177), (136, 65, 157), (129, 15, 124), (77, 0, 75)], - 'dark23': [(27, 158, 119), (217, 95, 2), (117, 112, 179)], - 'dark24': [(27, 158, 119), (217, 95, 2), (117, 112, 179), (231, 41, 138)], - 'dark25': [(27, 158, 119), (217, 95, 2), (117, 112, 179), (231, 41, 138), (102, 166, 30)], - 'dark26': [(27, 158, 119), (217, 95, 2), (117, 112, 179), (231, 41, 138), (102, 166, 30), (230, 171, 2)], - 'dark27': [(27, 158, 119), (217, 95, 2), (117, 112, 179), (231, 41, 138), (102, 166, 30), (230, 171, 2), (166, 118, 29)], - 'dark28': [(27, 158, 119), (217, 95, 2), (117, 112, 179), (231, 41, 138), (102, 166, 30), (230, 171, 2), (166, 118, 29), (102, 102, 102)], - 'gnbu3': [(224, 243, 219), (168, 221, 181), (67, 162, 202)], - 'gnbu4': [(240, 249, 232), (186, 228, 188), (123, 204, 196), (43, 140, 190)], - 'gnbu5': [(240, 249, 232), (186, 228, 188), (123, 204, 196), (67, 162, 202), (8, 104, 172)], - 'gnbu6': [(240, 249, 232), (204, 235, 197), (168, 221, 181), (123, 204, 196), (67, 162, 202), (8, 104, 172)], - 'gnbu7': [(240, 249, 232), (204, 235, 197), (168, 221, 181), (123, 204, 196), (78, 179, 211), (43, 140, 190), (8, 88, 158)], - 'gnbu8': [(247, 252, 240), (224, 243, 219), (204, 235, 197), (168, 221, 181), (123, 204, 196), (78, 179, 211), (43, 140, 190), (8, 88, 158)], - 'gnbu9': [(247, 252, 240), (224, 243, 219), (204, 235, 197), (168, 221, 181), (123, 204, 196), (78, 179, 211), (43, 140, 190), (8, 104, 172), (8, 64, 129)], - 'greens3': [(229, 245, 224), (161, 217, 155), (49, 163, 84)], - 'greens4': [(237, 248, 233), (186, 228, 179), (116, 196, 118), (35, 139, 69)], - 'greens5': [(237, 248, 233), (186, 228, 179), (116, 196, 118), (49, 163, 84), (0, 109, 44)], - 'greens6': [(237, 248, 233), (199, 233, 192), (161, 217, 155), (116, 196, 118), (49, 163, 84), (0, 109, 44)], - 'greens7': [(237, 248, 233), (199, 233, 192), (161, 217, 155), (116, 196, 118), (65, 171, 93), (35, 139, 69), (0, 90, 50)], - 'greens8': [(247, 252, 245), (229, 245, 224), (199, 233, 192), (161, 217, 155), (116, 196, 118), (65, 171, 93), (35, 139, 69), (0, 90, 50)], - 'greens9': [(247, 252, 245), (229, 245, 224), (199, 233, 192), (161, 217, 155), (116, 196, 118), (65, 171, 93), (35, 139, 69), (0, 109, 44), (0, 68, 27)], - 'greys3': [(240, 240, 240), (189, 189, 189), (99, 99, 99)], - 'greys4': [(247, 247, 247), (204, 204, 204), (150, 150, 150), (82, 82, 82)], - 'greys5': [(247, 247, 247), (204, 204, 204), (150, 150, 150), (99, 99, 99), (37, 37, 37)], - 'greys6': [(247, 247, 247), (217, 217, 217), (189, 189, 189), (150, 150, 150), (99, 99, 99), (37, 37, 37)], - 'greys7': [(247, 247, 247), (217, 217, 217), (189, 189, 189), (150, 150, 150), (115, 115, 115), (82, 82, 82), (37, 37, 37)], - 'greys8': [(255, 255, 255), (240, 240, 240), (217, 217, 217), (189, 189, 189), (150, 150, 150), (115, 115, 115), (82, 82, 82), (37, 37, 37)], - 'greys9': [(255, 255, 255), (240, 240, 240), (217, 217, 217), (189, 189, 189), (150, 150, 150), (115, 115, 115), (82, 82, 82), (37, 37, 37), (0, 0, 0)], - 'oranges3': [(254, 230, 206), (253, 174, 107), (230, 85, 13)], - 'oranges4': [(254, 237, 222), (253, 190, 133), (253, 141, 60), (217, 71, 1)], - 'oranges5': [(254, 237, 222), (253, 190, 133), (253, 141, 60), (230, 85, 13), (166, 54, 3)], - 'oranges6': [(254, 237, 222), (253, 208, 162), (253, 174, 107), (253, 141, 60), (230, 85, 13), (166, 54, 3)], - 'oranges7': [(254, 237, 222), (253, 208, 162), (253, 174, 107), (253, 141, 60), (241, 105, 19), (217, 72, 1), (140, 45, 4)], - 'oranges8': [(255, 245, 235), (254, 230, 206), (253, 208, 162), (253, 174, 107), (253, 141, 60), (241, 105, 19), (217, 72, 1), (140, 45, 4)], - 'oranges9': [(255, 245, 235), (254, 230, 206), (253, 208, 162), (253, 174, 107), (253, 141, 60), (241, 105, 19), (217, 72, 1), (166, 54, 3), (127, 39, 4)], - 'orrd3': [(254, 232, 200), (253, 187, 132), (227, 74, 51)], - 'orrd4': [(254, 240, 217), (253, 204, 138), (252, 141, 89), (215, 48, 31)], - 'orrd5': [(254, 240, 217), (253, 204, 138), (252, 141, 89), (227, 74, 51), (179, 0, 0)], - 'orrd6': [(254, 240, 217), (253, 212, 158), (253, 187, 132), (252, 141, 89), (227, 74, 51), (179, 0, 0)], - 'orrd7': [(254, 240, 217), (253, 212, 158), (253, 187, 132), (252, 141, 89), (239, 101, 72), (215, 48, 31), (153, 0, 0)], - 'orrd8': [(255, 247, 236), (254, 232, 200), (253, 212, 158), (253, 187, 132), (252, 141, 89), (239, 101, 72), (215, 48, 31), (153, 0, 0)], - 'orrd9': [(255, 247, 236), (254, 232, 200), (253, 212, 158), (253, 187, 132), (252, 141, 89), (239, 101, 72), (215, 48, 31), (179, 0, 0), (127, 0, 0)], - 'paired10': [(166, 206, 227), (106, 61, 154), (31, 120, 180), (178, 223, 138), (51, 160, 44), (251, 154, 153), (227, 26, 28), (253, 191, 111), (255, 127, 0), (202, 178, 214)], - 'paired11': [(166, 206, 227), (106, 61, 154), (255, 255, 153), (31, 120, 180), (178, 223, 138), (51, 160, 44), (251, 154, 153), (227, 26, 28), (253, 191, 111), (255, 127, 0), (202, 178, 214)], - 'paired12': [(166, 206, 227), (106, 61, 154), (255, 255, 153), (177, 89, 40), (31, 120, 180), (178, 223, 138), (51, 160, 44), (251, 154, 153), (227, 26, 28), (253, 191, 111), (255, 127, 0), (202, 178, 214)], - 'paired3': [(166, 206, 227), (31, 120, 180), (178, 223, 138)], - 'paired4': [(166, 206, 227), (31, 120, 180), (178, 223, 138), (51, 160, 44)], - 'paired5': [(166, 206, 227), (31, 120, 180), (178, 223, 138), (51, 160, 44), (251, 154, 153)], - 'paired6': [(166, 206, 227), (31, 120, 180), (178, 223, 138), (51, 160, 44), (251, 154, 153), (227, 26, 28)], - 'paired7': [(166, 206, 227), (31, 120, 180), (178, 223, 138), (51, 160, 44), (251, 154, 153), (227, 26, 28), (253, 191, 111)], - 'paired8': [(166, 206, 227), (31, 120, 180), (178, 223, 138), (51, 160, 44), (251, 154, 153), (227, 26, 28), (253, 191, 111), (255, 127, 0)], - 'paired9': [(166, 206, 227), (31, 120, 180), (178, 223, 138), (51, 160, 44), (251, 154, 153), (227, 26, 28), (253, 191, 111), (255, 127, 0), (202, 178, 214)], - 'pastel13': [(251, 180, 174), (179, 205, 227), (204, 235, 197)], - 'pastel14': [(251, 180, 174), (179, 205, 227), (204, 235, 197), (222, 203, 228)], - 'pastel15': [(251, 180, 174), (179, 205, 227), (204, 235, 197), (222, 203, 228), (254, 217, 166)], - 'pastel16': [(251, 180, 174), (179, 205, 227), (204, 235, 197), (222, 203, 228), (254, 217, 166), (255, 255, 204)], - 'pastel17': [(251, 180, 174), (179, 205, 227), (204, 235, 197), (222, 203, 228), (254, 217, 166), (255, 255, 204), (229, 216, 189)], - 'pastel18': [(251, 180, 174), (179, 205, 227), (204, 235, 197), (222, 203, 228), (254, 217, 166), (255, 255, 204), (229, 216, 189), (253, 218, 236)], - 'pastel19': [(251, 180, 174), (179, 205, 227), (204, 235, 197), (222, 203, 228), (254, 217, 166), (255, 255, 204), (229, 216, 189), (253, 218, 236), (242, 242, 242)], - 'pastel23': [(179, 226, 205), (253, 205, 172), (203, 213, 232)], - 'pastel24': [(179, 226, 205), (253, 205, 172), (203, 213, 232), (244, 202, 228)], - 'pastel25': [(179, 226, 205), (253, 205, 172), (203, 213, 232), (244, 202, 228), (230, 245, 201)], - 'pastel26': [(179, 226, 205), (253, 205, 172), (203, 213, 232), (244, 202, 228), (230, 245, 201), (255, 242, 174)], - 'pastel27': [(179, 226, 205), (253, 205, 172), (203, 213, 232), (244, 202, 228), (230, 245, 201), (255, 242, 174), (241, 226, 204)], - 'pastel28': [(179, 226, 205), (253, 205, 172), (203, 213, 232), (244, 202, 228), (230, 245, 201), (255, 242, 174), (241, 226, 204), (204, 204, 204)], - 'piyg10': [(142, 1, 82), (39, 100, 25), (197, 27, 125), (222, 119, 174), (241, 182, 218), (253, 224, 239), (230, 245, 208), (184, 225, 134), (127, 188, 65), (77, 146, 33)], - 'piyg11': [(142, 1, 82), (77, 146, 33), (39, 100, 25), (197, 27, 125), (222, 119, 174), (241, 182, 218), (253, 224, 239), (247, 247, 247), (230, 245, 208), (184, 225, 134), (127, 188, 65)], - 'piyg3': [(233, 163, 201), (247, 247, 247), (161, 215, 106)], - 'piyg4': [(208, 28, 139), (241, 182, 218), (184, 225, 134), (77, 172, 38)], - 'piyg5': [(208, 28, 139), (241, 182, 218), (247, 247, 247), (184, 225, 134), (77, 172, 38)], - 'piyg6': [(197, 27, 125), (233, 163, 201), (253, 224, 239), (230, 245, 208), (161, 215, 106), (77, 146, 33)], - 'piyg7': [(197, 27, 125), (233, 163, 201), (253, 224, 239), (247, 247, 247), (230, 245, 208), (161, 215, 106), (77, 146, 33)], - 'piyg8': [(197, 27, 125), (222, 119, 174), (241, 182, 218), (253, 224, 239), (230, 245, 208), (184, 225, 134), (127, 188, 65), (77, 146, 33)], - 'piyg9': [(197, 27, 125), (222, 119, 174), (241, 182, 218), (253, 224, 239), (247, 247, 247), (230, 245, 208), (184, 225, 134), (127, 188, 65), (77, 146, 33)], - 'prgn10': [(64, 0, 75), (0, 68, 27), (118, 42, 131), (153, 112, 171), (194, 165, 207), (231, 212, 232), (217, 240, 211), (166, 219, 160), (90, 174, 97), (27, 120, 55)], - 'prgn11': [(64, 0, 75), (27, 120, 55), (0, 68, 27), (118, 42, 131), (153, 112, 171), (194, 165, 207), (231, 212, 232), (247, 247, 247), (217, 240, 211), (166, 219, 160), (90, 174, 97)], - 'prgn3': [(175, 141, 195), (247, 247, 247), (127, 191, 123)], - 'prgn4': [(123, 50, 148), (194, 165, 207), (166, 219, 160), (0, 136, 55)], - 'prgn5': [(123, 50, 148), (194, 165, 207), (247, 247, 247), (166, 219, 160), (0, 136, 55)], - 'prgn6': [(118, 42, 131), (175, 141, 195), (231, 212, 232), (217, 240, 211), (127, 191, 123), (27, 120, 55)], - 'prgn7': [(118, 42, 131), (175, 141, 195), (231, 212, 232), (247, 247, 247), (217, 240, 211), (127, 191, 123), (27, 120, 55)], - 'prgn8': [(118, 42, 131), (153, 112, 171), (194, 165, 207), (231, 212, 232), (217, 240, 211), (166, 219, 160), (90, 174, 97), (27, 120, 55)], - 'prgn9': [(118, 42, 131), (153, 112, 171), (194, 165, 207), (231, 212, 232), (247, 247, 247), (217, 240, 211), (166, 219, 160), (90, 174, 97), (27, 120, 55)], - 'pubu3': [(236, 231, 242), (166, 189, 219), (43, 140, 190)], - 'pubu4': [(241, 238, 246), (189, 201, 225), (116, 169, 207), (5, 112, 176)], - 'pubu5': [(241, 238, 246), (189, 201, 225), (116, 169, 207), (43, 140, 190), (4, 90, 141)], - 'pubu6': [(241, 238, 246), (208, 209, 230), (166, 189, 219), (116, 169, 207), (43, 140, 190), (4, 90, 141)], - 'pubu7': [(241, 238, 246), (208, 209, 230), (166, 189, 219), (116, 169, 207), (54, 144, 192), (5, 112, 176), (3, 78, 123)], - 'pubu8': [(255, 247, 251), (236, 231, 242), (208, 209, 230), (166, 189, 219), (116, 169, 207), (54, 144, 192), (5, 112, 176), (3, 78, 123)], - 'pubu9': [(255, 247, 251), (236, 231, 242), (208, 209, 230), (166, 189, 219), (116, 169, 207), (54, 144, 192), (5, 112, 176), (4, 90, 141), (2, 56, 88)], - 'pubugn3': [(236, 226, 240), (166, 189, 219), (28, 144, 153)], - 'pubugn4': [(246, 239, 247), (189, 201, 225), (103, 169, 207), (2, 129, 138)], - 'pubugn5': [(246, 239, 247), (189, 201, 225), (103, 169, 207), (28, 144, 153), (1, 108, 89)], - 'pubugn6': [(246, 239, 247), (208, 209, 230), (166, 189, 219), (103, 169, 207), (28, 144, 153), (1, 108, 89)], - 'pubugn7': [(246, 239, 247), (208, 209, 230), (166, 189, 219), (103, 169, 207), (54, 144, 192), (2, 129, 138), (1, 100, 80)], - 'pubugn8': [(255, 247, 251), (236, 226, 240), (208, 209, 230), (166, 189, 219), (103, 169, 207), (54, 144, 192), (2, 129, 138), (1, 100, 80)], - 'pubugn9': [(255, 247, 251), (236, 226, 240), (208, 209, 230), (166, 189, 219), (103, 169, 207), (54, 144, 192), (2, 129, 138), (1, 108, 89), (1, 70, 54)], - 'puor10': [(127, 59, 8), (45, 0, 75), (179, 88, 6), (224, 130, 20), (253, 184, 99), (254, 224, 182), (216, 218, 235), (178, 171, 210), (128, 115, 172), (84, 39, 136)], - 'puor11': [(127, 59, 8), (84, 39, 136), (45, 0, 75), (179, 88, 6), (224, 130, 20), (253, 184, 99), (254, 224, 182), (247, 247, 247), (216, 218, 235), (178, 171, 210), (128, 115, 172)], - 'puor3': [(241, 163, 64), (247, 247, 247), (153, 142, 195)], - 'puor4': [(230, 97, 1), (253, 184, 99), (178, 171, 210), (94, 60, 153)], - 'puor5': [(230, 97, 1), (253, 184, 99), (247, 247, 247), (178, 171, 210), (94, 60, 153)], - 'puor6': [(179, 88, 6), (241, 163, 64), (254, 224, 182), (216, 218, 235), (153, 142, 195), (84, 39, 136)], - 'puor7': [(179, 88, 6), (241, 163, 64), (254, 224, 182), (247, 247, 247), (216, 218, 235), (153, 142, 195), (84, 39, 136)], - 'puor8': [(179, 88, 6), (224, 130, 20), (253, 184, 99), (254, 224, 182), (216, 218, 235), (178, 171, 210), (128, 115, 172), (84, 39, 136)], - 'puor9': [(179, 88, 6), (224, 130, 20), (253, 184, 99), (254, 224, 182), (247, 247, 247), (216, 218, 235), (178, 171, 210), (128, 115, 172), (84, 39, 136)], - 'purd3': [(231, 225, 239), (201, 148, 199), (221, 28, 119)], - 'purd4': [(241, 238, 246), (215, 181, 216), (223, 101, 176), (206, 18, 86)], - 'purd5': [(241, 238, 246), (215, 181, 216), (223, 101, 176), (221, 28, 119), (152, 0, 67)], - 'purd6': [(241, 238, 246), (212, 185, 218), (201, 148, 199), (223, 101, 176), (221, 28, 119), (152, 0, 67)], - 'purd7': [(241, 238, 246), (212, 185, 218), (201, 148, 199), (223, 101, 176), (231, 41, 138), (206, 18, 86), (145, 0, 63)], - 'purd8': [(247, 244, 249), (231, 225, 239), (212, 185, 218), (201, 148, 199), (223, 101, 176), (231, 41, 138), (206, 18, 86), (145, 0, 63)], - 'purd9': [(247, 244, 249), (231, 225, 239), (212, 185, 218), (201, 148, 199), (223, 101, 176), (231, 41, 138), (206, 18, 86), (152, 0, 67), (103, 0, 31)], - 'purples3': [(239, 237, 245), (188, 189, 220), (117, 107, 177)], - 'purples4': [(242, 240, 247), (203, 201, 226), (158, 154, 200), (106, 81, 163)], - 'purples5': [(242, 240, 247), (203, 201, 226), (158, 154, 200), (117, 107, 177), (84, 39, 143)], - 'purples6': [(242, 240, 247), (218, 218, 235), (188, 189, 220), (158, 154, 200), (117, 107, 177), (84, 39, 143)], - 'purples7': [(242, 240, 247), (218, 218, 235), (188, 189, 220), (158, 154, 200), (128, 125, 186), (106, 81, 163), (74, 20, 134)], - 'purples8': [(252, 251, 253), (239, 237, 245), (218, 218, 235), (188, 189, 220), (158, 154, 200), (128, 125, 186), (106, 81, 163), (74, 20, 134)], - 'purples9': [(252, 251, 253), (239, 237, 245), (218, 218, 235), (188, 189, 220), (158, 154, 200), (128, 125, 186), (106, 81, 163), (84, 39, 143), (63, 0, 125)], - 'rdbu10': [(103, 0, 31), (5, 48, 97), (178, 24, 43), (214, 96, 77), (244, 165, 130), (253, 219, 199), (209, 229, 240), (146, 197, 222), (67, 147, 195), (33, 102, 172)], - 'rdbu11': [(103, 0, 31), (33, 102, 172), (5, 48, 97), (178, 24, 43), (214, 96, 77), (244, 165, 130), (253, 219, 199), (247, 247, 247), (209, 229, 240), (146, 197, 222), (67, 147, 195)], - 'rdbu3': [(239, 138, 98), (247, 247, 247), (103, 169, 207)], - 'rdbu4': [(202, 0, 32), (244, 165, 130), (146, 197, 222), (5, 113, 176)], - 'rdbu5': [(202, 0, 32), (244, 165, 130), (247, 247, 247), (146, 197, 222), (5, 113, 176)], - 'rdbu6': [(178, 24, 43), (239, 138, 98), (253, 219, 199), (209, 229, 240), (103, 169, 207), (33, 102, 172)], - 'rdbu7': [(178, 24, 43), (239, 138, 98), (253, 219, 199), (247, 247, 247), (209, 229, 240), (103, 169, 207), (33, 102, 172)], - 'rdbu8': [(178, 24, 43), (214, 96, 77), (244, 165, 130), (253, 219, 199), (209, 229, 240), (146, 197, 222), (67, 147, 195), (33, 102, 172)], - 'rdbu9': [(178, 24, 43), (214, 96, 77), (244, 165, 130), (253, 219, 199), (247, 247, 247), (209, 229, 240), (146, 197, 222), (67, 147, 195), (33, 102, 172)], - 'rdgy10': [(103, 0, 31), (26, 26, 26), (178, 24, 43), (214, 96, 77), (244, 165, 130), (253, 219, 199), (224, 224, 224), (186, 186, 186), (135, 135, 135), (77, 77, 77)], - 'rdgy11': [(103, 0, 31), (77, 77, 77), (26, 26, 26), (178, 24, 43), (214, 96, 77), (244, 165, 130), (253, 219, 199), (255, 255, 255), (224, 224, 224), (186, 186, 186), (135, 135, 135)], - 'rdgy3': [(239, 138, 98), (255, 255, 255), (153, 153, 153)], - 'rdgy4': [(202, 0, 32), (244, 165, 130), (186, 186, 186), (64, 64, 64)], - 'rdgy5': [(202, 0, 32), (244, 165, 130), (255, 255, 255), (186, 186, 186), (64, 64, 64)], - 'rdgy6': [(178, 24, 43), (239, 138, 98), (253, 219, 199), (224, 224, 224), (153, 153, 153), (77, 77, 77)], - 'rdgy7': [(178, 24, 43), (239, 138, 98), (253, 219, 199), (255, 255, 255), (224, 224, 224), (153, 153, 153), (77, 77, 77)], - 'rdgy8': [(178, 24, 43), (214, 96, 77), (244, 165, 130), (253, 219, 199), (224, 224, 224), (186, 186, 186), (135, 135, 135), (77, 77, 77)], - 'rdgy9': [(178, 24, 43), (214, 96, 77), (244, 165, 130), (253, 219, 199), (255, 255, 255), (224, 224, 224), (186, 186, 186), (135, 135, 135), (77, 77, 77)], - 'rdpu3': [(253, 224, 221), (250, 159, 181), (197, 27, 138)], - 'rdpu4': [(254, 235, 226), (251, 180, 185), (247, 104, 161), (174, 1, 126)], - 'rdpu5': [(254, 235, 226), (251, 180, 185), (247, 104, 161), (197, 27, 138), (122, 1, 119)], - 'rdpu6': [(254, 235, 226), (252, 197, 192), (250, 159, 181), (247, 104, 161), (197, 27, 138), (122, 1, 119)], - 'rdpu7': [(254, 235, 226), (252, 197, 192), (250, 159, 181), (247, 104, 161), (221, 52, 151), (174, 1, 126), (122, 1, 119)], - 'rdpu8': [(255, 247, 243), (253, 224, 221), (252, 197, 192), (250, 159, 181), (247, 104, 161), (221, 52, 151), (174, 1, 126), (122, 1, 119)], - 'rdpu9': [(255, 247, 243), (253, 224, 221), (252, 197, 192), (250, 159, 181), (247, 104, 161), (221, 52, 151), (174, 1, 126), (122, 1, 119), (73, 0, 106)], - 'rdylbu10': [(165, 0, 38), (49, 54, 149), (215, 48, 39), (244, 109, 67), (253, 174, 97), (254, 224, 144), (224, 243, 248), (171, 217, 233), (116, 173, 209), (69, 117, 180)], - 'rdylbu11': [(165, 0, 38), (69, 117, 180), (49, 54, 149), (215, 48, 39), (244, 109, 67), (253, 174, 97), (254, 224, 144), (255, 255, 191), (224, 243, 248), (171, 217, 233), (116, 173, 209)], - 'rdylbu3': [(252, 141, 89), (255, 255, 191), (145, 191, 219)], - 'rdylbu4': [(215, 25, 28), (253, 174, 97), (171, 217, 233), (44, 123, 182)], - 'rdylbu5': [(215, 25, 28), (253, 174, 97), (255, 255, 191), (171, 217, 233), (44, 123, 182)], - 'rdylbu6': [(215, 48, 39), (252, 141, 89), (254, 224, 144), (224, 243, 248), (145, 191, 219), (69, 117, 180)], - 'rdylbu7': [(215, 48, 39), (252, 141, 89), (254, 224, 144), (255, 255, 191), (224, 243, 248), (145, 191, 219), (69, 117, 180)], - 'rdylbu8': [(215, 48, 39), (244, 109, 67), (253, 174, 97), (254, 224, 144), (224, 243, 248), (171, 217, 233), (116, 173, 209), (69, 117, 180)], - 'rdylbu9': [(215, 48, 39), (244, 109, 67), (253, 174, 97), (254, 224, 144), (255, 255, 191), (224, 243, 248), (171, 217, 233), (116, 173, 209), (69, 117, 180)], - 'rdylgn10': [(165, 0, 38), (0, 104, 55), (215, 48, 39), (244, 109, 67), (253, 174, 97), (254, 224, 139), (217, 239, 139), (166, 217, 106), (102, 189, 99), (26, 152, 80)], - 'rdylgn11': [(165, 0, 38), (26, 152, 80), (0, 104, 55), (215, 48, 39), (244, 109, 67), (253, 174, 97), (254, 224, 139), (255, 255, 191), (217, 239, 139), (166, 217, 106), (102, 189, 99)], - 'rdylgn3': [(252, 141, 89), (255, 255, 191), (145, 207, 96)], - 'rdylgn4': [(215, 25, 28), (253, 174, 97), (166, 217, 106), (26, 150, 65)], - 'rdylgn5': [(215, 25, 28), (253, 174, 97), (255, 255, 191), (166, 217, 106), (26, 150, 65)], - 'rdylgn6': [(215, 48, 39), (252, 141, 89), (254, 224, 139), (217, 239, 139), (145, 207, 96), (26, 152, 80)], - 'rdylgn7': [(215, 48, 39), (252, 141, 89), (254, 224, 139), (255, 255, 191), (217, 239, 139), (145, 207, 96), (26, 152, 80)], - 'rdylgn8': [(215, 48, 39), (244, 109, 67), (253, 174, 97), (254, 224, 139), (217, 239, 139), (166, 217, 106), (102, 189, 99), (26, 152, 80)], - 'rdylgn9': [(215, 48, 39), (244, 109, 67), (253, 174, 97), (254, 224, 139), (255, 255, 191), (217, 239, 139), (166, 217, 106), (102, 189, 99), (26, 152, 80)], - 'reds3': [(254, 224, 210), (252, 146, 114), (222, 45, 38)], - 'reds4': [(254, 229, 217), (252, 174, 145), (251, 106, 74), (203, 24, 29)], - 'reds5': [(254, 229, 217), (252, 174, 145), (251, 106, 74), (222, 45, 38), (165, 15, 21)], - 'reds6': [(254, 229, 217), (252, 187, 161), (252, 146, 114), (251, 106, 74), (222, 45, 38), (165, 15, 21)], - 'reds7': [(254, 229, 217), (252, 187, 161), (252, 146, 114), (251, 106, 74), (239, 59, 44), (203, 24, 29), (153, 0, 13)], - 'reds8': [(255, 245, 240), (254, 224, 210), (252, 187, 161), (252, 146, 114), (251, 106, 74), (239, 59, 44), (203, 24, 29), (153, 0, 13)], - 'reds9': [(255, 245, 240), (254, 224, 210), (252, 187, 161), (252, 146, 114), (251, 106, 74), (239, 59, 44), (203, 24, 29), (165, 15, 21), (103, 0, 13)], - 'set13': [(228, 26, 28), (55, 126, 184), (77, 175, 74)], - 'set14': [(228, 26, 28), (55, 126, 184), (77, 175, 74), (152, 78, 163)], - 'set15': [(228, 26, 28), (55, 126, 184), (77, 175, 74), (152, 78, 163), (255, 127, 0)], - 'set16': [(228, 26, 28), (55, 126, 184), (77, 175, 74), (152, 78, 163), (255, 127, 0), (255, 255, 51)], - 'set17': [(228, 26, 28), (55, 126, 184), (77, 175, 74), (152, 78, 163), (255, 127, 0), (255, 255, 51), (166, 86, 40)], - 'set18': [(228, 26, 28), (55, 126, 184), (77, 175, 74), (152, 78, 163), (255, 127, 0), (255, 255, 51), (166, 86, 40), (247, 129, 191)], - 'set19': [(228, 26, 28), (55, 126, 184), (77, 175, 74), (152, 78, 163), (255, 127, 0), (255, 255, 51), (166, 86, 40), (247, 129, 191), (153, 153, 153)], - 'set23': [(102, 194, 165), (252, 141, 98), (141, 160, 203)], - 'set24': [(102, 194, 165), (252, 141, 98), (141, 160, 203), (231, 138, 195)], - 'set25': [(102, 194, 165), (252, 141, 98), (141, 160, 203), (231, 138, 195), (166, 216, 84)], - 'set26': [(102, 194, 165), (252, 141, 98), (141, 160, 203), (231, 138, 195), (166, 216, 84), (255, 217, 47)], - 'set27': [(102, 194, 165), (252, 141, 98), (141, 160, 203), (231, 138, 195), (166, 216, 84), (255, 217, 47), (229, 196, 148)], - 'set28': [(102, 194, 165), (252, 141, 98), (141, 160, 203), (231, 138, 195), (166, 216, 84), (255, 217, 47), (229, 196, 148), (179, 179, 179)], - 'set310': [(141, 211, 199), (188, 128, 189), (255, 255, 179), (190, 186, 218), (251, 128, 114), (128, 177, 211), (253, 180, 98), (179, 222, 105), (252, 205, 229), (217, 217, 217)], - 'set311': [(141, 211, 199), (188, 128, 189), (204, 235, 197), (255, 255, 179), (190, 186, 218), (251, 128, 114), (128, 177, 211), (253, 180, 98), (179, 222, 105), (252, 205, 229), (217, 217, 217)], - 'set312': [(141, 211, 199), (188, 128, 189), (204, 235, 197), (255, 237, 111), (255, 255, 179), (190, 186, 218), (251, 128, 114), (128, 177, 211), (253, 180, 98), (179, 222, 105), (252, 205, 229), (217, 217, 217)], - 'set33': [(141, 211, 199), (255, 255, 179), (190, 186, 218)], - 'set34': [(141, 211, 199), (255, 255, 179), (190, 186, 218), (251, 128, 114)], - 'set35': [(141, 211, 199), (255, 255, 179), (190, 186, 218), (251, 128, 114), (128, 177, 211)], - 'set36': [(141, 211, 199), (255, 255, 179), (190, 186, 218), (251, 128, 114), (128, 177, 211), (253, 180, 98)], - 'set37': [(141, 211, 199), (255, 255, 179), (190, 186, 218), (251, 128, 114), (128, 177, 211), (253, 180, 98), (179, 222, 105)], - 'set38': [(141, 211, 199), (255, 255, 179), (190, 186, 218), (251, 128, 114), (128, 177, 211), (253, 180, 98), (179, 222, 105), (252, 205, 229)], - 'set39': [(141, 211, 199), (255, 255, 179), (190, 186, 218), (251, 128, 114), (128, 177, 211), (253, 180, 98), (179, 222, 105), (252, 205, 229), (217, 217, 217)], - 'spectral10': [(158, 1, 66), (94, 79, 162), (213, 62, 79), (244, 109, 67), (253, 174, 97), (254, 224, 139), (230, 245, 152), (171, 221, 164), (102, 194, 165), (50, 136, 189)], - 'spectral11': [(158, 1, 66), (50, 136, 189), (94, 79, 162), (213, 62, 79), (244, 109, 67), (253, 174, 97), (254, 224, 139), (255, 255, 191), (230, 245, 152), (171, 221, 164), (102, 194, 165)], - 'spectral3': [(252, 141, 89), (255, 255, 191), (153, 213, 148)], - 'spectral4': [(215, 25, 28), (253, 174, 97), (171, 221, 164), (43, 131, 186)], - 'spectral5': [(215, 25, 28), (253, 174, 97), (255, 255, 191), (171, 221, 164), (43, 131, 186)], - 'spectral6': [(213, 62, 79), (252, 141, 89), (254, 224, 139), (230, 245, 152), (153, 213, 148), (50, 136, 189)], - 'spectral7': [(213, 62, 79), (252, 141, 89), (254, 224, 139), (255, 255, 191), (230, 245, 152), (153, 213, 148), (50, 136, 189)], - 'spectral8': [(213, 62, 79), (244, 109, 67), (253, 174, 97), (254, 224, 139), (230, 245, 152), (171, 221, 164), (102, 194, 165), (50, 136, 189)], - 'spectral9': [(213, 62, 79), (244, 109, 67), (253, 174, 97), (254, 224, 139), (255, 255, 191), (230, 245, 152), (171, 221, 164), (102, 194, 165), (50, 136, 189)], - 'ylgn3': [(247, 252, 185), (173, 221, 142), (49, 163, 84)], - 'ylgn4': [(255, 255, 204), (194, 230, 153), (120, 198, 121), (35, 132, 67)], - 'ylgn5': [(255, 255, 204), (194, 230, 153), (120, 198, 121), (49, 163, 84), (0, 104, 55)], - 'ylgn6': [(255, 255, 204), (217, 240, 163), (173, 221, 142), (120, 198, 121), (49, 163, 84), (0, 104, 55)], - 'ylgn7': [(255, 255, 204), (217, 240, 163), (173, 221, 142), (120, 198, 121), (65, 171, 93), (35, 132, 67), (0, 90, 50)], - 'ylgn8': [(255, 255, 229), (247, 252, 185), (217, 240, 163), (173, 221, 142), (120, 198, 121), (65, 171, 93), (35, 132, 67), (0, 90, 50)], - 'ylgn9': [(255, 255, 229), (247, 252, 185), (217, 240, 163), (173, 221, 142), (120, 198, 121), (65, 171, 93), (35, 132, 67), (0, 104, 55), (0, 69, 41)], - 'ylgnbu3': [(237, 248, 177), (127, 205, 187), (44, 127, 184)], - 'ylgnbu4': [(255, 255, 204), (161, 218, 180), (65, 182, 196), (34, 94, 168)], - 'ylgnbu5': [(255, 255, 204), (161, 218, 180), (65, 182, 196), (44, 127, 184), (37, 52, 148)], - 'ylgnbu6': [(255, 255, 204), (199, 233, 180), (127, 205, 187), (65, 182, 196), (44, 127, 184), (37, 52, 148)], - 'ylgnbu7': [(255, 255, 204), (199, 233, 180), (127, 205, 187), (65, 182, 196), (29, 145, 192), (34, 94, 168), (12, 44, 132)], - 'ylgnbu8': [(255, 255, 217), (237, 248, 177), (199, 233, 180), (127, 205, 187), (65, 182, 196), (29, 145, 192), (34, 94, 168), (12, 44, 132)], - 'ylgnbu9': [(255, 255, 217), (237, 248, 177), (199, 233, 180), (127, 205, 187), (65, 182, 196), (29, 145, 192), (34, 94, 168), (37, 52, 148), (8, 29, 88)], - 'ylorbr3': [(255, 247, 188), (254, 196, 79), (217, 95, 14)], - 'ylorbr4': [(255, 255, 212), (254, 217, 142), (254, 153, 41), (204, 76, 2)], - 'ylorbr5': [(255, 255, 212), (254, 217, 142), (254, 153, 41), (217, 95, 14), (153, 52, 4)], - 'ylorbr6': [(255, 255, 212), (254, 227, 145), (254, 196, 79), (254, 153, 41), (217, 95, 14), (153, 52, 4)], - 'ylorbr7': [(255, 255, 212), (254, 227, 145), (254, 196, 79), (254, 153, 41), (236, 112, 20), (204, 76, 2), (140, 45, 4)], - 'ylorbr8': [(255, 255, 229), (255, 247, 188), (254, 227, 145), (254, 196, 79), (254, 153, 41), (236, 112, 20), (204, 76, 2), (140, 45, 4)], - 'ylorbr9': [(255, 255, 229), (255, 247, 188), (254, 227, 145), (254, 196, 79), (254, 153, 41), (236, 112, 20), (204, 76, 2), (153, 52, 4), (102, 37, 6)], - 'ylorrd3': [(255, 237, 160), (254, 178, 76), (240, 59, 32)], - 'ylorrd4': [(255, 255, 178), (254, 204, 92), (253, 141, 60), (227, 26, 28)], - 'ylorrd5': [(255, 255, 178), (254, 204, 92), (253, 141, 60), (240, 59, 32), (189, 0, 38)], - 'ylorrd6': [(255, 255, 178), (254, 217, 118), (254, 178, 76), (253, 141, 60), (240, 59, 32), (189, 0, 38)], - 'ylorrd7': [(255, 255, 178), (254, 217, 118), (254, 178, 76), (253, 141, 60), (252, 78, 42), (227, 26, 28), (177, 0, 38)], - 'ylorrd8': [(255, 255, 204), (255, 237, 160), (254, 217, 118), (254, 178, 76), (253, 141, 60), (252, 78, 42), (227, 26, 28), (177, 0, 38)], -} - - -if __name__ == '__main__': - main() diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/rqt_behavior_tree/xdot/xdot_qt.py b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/rqt_behavior_tree/xdot/xdot_qt.py deleted file mode 100755 index 520487e8f..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/rqt_behavior_tree/xdot/xdot_qt.py +++ /dev/null @@ -1,2233 +0,0 @@ -#!/usr/bin/env python -# -# Copyright 2008 Jose Fonseca -# -# This program is free software: you can redistribute it and/or modify it -# under the terms of the GNU Lesser General Public License as published -# by the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# -# QT Version adapted by Alex Bravo - -'''Visualize dot graphs via the xdot format.''' - -__author__ = "Jose Fonseca" - -__version__ = "0.4" - -import os -import sys -import subprocess -import math -import colorsys -import time -import re - -#from PySide.QtCore import * -#from PySide.QtGui import * -#from PyQt4 import * -#from PyQt4.QtCore import * -#from PyQt4.QtGui import * - -from python_qt_binding import * -from python_qt_binding.QtCore import * -from python_qt_binding.QtGui import * -from python_qt_binding.QtWidgets import * - -#-------------------------------------------------------------------------------------------------------------------------------------------------------------------- -#-- Drawing Classes --# - -class Pen: - """Store pen attributes.""" - - def __init__(self): - # set default attributes - self.color = (0.0, 0.0, 0.0, 1.0) - self.fillcolor = (0.0, 0.0, 0.0, 1.0) - self.linewidth = 1.0 - self.fontsize = 14.0 - self.fontname = "Times-Roman" - self.dash = Qt.SolidLine - - def copy(self): - """Create a copy of this pen.""" - pen = Pen() - pen.__dict__ = self.__dict__.copy() - return pen - - def highlighted(self): - pen = self.copy() - pen.color = (1, 0, 0, 1) - pen.fillcolor = (1, .8, .8, 1) - return pen - -class Shape: - """Abstract base class for all the drawing shapes.""" - - def __init__(self): - pass - - def draw(self, cr, highlight=False): - """Draw this shape with the given cairo context""" - raise NotImplementedError - - def select_pen(self, highlight): - if highlight: - if not hasattr(self, 'highlight_pen'): - self.highlight_pen = self.pen.highlighted() - return self.highlight_pen - else: - return self.pen - -class TextShape(Shape): - """Used to draw a text shape with a QPainter""" - - LEFT, CENTER, RIGHT = -1, 0, 1 - - def __init__(self, pen, x, y, j, w, t): - Shape.__init__(self) - self.pen = pen.copy() - self.x = x - self.y = y - self.j = j #AB allignment? JRB: height. - self.w = w - self.t = t - - def draw(self, painter, highlight=False): - pen = self.select_pen(highlight) - painter.setPen(QColor.fromRgbF(*pen.color)) - font = QFont(self.pen.fontname) - - fontMetrics = QFontMetrics(QFont(self.pen.fontname)) - scale = float(fontMetrics.width(self.t)) / float(self.w) - - if scale < 1.0 or scale > 1.0: - font.setPointSizeF(font.pointSizeF()/scale); - - painter.setFont(font)#, self.pen.fontsize)) #AB simply setting font size doesn't work - painter.drawText( - self.x - self.w / 2.0, - self.y, - self.t) - pass - -class EllipseShape(Shape): - """Used to draw an ellipse shape with a QPainter""" - def __init__(self, pen, x0, y0, w, h, filled=False): - Shape.__init__(self) - self.pen = pen.copy() - self.x0 = x0 - self.y0 = y0 - self.w = w - self.h = h - self.filled = filled - - def draw(self, painter, highlight=False): - painter.save() - pen = self.select_pen(highlight) - if self.filled: - painter.setPen(QColor.fromRgbF(*pen.fillcolor)) - painter.setBrush(QColor.fromRgbF(*pen.fillcolor)) - else: - painter.setPen(QPen(QBrush(QColor.fromRgbF(*pen.color)), pen.linewidth, pen.dash)) - painter.setBrush(Qt.NoBrush) - painter.drawEllipse(self.x0 - self.w, self.y0 - self.h, self.w * 2, self.h * 2) - painter.restore() - -class PolygonShape(Shape): - """Used to draw a polygon with QPainter.""" - - def __init__(self, pen, points, filled=False): - Shape.__init__(self) - self.pen = pen.copy() - self.points = points - self.filled = filled - - def draw(self, painter, highlight=False): - - polygon_points = QPolygonF() - for x, y in self.points: - polygon_points.append (QPointF(x, y)) - - pen = self.select_pen(highlight) - painter.save() - if self.filled: - painter.setPen(QColor.fromRgbF(*pen.fillcolor)) - painter.setBrush(QColor.fromRgbF(*pen.fillcolor)) - else: - painter.setPen(QPen(QBrush(QColor.fromRgbF(*pen.color)), pen.linewidth, - pen.dash, Qt.SquareCap, Qt.MiterJoin)) - painter.setBrush(Qt.NoBrush) - - painter.drawPolygon(polygon_points) - painter.restore() - -class LineShape(Shape): - """Used to draw a line with QPainter.""" - - def __init__(self, pen, points): - Shape.__init__(self) - self.pen = pen.copy() - self.points = points - - def draw(self, painter, highlight=False): - pen = self.select_pen(highlight) - painter.setPen(QPen(QBrush(QColor.fromRgbF(*pen.color)), pen.linewidth, - pen.dash, Qt.SquareCap, Qt.MiterJoin)) - - x0, y0 = self.points[0] - for x1, y1 in self.points[1:]: - painter.drawLine(QPointF(x0, y0), QPointF(x1, y1)) - x0 = x1 - y0 = y1 - -class BezierShape(Shape): - """Used to draw a bezier curve with QPainter.""" - - def __init__(self, pen, points, filled=False): - Shape.__init__(self) - self.pen = pen.copy() - self.points = points - self.filled = filled - - def draw(self, painter, highlight=False): - painter_path = QPainterPath() - painter_path.moveTo(QPointF(*self.points[0])) - for i in xrange(1, len(self.points), 3): - painter_path.cubicTo( - QPointF(*self.points[i]), - QPointF(*self.points[i + 1]), - QPointF(*self.points[i + 2])) - pen = self.select_pen(highlight) - qpen = QPen() - if self.filled: - brush = QBrush() - brush.setColor(QColor.fromRgbF(*pen.fillcolor)) - brush.setStyle(Qt.SolidPattern) - painter.setBrush(brush) - #qpen.setCapStyle(Qt.RoundCap) - #qpen.setJoinStyle(Qt.RoundJoin) - #painter_path.setFillRule(Qt.OddEvenFill) - else: - painter.setBrush(Qt.NoBrush) - - qpen.setStyle(pen.dash) - qpen.setWidth(pen.linewidth) - qpen.setColor(QColor.fromRgbF(*pen.color)) - painter.setPen(qpen) - painter.drawPath(painter_path) - -class CompoundShape(Shape): - """Used to draw a set of shapes with QPainter.""" - - def __init__(self, shapes): - Shape.__init__(self) - self.shapes = shapes - - def draw(self, cr, highlight=False): - for shape in self.shapes: - shape.draw(cr, highlight=highlight) - -#-------------------------------------------------------------------------------------------------------------------------------------------------------------------- -#-- Metadata Classes --# - -class Url(object): - """Represents a graphviz URL.""" - - def __init__(self, item, url, highlight=None): - self.item = item - self.url = url - if highlight is None: - highlight = set([item]) - self.highlight = highlight - -class Jump(object): - """Represents a jump to another node's position on the canvas.""" - - def __init__(self, item, x, y, highlight=None, url=None): - self.item = item - self.x = x - self.y = y - if highlight is None: - highlight = set([item]) - self.highlight = highlight - self.url = url - -#-------------------------------------------------------------------------------------------------------------------------------------------------------------------- -#-- Graph Representation Classes --# - -class Element(CompoundShape): - """Base class for graph nodes and edges.""" - - def __init__(self, shapes): - CompoundShape.__init__(self, shapes) - - def get_url(self, x, y): - return None - - def get_jump(self, x, y): - return None - - -class Node(Element): - """An abstract node in the graph, it's spatial location, and it's visual representation.""" - - def __init__(self, x, y, w, h, shapes, url): - Element.__init__(self, shapes) - - self.x = x - self.y = y - - self.x1 = x - 0.5*w - self.y1 = y - 0.5*h - self.x2 = x + 0.5*w - self.y2 = y + 0.5*h - - self.url = url - - def is_inside(self, x, y): - """Used to check for 2D-picking via the mouse. - param x: The x position on the canvas - param y: The y position on the canvas - """ - return self.x1 <= x and x <= self.x2 and self.y1 <= y and y <= self.y2 - - def get_url(self, x, y): - """Get the elemnt's metadata.""" - if self.url is None: - return None - if self.is_inside(x, y): - return Url(self, self.url) - return None - - def get_jump(self, x, y): - if self.is_inside(x, y): - return Jump(self, self.x, self.y) - return None - - -def square_distance(x1, y1, x2, y2): - deltax = x2 - x1 - deltay = y2 - y1 - return deltax*deltax + deltay*deltay - - -class Edge(Element): - - def __init__(self, src, dst, points, shapes, url): - Element.__init__(self, shapes) - self.src = src - self.dst = dst - self.points = points - self.url = url - - RADIUS = 10 - - def get_jump(self, x, y): - if square_distance(x, y, *self.points[0]) <= self.RADIUS*self.RADIUS: - return Jump(self, self.dst.x, self.dst.y, highlight=set([self, self.dst]),url=self.url) - if square_distance(x, y, *self.points[-1]) <= self.RADIUS*self.RADIUS: - return Jump(self, self.src.x, self.src.y, highlight=set([self, self.src]),url=self.url) - return None - - -#-------------------------------------------------------------------------------------------------------------------------------------------------------------------- -class Graph(Shape): - - def __init__(self, width=1, height=1, shapes=(), nodes=(), edges=(), subgraph_shapes={}): - Shape.__init__(self) - - self.width = width - self.height = height - self.shapes = shapes - self.nodes = nodes - self.edges = edges - self.subgraph_shapes = subgraph_shapes - - def get_size(self): - return self.width, self.height - - def draw(self, cr, highlight_items=None): - if highlight_items is None: - highlight_items = () - for shape in self.shapes: - shape.draw(cr) - for edge in self.edges: - edge.draw(cr, highlight=(edge in highlight_items)) - for node in self.nodes: - node.draw(cr, highlight=(node in highlight_items)) - - def get_url(self, x, y): - for node in self.nodes: - url = node.get_url(x, y) - if url is not None: - return url - return None - - def get_jump(self, x, y): - for edge in self.edges: - jump = edge.get_jump(x, y) - if jump is not None: - return jump - for node in self.nodes: - jump = node.get_jump(x, y) - if jump is not None: - return jump - return None - - -#-------------------------------------------------------------------------------------------------------------------------------------------------------------------- -class XDotAttrParser: - """Parser for xdot drawing attributes. - See also: - - http://www.graphviz.org/doc/info/output.html#d:xdot - """ - - def __init__(self, parser, buf): - self.parser = parser - self.buf = self.unescape(buf) - self.pos = 0 - - self.pen = Pen() - self.shapes = [] - - def __nonzero__(self): - return self.pos < len(self.buf) - - def unescape(self, buf): - buf = buf.replace('\\"', '"') - buf = buf.replace('\\n', '\n') - return buf - - def read_code(self): - pos = self.buf.find(" ", self.pos) - res = self.buf[self.pos:pos] - self.pos = pos + 1 - while self.pos < len(self.buf) and self.buf[self.pos].isspace(): - self.pos += 1 - return res - - def read_number(self): - return int(float(self.read_code())) - - def read_float(self): - return float(self.read_code()) - - def read_point(self): - x = self.read_number() - y = self.read_number() - return self.transform(x, y) - - def read_text(self): - num = self.read_number() - pos = self.buf.find("-", self.pos) + 1 - self.pos = pos + num - res = self.buf[pos:self.pos] - while self.pos < len(self.buf) and self.buf[self.pos].isspace(): - self.pos += 1 - return res - - def read_polygon(self): - n = self.read_number() - p = [] -# p = QPointF[] - for i in range(n): - x, y = self.read_point() - p.append((x, y)) -# p.append (QPointF(x, y)) - return p - - def read_color(self): - # See http://www.graphviz.org/doc/info/attrs.html#k:color - c = self.read_text() - c1 = c[:1] - if c1 == '#': - hex2float = lambda h: float(int(h, 16)/255.0) - r = hex2float(c[1:3]) - g = hex2float(c[3:5]) - b = hex2float(c[5:7]) - try: - a = hex2float(c[7:9]) - except (IndexError, ValueError): - a = 1.0 - return r, g, b, a - elif c1.isdigit() or c1 == ".": - # "H,S,V" or "H S V" or "H, S, V" or any other variation - h, s, v = map(float, c.replace(",", " ").split()) - r, g, b = colorsys.hsv_to_rgb(h, s, v) - a = 1.0 - return r, g, b, a - else: - return self.lookup_color(c) - - def lookup_color(self, c): - try: - color = gtk.gdk.color_parse(c) - except ValueError: - pass - else: - s = 1.0/65535.0 - r = color.red*s - g = color.green*s - b = color.blue*s - a = 1.0 - return r, g, b, a - - try: - dummy, scheme, index = c.split('/') - r, g, b = brewer_colors[scheme][int(index)] - except (ValueError, KeyError): - pass - else: - s = 1.0/255.0 - r = r*s - g = g*s - b = b*s - a = 1.0 - return r, g, b, a - - sys.stderr.write("unknown color '%s'\n" % c) - return None - - def parse(self): - s = self - - while s: - op = s.read_code() - if op == "c": - color = s.read_color() - if color is not None: - self.handle_color(color, filled=False) - elif op == "C": - color = s.read_color() - if color is not None: - self.handle_color(color, filled=True) - elif op == "S": - # http://www.graphviz.org/doc/info/attrs.html#k:style - style = s.read_text() - if style.startswith("setlinewidth("): - lw = style.split("(")[1].split(")")[0] - lw = float(lw) - self.handle_linewidth(lw) - elif style in ("solid", "dashed"): - self.handle_linestyle(style) - elif op == "F": - size = s.read_float() - name = s.read_text() - self.handle_font(size, name) - elif op == "T": - x, y = s.read_point() - j = s.read_number() - w = s.read_number() - t = s.read_text() - self.handle_text(x, y, j, w, t) - elif op == "E": - x0, y0 = s.read_point() - w = s.read_number() - h = s.read_number() - self.handle_ellipse(x0, y0, w, h, filled=True) - elif op == "e": - x0, y0 = s.read_point() - w = s.read_number() - h = s.read_number() - self.handle_ellipse(x0, y0, w, h, filled=False) - elif op == "L": - points = self.read_polygon() - self.handle_line(points) - elif op == "B": - points = self.read_polygon() - self.handle_bezier(points, filled=False) - elif op == "b": - points = self.read_polygon() - self.handle_bezier(points, filled=True) - elif op == "P": - points = self.read_polygon() - self.handle_polygon(points, filled=True) - elif op == "p": - points = self.read_polygon() - self.handle_polygon(points, filled=False) - else: - sys.stderr.write("unknown xdot opcode '%s'\n" % op) - break - - return self.shapes - - def transform(self, x, y): - return self.parser.transform(x, y) - - def handle_color(self, color, filled=False): - if filled: - self.pen.fillcolor = color - else: - self.pen.color = color - - def handle_linewidth(self, linewidth): - self.pen.linewidth = linewidth - - def handle_linestyle(self, style): - if style == "solid": -# self.pen.dash = () - self.pen.dash = Qt.SolidLine - elif style == "dashed": -# self.pen.dash = (6, ) # 6pt on, 6pt off - self.pen.dash = Qt.DashLine - - def handle_font(self, size, name): - self.pen.fontsize = size - self.pen.fontname = name - - def handle_text(self, x, y, j, w, t): - self.shapes.append(TextShape(self.pen, x, y, j, w, t)) - - def handle_ellipse(self, x0, y0, w, h, filled=False): - if filled: - # xdot uses this to mean "draw a filled shape with an outline" - self.shapes.append(EllipseShape(self.pen, x0, y0, w, h, filled=True)) - self.shapes.append(EllipseShape(self.pen, x0, y0, w, h)) - - def handle_line(self, points): - self.shapes.append(LineShape(self.pen, points)) - - def handle_bezier(self, points, filled=False): - if filled: - # xdot uses this to mean "draw a filled shape with an outline" - self.shapes.append(BezierShape(self.pen, points, filled=True)) - self.shapes.append(BezierShape(self.pen, points)) - - def handle_polygon(self, points, filled=False): - #AB Should filled be handled inside of PolygonShape? - if filled: - # xdot uses this to mean "draw a filled shape with an outline" - self.shapes.append(PolygonShape(self.pen, points, filled=True)) - self.shapes.append(PolygonShape(self.pen, points)) - - -EOF = -1 -SKIP = -2 - - -class ParseError(Exception): - - def __init__(self, msg=None, filename=None, line=None, col=None): - self.msg = msg - self.filename = filename - self.line = line - self.col = col - - def __str__(self): - return ':'.join([str(part) for part in (self.filename, self.line, self.col, self.msg) if part != None]) - - -#-------------------------------------------------------------------------------------------------------------------------------------------------------------------- -class Scanner: - """Stateless scanner.""" - - # should be overriden by derived classes - tokens = [] - symbols = {} - literals = {} - ignorecase = False - - def __init__(self): - flags = re.DOTALL - if self.ignorecase: - flags |= re.IGNORECASE - self.tokens_re = re.compile( - '|'.join(['(' + regexp + ')' for type, regexp, test_lit in self.tokens]), - flags - ) - - def next(self, buf, pos): - if pos >= len(buf): - return EOF, '', pos - mo = self.tokens_re.match(buf, pos) - if mo: - text = mo.group() - type, regexp, test_lit = self.tokens[mo.lastindex - 1] - pos = mo.end() - if test_lit: - type = self.literals.get(text, type) - return type, text, pos - else: - c = buf[pos] - return self.symbols.get(c, None), c, pos + 1 - - -class Token: - - def __init__(self, type, text, line, col): - self.type = type - self.text = text - self.line = line - self.col = col - - -class Lexer: - - # should be overriden by derived classes - scanner = None - tabsize = 8 - - newline_re = re.compile(r'\r\n?|\n') - - def __init__(self, buf = None, pos = 0, filename = None, fp = None): - if fp is not None: - try: - fileno = fp.fileno() - length = os.path.getsize(fp.name) - import mmap - except: - # read whole file into memory - buf = fp.read() - pos = 0 - else: - # map the whole file into memory - if length: - # length must not be zero - buf = mmap.mmap(fileno, length, access = mmap.ACCESS_READ) - pos = os.lseek(fileno, 0, 1) - else: - buf = '' - pos = 0 - - if filename is None: - try: - filename = fp.name - except AttributeError: - filename = None - - self.buf = buf - self.pos = pos - self.line = 1 - self.col = 1 - self.filename = filename - - def next(self): - while True: - # save state - pos = self.pos - line = self.line - col = self.col - - type, text, endpos = self.scanner.next(self.buf, pos) - assert pos + len(text) == endpos - self.consume(text) - type, text = self.filter(type, text) - self.pos = endpos - - if type == SKIP: - continue - elif type is None: - msg = 'unexpected char ' - if text >= ' ' and text <= '~': - msg += "'%s'" % text - else: - msg += "0x%X" % ord(text) - raise ParseError(msg, self.filename, line, col) - else: - break - return Token(type = type, text = text, line = line, col = col) - - def consume(self, text): - # update line number - pos = 0 - for mo in self.newline_re.finditer(text, pos): - self.line += 1 - self.col = 1 - pos = mo.end() - - # update column number - while True: - tabpos = text.find('\t', pos) - if tabpos == -1: - break - self.col += tabpos - pos - self.col = ((self.col - 1)//self.tabsize + 1)*self.tabsize + 1 - pos = tabpos + 1 - self.col += len(text) - pos - - -class Parser: - - def __init__(self, lexer): - self.lexer = lexer - self.lookahead = self.lexer.next() - - def match(self, type): - if self.lookahead.type != type: - raise ParseError( - msg = 'unexpected token %r' % self.lookahead.text, - filename = self.lexer.filename, - line = self.lookahead.line, - col = self.lookahead.col) - - def skip(self, type): - while self.lookahead.type != type: - self.consume() - - def consume(self): - token = self.lookahead - self.lookahead = self.lexer.next() - return token - - -ID = 0 -STR_ID = 1 -HTML_ID = 2 -EDGE_OP = 3 - -LSQUARE = 4 -RSQUARE = 5 -LCURLY = 6 -RCURLY = 7 -COMMA = 8 -COLON = 9 -SEMI = 10 -EQUAL = 11 -PLUS = 12 - -STRICT = 13 -GRAPH = 14 -DIGRAPH = 15 -NODE = 16 -EDGE = 17 -SUBGRAPH = 18 - - -class DotScanner(Scanner): - - # token regular expression table - tokens = [ - # whitespace and comments - (SKIP, - r'[ \t\f\r\n\v]+|' - r'//[^\r\n]*|' - r'/\*.*?\*/|' - r'#[^\r\n]*', - False), - - # Alphanumeric IDs - (ID, r'[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*', True), - - # Numeric IDs - (ID, r'-?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)', False), - - # String IDs - (STR_ID, r'"[^"\\]*(?:\\.[^"\\]*)*"', False), - - # HTML IDs - (HTML_ID, r'<[^<>]*(?:<[^<>]*>[^<>]*)*>', False), - - # Edge operators - (EDGE_OP, r'-[>-]', False), - ] - - # symbol table - symbols = { - '[': LSQUARE, - ']': RSQUARE, - '{': LCURLY, - '}': RCURLY, - ',': COMMA, - ':': COLON, - ';': SEMI, - '=': EQUAL, - '+': PLUS, - } - - # literal table - literals = { - 'strict': STRICT, - 'graph': GRAPH, - 'digraph': DIGRAPH, - 'node': NODE, - 'edge': EDGE, - 'subgraph': SUBGRAPH, - } - - ignorecase = True - - -class DotLexer(Lexer): - - scanner = DotScanner() - - def filter(self, type, text): - # TODO: handle charset - if type == STR_ID: - text = text[1:-1] - - # line continuations - text = text.replace('\\\r\n', '') - text = text.replace('\\\r', '') - text = text.replace('\\\n', '') - - text = text.replace('\\r', '\r') - text = text.replace('\\n', '\n') - text = text.replace('\\t', '\t') - text = text.replace('\\', '') - - type = ID - - elif type == HTML_ID: - text = text[1:-1] - type = ID - - return type, text - - -class DotParser(Parser): - - def __init__(self, lexer): - Parser.__init__(self, lexer) - self.graph_attrs = {} - self.node_attrs = {} - self.edge_attrs = {} - - def parse(self): - self.parse_graph() - self.match(EOF) - - def parse_graph(self): - if self.lookahead.type == STRICT: - self.consume() - self.skip(LCURLY) - self.consume() - while self.lookahead.type != RCURLY: - self.parse_stmt() - self.consume() - - def parse_subgraph(self): - id = None - shapes_before = set(self.shapes) - if self.lookahead.type == SUBGRAPH: - self.consume() - if self.lookahead.type == ID: - id = self.lookahead.text - self.consume() - if self.lookahead.type == LCURLY: - self.consume() - while self.lookahead.type != RCURLY: - self.parse_stmt() - self.consume() - new_shapes = set(self.shapes) - shapes_before - self.subgraph_shapes[id] = [s for s in new_shapes if not any([s in ss for ss in self.subgraph_shapes.values()])] - return id - - def parse_stmt(self): - if self.lookahead.type == GRAPH: - self.consume() - attrs = self.parse_attrs() - self.graph_attrs.update(attrs) - self.handle_graph(attrs) - elif self.lookahead.type == NODE: - self.consume() - self.node_attrs.update(self.parse_attrs()) - elif self.lookahead.type == EDGE: - self.consume() - self.edge_attrs.update(self.parse_attrs()) - elif self.lookahead.type in (SUBGRAPH, LCURLY): - self.parse_subgraph() - else: - id = self.parse_node_id() - if self.lookahead.type == EDGE_OP: - self.consume() - node_ids = [id, self.parse_node_id()] - while self.lookahead.type == EDGE_OP: - node_ids.append(self.parse_node_id()) - attrs = self.parse_attrs() - for i in range(0, len(node_ids) - 1): - self.handle_edge(node_ids[i], node_ids[i + 1], attrs) - elif self.lookahead.type == EQUAL: - self.consume() - self.parse_id() - else: - attrs = self.parse_attrs() - self.handle_node(id, attrs) - if self.lookahead.type == SEMI: - self.consume() - - def parse_attrs(self): - attrs = {} - while self.lookahead.type == LSQUARE: - self.consume() - while self.lookahead.type != RSQUARE: - name, value = self.parse_attr() - attrs[name] = value - if self.lookahead.type == COMMA: - self.consume() - self.consume() - return attrs - - def parse_attr(self): - name = self.parse_id() - if self.lookahead.type == EQUAL: - self.consume() - value = self.parse_id() - else: - value = 'true' - return name, value - - def parse_node_id(self): - node_id = self.parse_id() - if self.lookahead.type == COLON: - self.consume() - port = self.parse_id() - if self.lookahead.type == COLON: - self.consume() - compass_pt = self.parse_id() - else: - compass_pt = None - else: - port = None - compass_pt = None - # XXX: we don't really care about port and compass point values when parsing xdot - return node_id - - def parse_id(self): - self.match(ID) - id = self.lookahead.text - self.consume() - return id - - def handle_graph(self, attrs): - pass - - def handle_node(self, id, attrs): - pass - - def handle_edge(self, src_id, dst_id, attrs): - pass - - -class XDotParser(DotParser): - - def __init__(self, xdotcode): - lexer = DotLexer(buf = xdotcode) - DotParser.__init__(self, lexer) - - self.nodes = [] - self.edges = [] - self.shapes = [] - self.node_by_name = {} - self.top_graph = True - self.subgraph_shapes = {} - - def handle_graph(self, attrs): - if self.top_graph: - try: - bb = attrs['bb'] - except KeyError: - return - - if not bb: - return - - xmin, ymin, xmax, ymax = map(float, bb.split(",")) - - self.xoffset = -xmin - self.yoffset = -ymax - self.xscale = 1.0 - self.yscale = -1.0 - # FIXME: scale from points to pixels - - self.width = xmax - xmin - self.height = ymax - ymin - - self.top_graph = False - - for attr in ("_draw_", "_ldraw_", "_hdraw_", "_tdraw_", "_hldraw_", "_tldraw_"): - if attr in attrs: - parser = XDotAttrParser(self, attrs[attr]) - self.shapes.extend(parser.parse()) - - def handle_node(self, id, attrs): - try: - pos = attrs['pos'] - except KeyError: - return - #print(attrs) - - x, y = self.parse_node_pos(pos) - w = float(attrs['width'])*72 - h = float(attrs['height'])*72 - shapes = [] - for attr in ("_draw_", "_ldraw_"): - if attr in attrs: - parser = XDotAttrParser(self, attrs[attr]) - shapes.extend(parser.parse()) - url = attrs.get('URL', None) - node = Node(x, y, w, h, shapes, url) - self.node_by_name[id] = node - if shapes: - self.nodes.append(node) - - def handle_edge(self, src_id, dst_id, attrs): - try: - pos = attrs['pos'] - except KeyError: - return - - points = self.parse_edge_pos(pos) - shapes = [] - for attr in ("_draw_", "_ldraw_", "_hdraw_", "_tdraw_", "_hldraw_", "_tldraw_"): - if attr in attrs: - parser = XDotAttrParser(self, attrs[attr]) - shapes.extend(parser.parse()) - url = attrs.get('URL', None) - if shapes: - src = self.node_by_name[src_id] - dst = self.node_by_name[dst_id] - self.edges.append(Edge(src, dst, points, shapes, url)) - - def parse(self): - DotParser.parse(self) - - """ - for k,shapes in self.subgraph_shapes.iteritems(): - self.shapes += shapes - """ - - return Graph(self.width, self.height, self.shapes, self.nodes, self.edges, self.subgraph_shapes) - - def parse_node_pos(self, pos): - x, y = pos.split(",") - return self.transform(float(x), float(y)) - - def parse_edge_pos(self, pos): - points = [] - for entry in pos.split(' '): - fields = entry.split(',') - try: - x, y = fields - except ValueError: - # TODO: handle start/end points - #AB Handle data like like e,40,50 here - continue - else: - points.append(self.transform(float(x), float(y))) - return points - - def transform(self, x, y): - # XXX: this is not the right place for this code - x = (x + self.xoffset)*self.xscale - y = (y + self.yoffset)*self.yscale - return x, y - - -#-------------------------------------------------------------------------------------------------------------------------------------------------------------------- -class Animation(object): - - step = 0.03 # seconds - - def __init__(self, dot_widget): - self.dot_widget = dot_widget - self.timeout_id = None - - def start(self): - self.timeout_id = QTimer(); - #self.dot_widget.connect(self.timeout_id, SIGNAL('timeout()'), self.tick) - self.timeout_id.start(int(self.step * 1000)) - - def stop(self): - self.dot_widget.animation = NoAnimation(self.dot_widget) - if self.timeout_id is not None: - self.timeout_id.stop() - self.timeout_id = None - - def tick(self): - self.stop() - - -class NoAnimation(Animation): - - def start(self): - pass - - def stop(self): - pass - - -class LinearAnimation(Animation): - - duration = 0.6 - - def start(self): - self.started = time.time() - Animation.start(self) - - def tick(self): - t = (time.time() - self.started) / self.duration - self.animate(max(0, min(t, 1))) -# return (t < 1) #AB returning False stops the timer - if t >= 1: #AB - self.timeout_id.stop() #AB - - def animate(self, t): - pass - - -class MoveToAnimation(LinearAnimation): - - def __init__(self, dot_widget, target_x, target_y): - Animation.__init__(self, dot_widget) - self.source_x = dot_widget.x - self.source_y = dot_widget.y - self.target_x = target_x - self.target_y = target_y - - def animate(self, t): - sx, sy = self.source_x, self.source_y - tx, ty = self.target_x, self.target_y - self.dot_widget.x = tx * t + sx * (1-t) - self.dot_widget.y = ty * t + sy * (1-t) - self.dot_widget.update() - -class ZoomToAnimation(MoveToAnimation): - - def __init__(self, dot_widget, target_x, target_y): - MoveToAnimation.__init__(self, dot_widget, target_x, target_y) - self.source_zoom = dot_widget.zoom_ratio - self.target_zoom = self.source_zoom - self.extra_zoom = 0 - - middle_zoom = 0.5 * (self.source_zoom + self.target_zoom) - - distance = math.hypot(self.source_x - self.target_x, - self.source_y - self.target_y) -# rect = self.dot_widget.get_allocation() - rect = self.dot_widget.rect() -# visible = min(rect.width, rect.height) / self.dot_widget.zoom_ratio - visible = min(rect.width(), rect.height()) / self.dot_widget.zoom_ratio - visible *= 0.9 - if distance > 0: - desired_middle_zoom = visible / distance - self.extra_zoom = min(0, 4 * (desired_middle_zoom - middle_zoom)) - - def animate(self, t): - a, b, c = self.source_zoom, self.extra_zoom, self.target_zoom - self.dot_widget.zoom_ratio = c*t + b*t*(1-t) + a*(1-t) - self.dot_widget.zoom_to_fit_on_resize = False - MoveToAnimation.animate(self, t) - -#-------------------------------------------------------------------------------------------------------------------------------------------------------------------- -class DragAction(object): - - def __init__(self, dot_widget): - self.dot_widget = dot_widget - - def on_button_press(self, event): -# self.startmousex = self.prevmousex = event.x - self.startmousex = self.prevmousex = event.x() - self.startmousey = self.prevmousey = event.y() - self.start() - - def on_motion_notify(self, event): - deltax = self.prevmousex - event.x() - deltay = self.prevmousey - event.y() - self.drag(deltax, deltay) - self.prevmousex = event.x() - self.prevmousey = event.y() - - def on_button_release(self, event): - self.stopmousex = event.x() - self.stopmousey = event.y() - self.stop() - - def draw(self, cr): - pass - - def start(self): - pass - - def drag(self, deltax, deltay): - pass - - def stop(self): - pass - - def abort(self): - pass - - -class NullAction(DragAction): - - def on_motion_notify(self, event): - x, y = event.x(), event.y() - - dot_widget = self.dot_widget - item = dot_widget.get_url(x, y) - if item is None: - item = dot_widget.get_jump(x, y) - if item is not None: - dot_widget.setCursor(Qt.PointingHandCursor) - dot_widget.set_highlight(item.highlight) - else: - dot_widget.setCursor(Qt.ArrowCursor) - dot_widget.set_highlight(None) - - -class PanAction(DragAction): - - def start(self): - self.dot_widget.setCursor(Qt.ClosedHandCursor) - - def drag(self, deltax, deltay): - self.dot_widget.x += deltax / self.dot_widget.zoom_ratio - self.dot_widget.y += deltay / self.dot_widget.zoom_ratio - self.dot_widget.update() - - def stop(self): - self.dot_widget.cursor().setShape(Qt.ArrowCursor) - - abort = stop - - -class ZoomAction(DragAction): - - def drag(self, deltax, deltay): - self.dot_widget.zoom_ratio *= 1.005 ** (deltax + deltay) - self.dot_widget.zoom_to_fit_on_resize = False - self.dot_widget.update() - -def stop(self): - self.dot_widget.update() - - -class ZoomAreaAction(DragAction): - - def drag(self, deltax, deltay): - self.dot_widget.update() - - def draw(self, painter): - #TODO: implement this for qt - print "ERROR: UNIMPLEMENTED ZoomAreaAction.draw" - return - painter.save() - painter.set_source_rgba(.5, .5, 1.0, 0.25) - painter.rectangle(self.startmousex, self.startmousey, - self.prevmousex - self.startmousex, - self.prevmousey - self.startmousey) - painter.fill() - painter.set_source_rgba(.5, .5, 1.0, 1.0) - painter.set_line_width(1) - painter.rectangle(self.startmousex - .5, self.startmousey - .5, - self.prevmousex - self.startmousex + 1, - self.prevmousey - self.startmousey + 1) - painter.stroke() - painter.restore() - - def stop(self): - x1, y1 = self.dot_widget.window_to_graph(self.startmousex, - self.startmousey) - x2, y2 = self.dot_widget.window_to_graph(self.stopmousex, - self.stopmousey) - self.dot_widget.zoom_to_area(x1, y1, x2, y2) - - def abort(self): - self.dot_widget.update() -#-------------------------------------------------------------------------------------------------------------------------------------------------------------------- -class DotWidget(QWidget): -#class DotWidget(gtk.DrawingArea): - """Qt widget that draws dot graphs.""" - - filter = 'dot' - - def __init__(self, parent=None): - super(DotWidget, self).__init__(parent) - self.graph = Graph() - self.openfilename = None - -# self.set_flags(gtk.CAN_FOCUS) -# self.add_events(gtk.gdk.BUTTON_PRESS_MASK | gtk.gdk.BUTTON_RELEASE_MASK) -# self.connect("button-press-event", self.on_area_button_press) -# self.connect("button-release-event", self.on_area_button_release) -# self.add_events(gtk.gdk.POINTER_MOTION_MASK | gtk.gdk.POINTER_MOTION_HINT_MASK | gtk.gdk.BUTTON_RELEASE_MASK) -# self.connect("motion-notify-event", self.on_area_motion_notify) -# self.connect("scroll-event", self.on_area_scroll_event) -# self.connect("size-allocate", self.on_area_size_allocate) -# self.connect('key-press-event', self.on_key_press_event) - - self.x, self.y = 0.0, 0.0 - self.zoom_ratio = 1.0 - self.zoom_to_fit_on_resize = False - self.animation = NoAnimation(self) - self.drag_action = NullAction(self) - self.presstime = None - self.highlight = None - - # Callback register - self.select_cbs = [] - self.dc = None - self.ctx = None - self.items_by_url = {} - - self.setMouseTracking (True) # track all mouse events - - ZOOM_INCREMENT = 1.25 - ZOOM_TO_FIT_MARGIN = 12 - POS_INCREMENT = 100 - - ### User callbacks - def register_select_callback(self, cb): - self.select_cbs.append(cb) - - def set_filter(self, filter): - self.filter = filter - - def set_dotcode(self, dotcode, filename='',center=True): - if isinstance(dotcode, unicode): - dotcode = dotcode.encode('utf8') - p = subprocess.Popen( - [self.filter, '-Txdot'], - stdin=subprocess.PIPE, - stdout=subprocess.PIPE, - stderr=subprocess.PIPE, - shell=False, - universal_newlines=True - ) - xdotcode, error = p.communicate(dotcode) - if p.returncode != 0: - print "UNABLE TO SHELL TO DOT", error -# dialog = gtk.MessageDialog(type=gtk.MESSAGE_ERROR, -# message_format=error, -# buttons=gtk.BUTTONS_OK) -# dialog.set_title('Dot Viewer') -# dialog.run() -# dialog.destroy() - return False - try: - self.set_xdotcode(xdotcode,center) - - # Store references to all the items - self.items_by_url = {} - for item in self.graph.nodes + self.graph.edges: - if item.url is not None: - self.items_by_url[item.url] = item - - # Store references to subgraph states - self.subgraph_shapes = self.graph.subgraph_shapes - - except ParseError, ex: -# dialog = gtk.MessageDialog(type=gtk.MESSAGE_ERROR, -# message_format=str(ex), -# buttons=gtk.BUTTONS_OK) -# dialog.set_title('Dot Viewer') -# dialog.run() -# dialog.destroy() - return False - else: - self.openfilename = filename - return True - - def set_xdotcode(self, xdotcode, center=True): - #print xdotcode - parser = XDotParser(xdotcode) - self.graph = parser.parse() - self.zoom_image(self.zoom_ratio)#, center=center) - - def reload(self): - if self.openfilename is not None: - try: - fp = open(str(self.openfilename), "rb") - self.set_dotcode(fp.read(), self.openfilename) - fp.close() - except IOError: - pass - - def paintEvent (self, event=None): -# def do_expose_event(self, event): -# cr = self.window.cairo_create() - painter = QPainter (self) - painter.setRenderHint(QPainter.Antialiasing) - painter.setRenderHint(QPainter.TextAntialiasing) - painter.setRenderHint(QPainter.HighQualityAntialiasing) - - # set a clip region for the expose event -# cr.rectangle( -# event.area.x, event.area.y, -# event.area.width, event.area.height -# ) -# cr.clip() -# -# cr.set_source_rgba(1.0, 1.0, 1.0, 1.0) -# cr.paint() - - painter.setClipping(True) - painter.setClipRect(self.rect()) - painter.setBackground(QBrush(Qt.blue,Qt.SolidPattern)) - painter.save() - -# rect = self.get_allocation() - rect = self.rect() # JRB was self.rect() -# cr.translate(0.5*rect.width, 0.5*rect.height) - painter.translate(0.5*rect.width(), 0.5*rect.height()) - painter.scale(self.zoom_ratio, self.zoom_ratio) - painter.translate(-self.x, -self.y) - - self.graph.draw(painter, highlight_items=self.highlight) - painter.restore() - - self.drag_action.draw(painter) - - - def get_current_pos(self): - return self.x, self.y - -#AB This function is not used - def set_current_pos(self, x, y): - self.x = x - self.y = y - self.update() - - def set_highlight(self, items): - if self.highlight != items: - self.highlight = items - self.update() - - def zoom_image(self, zoom_ratio, center=False, pos=None): - if center: - self.x = self.graph.width/2 - self.y = self.graph.height/2 - elif pos is not None: -# rect = self.get_allocation() - rect = self.rect() - x, y = pos -# x -= 0.5*rect.width - x -= 0.5*rect.width() -# y -= 0.5*rect.height - y -= 0.5*rect.height() - self.x += x / self.zoom_ratio - x / zoom_ratio - self.y += y / self.zoom_ratio - y / zoom_ratio - self.zoom_ratio = zoom_ratio - self.zoom_to_fit_on_resize = False - self.update() - - def zoom_to_area(self, x1, y1, x2, y2): -# rect = self.get_allocation() - rect = self.rect() - width = abs(x1 - x2) - height = abs(y1 - y2) - self.zoom_ratio = min( - float(rect.width())/float(width), - float(rect.height())/float(height) - ) - self.zoom_to_fit_on_resize = False - self.x = (x1 + x2) / 2 - self.y = (y1 + y2) / 2 - self.update() - - def zoom_to_fit(self): -# rect = self.get_allocation() - rect = self.rect() -# rect.x += self.ZOOM_TO_FIT_MARGIN - rect.setX (rect.x() + self.ZOOM_TO_FIT_MARGIN) -# rect.y += self.ZOOM_TO_FIT_MARGIN - rect.setY (rect.y() + self.ZOOM_TO_FIT_MARGIN) -# rect.width -= 2 * self.ZOOM_TO_FIT_MARGIN - rect.setWidth(rect.width() - 2 * self.ZOOM_TO_FIT_MARGIN) -# rect.height -= 2 * self.ZOOM_TO_FIT_MARGIN - rect.setHeight(rect.height() - 2 * self.ZOOM_TO_FIT_MARGIN) - zoom_ratio = min( -# float(rect.width)/float(self.graph.width), - float(rect.width())/float(self.graph.width), -# float(rect.height)/float(self.graph.height) - float(rect.height())/float(self.graph.height) - ) - self.zoom_image(zoom_ratio, center=True) - self.zoom_to_fit_on_resize = True - - def on_zoom_in(self): -# def on_zoom_in(self, action): - self.zoom_image(self.zoom_ratio * self.ZOOM_INCREMENT) - - def on_zoom_out(self): -# def on_zoom_out(self, action): - self.zoom_image(self.zoom_ratio / self.ZOOM_INCREMENT) - - def on_zoom_fit(self): -# def on_zoom_fit(self, action): - self.zoom_to_fit() - - def on_zoom_100(self): -# def on_zoom_100(self, action): - self.zoom_image(1.0) - - def keyPressEvent(self, event): - self.animation.stop() - self.drag_action.abort() - if event.key() == Qt.Key_Left: - self.x -= self.POS_INCREMENT/self.zoom_ratio - self.update() - elif event.key() == Qt.Key_Right: - self.x += self.POS_INCREMENT/self.zoom_ratio - self.update() - elif event.key() == Qt.Key_Up: - self.y -= self.POS_INCREMENT/self.zoom_ratio - self.update() - elif event.key() == Qt.Key_Down: - self.y += self.POS_INCREMENT/self.zoom_ratio - self.update() - elif event.key() == Qt.Key_PageUp: - self.zoom_image(self.zoom_ratio * self.ZOOM_INCREMENT) - self.update() - elif event.key() == Qt.Key_PageDown: - self.zoom_image(self.zoom_ratio / self.ZOOM_INCREMENT) - self.update() - elif event.key() == Qt.Key_PageUp: - self.drag_action.abort() - self.drag_action = NullAction(self) - elif event.key() == Qt.Key_R: - self.reload() - elif event.key() == Qt.Key_F: - self.zoom_to_fit() - event.accept() - - def get_drag_action(self, event): - modifiers = event.modifiers() - if event.button() in (Qt.LeftButton, Qt.MidButton): - if modifiers & Qt.ControlModifier: - return ZoomAction - elif modifiers & Qt.ShiftModifier: - return ZoomAreaAction - else: - return PanAction - return NullAction - - def mousePressEvent(self, event): - self.animation.stop() - self.drag_action.abort() - - for cb in self.select_cbs: - cb(event) - - action_type = self.get_drag_action(event) - self.drag_action = action_type(self) - self.drag_action.on_button_press(event) - - self.presstime = time.time() - self.pressx = event.x() - self.pressy = event.y() - event.accept() - - def is_click(self, event, click_fuzz=4, click_timeout=1.0): - if self.presstime is None: - # got a button release without seeing the press? - return False - # XXX instead of doing this complicated logic, shouldn't we listen - # for gtk's clicked event instead? - deltax = self.pressx - event.x() - deltay = self.pressy - event.y() - return (time.time() < self.presstime + click_timeout - and math.hypot(deltax, deltay) < click_fuzz) - - def mouseReleaseEvent(self, event): - self.drag_action.on_button_release(event) - self.drag_action = NullAction(self) - if event.button() == Qt.LeftButton and self.is_click(event): - x, y = event.x(), event.y() - url = self.get_url(x, y) - #print(url) - if url is not None: - #self.emit(SIGNAL("clicked"), unicode(url.url), event) - pass - else: - #self.emit(SIGNAL("clicked"), 'none', event) - jump = self.get_jump(x, y) - if jump is not None: - self.animate_to(jump.x, jump.y) - - event.accept() - return - if event.button() == Qt.RightButton and self.is_click(event): - x, y = event.x(), event.y() - url = self.get_url(x, y) - if url is not None: - #self.emit(SIGNAL("right_clicked"), unicode(url.url), event) - pass - else: - #self.emit(SIGNAL("right_clicked"), 'none', event) - pass - jump = self.get_jump(x, y) - if jump is not None: - self.animate_to(jump.x, jump.y) - - if event.button() in (Qt.LeftButton, Qt.MidButton): - event.accept() - return - - def on_area_scroll_event(self, area, event): - return False - - def wheelEvent(self, event): - if event.angleDelta().y() > 0: - self.zoom_image(self.zoom_ratio * self.ZOOM_INCREMENT, - pos=(event.x(), event.y())) - if event.angleDelta().y() < 0: - self.zoom_image(self.zoom_ratio / self.ZOOM_INCREMENT, - pos=(event.x(), event.y())) - - def mouseMoveEvent(self, event): - self.drag_action.on_motion_notify(event) - self.setFocus() - for cb in self.select_cbs: - cb(event) - - def on_area_size_allocate(self, area, allocation): - if self.zoom_to_fit_on_resize: - self.zoom_to_fit() - - def animate_to(self, x, y): - self.animation = ZoomToAnimation(self, x, y) - self.animation.start() - - def window_to_graph(self, x, y): -# rect = self.get_allocation() - rect = self.rect() - x -= 0.5*rect.width() - y -= 0.5*rect.height() - x /= self.zoom_ratio - y /= self.zoom_ratio - x += self.x - y += self.y - return x, y - - def get_url(self, x, y): - x, y = self.window_to_graph(x, y) - return self.graph.get_url(x, y) - - def get_jump(self, x, y): - x, y = self.window_to_graph(x, y) - return self.graph.get_jump(x, y) - - -#-------------------------------------------------------------------------------------------------------------------------------------------------------------------- -#class DotWindow(gtk.Window): -class DotWindow(QMainWindow): - - def __init__(self): - super(DotWindow, self).__init__(None) - self.graph = Graph() - self.setWindowTitle(QApplication.applicationName()) - self.widget = DotWidget() - self.widget.setContextMenuPolicy(Qt.ActionsContextMenu) - self.setCentralWidget(self.widget) - - palette = QPalette () - palette.setColor(QPalette.Background, Qt.white) - self.setPalette(palette) - - self.filename = None - - file_open_action = self.create_action("&Open...", self.on_open, - QKeySequence.Open, "fileopen", "Open an existing dot file") - file_reload_action = self.create_action("&Refresh", self.on_reload, - QKeySequence.Refresh, "view-refresh", "Reload opened dot file") - zoom_in_action = self.create_action("Zoom In", self.widget.on_zoom_in, - QKeySequence.ZoomIn, "zoom-in", "Zoom in") - zoom_out_action = self.create_action("Zoom Out", self.widget.on_zoom_out, - QKeySequence.ZoomIn, "zoom-out", "Zoom Out") - zoom_fit_action = self.create_action("Zoom Fit", self.widget.on_zoom_fit, - None, "zoom-fit-best", "Zoom Fit") - zoom_100_action = self.create_action("Zoom 100%", self.widget.on_zoom_100, - None, "zoom-original", "Zoom 100%") - - self.file_menu = self.menuBar().addMenu("&File") - self.file_menu_actions = (file_open_action, file_reload_action) - self.connect(self.file_menu, SIGNAL("aboutToShow()"), self.update_file_menu) - - file_toolbar = self.addToolBar("File") - file_toolbar.setObjectName("FileToolBar") - self.add_actions(file_toolbar, (file_open_action, file_reload_action)) - - fileToolbar = self.addToolBar("Zoom") - fileToolbar.setObjectName("ZoomToolBar") - self.add_actions(fileToolbar, (zoom_in_action, zoom_out_action, zoom_fit_action, zoom_100_action)) - - settings = QSettings() - self.recent_files = settings.value("RecentFiles").toStringList() - size = settings.value("MainWindow/Size", QVariant(QSize(512, 512))).toSize() - self.resize(size) - position = settings.value("MainWindow/Position", QVariant(QPoint(0, 0))).toPoint() - self.move(position) - - self.restoreState(settings.value("MainWindow/State").toByteArray()) - self.update_file_menu() - - self.show() - - def create_action(self, text, slot=None, shortcut=None, icon=None, - tip=None, checkable=False, signal="triggered()"): - action = QAction(text, self) - if icon is not None: - action.setIcon(QIcon.fromTheme(icon)) - if shortcut is not None: - action.setShortcut(shortcut) - if tip is not None: - action.setToolTip(tip) - action.setStatusTip(tip) - if slot is not None: - self.connect(action, SIGNAL(signal), slot) - if checkable: - action.setCheckable(True) - return action - - def add_actions(self, target, actions): - for action in actions: - if action is None: - target.addSeparator() - else: - target.addAction(action) - - def update_file(self, filename): - import os - if not hasattr(self, "last_mtime"): - self.last_mtime = None - - current_mtime = os.stat(filename).st_mtime - if current_mtime != self.last_mtime: - self.last_mtime = current_mtime - self.open_file(filename) - - return True - - def set_filter(self, filter): - self.widget.set_filter(filter) - - def set_dotcode(self, dotcode, filename=''): - if self.widget.set_dotcode(dotcode, filename): - self.setWindowTitle(os.path.basename(filename) + ' - ' + QApplication.applicationName()) - self.widget.zoom_to_fit() - - def set_xdotcode(self, xdotcode, filename=''): - if self.widget.set_xdotcode(xdotcode): - self.setWindowTitle(os.path.basename(filename) + ' - ' + QApplication.applicationName()) - self.widget.zoom_to_fit() - - def open_file(self, filename=None): - if filename is None: - action = self.sender() - if isinstance(action, QAction): - filename = unicode(action.data().toString()) - else: - return - try: - fp = file(filename, 'rt') - self.set_dotcode(fp.read(), filename) - fp.close() - self.add_recent_file(filename) - except IOError, ex: - pass - - def on_open(self): - dir = os.path.dirname(self.filename) \ - if self.filename is not None else "." - formats = ["*.dot"] - filename = unicode(QFileDialog.getOpenFileName(self, - "Open dot File", dir, - "Dot files (%s)" % " ".join(formats))) - if filename: - self.open_file(filename) - - def on_reload(self): - self.widget.reload() - - def update_file_menu(self): - self.file_menu.clear() - self.add_actions(self.file_menu, self.file_menu_actions[:-1]) - current = QString(self.filename) \ - if self.filename is not None else None - recent_files = [] - for fname in self.recent_files: - if fname != current and QFile.exists(fname): - recent_files.append(fname) - if recent_files: - self.file_menu.addSeparator() - for i, fname in enumerate(recent_files): - action = QAction(QIcon(":/icon.png"), "&%d %s" % (i + 1, QFileInfo(fname).fileName()), self) - action.setData(QVariant(fname)) - self.connect(action, SIGNAL("triggered()"), self.open_file) - self.file_menu.addAction(action) - self.file_menu.addSeparator() - self.file_menu.addAction(self.file_menu_actions[-1]) - - def add_recent_file(self, filename): - if filename is None: - return - if not self.recent_files.contains(filename): - self.recent_files.prepend(QString(filename)) - while self.recent_files.count() > 14: - self.recent_files.takeLast() - -def closeEvent(self, event): - settings = QSettings() - filename = QVariant(QString(self.filename)) if self.filename is not None else QVariant() - settings.setValue("LastFile", filename) - recent_files = QVariant(self.recent_files) if self.recent_files else QVariant() - settings.setValue("RecentFiles", recent_files) - settings.setValue("MainWindow/Size", QVariant(self.size())) - - #AB It looks like PyQt 4.7.4 has a bug that results in both self.pos() and self.geometry() returning the same values - # see http://doc.qt.nokia.com/latest/application-windows.html#window-geometry for explanation of why they should be different - # The results is a small (5,24) shift of window on consequent start from previous position - #print (self.pos()) - #print (self.geometry()) - settings.setValue("MainWindow/Position", QVariant(self.pos())) - #settings.setValue("MainWindow/Geometry", QVariant(self.saveGeometry())) - settings.setValue("MainWindow/State", QVariant(self.saveState())) - -#-------------------------------------------------------------------------------------------------------------------------------------------------------------------- -def main(): - import optparse - - parser = optparse.OptionParser(usage='\n\t%prog [file]', version='%%prog %s' % __version__) - # This program can shell to different Graphviz filter processes specified by -f option - parser.add_option( - '-f', '--filter', - type='choice', choices=('dot', 'neato', 'twopi', 'circo', 'fdp'), - dest='filter', default='dot', - help='graphviz filter: dot, neato, twopi, circo, or fdp [default: %default]') - - (options, args) = parser.parse_args(sys.argv[1:]) - if len(args) > 1: - parser.error('incorrect number of arguments') - - app = QApplication(sys.argv) - app.setOrganizationName("RobotNV") - app.setOrganizationDomain("robotNV.com") - app.setApplicationName("Dot Viewer") - app.setWindowIcon(QIcon(":/icon.png")) - - win = DotWindow() - win.show() -# win.connect('destroy', gtk.main_quit) -# win.set_filter(options.filter) - if len(args) >= 1: - if args[0] == '-': - win.set_dotcode(sys.stdin.read()) - else: - win.open_file(args[0]) -# gobject.timeout_add(1000, win.update_file, args[0]) -# gtk.main() - sys.exit(app.exec_()) - - - - -# Apache-Style Software License for ColorBrewer software and ColorBrewer Color -# Schemes, Version 1.1 -# -# Copyright (c) 2002 Cynthia Brewer, Mark Harrower, and The Pennsylvania State -# University. All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# 1. Redistributions as source code must retain the above copyright notice, -# this list of conditions and the following disclaimer. -# -# 2. The end-user documentation included with the redistribution, if any, -# must include the following acknowledgment: -# -# This product includes color specifications and designs developed by -# Cynthia Brewer (http://colorbrewer.org/). -# -# Alternately, this acknowledgment may appear in the software itself, if and -# wherever such third-party acknowledgments normally appear. -# -# 3. The name "ColorBrewer" must not be used to endorse or promote products -# derived from this software without prior written permission. For written -# permission, please contact Cynthia Brewer at cbrewer@psu.edu. -# -# 4. Products derived from this software may not be called "ColorBrewer", -# nor may "ColorBrewer" appear in their name, without prior written -# permission of Cynthia Brewer. -# -# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, -# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL CYNTHIA -# BREWER, MARK HARROWER, OR THE PENNSYLVANIA STATE UNIVERSITY BE LIABLE FOR ANY -# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -brewer_colors = { - 'accent3': [(127, 201, 127), (190, 174, 212), (253, 192, 134)], - 'accent4': [(127, 201, 127), (190, 174, 212), (253, 192, 134), (255, 255, 153)], - 'accent5': [(127, 201, 127), (190, 174, 212), (253, 192, 134), (255, 255, 153), (56, 108, 176)], - 'accent6': [(127, 201, 127), (190, 174, 212), (253, 192, 134), (255, 255, 153), (56, 108, 176), (240, 2, 127)], - 'accent7': [(127, 201, 127), (190, 174, 212), (253, 192, 134), (255, 255, 153), (56, 108, 176), (240, 2, 127), (191, 91, 23)], - 'accent8': [(127, 201, 127), (190, 174, 212), (253, 192, 134), (255, 255, 153), (56, 108, 176), (240, 2, 127), (191, 91, 23), (102, 102, 102)], - 'blues3': [(222, 235, 247), (158, 202, 225), (49, 130, 189)], - 'blues4': [(239, 243, 255), (189, 215, 231), (107, 174, 214), (33, 113, 181)], - 'blues5': [(239, 243, 255), (189, 215, 231), (107, 174, 214), (49, 130, 189), (8, 81, 156)], - 'blues6': [(239, 243, 255), (198, 219, 239), (158, 202, 225), (107, 174, 214), (49, 130, 189), (8, 81, 156)], - 'blues7': [(239, 243, 255), (198, 219, 239), (158, 202, 225), (107, 174, 214), (66, 146, 198), (33, 113, 181), (8, 69, 148)], - 'blues8': [(247, 251, 255), (222, 235, 247), (198, 219, 239), (158, 202, 225), (107, 174, 214), (66, 146, 198), (33, 113, 181), (8, 69, 148)], - 'blues9': [(247, 251, 255), (222, 235, 247), (198, 219, 239), (158, 202, 225), (107, 174, 214), (66, 146, 198), (33, 113, 181), (8, 81, 156), (8, 48, 107)], - 'brbg10': [(84, 48, 5), (0, 60, 48), (140, 81, 10), (191, 129, 45), (223, 194, 125), (246, 232, 195), (199, 234, 229), (128, 205, 193), (53, 151, 143), (1, 102, 94)], - 'brbg11': [(84, 48, 5), (1, 102, 94), (0, 60, 48), (140, 81, 10), (191, 129, 45), (223, 194, 125), (246, 232, 195), (245, 245, 245), (199, 234, 229), (128, 205, 193), (53, 151, 143)], - 'brbg3': [(216, 179, 101), (245, 245, 245), (90, 180, 172)], - 'brbg4': [(166, 97, 26), (223, 194, 125), (128, 205, 193), (1, 133, 113)], - 'brbg5': [(166, 97, 26), (223, 194, 125), (245, 245, 245), (128, 205, 193), (1, 133, 113)], - 'brbg6': [(140, 81, 10), (216, 179, 101), (246, 232, 195), (199, 234, 229), (90, 180, 172), (1, 102, 94)], - 'brbg7': [(140, 81, 10), (216, 179, 101), (246, 232, 195), (245, 245, 245), (199, 234, 229), (90, 180, 172), (1, 102, 94)], - 'brbg8': [(140, 81, 10), (191, 129, 45), (223, 194, 125), (246, 232, 195), (199, 234, 229), (128, 205, 193), (53, 151, 143), (1, 102, 94)], - 'brbg9': [(140, 81, 10), (191, 129, 45), (223, 194, 125), (246, 232, 195), (245, 245, 245), (199, 234, 229), (128, 205, 193), (53, 151, 143), (1, 102, 94)], - 'bugn3': [(229, 245, 249), (153, 216, 201), (44, 162, 95)], - 'bugn4': [(237, 248, 251), (178, 226, 226), (102, 194, 164), (35, 139, 69)], - 'bugn5': [(237, 248, 251), (178, 226, 226), (102, 194, 164), (44, 162, 95), (0, 109, 44)], - 'bugn6': [(237, 248, 251), (204, 236, 230), (153, 216, 201), (102, 194, 164), (44, 162, 95), (0, 109, 44)], - 'bugn7': [(237, 248, 251), (204, 236, 230), (153, 216, 201), (102, 194, 164), (65, 174, 118), (35, 139, 69), (0, 88, 36)], - 'bugn8': [(247, 252, 253), (229, 245, 249), (204, 236, 230), (153, 216, 201), (102, 194, 164), (65, 174, 118), (35, 139, 69), (0, 88, 36)], - 'bugn9': [(247, 252, 253), (229, 245, 249), (204, 236, 230), (153, 216, 201), (102, 194, 164), (65, 174, 118), (35, 139, 69), (0, 109, 44), (0, 68, 27)], - 'bupu3': [(224, 236, 244), (158, 188, 218), (136, 86, 167)], - 'bupu4': [(237, 248, 251), (179, 205, 227), (140, 150, 198), (136, 65, 157)], - 'bupu5': [(237, 248, 251), (179, 205, 227), (140, 150, 198), (136, 86, 167), (129, 15, 124)], - 'bupu6': [(237, 248, 251), (191, 211, 230), (158, 188, 218), (140, 150, 198), (136, 86, 167), (129, 15, 124)], - 'bupu7': [(237, 248, 251), (191, 211, 230), (158, 188, 218), (140, 150, 198), (140, 107, 177), (136, 65, 157), (110, 1, 107)], - 'bupu8': [(247, 252, 253), (224, 236, 244), (191, 211, 230), (158, 188, 218), (140, 150, 198), (140, 107, 177), (136, 65, 157), (110, 1, 107)], - 'bupu9': [(247, 252, 253), (224, 236, 244), (191, 211, 230), (158, 188, 218), (140, 150, 198), (140, 107, 177), (136, 65, 157), (129, 15, 124), (77, 0, 75)], - 'dark23': [(27, 158, 119), (217, 95, 2), (117, 112, 179)], - 'dark24': [(27, 158, 119), (217, 95, 2), (117, 112, 179), (231, 41, 138)], - 'dark25': [(27, 158, 119), (217, 95, 2), (117, 112, 179), (231, 41, 138), (102, 166, 30)], - 'dark26': [(27, 158, 119), (217, 95, 2), (117, 112, 179), (231, 41, 138), (102, 166, 30), (230, 171, 2)], - 'dark27': [(27, 158, 119), (217, 95, 2), (117, 112, 179), (231, 41, 138), (102, 166, 30), (230, 171, 2), (166, 118, 29)], - 'dark28': [(27, 158, 119), (217, 95, 2), (117, 112, 179), (231, 41, 138), (102, 166, 30), (230, 171, 2), (166, 118, 29), (102, 102, 102)], - 'gnbu3': [(224, 243, 219), (168, 221, 181), (67, 162, 202)], - 'gnbu4': [(240, 249, 232), (186, 228, 188), (123, 204, 196), (43, 140, 190)], - 'gnbu5': [(240, 249, 232), (186, 228, 188), (123, 204, 196), (67, 162, 202), (8, 104, 172)], - 'gnbu6': [(240, 249, 232), (204, 235, 197), (168, 221, 181), (123, 204, 196), (67, 162, 202), (8, 104, 172)], - 'gnbu7': [(240, 249, 232), (204, 235, 197), (168, 221, 181), (123, 204, 196), (78, 179, 211), (43, 140, 190), (8, 88, 158)], - 'gnbu8': [(247, 252, 240), (224, 243, 219), (204, 235, 197), (168, 221, 181), (123, 204, 196), (78, 179, 211), (43, 140, 190), (8, 88, 158)], - 'gnbu9': [(247, 252, 240), (224, 243, 219), (204, 235, 197), (168, 221, 181), (123, 204, 196), (78, 179, 211), (43, 140, 190), (8, 104, 172), (8, 64, 129)], - 'greens3': [(229, 245, 224), (161, 217, 155), (49, 163, 84)], - 'greens4': [(237, 248, 233), (186, 228, 179), (116, 196, 118), (35, 139, 69)], - 'greens5': [(237, 248, 233), (186, 228, 179), (116, 196, 118), (49, 163, 84), (0, 109, 44)], - 'greens6': [(237, 248, 233), (199, 233, 192), (161, 217, 155), (116, 196, 118), (49, 163, 84), (0, 109, 44)], - 'greens7': [(237, 248, 233), (199, 233, 192), (161, 217, 155), (116, 196, 118), (65, 171, 93), (35, 139, 69), (0, 90, 50)], - 'greens8': [(247, 252, 245), (229, 245, 224), (199, 233, 192), (161, 217, 155), (116, 196, 118), (65, 171, 93), (35, 139, 69), (0, 90, 50)], - 'greens9': [(247, 252, 245), (229, 245, 224), (199, 233, 192), (161, 217, 155), (116, 196, 118), (65, 171, 93), (35, 139, 69), (0, 109, 44), (0, 68, 27)], - 'greys3': [(240, 240, 240), (189, 189, 189), (99, 99, 99)], - 'greys4': [(247, 247, 247), (204, 204, 204), (150, 150, 150), (82, 82, 82)], - 'greys5': [(247, 247, 247), (204, 204, 204), (150, 150, 150), (99, 99, 99), (37, 37, 37)], - 'greys6': [(247, 247, 247), (217, 217, 217), (189, 189, 189), (150, 150, 150), (99, 99, 99), (37, 37, 37)], - 'greys7': [(247, 247, 247), (217, 217, 217), (189, 189, 189), (150, 150, 150), (115, 115, 115), (82, 82, 82), (37, 37, 37)], - 'greys8': [(255, 255, 255), (240, 240, 240), (217, 217, 217), (189, 189, 189), (150, 150, 150), (115, 115, 115), (82, 82, 82), (37, 37, 37)], - 'greys9': [(255, 255, 255), (240, 240, 240), (217, 217, 217), (189, 189, 189), (150, 150, 150), (115, 115, 115), (82, 82, 82), (37, 37, 37), (0, 0, 0)], - 'oranges3': [(254, 230, 206), (253, 174, 107), (230, 85, 13)], - 'oranges4': [(254, 237, 222), (253, 190, 133), (253, 141, 60), (217, 71, 1)], - 'oranges5': [(254, 237, 222), (253, 190, 133), (253, 141, 60), (230, 85, 13), (166, 54, 3)], - 'oranges6': [(254, 237, 222), (253, 208, 162), (253, 174, 107), (253, 141, 60), (230, 85, 13), (166, 54, 3)], - 'oranges7': [(254, 237, 222), (253, 208, 162), (253, 174, 107), (253, 141, 60), (241, 105, 19), (217, 72, 1), (140, 45, 4)], - 'oranges8': [(255, 245, 235), (254, 230, 206), (253, 208, 162), (253, 174, 107), (253, 141, 60), (241, 105, 19), (217, 72, 1), (140, 45, 4)], - 'oranges9': [(255, 245, 235), (254, 230, 206), (253, 208, 162), (253, 174, 107), (253, 141, 60), (241, 105, 19), (217, 72, 1), (166, 54, 3), (127, 39, 4)], - 'orrd3': [(254, 232, 200), (253, 187, 132), (227, 74, 51)], - 'orrd4': [(254, 240, 217), (253, 204, 138), (252, 141, 89), (215, 48, 31)], - 'orrd5': [(254, 240, 217), (253, 204, 138), (252, 141, 89), (227, 74, 51), (179, 0, 0)], - 'orrd6': [(254, 240, 217), (253, 212, 158), (253, 187, 132), (252, 141, 89), (227, 74, 51), (179, 0, 0)], - 'orrd7': [(254, 240, 217), (253, 212, 158), (253, 187, 132), (252, 141, 89), (239, 101, 72), (215, 48, 31), (153, 0, 0)], - 'orrd8': [(255, 247, 236), (254, 232, 200), (253, 212, 158), (253, 187, 132), (252, 141, 89), (239, 101, 72), (215, 48, 31), (153, 0, 0)], - 'orrd9': [(255, 247, 236), (254, 232, 200), (253, 212, 158), (253, 187, 132), (252, 141, 89), (239, 101, 72), (215, 48, 31), (179, 0, 0), (127, 0, 0)], - 'paired10': [(166, 206, 227), (106, 61, 154), (31, 120, 180), (178, 223, 138), (51, 160, 44), (251, 154, 153), (227, 26, 28), (253, 191, 111), (255, 127, 0), (202, 178, 214)], - 'paired11': [(166, 206, 227), (106, 61, 154), (255, 255, 153), (31, 120, 180), (178, 223, 138), (51, 160, 44), (251, 154, 153), (227, 26, 28), (253, 191, 111), (255, 127, 0), (202, 178, 214)], - 'paired12': [(166, 206, 227), (106, 61, 154), (255, 255, 153), (177, 89, 40), (31, 120, 180), (178, 223, 138), (51, 160, 44), (251, 154, 153), (227, 26, 28), (253, 191, 111), (255, 127, 0), (202, 178, 214)], - 'paired3': [(166, 206, 227), (31, 120, 180), (178, 223, 138)], - 'paired4': [(166, 206, 227), (31, 120, 180), (178, 223, 138), (51, 160, 44)], - 'paired5': [(166, 206, 227), (31, 120, 180), (178, 223, 138), (51, 160, 44), (251, 154, 153)], - 'paired6': [(166, 206, 227), (31, 120, 180), (178, 223, 138), (51, 160, 44), (251, 154, 153), (227, 26, 28)], - 'paired7': [(166, 206, 227), (31, 120, 180), (178, 223, 138), (51, 160, 44), (251, 154, 153), (227, 26, 28), (253, 191, 111)], - 'paired8': [(166, 206, 227), (31, 120, 180), (178, 223, 138), (51, 160, 44), (251, 154, 153), (227, 26, 28), (253, 191, 111), (255, 127, 0)], - 'paired9': [(166, 206, 227), (31, 120, 180), (178, 223, 138), (51, 160, 44), (251, 154, 153), (227, 26, 28), (253, 191, 111), (255, 127, 0), (202, 178, 214)], - 'pastel13': [(251, 180, 174), (179, 205, 227), (204, 235, 197)], - 'pastel14': [(251, 180, 174), (179, 205, 227), (204, 235, 197), (222, 203, 228)], - 'pastel15': [(251, 180, 174), (179, 205, 227), (204, 235, 197), (222, 203, 228), (254, 217, 166)], - 'pastel16': [(251, 180, 174), (179, 205, 227), (204, 235, 197), (222, 203, 228), (254, 217, 166), (255, 255, 204)], - 'pastel17': [(251, 180, 174), (179, 205, 227), (204, 235, 197), (222, 203, 228), (254, 217, 166), (255, 255, 204), (229, 216, 189)], - 'pastel18': [(251, 180, 174), (179, 205, 227), (204, 235, 197), (222, 203, 228), (254, 217, 166), (255, 255, 204), (229, 216, 189), (253, 218, 236)], - 'pastel19': [(251, 180, 174), (179, 205, 227), (204, 235, 197), (222, 203, 228), (254, 217, 166), (255, 255, 204), (229, 216, 189), (253, 218, 236), (242, 242, 242)], - 'pastel23': [(179, 226, 205), (253, 205, 172), (203, 213, 232)], - 'pastel24': [(179, 226, 205), (253, 205, 172), (203, 213, 232), (244, 202, 228)], - 'pastel25': [(179, 226, 205), (253, 205, 172), (203, 213, 232), (244, 202, 228), (230, 245, 201)], - 'pastel26': [(179, 226, 205), (253, 205, 172), (203, 213, 232), (244, 202, 228), (230, 245, 201), (255, 242, 174)], - 'pastel27': [(179, 226, 205), (253, 205, 172), (203, 213, 232), (244, 202, 228), (230, 245, 201), (255, 242, 174), (241, 226, 204)], - 'pastel28': [(179, 226, 205), (253, 205, 172), (203, 213, 232), (244, 202, 228), (230, 245, 201), (255, 242, 174), (241, 226, 204), (204, 204, 204)], - 'piyg10': [(142, 1, 82), (39, 100, 25), (197, 27, 125), (222, 119, 174), (241, 182, 218), (253, 224, 239), (230, 245, 208), (184, 225, 134), (127, 188, 65), (77, 146, 33)], - 'piyg11': [(142, 1, 82), (77, 146, 33), (39, 100, 25), (197, 27, 125), (222, 119, 174), (241, 182, 218), (253, 224, 239), (247, 247, 247), (230, 245, 208), (184, 225, 134), (127, 188, 65)], - 'piyg3': [(233, 163, 201), (247, 247, 247), (161, 215, 106)], - 'piyg4': [(208, 28, 139), (241, 182, 218), (184, 225, 134), (77, 172, 38)], - 'piyg5': [(208, 28, 139), (241, 182, 218), (247, 247, 247), (184, 225, 134), (77, 172, 38)], - 'piyg6': [(197, 27, 125), (233, 163, 201), (253, 224, 239), (230, 245, 208), (161, 215, 106), (77, 146, 33)], - 'piyg7': [(197, 27, 125), (233, 163, 201), (253, 224, 239), (247, 247, 247), (230, 245, 208), (161, 215, 106), (77, 146, 33)], - 'piyg8': [(197, 27, 125), (222, 119, 174), (241, 182, 218), (253, 224, 239), (230, 245, 208), (184, 225, 134), (127, 188, 65), (77, 146, 33)], - 'piyg9': [(197, 27, 125), (222, 119, 174), (241, 182, 218), (253, 224, 239), (247, 247, 247), (230, 245, 208), (184, 225, 134), (127, 188, 65), (77, 146, 33)], - 'prgn10': [(64, 0, 75), (0, 68, 27), (118, 42, 131), (153, 112, 171), (194, 165, 207), (231, 212, 232), (217, 240, 211), (166, 219, 160), (90, 174, 97), (27, 120, 55)], - 'prgn11': [(64, 0, 75), (27, 120, 55), (0, 68, 27), (118, 42, 131), (153, 112, 171), (194, 165, 207), (231, 212, 232), (247, 247, 247), (217, 240, 211), (166, 219, 160), (90, 174, 97)], - 'prgn3': [(175, 141, 195), (247, 247, 247), (127, 191, 123)], - 'prgn4': [(123, 50, 148), (194, 165, 207), (166, 219, 160), (0, 136, 55)], - 'prgn5': [(123, 50, 148), (194, 165, 207), (247, 247, 247), (166, 219, 160), (0, 136, 55)], - 'prgn6': [(118, 42, 131), (175, 141, 195), (231, 212, 232), (217, 240, 211), (127, 191, 123), (27, 120, 55)], - 'prgn7': [(118, 42, 131), (175, 141, 195), (231, 212, 232), (247, 247, 247), (217, 240, 211), (127, 191, 123), (27, 120, 55)], - 'prgn8': [(118, 42, 131), (153, 112, 171), (194, 165, 207), (231, 212, 232), (217, 240, 211), (166, 219, 160), (90, 174, 97), (27, 120, 55)], - 'prgn9': [(118, 42, 131), (153, 112, 171), (194, 165, 207), (231, 212, 232), (247, 247, 247), (217, 240, 211), (166, 219, 160), (90, 174, 97), (27, 120, 55)], - 'pubu3': [(236, 231, 242), (166, 189, 219), (43, 140, 190)], - 'pubu4': [(241, 238, 246), (189, 201, 225), (116, 169, 207), (5, 112, 176)], - 'pubu5': [(241, 238, 246), (189, 201, 225), (116, 169, 207), (43, 140, 190), (4, 90, 141)], - 'pubu6': [(241, 238, 246), (208, 209, 230), (166, 189, 219), (116, 169, 207), (43, 140, 190), (4, 90, 141)], - 'pubu7': [(241, 238, 246), (208, 209, 230), (166, 189, 219), (116, 169, 207), (54, 144, 192), (5, 112, 176), (3, 78, 123)], - 'pubu8': [(255, 247, 251), (236, 231, 242), (208, 209, 230), (166, 189, 219), (116, 169, 207), (54, 144, 192), (5, 112, 176), (3, 78, 123)], - 'pubu9': [(255, 247, 251), (236, 231, 242), (208, 209, 230), (166, 189, 219), (116, 169, 207), (54, 144, 192), (5, 112, 176), (4, 90, 141), (2, 56, 88)], - 'pubugn3': [(236, 226, 240), (166, 189, 219), (28, 144, 153)], - 'pubugn4': [(246, 239, 247), (189, 201, 225), (103, 169, 207), (2, 129, 138)], - 'pubugn5': [(246, 239, 247), (189, 201, 225), (103, 169, 207), (28, 144, 153), (1, 108, 89)], - 'pubugn6': [(246, 239, 247), (208, 209, 230), (166, 189, 219), (103, 169, 207), (28, 144, 153), (1, 108, 89)], - 'pubugn7': [(246, 239, 247), (208, 209, 230), (166, 189, 219), (103, 169, 207), (54, 144, 192), (2, 129, 138), (1, 100, 80)], - 'pubugn8': [(255, 247, 251), (236, 226, 240), (208, 209, 230), (166, 189, 219), (103, 169, 207), (54, 144, 192), (2, 129, 138), (1, 100, 80)], - 'pubugn9': [(255, 247, 251), (236, 226, 240), (208, 209, 230), (166, 189, 219), (103, 169, 207), (54, 144, 192), (2, 129, 138), (1, 108, 89), (1, 70, 54)], - 'puor10': [(127, 59, 8), (45, 0, 75), (179, 88, 6), (224, 130, 20), (253, 184, 99), (254, 224, 182), (216, 218, 235), (178, 171, 210), (128, 115, 172), (84, 39, 136)], - 'puor11': [(127, 59, 8), (84, 39, 136), (45, 0, 75), (179, 88, 6), (224, 130, 20), (253, 184, 99), (254, 224, 182), (247, 247, 247), (216, 218, 235), (178, 171, 210), (128, 115, 172)], - 'puor3': [(241, 163, 64), (247, 247, 247), (153, 142, 195)], - 'puor4': [(230, 97, 1), (253, 184, 99), (178, 171, 210), (94, 60, 153)], - 'puor5': [(230, 97, 1), (253, 184, 99), (247, 247, 247), (178, 171, 210), (94, 60, 153)], - 'puor6': [(179, 88, 6), (241, 163, 64), (254, 224, 182), (216, 218, 235), (153, 142, 195), (84, 39, 136)], - 'puor7': [(179, 88, 6), (241, 163, 64), (254, 224, 182), (247, 247, 247), (216, 218, 235), (153, 142, 195), (84, 39, 136)], - 'puor8': [(179, 88, 6), (224, 130, 20), (253, 184, 99), (254, 224, 182), (216, 218, 235), (178, 171, 210), (128, 115, 172), (84, 39, 136)], - 'puor9': [(179, 88, 6), (224, 130, 20), (253, 184, 99), (254, 224, 182), (247, 247, 247), (216, 218, 235), (178, 171, 210), (128, 115, 172), (84, 39, 136)], - 'purd3': [(231, 225, 239), (201, 148, 199), (221, 28, 119)], - 'purd4': [(241, 238, 246), (215, 181, 216), (223, 101, 176), (206, 18, 86)], - 'purd5': [(241, 238, 246), (215, 181, 216), (223, 101, 176), (221, 28, 119), (152, 0, 67)], - 'purd6': [(241, 238, 246), (212, 185, 218), (201, 148, 199), (223, 101, 176), (221, 28, 119), (152, 0, 67)], - 'purd7': [(241, 238, 246), (212, 185, 218), (201, 148, 199), (223, 101, 176), (231, 41, 138), (206, 18, 86), (145, 0, 63)], - 'purd8': [(247, 244, 249), (231, 225, 239), (212, 185, 218), (201, 148, 199), (223, 101, 176), (231, 41, 138), (206, 18, 86), (145, 0, 63)], - 'purd9': [(247, 244, 249), (231, 225, 239), (212, 185, 218), (201, 148, 199), (223, 101, 176), (231, 41, 138), (206, 18, 86), (152, 0, 67), (103, 0, 31)], - 'purples3': [(239, 237, 245), (188, 189, 220), (117, 107, 177)], - 'purples4': [(242, 240, 247), (203, 201, 226), (158, 154, 200), (106, 81, 163)], - 'purples5': [(242, 240, 247), (203, 201, 226), (158, 154, 200), (117, 107, 177), (84, 39, 143)], - 'purples6': [(242, 240, 247), (218, 218, 235), (188, 189, 220), (158, 154, 200), (117, 107, 177), (84, 39, 143)], - 'purples7': [(242, 240, 247), (218, 218, 235), (188, 189, 220), (158, 154, 200), (128, 125, 186), (106, 81, 163), (74, 20, 134)], - 'purples8': [(252, 251, 253), (239, 237, 245), (218, 218, 235), (188, 189, 220), (158, 154, 200), (128, 125, 186), (106, 81, 163), (74, 20, 134)], - 'purples9': [(252, 251, 253), (239, 237, 245), (218, 218, 235), (188, 189, 220), (158, 154, 200), (128, 125, 186), (106, 81, 163), (84, 39, 143), (63, 0, 125)], - 'rdbu10': [(103, 0, 31), (5, 48, 97), (178, 24, 43), (214, 96, 77), (244, 165, 130), (253, 219, 199), (209, 229, 240), (146, 197, 222), (67, 147, 195), (33, 102, 172)], - 'rdbu11': [(103, 0, 31), (33, 102, 172), (5, 48, 97), (178, 24, 43), (214, 96, 77), (244, 165, 130), (253, 219, 199), (247, 247, 247), (209, 229, 240), (146, 197, 222), (67, 147, 195)], - 'rdbu3': [(239, 138, 98), (247, 247, 247), (103, 169, 207)], - 'rdbu4': [(202, 0, 32), (244, 165, 130), (146, 197, 222), (5, 113, 176)], - 'rdbu5': [(202, 0, 32), (244, 165, 130), (247, 247, 247), (146, 197, 222), (5, 113, 176)], - 'rdbu6': [(178, 24, 43), (239, 138, 98), (253, 219, 199), (209, 229, 240), (103, 169, 207), (33, 102, 172)], - 'rdbu7': [(178, 24, 43), (239, 138, 98), (253, 219, 199), (247, 247, 247), (209, 229, 240), (103, 169, 207), (33, 102, 172)], - 'rdbu8': [(178, 24, 43), (214, 96, 77), (244, 165, 130), (253, 219, 199), (209, 229, 240), (146, 197, 222), (67, 147, 195), (33, 102, 172)], - 'rdbu9': [(178, 24, 43), (214, 96, 77), (244, 165, 130), (253, 219, 199), (247, 247, 247), (209, 229, 240), (146, 197, 222), (67, 147, 195), (33, 102, 172)], - 'rdgy10': [(103, 0, 31), (26, 26, 26), (178, 24, 43), (214, 96, 77), (244, 165, 130), (253, 219, 199), (224, 224, 224), (186, 186, 186), (135, 135, 135), (77, 77, 77)], - 'rdgy11': [(103, 0, 31), (77, 77, 77), (26, 26, 26), (178, 24, 43), (214, 96, 77), (244, 165, 130), (253, 219, 199), (255, 255, 255), (224, 224, 224), (186, 186, 186), (135, 135, 135)], - 'rdgy3': [(239, 138, 98), (255, 255, 255), (153, 153, 153)], - 'rdgy4': [(202, 0, 32), (244, 165, 130), (186, 186, 186), (64, 64, 64)], - 'rdgy5': [(202, 0, 32), (244, 165, 130), (255, 255, 255), (186, 186, 186), (64, 64, 64)], - 'rdgy6': [(178, 24, 43), (239, 138, 98), (253, 219, 199), (224, 224, 224), (153, 153, 153), (77, 77, 77)], - 'rdgy7': [(178, 24, 43), (239, 138, 98), (253, 219, 199), (255, 255, 255), (224, 224, 224), (153, 153, 153), (77, 77, 77)], - 'rdgy8': [(178, 24, 43), (214, 96, 77), (244, 165, 130), (253, 219, 199), (224, 224, 224), (186, 186, 186), (135, 135, 135), (77, 77, 77)], - 'rdgy9': [(178, 24, 43), (214, 96, 77), (244, 165, 130), (253, 219, 199), (255, 255, 255), (224, 224, 224), (186, 186, 186), (135, 135, 135), (77, 77, 77)], - 'rdpu3': [(253, 224, 221), (250, 159, 181), (197, 27, 138)], - 'rdpu4': [(254, 235, 226), (251, 180, 185), (247, 104, 161), (174, 1, 126)], - 'rdpu5': [(254, 235, 226), (251, 180, 185), (247, 104, 161), (197, 27, 138), (122, 1, 119)], - 'rdpu6': [(254, 235, 226), (252, 197, 192), (250, 159, 181), (247, 104, 161), (197, 27, 138), (122, 1, 119)], - 'rdpu7': [(254, 235, 226), (252, 197, 192), (250, 159, 181), (247, 104, 161), (221, 52, 151), (174, 1, 126), (122, 1, 119)], - 'rdpu8': [(255, 247, 243), (253, 224, 221), (252, 197, 192), (250, 159, 181), (247, 104, 161), (221, 52, 151), (174, 1, 126), (122, 1, 119)], - 'rdpu9': [(255, 247, 243), (253, 224, 221), (252, 197, 192), (250, 159, 181), (247, 104, 161), (221, 52, 151), (174, 1, 126), (122, 1, 119), (73, 0, 106)], - 'rdylbu10': [(165, 0, 38), (49, 54, 149), (215, 48, 39), (244, 109, 67), (253, 174, 97), (254, 224, 144), (224, 243, 248), (171, 217, 233), (116, 173, 209), (69, 117, 180)], - 'rdylbu11': [(165, 0, 38), (69, 117, 180), (49, 54, 149), (215, 48, 39), (244, 109, 67), (253, 174, 97), (254, 224, 144), (255, 255, 191), (224, 243, 248), (171, 217, 233), (116, 173, 209)], - 'rdylbu3': [(252, 141, 89), (255, 255, 191), (145, 191, 219)], - 'rdylbu4': [(215, 25, 28), (253, 174, 97), (171, 217, 233), (44, 123, 182)], - 'rdylbu5': [(215, 25, 28), (253, 174, 97), (255, 255, 191), (171, 217, 233), (44, 123, 182)], - 'rdylbu6': [(215, 48, 39), (252, 141, 89), (254, 224, 144), (224, 243, 248), (145, 191, 219), (69, 117, 180)], - 'rdylbu7': [(215, 48, 39), (252, 141, 89), (254, 224, 144), (255, 255, 191), (224, 243, 248), (145, 191, 219), (69, 117, 180)], - 'rdylbu8': [(215, 48, 39), (244, 109, 67), (253, 174, 97), (254, 224, 144), (224, 243, 248), (171, 217, 233), (116, 173, 209), (69, 117, 180)], - 'rdylbu9': [(215, 48, 39), (244, 109, 67), (253, 174, 97), (254, 224, 144), (255, 255, 191), (224, 243, 248), (171, 217, 233), (116, 173, 209), (69, 117, 180)], - 'rdylgn10': [(165, 0, 38), (0, 104, 55), (215, 48, 39), (244, 109, 67), (253, 174, 97), (254, 224, 139), (217, 239, 139), (166, 217, 106), (102, 189, 99), (26, 152, 80)], - 'rdylgn11': [(165, 0, 38), (26, 152, 80), (0, 104, 55), (215, 48, 39), (244, 109, 67), (253, 174, 97), (254, 224, 139), (255, 255, 191), (217, 239, 139), (166, 217, 106), (102, 189, 99)], - 'rdylgn3': [(252, 141, 89), (255, 255, 191), (145, 207, 96)], - 'rdylgn4': [(215, 25, 28), (253, 174, 97), (166, 217, 106), (26, 150, 65)], - 'rdylgn5': [(215, 25, 28), (253, 174, 97), (255, 255, 191), (166, 217, 106), (26, 150, 65)], - 'rdylgn6': [(215, 48, 39), (252, 141, 89), (254, 224, 139), (217, 239, 139), (145, 207, 96), (26, 152, 80)], - 'rdylgn7': [(215, 48, 39), (252, 141, 89), (254, 224, 139), (255, 255, 191), (217, 239, 139), (145, 207, 96), (26, 152, 80)], - 'rdylgn8': [(215, 48, 39), (244, 109, 67), (253, 174, 97), (254, 224, 139), (217, 239, 139), (166, 217, 106), (102, 189, 99), (26, 152, 80)], - 'rdylgn9': [(215, 48, 39), (244, 109, 67), (253, 174, 97), (254, 224, 139), (255, 255, 191), (217, 239, 139), (166, 217, 106), (102, 189, 99), (26, 152, 80)], - 'reds3': [(254, 224, 210), (252, 146, 114), (222, 45, 38)], - 'reds4': [(254, 229, 217), (252, 174, 145), (251, 106, 74), (203, 24, 29)], - 'reds5': [(254, 229, 217), (252, 174, 145), (251, 106, 74), (222, 45, 38), (165, 15, 21)], - 'reds6': [(254, 229, 217), (252, 187, 161), (252, 146, 114), (251, 106, 74), (222, 45, 38), (165, 15, 21)], - 'reds7': [(254, 229, 217), (252, 187, 161), (252, 146, 114), (251, 106, 74), (239, 59, 44), (203, 24, 29), (153, 0, 13)], - 'reds8': [(255, 245, 240), (254, 224, 210), (252, 187, 161), (252, 146, 114), (251, 106, 74), (239, 59, 44), (203, 24, 29), (153, 0, 13)], - 'reds9': [(255, 245, 240), (254, 224, 210), (252, 187, 161), (252, 146, 114), (251, 106, 74), (239, 59, 44), (203, 24, 29), (165, 15, 21), (103, 0, 13)], - 'set13': [(228, 26, 28), (55, 126, 184), (77, 175, 74)], - 'set14': [(228, 26, 28), (55, 126, 184), (77, 175, 74), (152, 78, 163)], - 'set15': [(228, 26, 28), (55, 126, 184), (77, 175, 74), (152, 78, 163), (255, 127, 0)], - 'set16': [(228, 26, 28), (55, 126, 184), (77, 175, 74), (152, 78, 163), (255, 127, 0), (255, 255, 51)], - 'set17': [(228, 26, 28), (55, 126, 184), (77, 175, 74), (152, 78, 163), (255, 127, 0), (255, 255, 51), (166, 86, 40)], - 'set18': [(228, 26, 28), (55, 126, 184), (77, 175, 74), (152, 78, 163), (255, 127, 0), (255, 255, 51), (166, 86, 40), (247, 129, 191)], - 'set19': [(228, 26, 28), (55, 126, 184), (77, 175, 74), (152, 78, 163), (255, 127, 0), (255, 255, 51), (166, 86, 40), (247, 129, 191), (153, 153, 153)], - 'set23': [(102, 194, 165), (252, 141, 98), (141, 160, 203)], - 'set24': [(102, 194, 165), (252, 141, 98), (141, 160, 203), (231, 138, 195)], - 'set25': [(102, 194, 165), (252, 141, 98), (141, 160, 203), (231, 138, 195), (166, 216, 84)], - 'set26': [(102, 194, 165), (252, 141, 98), (141, 160, 203), (231, 138, 195), (166, 216, 84), (255, 217, 47)], - 'set27': [(102, 194, 165), (252, 141, 98), (141, 160, 203), (231, 138, 195), (166, 216, 84), (255, 217, 47), (229, 196, 148)], - 'set28': [(102, 194, 165), (252, 141, 98), (141, 160, 203), (231, 138, 195), (166, 216, 84), (255, 217, 47), (229, 196, 148), (179, 179, 179)], - 'set310': [(141, 211, 199), (188, 128, 189), (255, 255, 179), (190, 186, 218), (251, 128, 114), (128, 177, 211), (253, 180, 98), (179, 222, 105), (252, 205, 229), (217, 217, 217)], - 'set311': [(141, 211, 199), (188, 128, 189), (204, 235, 197), (255, 255, 179), (190, 186, 218), (251, 128, 114), (128, 177, 211), (253, 180, 98), (179, 222, 105), (252, 205, 229), (217, 217, 217)], - 'set312': [(141, 211, 199), (188, 128, 189), (204, 235, 197), (255, 237, 111), (255, 255, 179), (190, 186, 218), (251, 128, 114), (128, 177, 211), (253, 180, 98), (179, 222, 105), (252, 205, 229), (217, 217, 217)], - 'set33': [(141, 211, 199), (255, 255, 179), (190, 186, 218)], - 'set34': [(141, 211, 199), (255, 255, 179), (190, 186, 218), (251, 128, 114)], - 'set35': [(141, 211, 199), (255, 255, 179), (190, 186, 218), (251, 128, 114), (128, 177, 211)], - 'set36': [(141, 211, 199), (255, 255, 179), (190, 186, 218), (251, 128, 114), (128, 177, 211), (253, 180, 98)], - 'set37': [(141, 211, 199), (255, 255, 179), (190, 186, 218), (251, 128, 114), (128, 177, 211), (253, 180, 98), (179, 222, 105)], - 'set38': [(141, 211, 199), (255, 255, 179), (190, 186, 218), (251, 128, 114), (128, 177, 211), (253, 180, 98), (179, 222, 105), (252, 205, 229)], - 'set39': [(141, 211, 199), (255, 255, 179), (190, 186, 218), (251, 128, 114), (128, 177, 211), (253, 180, 98), (179, 222, 105), (252, 205, 229), (217, 217, 217)], - 'spectral10': [(158, 1, 66), (94, 79, 162), (213, 62, 79), (244, 109, 67), (253, 174, 97), (254, 224, 139), (230, 245, 152), (171, 221, 164), (102, 194, 165), (50, 136, 189)], - 'spectral11': [(158, 1, 66), (50, 136, 189), (94, 79, 162), (213, 62, 79), (244, 109, 67), (253, 174, 97), (254, 224, 139), (255, 255, 191), (230, 245, 152), (171, 221, 164), (102, 194, 165)], - 'spectral3': [(252, 141, 89), (255, 255, 191), (153, 213, 148)], - 'spectral4': [(215, 25, 28), (253, 174, 97), (171, 221, 164), (43, 131, 186)], - 'spectral5': [(215, 25, 28), (253, 174, 97), (255, 255, 191), (171, 221, 164), (43, 131, 186)], - 'spectral6': [(213, 62, 79), (252, 141, 89), (254, 224, 139), (230, 245, 152), (153, 213, 148), (50, 136, 189)], - 'spectral7': [(213, 62, 79), (252, 141, 89), (254, 224, 139), (255, 255, 191), (230, 245, 152), (153, 213, 148), (50, 136, 189)], - 'spectral8': [(213, 62, 79), (244, 109, 67), (253, 174, 97), (254, 224, 139), (230, 245, 152), (171, 221, 164), (102, 194, 165), (50, 136, 189)], - 'spectral9': [(213, 62, 79), (244, 109, 67), (253, 174, 97), (254, 224, 139), (255, 255, 191), (230, 245, 152), (171, 221, 164), (102, 194, 165), (50, 136, 189)], - 'ylgn3': [(247, 252, 185), (173, 221, 142), (49, 163, 84)], - 'ylgn4': [(255, 255, 204), (194, 230, 153), (120, 198, 121), (35, 132, 67)], - 'ylgn5': [(255, 255, 204), (194, 230, 153), (120, 198, 121), (49, 163, 84), (0, 104, 55)], - 'ylgn6': [(255, 255, 204), (217, 240, 163), (173, 221, 142), (120, 198, 121), (49, 163, 84), (0, 104, 55)], - 'ylgn7': [(255, 255, 204), (217, 240, 163), (173, 221, 142), (120, 198, 121), (65, 171, 93), (35, 132, 67), (0, 90, 50)], - 'ylgn8': [(255, 255, 229), (247, 252, 185), (217, 240, 163), (173, 221, 142), (120, 198, 121), (65, 171, 93), (35, 132, 67), (0, 90, 50)], - 'ylgn9': [(255, 255, 229), (247, 252, 185), (217, 240, 163), (173, 221, 142), (120, 198, 121), (65, 171, 93), (35, 132, 67), (0, 104, 55), (0, 69, 41)], - 'ylgnbu3': [(237, 248, 177), (127, 205, 187), (44, 127, 184)], - 'ylgnbu4': [(255, 255, 204), (161, 218, 180), (65, 182, 196), (34, 94, 168)], - 'ylgnbu5': [(255, 255, 204), (161, 218, 180), (65, 182, 196), (44, 127, 184), (37, 52, 148)], - 'ylgnbu6': [(255, 255, 204), (199, 233, 180), (127, 205, 187), (65, 182, 196), (44, 127, 184), (37, 52, 148)], - 'ylgnbu7': [(255, 255, 204), (199, 233, 180), (127, 205, 187), (65, 182, 196), (29, 145, 192), (34, 94, 168), (12, 44, 132)], - 'ylgnbu8': [(255, 255, 217), (237, 248, 177), (199, 233, 180), (127, 205, 187), (65, 182, 196), (29, 145, 192), (34, 94, 168), (12, 44, 132)], - 'ylgnbu9': [(255, 255, 217), (237, 248, 177), (199, 233, 180), (127, 205, 187), (65, 182, 196), (29, 145, 192), (34, 94, 168), (37, 52, 148), (8, 29, 88)], - 'ylorbr3': [(255, 247, 188), (254, 196, 79), (217, 95, 14)], - 'ylorbr4': [(255, 255, 212), (254, 217, 142), (254, 153, 41), (204, 76, 2)], - 'ylorbr5': [(255, 255, 212), (254, 217, 142), (254, 153, 41), (217, 95, 14), (153, 52, 4)], - 'ylorbr6': [(255, 255, 212), (254, 227, 145), (254, 196, 79), (254, 153, 41), (217, 95, 14), (153, 52, 4)], - 'ylorbr7': [(255, 255, 212), (254, 227, 145), (254, 196, 79), (254, 153, 41), (236, 112, 20), (204, 76, 2), (140, 45, 4)], - 'ylorbr8': [(255, 255, 229), (255, 247, 188), (254, 227, 145), (254, 196, 79), (254, 153, 41), (236, 112, 20), (204, 76, 2), (140, 45, 4)], - 'ylorbr9': [(255, 255, 229), (255, 247, 188), (254, 227, 145), (254, 196, 79), (254, 153, 41), (236, 112, 20), (204, 76, 2), (153, 52, 4), (102, 37, 6)], - 'ylorrd3': [(255, 237, 160), (254, 178, 76), (240, 59, 32)], - 'ylorrd4': [(255, 255, 178), (254, 204, 92), (253, 141, 60), (227, 26, 28)], - 'ylorrd5': [(255, 255, 178), (254, 204, 92), (253, 141, 60), (240, 59, 32), (189, 0, 38)], - 'ylorrd6': [(255, 255, 178), (254, 217, 118), (254, 178, 76), (253, 141, 60), (240, 59, 32), (189, 0, 38)], - 'ylorrd7': [(255, 255, 178), (254, 217, 118), (254, 178, 76), (253, 141, 60), (252, 78, 42), (227, 26, 28), (177, 0, 38)], - 'ylorrd8': [(255, 255, 204), (255, 237, 160), (254, 217, 118), (254, 178, 76), (253, 141, 60), (252, 78, 42), (227, 26, 28), (177, 0, 38)], -} - - -if __name__ == '__main__': - main() diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree_msgs/CMakeLists.txt b/ros_ws/src/robot/autonomy/planning/local/behavior_tree_msgs/CMakeLists.txt deleted file mode 100644 index 6707230f8..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/behavior_tree_msgs/CMakeLists.txt +++ /dev/null @@ -1,25 +0,0 @@ -cmake_minimum_required(VERSION 3.5) -project(behavior_tree_msgs) - -# Find required packages -find_package(ament_cmake REQUIRED) -find_package(rosidl_default_generators REQUIRED) -find_package(std_msgs REQUIRED) - -# Generate interfaces -rosidl_generate_interfaces(${PROJECT_NAME} - msg/Status.msg - msg/BehaviorTreeCommand.msg - msg/BehaviorTreeCommands.msg - DEPENDENCIES std_msgs -) - -ament_export_dependencies(rosidl_default_runtime) - -install( - DIRECTORY include/${PROJECT_NAME}/ - DESTINATION include/${PROJECT_NAME} - FILES_MATCHING PATTERN "*.hpp" -) - -ament_package() diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree_msgs/msg/BehaviorTreeCommand.msg b/ros_ws/src/robot/autonomy/planning/local/behavior_tree_msgs/msg/BehaviorTreeCommand.msg deleted file mode 100644 index 7662dcf8c..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/behavior_tree_msgs/msg/BehaviorTreeCommand.msg +++ /dev/null @@ -1,2 +0,0 @@ -string condition_name -int8 status \ No newline at end of file diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree_msgs/msg/BehaviorTreeCommands.msg b/ros_ws/src/robot/autonomy/planning/local/behavior_tree_msgs/msg/BehaviorTreeCommands.msg deleted file mode 100644 index e2671e671..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/behavior_tree_msgs/msg/BehaviorTreeCommands.msg +++ /dev/null @@ -1 +0,0 @@ -BehaviorTreeCommand[] commands \ No newline at end of file diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree_msgs/msg/Status.msg b/ros_ws/src/robot/autonomy/planning/local/behavior_tree_msgs/msg/Status.msg deleted file mode 100644 index b6fdef75c..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/behavior_tree_msgs/msg/Status.msg +++ /dev/null @@ -1,5 +0,0 @@ -int8 FAILURE=0 -int8 RUNNING=1 -int8 SUCCESS=2 - -int8 status \ No newline at end of file diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree_msgs/package.xml b/ros_ws/src/robot/autonomy/planning/local/behavior_tree_msgs/package.xml deleted file mode 100644 index 90d957804..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/behavior_tree_msgs/package.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - behavior_tree_msgs - 0.0.0 - Message definitions for behavior trees - Your Name - TODO: License declaration - - ament_cmake - - rosidl_default_generators - rosidl_default_runtime - rosidl_interface_packages - - std_msgs - - - ament_cmake - - diff --git a/ros_ws/src/robot/autonomy/planning/local/core_local_planner/CMakeLists.txt b/ros_ws/src/robot/autonomy/planning/local/core_local_planner/CMakeLists.txt index 70d334149..be9f2ba25 100644 --- a/ros_ws/src/robot/autonomy/planning/local/core_local_planner/CMakeLists.txt +++ b/ros_ws/src/robot/autonomy/planning/local/core_local_planner/CMakeLists.txt @@ -28,7 +28,6 @@ find_package(actionlib_msgs REQUIRED) find_package(behavior_tree REQUIRED) find_package(core_trajectory_msgs REQUIRED) find_package(pluginlib REQUIRED) -find_package(behaviortree_cpp_v3 REQUIRED) generate_messages( DEPENDENCIES actionlib_msgs std_msgs @@ -62,7 +61,6 @@ core_trajectory_controller core_map_representation_interface tf2_ros action_msgs -behaviortree_cpp_v3 core_trajectory_msgs pluginlib # Add other dependencies here diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/CMakeLists.txt b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/CMakeLists.txt index fe5b4c674..4976b30a5 100755 --- a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/CMakeLists.txt +++ b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/CMakeLists.txt @@ -1,12 +1,10 @@ -cmake_minimum_required(VERSION 3.5) +cmake_minimum_required(VERSION 3.8) project(core_trajectory_controller) - +set (CMAKE_INCLUDE_CURRENT_DIR ON) # Use C++14 standard set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_STANDARD_REQUIRED ON) -## Find catkin macros and libraries -## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz) -## is used, also find other catkin packages + # Find dependencies find_package(ament_cmake REQUIRED) find_package(rclcpp REQUIRED) @@ -19,124 +17,11 @@ find_package(tf2_ros REQUIRED) find_package(core_trajectory_library REQUIRED) find_package(core_trajectory_msgs REQUIRED) find_package(tflib REQUIRED) - -# Generate messages +find_package(std_srvs REQUIRED) find_package(rosidl_default_generators REQUIRED) -#find_package(base) - -## System dependencies are found with CMake's conventions -# find_package(Boost REQUIRED COMPONENTS system) - - -## Uncomment this if the package has a setup.py. This macro ensures -## modules and global scripts declared therein get installed -## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html -# catkin_python_setup() - -################################################ -## Declare ROS messages, services and actions ## -################################################ - -## To declare and build messages, services or actions from within this -## package, follow these steps: -## * Let MSG_DEP_SET be the set of packages whose message types you use in -## your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...). -## * In the file package.xml: -## * add a build_depend tag for "message_generation" -## * add a build_depend and a exec_depend tag for each package in MSG_DEP_SET -## * If MSG_DEP_SET isn't empty the following dependency has been pulled in -## but can be declared for certainty nonetheless: -## * add a exec_depend tag for "message_runtime" -## * In this file (CMakeLists.txt): -## * add "message_generation" and every package in MSG_DEP_SET to -## find_package(catkin REQUIRED COMPONENTS ...) -## * add "message_runtime" and every package in MSG_DEP_SET to -## catkin_package(CATKIN_DEPENDS ...) -## * uncomment the add_*_files sections below as needed -## and list every .msg/.srv/.action file to be processed -## * uncomment the generate_messages entry below -## * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...) - -## Generate messages in the 'msg' folder -#add_message_files( -# FILES -# Trajectory.msg -#) - -## Generate services in the 'srv' folder -#add_service_files( -# FILES -# TrajectoryMode.srv -#) - -## Generate actions in the 'action' folder -# add_action_files( -# FILES -# Action1.action -# Action2.action -# ) - -## Generate added messages and services with any dependencies listed here -#generate_messages( -# DEPENDENCIES -# nav_msgs std_msgs -#) - -rosidl_generate_interfaces(${PROJECT_NAME} - "msg/Trajectory.msg" - "srv/TrajectoryMode.srv" - DEPENDENCIES std_msgs nav_msgs -) -################################################ -## Declare ROS dynamic reconfigure parameters ## -################################################ - -## To declare and build dynamic reconfigure parameters within this -## package, follow these steps: -## * In the file package.xml: -## * add a build_depend and a exec_depend tag for "dynamic_reconfigure" -## * In this file (CMakeLists.txt): -## * add "dynamic_reconfigure" to -## find_package(catkin REQUIRED COMPONENTS ...) -## * uncomment the "generate_dynamic_reconfigure_options" section below -## and list every .cfg file to be processed - -## Generate dynamic reconfigure parameters in the 'cfg' folder -# generate_dynamic_reconfigure_options( -# cfg/DynReconf1.cfg -# cfg/DynReconf2.cfg -# ) - -################################### -## catkin specific configuration ## -################################### -## The catkin_package macro generates cmake config files for your package -## Declare things to be passed to dependent projects -## INCLUDE_DIRS: uncomment this if your package contains header files -## LIBRARIES: libraries you create in this project that dependent projects also need -## CATKIN_DEPENDS: catkin_packages dependent projects also need -## DEPENDS: system dependencies of this project that dependent projects also need -#catkin_package( -# INCLUDE_DIRS include -# LIBRARIES trajectory_controller -# CATKIN_DEPENDS ca_nav_msgs geometry_msgs message_generation nav_msgs roscpp rospy sensor_msgs std_msgs tf -# DEPENDS system_lib -#) - -########### -## Build ## -########### - -## Specify additional locations of header files -## Your package locations should be listed before other locations -#include_directories( -# include -# ${catkin_INCLUDE_DIRS} -# ${base_INCLUDE_DIRS} -#) +# Include directories include_directories( - include ${rclcpp_INCLUDE_DIRS} ${tf2_INCLUDE_DIRS} ${tf2_ros_INCLUDE_DIRS} @@ -144,32 +29,14 @@ include_directories( ${nav_msgs_INCLUDE_DIRS} ${sensor_msgs_INCLUDE_DIRS} ${std_msgs_INCLUDE_DIRS} + ${std_srvs_INCLUDE_DIRS} + ${core_trajectory_msgs_INCLUDE_DIRS} # Add this line + ${rosidl_default_runtime_INCLUDE_DIRS} ) -## Declare a C++ library -# add_library(${PROJECT_NAME} -# src/${PROJECT_NAME}/trajectory_controller.cpp -# ) - -## Add cmake target dependencies of the library -## as an example, code may need to be generated before libraries -## either from message generation or dynamic reconfigure -# add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) - -## Declare a C++ executable -## With catkin_make all packages are built within a single CMake context -## The recommended prefix ensures that target names across packages don't collide +# Declare a C++ executable add_executable(trajectory_controller src/trajectory_controller.cpp) -## Rename C++ executable without prefix -## The above recommended prefix causes long target names, the following renames the -## target back to the shorter version for ease of user use -## e.g. "rosrun someones_pkg node" instead of "rosrun someones_pkg someones_pkg_node" -# set_target_properties(${PROJECT_NAME}_node PROPERTIES OUTPUT_NAME node PREFIX "") - -## Add cmake target dependencies of the executable -## same as for the library above -#add_dependencies(trajectory_controller ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) ament_target_dependencies(trajectory_controller rclcpp geometry_msgs @@ -181,64 +48,33 @@ ament_target_dependencies(trajectory_controller core_trajectory_library core_trajectory_msgs tflib + rosidl_default_generators + std_srvs +) +target_link_libraries(trajectory_controller + tf2::tf2 + tf2_ros::tf2_ros ) -## Specify libraries to link a library or executable target against -#target_link_libraries(trajectory_controller -# ${catkin_LIBRARIES} -# ${base_LIBRARIES} -#) +# Install targets install(TARGETS trajectory_controller DESTINATION lib/${PROJECT_NAME} ) -install(DIRECTORY launch DESTINATION share/${PROJECT_NAME}) - -ament_package() - -############# -## Install ## -############# - -# all install targets should use catkin DESTINATION variables -# See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html - -## Mark executable scripts (Python etc.) for installation -## in contrast to setup.py, you can choose the destination -# install(PROGRAMS -# scripts/my_python_script -# DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} -# ) - -## Mark executables and/or libraries for installation -# install(TARGETS ${PROJECT_NAME} ${PROJECT_NAME}_node -# ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} -# LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} -# RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} -# ) - -## Mark cpp header files for installation -# install(DIRECTORY include/${PROJECT_NAME}/ -# DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} -# FILES_MATCHING PATTERN "*.h" -# PATTERN ".svn" EXCLUDE -# ) - -## Mark other files for installation (e.g. launch and bag files, etc.) -# install(FILES -# # myfile1 -# # myfile2 -# DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} -# ) +install(FILES package.xml + DESTINATION share/${PROJECT_NAME} +) -############# -## Testing ## -############# +install(DIRECTORY include/${PROJECT_NAME}/ + DESTINATION include/${PROJECT_NAME} + FILES_MATCHING PATTERN "*.hpp" +) -## Add gtest based cpp test target and link libraries -# catkin_add_gtest(${PROJECT_NAME}-test test/test_trajectory_controller.cpp) -# if(TARGET ${PROJECT_NAME}-test) -# target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME}) -# endif() +# Install launch files +install(DIRECTORY launch + DESTINATION share/${PROJECT_NAME} +) +install(DIRECTORY + config + DESTINATION share/${PROJECT_NAME}) -## Add folders to be run by python nosetests -# catkin_add_nosetests(test) +ament_package() diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/package.xml b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/package.xml index dacc0425a..2fda3388a 100755 --- a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/package.xml +++ b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/package.xml @@ -1,4 +1,6 @@ + + core_trajectory_controller 0.0.0 @@ -18,7 +20,10 @@ tf2_ros core_trajectory_library tflib + std_srvs core_trajectory_msgs + rosidl_default_generators + rclcpp geometry_msgs @@ -29,10 +34,13 @@ tf2_ros core_trajectory_library tflib + std_srvs core_trajectory_msgs + rosidl_default_runtime + rosidl_interface_packages - + ament_cmake \ No newline at end of file diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/src/trajectory_controller.cpp b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/src/trajectory_controller.cpp index 1ac22bd22..f2f9ccb14 100644 --- a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/src/trajectory_controller.cpp +++ b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/src/trajectory_controller.cpp @@ -1,9 +1,9 @@ -#include +/*#include #include -#include +// #include #include -#include -#include +#include +#include #include #include #include @@ -12,78 +12,150 @@ #include #include #include +*/ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include //=================================================================================== //----------------------------- Trajectory Control Node ----------------------------- //=================================================================================== -class TrajectoryControlNode : public BaseNode { +class TrajectoryControlNode : public rclcpp::Node { private: - ros::Subscriber traj_sub, traj_track_sub, odom_sub; - - ros::Publisher marker_vis_pub, segment_marker_vis_pub, tracking_point_pub, look_ahead_pub, - trajectory_completion_percentage_pub, trajectory_time_pub, segment_pub, tracking_error_pub, - velocity_pub; - tf::TransformBroadcaster* broadcaster; - tf::TransformListener* listener; - - ros::ServiceServer traj_style_srv, traj_mode_srv; - - nav_msgs::Odometry odom; + // ros::Subscriber traj_sub, traj_track_sub, odom_sub; + + // ros::Publisher marker_vis_pub, segment_marker_vis_pub, tracking_point_pub, look_ahead_pub, + // trajectory_completion_percentage_pub, trajectory_time_pub, segment_pub, + // tracking_error_pub, velocity_pub; + + // SUBSCRIBERS + rclcpp::Subscription::SharedPtr traj_sub; + rclcpp::Subscription::SharedPtr traj_track_sub; + rclcpp::Subscription::SharedPtr odom_sub; + + // PUBLISHERS + rclcpp::Publisher::SharedPtr marker_vis_pub; + rclcpp::Publisher::SharedPtr segment_marker_vis_pub; + rclcpp::Publisher::SharedPtr tracking_point_pub; + rclcpp::Publisher::SharedPtr look_ahead_pub; + rclcpp::Publisher::SharedPtr trajectory_completion_percentage_pub; + rclcpp::Publisher::SharedPtr trajectory_time_pub; + rclcpp::Publisher::SharedPtr tracking_error_pub; + rclcpp::Publisher::SharedPtr velocity_pub; + rclcpp::Publisher::SharedPtr segment_pub; + + // tf::TransformBroadcaster* broadcaster; + // tf::TransformListener* listener; + + // LISTENERS AND BROADCATERS + std::shared_ptr tf_buffer; + std::shared_ptr tf_listener; + std::unique_ptr tf_broadcaster; + + // ros::ServiceServer traj_style_srv, traj_mode_srv; + rclcpp::Service::SharedPtr traj_style_srv; + rclcpp::Service::SharedPtr traj_mode_srv; + + nav_msgs::msg::Odometry odom; bool got_odom; std::string tf_prefix; std::string target_frame; int trajectory_mode; Trajectory* trajectory; - ros::Time start_time; + rclcpp::Time start_time; double prev_time; - nav_msgs::Odometry tracking_point, look_ahead_point; + nav_msgs::msg::Odometry tracking_point, look_ahead_point; double tracking_point_distance_limit; double velocity_look_ahead_time; public: - TrajectoryControlNode(); - virtual bool initialize(); + // TrajectoryControlNode(); + + explicit TrajectoryControlNode(const rclcpp::NodeOptions& options = rclcpp::NodeOptions()); + // virtual bool initialize(); virtual bool execute(); virtual ~TrajectoryControlNode(); - void traj_callback(core_trajectory_msgs::TrajectoryXYZVYaw traj); - void traj_track_callback(core_trajectory_msgs::TrajectoryXYZVYaw traj); - void odom_callback(nav_msgs::Odometry odom); + void traj_callback(const core_trajectory_msgs::msg::TrajectoryXYZVYaw::ConstSharedPtr msg); + void traj_track_callback( + const core_trajectory_msgs::msg::TrajectoryXYZVYaw::ConstSharedPtr msg); + void odom_callback(const nav_msgs::msg::Odometry::ConstSharedPtr msg); + + // bool set_trajectory_style_service(std_srvs::SetBool::Request& req, + // std_srvs::SetBool::Response& res); + // bool set_trajectory_mode(core_trajectory_controller::TrajectoryMode::Request& req, + // core_trajectory_controller::TrajectoryMode::Response& res); - bool set_trajectory_style_service(std_srvs::SetBool::Request& req, - std_srvs::SetBool::Response& res); - bool set_trajectory_mode(core_trajectory_controller::TrajectoryMode::Request& req, - core_trajectory_controller::TrajectoryMode::Response& res); + bool set_trajectory_mode( + const std::shared_ptr request, + std::shared_ptr response); + void set_trajectory_style_service( + const std::shared_ptr request, + std::shared_ptr response); std::string mode; float velocity_target; }; -TrajectoryControlNode::TrajectoryControlNode() : BaseNode("trajectory_control_node") {} - -bool TrajectoryControlNode::initialize() { - ros::NodeHandle* nh = get_node_handle(); - ros::NodeHandle* pnh = get_private_node_handle(); +TrajectoryControlNode::TrajectoryControlNode(const rclcpp::NodeOptions& options) + : Node("trajectory_control_node", options), trajectory(new Trajectory(target_frame)) { + // ros::NodeHandle* nh = get_node_handle(); + // ros::NodeHandle* pnh = get_private_node_handle(); // init params - tf_prefix = pnh->param("tf_prefix", std::string("")); - target_frame = pnh->param("target_frame", std::string("world")); - tracking_point_distance_limit = pnh->param("tracking_point_distance_limit", 0.5); - velocity_look_ahead_time = pnh->param("velocity_look_ahead_time", 0.0); + // tf_prefix = pnh->param("tf_prefix", std::string("")); + // target_frame = pnh->param("target_frame", std::string("world")); + // tracking_point_distance_limit = pnh->param("tracking_point_distance_limit", 0.5); + // velocity_look_ahead_time = pnh->param("velocity_look_ahead_time", 0.0); + // got_odom = false; + tf_prefix = this->declare_parameter("tf_prefix", std::string("")); + target_frame = this->declare_parameter("target_frame", std::string("world")); + tracking_point_distance_limit = this->declare_parameter("tracking_point_distance_limit", 0.5); + velocity_look_ahead_time = this->declare_parameter("velocity_look_ahead_time", 0.0); got_odom = false; - trajectory_mode = core_trajectory_controller::TrajectoryMode::Request::ROBOT_POSE; // TRACK; + trajectory_mode = core_trajectory_msgs::srv::TrajectoryMode::Request::ROBOT_POSE; // TRACK; trajectory = new Trajectory(target_frame); + // tf_buffer = std::make_shared(this->get_clock()); + // tf_listener = std::make_shared(*tf_buffer); + + // Initialize tf_broadcaster + // tf_broadcaster = std::make_unique(this); // init subscribers + /* traj_sub = nh->subscribe("trajectory", 10, &TrajectoryControlNode::traj_callback, this); traj_track_sub = nh->subscribe("trajectory_track", 10, &TrajectoryControlNode::traj_track_callback, this); odom_sub = nh->subscribe("odometry", 10, &TrajectoryControlNode::odom_callback, this); + */ + traj_sub = this->create_subscription( + "trajectory", 10, + std::bind(&TrajectoryControlNode::traj_callback, this, std::placeholders::_1)); + traj_track_sub = this->create_subscription( + "trajectory_track", 10, + std::bind(&TrajectoryControlNode::traj_track_callback, this, std::placeholders::_1)); + odom_sub = this->create_subscription( + "odometry", 10, + std::bind(&TrajectoryControlNode::odom_callback, this, std::placeholders::_1)); // init publishers + /* segment_pub = nh->advertise("trajectory_segment", 10); marker_vis_pub = nh->advertise("trajectory_vis", 10); segment_marker_vis_pub = @@ -97,46 +169,91 @@ bool TrajectoryControlNode::initialize() { velocity_pub = nh->advertise("tracking_point_velocity_magnitude", 1); broadcaster = new tf::TransformBroadcaster(); listener = new tf::TransformListener(); + */ + segment_pub = this->create_publisher( + "trajectory_segment", 10); + marker_vis_pub = + this->create_publisher("trajectory_vis", 10); + segment_marker_vis_pub = + this->create_publisher("trajectory_segment_vis", 10); + tracking_point_pub = this->create_publisher("tracking_point", 10); + look_ahead_pub = this->create_publisher("look_ahead", 10); + trajectory_completion_percentage_pub = + this->create_publisher("trajectory_completion_percentage", 10); + trajectory_time_pub = this->create_publisher("trajectory_time", 10); + tracking_error_pub = this->create_publisher("tracking_error", 10); + velocity_pub = + this->create_publisher("tracking_point_velocity_magnitude", 1); + + auto clock = std::make_shared(RCL_ROS_TIME); + auto node = std::make_shared("node_name"); + + // Create tf2_ros::Buffer with required arguments + tf_buffer = std::make_shared(clock); + // tf_buffer->setCacheTime(std::chrono::seconds(10)); + + // Create tf2_ros::TransformListener with the tf2_ros::Buffer + tf_listener = std::make_shared(*tf_buffer); + + // Create tf2_ros::TransformBroadcaster + tf_broadcaster = std::make_unique(node); + // Init services + traj_mode_srv = this->create_service( + "set_trajectory_mode", std::bind(&TrajectoryControlNode::set_trajectory_mode, this, + std::placeholders::_1, std::placeholders::_2)); + traj_style_srv = this->create_service( + "set_trajectory_style", std::bind(&TrajectoryControlNode::set_trajectory_style_service, + this, std::placeholders::_1, std::placeholders::_2)); // init services - traj_mode_srv = nh->advertiseService("set_trajectory_mode", - &TrajectoryControlNode::set_trajectory_mode, this); + // traj_mode_srv = nh->advertiseService("set_trajectory_mode", + // &TrajectoryControlNode::set_trajectory_mode, this); prev_time = 0; - return true; + // return true; } bool TrajectoryControlNode::execute() { if (got_odom) { // publish trajectory visualization - marker_vis_pub.publish(trajectory->get_markers(1, 1, 0)); + marker_vis_pub->publish(trajectory->get_markers(1, 1, 0)); // figure out what duration into the trajectory we are - ros::Time now = ros::Time::now(); - double current_time = (now - start_time).toSec(); + // ros::Time now = ros::Time::now(); + auto now = this->now(); + double current_time = (now - start_time).seconds(); double time_past_end = current_time - trajectory->get_duration(); double tracking_error = tflib::to_tf(tracking_point.pose.pose.position) .distance(tflib::to_tf(odom.pose.pose.position)); - std_msgs::Float32 tracking_error_msg; + std_msgs::msg::Float32 tracking_error_msg; tracking_error_msg.data = tracking_error; - tracking_error_pub.publish(tracking_error_msg); + tracking_error_pub->publish(tracking_error_msg); if (time_past_end >= 0 && - trajectory_mode != core_trajectory_controller::TrajectoryMode::Request::REWIND) { - start_time += ros::Duration(time_past_end); + trajectory_mode != core_trajectory_msgs::srv::TrajectoryMode::Request::REWIND) { + std::chrono::duration duration_past_end(time_past_end); + start_time += rclcpp::Duration(duration_past_end); current_time = trajectory->get_duration(); - } else if (trajectory_mode == core_trajectory_controller::TrajectoryMode::Request::PAUSE || + } else if (trajectory_mode == core_trajectory_msgs::srv::TrajectoryMode::Request::PAUSE || tracking_error >= tracking_point_distance_limit) { - start_time += ros::Duration(current_time - prev_time); - current_time = (now - start_time).toSec(); + double elapsed_time = current_time - prev_time; + std::chrono::duration duration_elapsed(elapsed_time); + start_time += rclcpp::Duration(duration_elapsed); + current_time = (now - start_time).seconds(); } // TODO: zero tracking point velocity in rewind and pause modes - else if (trajectory_mode == core_trajectory_controller::TrajectoryMode::Request::REWIND && + else if (trajectory_mode == core_trajectory_msgs::srv::TrajectoryMode::Request::REWIND && current_time > 0) { - start_time += ros::Duration(2.0 * (current_time - prev_time)); - current_time = (now - start_time).toSec(); + // start_time += rclcpp::Duration(2.0 * (current_time - prev_time)); + // current_time = (now - start_time).seconds(); + double duration_seconds = 2.0 * (current_time - prev_time); + rclcpp::Duration duration{std::chrono::duration(duration_seconds)}; + + start_time = start_time + duration; + + current_time = (now - start_time).seconds(); } prev_time = current_time; @@ -146,7 +263,7 @@ bool TrajectoryControlNode::execute() { bool valid = trajectory->get_odom(current_time, &tracking_point); // set the velocity of the tracking point based on the velocity from a different time if (valid && velocity_look_ahead_time != 0) { - nav_msgs::Odometry velocity_look_ahead_point; + nav_msgs::msg::Odometry velocity_look_ahead_point; bool vel_valid = trajectory->get_odom(current_time + velocity_look_ahead_time, &velocity_look_ahead_point); if (vel_valid) { @@ -156,7 +273,7 @@ bool TrajectoryControlNode::execute() { // double elapsed = monitor.toc("get_odom"); // ROS_INFO_STREAM("get_odom elapsed: " << elapsed); - if (trajectory_mode == core_trajectory_controller::TrajectoryMode::Request::ROBOT_POSE) { + if (trajectory_mode == core_trajectory_msgs::srv::TrajectoryMode::Request::ROBOT_POSE) { // if(!valid){ tracking_point = odom; tracking_point.twist.twist.linear.x = 0; @@ -170,17 +287,17 @@ bool TrajectoryControlNode::execute() { if (valid) { trajectory->get_odom(current_time + 1.0, &look_ahead_point); - tf::Vector3 tp = tflib::to_tf(tracking_point.pose.pose.position); + tf2::Vector3 tp = tflib::to_tf(tracking_point.pose.pose.position); double start; bool success = trajectory->get_trajectory_distance_at_closest_point(tp, &start); if (success) { Trajectory sub_trajectory = trajectory->get_subtrajectory_distance(start, start + 1000.); - segment_marker_vis_pub.publish(sub_trajectory.get_markers(0, 1, 1)); - core_trajectory_msgs::TrajectoryXYZVYaw segment_msg = + segment_marker_vis_pub->publish(sub_trajectory.get_markers(0, 1, 1)); + core_trajectory_msgs::msg::TrajectoryXYZVYaw segment_msg = sub_trajectory.get_TrajectoryXYZVYaw(); segment_msg.header.stamp = tracking_point.header.stamp; - segment_pub.publish(segment_msg); + segment_pub->publish(segment_msg); } } @@ -190,8 +307,8 @@ bool TrajectoryControlNode::execute() { // TODO: decide whether or not this is a good idea // When the tracking point reaches the end of the trajectory, the velocity gets set to zero if (time_past_end >= 0 || - trajectory_mode == core_trajectory_controller::TrajectoryMode::Request::PAUSE || - trajectory_mode == core_trajectory_controller::TrajectoryMode::Request::REWIND) { + trajectory_mode == core_trajectory_msgs::srv::TrajectoryMode::Request::PAUSE || + trajectory_mode == core_trajectory_msgs::srv::TrajectoryMode::Request::REWIND) { tracking_point.twist.twist.linear.x = 0; tracking_point.twist.twist.linear.y = 0; tracking_point.twist.twist.linear.z = 0; @@ -207,22 +324,23 @@ bool TrajectoryControlNode::execute() { look_ahead_point.twist.twist.angular.z = 0; } - std_msgs::Float32 velocity_msg; + std_msgs::msg::Float32 velocity_msg; velocity_msg.data = sqrt(tracking_point.twist.twist.linear.x * tracking_point.twist.twist.linear.x + tracking_point.twist.twist.linear.y * tracking_point.twist.twist.linear.y + tracking_point.twist.twist.linear.z * tracking_point.twist.twist.linear.z); - velocity_pub.publish(velocity_msg); - tracking_point_pub.publish(tracking_point); - look_ahead_pub.publish(look_ahead_point); + velocity_pub->publish(velocity_msg); + tracking_point_pub->publish(tracking_point); + look_ahead_pub->publish(look_ahead_point); // create a tf for the tracking point odom + /* tf::StampedTransform transform = tflib::to_tf(tracking_point, tf_prefix + "/tracking_point"); tf::StampedTransform transform_stabilized = tflib::get_stabilized(transform); transform_stabilized.child_frame_id_ = tf_prefix + "/tracking_point_stabilized"; - broadcaster->sendTransform(transform); - broadcaster->sendTransform(transform_stabilized); + tf_broadcaster->sendTransform(transform); + tf_broadcaster->sendTransform(transform_stabilized); // create a tf for the look ahead odom tf::StampedTransform look_ahead_transform = @@ -232,69 +350,119 @@ bool TrajectoryControlNode::execute() { look_ahead_transform_stabilized.child_frame_id_ = tf_prefix + "/look_ahead_point_stabilized"; - broadcaster->sendTransform(look_ahead_transform); - broadcaster->sendTransform(look_ahead_transform_stabilized); + tf_broadcaster->sendTransform(look_ahead_transform); + tf_broadcaster->sendTransform(look_ahead_transform_stabilized); + */ + geometry_msgs::msg::TransformStamped transform; + transform.header.stamp = now; + transform.header.frame_id = tf_prefix + "/base_link"; // Base frame_id + transform.child_frame_id = tf_prefix + "/tracking_point"; + transform.transform.translation.x = tracking_point.pose.pose.position.x; + transform.transform.translation.y = tracking_point.pose.pose.position.y; + transform.transform.translation.z = tracking_point.pose.pose.position.z; + transform.transform.rotation = tracking_point.pose.pose.orientation; + + auto transform_stabilized = transform; // Apply any stabilization logic here + transform_stabilized.child_frame_id = tf_prefix + "/tracking_point_stabilized"; + + tf_broadcaster->sendTransform(transform); + tf_broadcaster->sendTransform(transform_stabilized); + + // Create a transform for the look ahead odom + geometry_msgs::msg::TransformStamped look_ahead_transform; + look_ahead_transform.header.stamp = now; + look_ahead_transform.header.frame_id = tf_prefix + "/base_link"; // Base frame_id + look_ahead_transform.child_frame_id = tf_prefix + "/look_ahead_point"; + look_ahead_transform.transform.translation.x = look_ahead_point.pose.pose.position.x; + look_ahead_transform.transform.translation.y = look_ahead_point.pose.pose.position.y; + look_ahead_transform.transform.translation.z = look_ahead_point.pose.pose.position.z; + look_ahead_transform.transform.rotation = look_ahead_point.pose.pose.orientation; + + auto look_ahead_transform_stabilized = + look_ahead_transform; // Apply any stabilization logic here + look_ahead_transform_stabilized.child_frame_id = tf_prefix + "/look_ahead_point_stabilized"; + tf_broadcaster->sendTransform(look_ahead_transform); + tf_broadcaster->sendTransform(look_ahead_transform_stabilized); // publish completion percentage - std_msgs::Float32 trajectory_completion_percentage; + std_msgs::msg::Float32 trajectory_completion_percentage; trajectory_completion_percentage.data = current_time / trajectory->get_duration() * 100.f; - trajectory_completion_percentage_pub.publish(trajectory_completion_percentage); + trajectory_completion_percentage_pub->publish(trajectory_completion_percentage); // publish current trajectory time - std_msgs::Float32 trajectory_time; + std_msgs::msg::Float32 trajectory_time; trajectory_time.data = current_time; - trajectory_time_pub.publish(trajectory_time); + trajectory_time_pub->publish(trajectory_time); } return true; } bool TrajectoryControlNode::set_trajectory_mode( - core_trajectory_controller::TrajectoryMode::Request& req, - core_trajectory_controller::TrajectoryMode::Response& res) { + std::shared_ptr request, + std::shared_ptr response) { int prev_trajectory_mode = trajectory_mode; - trajectory_mode = req.mode; + trajectory_mode = request->mode; - if (trajectory_mode == core_trajectory_controller::TrajectoryMode::Request::PAUSE) { + if (trajectory_mode == core_trajectory_msgs::srv::TrajectoryMode::Request::PAUSE) { } - if (trajectory_mode == core_trajectory_controller::TrajectoryMode::Request::ROBOT_POSE) { + if (trajectory_mode == core_trajectory_msgs::srv::TrajectoryMode::Request::ROBOT_POSE) { trajectory->clear(); - } else if (trajectory_mode == core_trajectory_controller::TrajectoryMode::Request::TRACK) { + } else if (trajectory_mode == core_trajectory_msgs::srv::TrajectoryMode::Request::TRACK) { trajectory->clear(); - } else if (trajectory_mode == core_trajectory_controller::TrajectoryMode::Request::SEGMENT) { - if (prev_trajectory_mode != core_trajectory_controller::TrajectoryMode::Request::PAUSE && - prev_trajectory_mode != core_trajectory_controller::TrajectoryMode::Request::REWIND && - prev_trajectory_mode != core_trajectory_controller::TrajectoryMode::Request::SEGMENT) { + } else if (trajectory_mode == core_trajectory_msgs::srv::TrajectoryMode::Request::SEGMENT) { + if (prev_trajectory_mode != core_trajectory_msgs::srv::TrajectoryMode::Request::PAUSE && + prev_trajectory_mode != core_trajectory_msgs::srv::TrajectoryMode::Request::REWIND && + prev_trajectory_mode != core_trajectory_msgs::srv::TrajectoryMode::Request::SEGMENT) { trajectory->clear(); - start_time = ros::Time::now(); + start_time = this->now(); } - } else if (trajectory_mode == core_trajectory_controller::TrajectoryMode::Request::REWIND) { + } else if (trajectory_mode == core_trajectory_msgs::srv::TrajectoryMode::Request::REWIND) { } - res.success = true; + response->success = true; return true; } -void TrajectoryControlNode::traj_callback(core_trajectory_msgs::TrajectoryXYZVYaw traj) { - if (trajectory_mode == core_trajectory_controller::TrajectoryMode::Request::SEGMENT) - trajectory->merge(Trajectory(traj)); +void TrajectoryControlNode::traj_callback( + core_trajectory_msgs::msg::TrajectoryXYZVYaw::ConstSharedPtr traj) { + if (trajectory_mode == core_trajectory_msgs::srv::TrajectoryMode::Request::SEGMENT) + trajectory->merge(Trajectory(*traj)); } -void TrajectoryControlNode::traj_track_callback(core_trajectory_msgs::TrajectoryXYZVYaw traj) { - start_time = ros::Time::now(); +void TrajectoryControlNode::traj_track_callback( + core_trajectory_msgs::msg::TrajectoryXYZVYaw::ConstSharedPtr traj) { + start_time = this->now(); trajectory->clear(); - trajectory->merge(Trajectory(traj)); + trajectory->merge(Trajectory(*traj)); } -void TrajectoryControlNode::odom_callback(nav_msgs::Odometry odom) { +void TrajectoryControlNode::odom_callback(nav_msgs::msg::Odometry::ConstSharedPtr odom) { // this->odom = odom; - if (tflib::transform_odometry(listener, odom, target_frame, target_frame, &(this->odom))) + tf2_ros::Buffer tf_buffer(this->get_clock()); // Initialize with a clock + tf2_ros::TransformListener tf_listener(tf_buffer); + + if (tflib::transform_odometry(&tf_buffer, *odom, target_frame, target_frame, &(this->odom))) got_odom = true; } TrajectoryControlNode::~TrajectoryControlNode() {} -BaseNode* BaseNode::get() { - TrajectoryControlNode* trajectory_control_node = new TrajectoryControlNode(); - return trajectory_control_node; -} +// BaseNode* BaseNode::get() { +// TrajectoryControlNode* trajectory_control_node = new TrajectoryControlNode(); +// return trajectory_control_node; +// } +int main(int argc, char* argv[]) { + // Initialize the ROS 2 client library + rclcpp::init(argc, argv); + + // Create an instance of the TrajectoryControlNode + auto node = std::make_shared(rclcpp::NodeOptions()); + + // Spin the node to process callbacks + rclcpp::spin(node); + + // Clean up and shut down ROS 2 + rclcpp::shutdown(); + return 0; +} \ No newline at end of file diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/CMakeLists.txt b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/CMakeLists.txt index 2b9f88b08..600d3e1cb 100644 --- a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/CMakeLists.txt +++ b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/CMakeLists.txt @@ -12,12 +12,16 @@ find_package(rosidl_default_generators REQUIRED) find_package(std_msgs REQUIRED) find_package(geometry_msgs REQUIRED) find_package(diagnostic_msgs REQUIRED) +find_package(nav_msgs REQUIRED) + rosidl_generate_interfaces(${PROJECT_NAME} msg/WaypointXYZVYaw.msg msg/TrajectoryXYZVYaw.msg msg/FixedTrajectory.msg - DEPENDENCIES std_msgs geometry_msgs diagnostic_msgs + msg/Trajectory.msg + srv/TrajectoryMode.srv + DEPENDENCIES std_msgs geometry_msgs diagnostic_msgs nav_msgs ) ament_export_dependencies(rosidl_default_runtime) diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/msg/Trajectory.msg b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/msg/Trajectory.msg similarity index 100% rename from ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/msg/Trajectory.msg rename to ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/msg/Trajectory.msg diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/srv/TrajectoryMode.srv b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/srv/TrajectoryMode.srv similarity index 100% rename from ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/srv/TrajectoryMode.srv rename to ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/srv/TrajectoryMode.srv diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/rqt_behavior_tree/__init__.py b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/COLCON_IGNORE similarity index 100% rename from ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/rqt_behavior_tree/__init__.py rename to ros_ws/src/robot/autonomy/planning/local/disparity_expansion/COLCON_IGNORE From dcf4e3d9402850dee60455cddaad5a3646f27f7c Mon Sep 17 00:00:00 2001 From: Andrew Jong Date: Wed, 14 Aug 2024 13:28:21 -0400 Subject: [PATCH 19/50] Remove no longer needed perception_pcl src --- ros_ws/src/perception_pcl | 1 - 1 file changed, 1 deletion(-) delete mode 160000 ros_ws/src/perception_pcl diff --git a/ros_ws/src/perception_pcl b/ros_ws/src/perception_pcl deleted file mode 160000 index f12792180..000000000 --- a/ros_ws/src/perception_pcl +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f127921808b1c6fb6237a7e4cf19d16b85a0e43b From 9ff4a7dc87a1511b7833dbfadbfce908f25a07d5 Mon Sep 17 00:00:00 2001 From: Andrew Jong Date: Wed, 14 Aug 2024 13:31:36 -0400 Subject: [PATCH 20/50] Rename disparity_graph_bkp --> disparity_graph --- .../local/{disparity_graph_bkp => disparity_graph}/.gitignore | 0 .../{disparity_graph_bkp => disparity_graph}/CMakeLists.txt | 2 -- .../local/{disparity_graph_bkp => disparity_graph}/LICENSE | 0 .../include/disparity_graph/disparity_graph.h | 0 .../launch/talker.launch | 0 .../local/{disparity_graph_bkp => disparity_graph}/package.xml | 0 .../local/{disparity_graph_bkp => disparity_graph}/readme.md | 0 .../src/disparity_graph.cpp | 0 8 files changed, 2 deletions(-) rename ros_ws/src/robot/autonomy/planning/local/{disparity_graph_bkp => disparity_graph}/.gitignore (100%) rename ros_ws/src/robot/autonomy/planning/local/{disparity_graph_bkp => disparity_graph}/CMakeLists.txt (98%) rename ros_ws/src/robot/autonomy/planning/local/{disparity_graph_bkp => disparity_graph}/LICENSE (100%) rename ros_ws/src/robot/autonomy/planning/local/{disparity_graph_bkp => disparity_graph}/include/disparity_graph/disparity_graph.h (100%) rename ros_ws/src/robot/autonomy/planning/local/{disparity_graph_bkp => disparity_graph}/launch/talker.launch (100%) rename ros_ws/src/robot/autonomy/planning/local/{disparity_graph_bkp => disparity_graph}/package.xml (100%) rename ros_ws/src/robot/autonomy/planning/local/{disparity_graph_bkp => disparity_graph}/readme.md (100%) rename ros_ws/src/robot/autonomy/planning/local/{disparity_graph_bkp => disparity_graph}/src/disparity_graph.cpp (100%) diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/.gitignore b/ros_ws/src/robot/autonomy/planning/local/disparity_graph/.gitignore similarity index 100% rename from ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/.gitignore rename to ros_ws/src/robot/autonomy/planning/local/disparity_graph/.gitignore diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/CMakeLists.txt b/ros_ws/src/robot/autonomy/planning/local/disparity_graph/CMakeLists.txt similarity index 98% rename from ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/CMakeLists.txt rename to ros_ws/src/robot/autonomy/planning/local/disparity_graph/CMakeLists.txt index 3c105724c..69a4fabc6 100644 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/CMakeLists.txt +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_graph/CMakeLists.txt @@ -21,7 +21,6 @@ project(disparity_graph) #) find_package(ament_cmake REQUIRED) -#find_package(disparity_graph REQUIRED) find_package(cv_bridge REQUIRED) find_package(geometry_msgs REQUIRED) find_package(image_geometry REQUIRED) @@ -33,7 +32,6 @@ find_package(std_msgs REQUIRED) find_package(tf2 REQUIRED) find_package(tf2_ros REQUIRED) find_package(tf2_geometry_msgs REQUIRED) -find_package(pcl_conversions REQUIRED) find_package(pcl_ros REQUIRED) find_package(visualization_msgs REQUIRED) find_package(tf2_geometry_msgs REQUIRED) diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/LICENSE b/ros_ws/src/robot/autonomy/planning/local/disparity_graph/LICENSE similarity index 100% rename from ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/LICENSE rename to ros_ws/src/robot/autonomy/planning/local/disparity_graph/LICENSE diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/include/disparity_graph/disparity_graph.h b/ros_ws/src/robot/autonomy/planning/local/disparity_graph/include/disparity_graph/disparity_graph.h similarity index 100% rename from ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/include/disparity_graph/disparity_graph.h rename to ros_ws/src/robot/autonomy/planning/local/disparity_graph/include/disparity_graph/disparity_graph.h diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/launch/talker.launch b/ros_ws/src/robot/autonomy/planning/local/disparity_graph/launch/talker.launch similarity index 100% rename from ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/launch/talker.launch rename to ros_ws/src/robot/autonomy/planning/local/disparity_graph/launch/talker.launch diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/package.xml b/ros_ws/src/robot/autonomy/planning/local/disparity_graph/package.xml similarity index 100% rename from ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/package.xml rename to ros_ws/src/robot/autonomy/planning/local/disparity_graph/package.xml diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/readme.md b/ros_ws/src/robot/autonomy/planning/local/disparity_graph/readme.md similarity index 100% rename from ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/readme.md rename to ros_ws/src/robot/autonomy/planning/local/disparity_graph/readme.md diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/src/disparity_graph.cpp b/ros_ws/src/robot/autonomy/planning/local/disparity_graph/src/disparity_graph.cpp similarity index 100% rename from ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/src/disparity_graph.cpp rename to ros_ws/src/robot/autonomy/planning/local/disparity_graph/src/disparity_graph.cpp From a91ee3fa0500e0d6ccb869c841ad8e8fa9f29e73 Mon Sep 17 00:00:00 2001 From: Andrew Jong Date: Wed, 14 Aug 2024 13:32:27 -0400 Subject: [PATCH 21/50] Add libpcl-dev and ros-humble-perception-pcl to apt install --- docker/Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docker/Dockerfile b/docker/Dockerfile index 1adcf428f..f29d354bd 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -68,6 +68,8 @@ RUN apt-get remove -y libopenvdb*; apt-get update && apt-get install -y libboost cd ..; rm -rf /opt/openvdb/build RUN /opt/ros/humble/lib/mavros/install_geographiclib_datasets.sh +# Install ROS2 packages +RUN apt install ros-humble-tf2* ros-humble-perception-pcl libpcl-dev -y RUN wget https://packages.osrfoundation.org/gazebo.gpg -O /usr/share/keyrings/pkgs-osrf-archive-keyring.gpg RUN echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/pkgs-osrf-archive-keyring.gpg] http://packages.osrfoundation.org/gazebo/ubuntu-stable $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/gazebo-stable.list > /dev/null From 01123aa2d28d8cc69bad0927299acb4e48c9ba44 Mon Sep 17 00:00:00 2001 From: Andrew Jong Date: Wed, 14 Aug 2024 13:37:34 -0400 Subject: [PATCH 22/50] Add missing PCL_LIBRARIES to target_link_libraries --- .../planning/local/disparity_graph/CMakeLists.txt | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_graph/CMakeLists.txt b/ros_ws/src/robot/autonomy/planning/local/disparity_graph/CMakeLists.txt index 69a4fabc6..08155ddaf 100644 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_graph/CMakeLists.txt +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_graph/CMakeLists.txt @@ -26,16 +26,16 @@ find_package(geometry_msgs REQUIRED) find_package(image_geometry REQUIRED) find_package(image_transport REQUIRED) find_package(nav_msgs REQUIRED) +find_package(pcl_conversions REQUIRED) +find_package(pcl_ros REQUIRED) find_package(rclcpp REQUIRED) find_package(sensor_msgs REQUIRED) find_package(std_msgs REQUIRED) find_package(tf2 REQUIRED) -find_package(tf2_ros REQUIRED) find_package(tf2_geometry_msgs REQUIRED) -find_package(pcl_ros REQUIRED) -find_package(visualization_msgs REQUIRED) find_package(tf2_geometry_msgs REQUIRED) -find_package(pcl_conversions REQUIRED) +find_package(tf2_ros REQUIRED) +find_package(visualization_msgs REQUIRED) # CONFIGURE OPENCV find_package(OpenCV REQUIRED) @@ -95,7 +95,9 @@ $) target_link_libraries(disparity_graph ${catkin_LIBRARIES} - ${OpenCV_LIBS}) + ${OpenCV_LIBS} + ${PCL_LIBRARIES} + ) From e9d7277cac841cc7f43861af3d57c9c9561bc274 Mon Sep 17 00:00:00 2001 From: Robbi Exley Date: Fri, 16 Aug 2024 18:14:47 -0400 Subject: [PATCH 23/50] In progress (Andrew commit) --- .../local/disparity_expansion/COLCON_IGNORE | 0 .../src/disparity_expansion.cpp | 835 +++++++++--------- ros_ws/src/robot/robot_bringup/CMakeLists.txt | 1 + 3 files changed, 422 insertions(+), 414 deletions(-) delete mode 100644 ros_ws/src/robot/autonomy/planning/local/disparity_expansion/COLCON_IGNORE diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/COLCON_IGNORE b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/COLCON_IGNORE deleted file mode 100644 index e69de29bb..000000000 diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_expansion.cpp b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_expansion.cpp index a4ecc3da2..746966093 100755 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_expansion.cpp +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_expansion.cpp @@ -1,44 +1,46 @@ /* -* Copyright (c) 2016 Carnegie Mellon University, Author -* -* For License information please see the LICENSE file in the root directory. -* -*/ + * Copyright (c) 2016 Carnegie Mellon University, Author + * + * For License information please see the LICENSE file in the root directory. + * + */ -//Applies C-Space expansion on disparity images. +// Applies C-Space expansion on disparity images. /* -#include "ros/ros.h" -#include "sensor_msgs/Image.h" -#include "sensor_msgs/CameraInfo.h" -#include "stereo_msgs/DisparityImage.h" -#include "geometry_msgs/PolygonStamped.h" -#include "visualization_msgs/MarkerArray.h" -#include "std_msgs/Header.h" #include -#include "opencv2/core/core.hpp" -#include #include -#include #include -#include #include #include -#include "tf/tf.h" -#include -#include +#include +#include #include -*/ +#include +#include +#include -#define SCALE 2.0 // num_units/pixel -//#define lut_max_disparity_ 165 // units +#include "geometry_msgs/PolygonStamped.h" +#include "opencv2/core/core.hpp" +#include "ros/ros.h" +#include "sensor_msgs/CameraInfo.h" +#include "sensor_msgs/Image.h" +#include "std_msgs/Header.h" +#include "stereo_msgs/DisparityImage.h" +#include "tf/tf.h" +#include "visualization_msgs/MarkerArray.h" +*/ + +#define SCALE 2.0 // num_units/pixel +// #define lut_max_disparity_ 165 // units #include #include + #include #include -#include #include #include +#include #include "opencv2/core/core.hpp" #include "rclcpp/rclcpp.hpp" @@ -50,38 +52,36 @@ #include #include #include - -#include -#include #include -#include + +#include #include #include #include #include #include #include +#include #include -#include +#include +#include -//#define SCALE 2.0 // num_units/pixel -//#define lut_max_disparity_ 165 // units -//#define robot_radius_ 2.0 // in meters -//for 2times Robsize = 0.0173 at 40m -//15 = 0.0677 +// #define SCALE 2.0 // num_units/pixel +// #define lut_max_disparity_ 165 // units +// #define robot_radius_ 2.0 // in meters +// for 2times Robsize = 0.0173 at 40m +// 15 = 0.0677 #define DEPTH_ERROR_COEFF 0.0177 -//#define robot_radius_ 2.0 // in meters -//for 2times Robsize = 0.0173 at 40m -//15 = 0.0677/ -//#define DEPTH_ERROR_COEFF 0.0177 +// #define robot_radius_ 2.0 // in meters +// for 2times Robsize = 0.0173 at 40m +// 15 = 0.0677/ +// #define DEPTH_ERROR_COEFF 0.0177 typedef pcl::PointCloud PointCloud; -class disparity_expansion : public rclcpp::Node -{ - -public: - disparity_expansion(const rclcpp::NodeOptions & options = rclcpp::NodeOptions()); +class disparity_expansion : public rclcpp::Node { + public: + disparity_expansion(const rclcpp::NodeOptions& options = rclcpp::NodeOptions()); rclcpp::Publisher::SharedPtr expansion_cloud_pub; rclcpp::Publisher::SharedPtr expanded_disparity_fg_pub; @@ -96,12 +96,11 @@ class disparity_expansion : public rclcpp::Node bool got_cam_info; image_geometry::PinholeCameraModel model_; - void getCamInfo(const sensor_msgs::msg::CameraInfo::ConstSharedPtr &msg_info); - void stereoDisparityCb(const stereo_msgs::msg::DisparityImage::ConstSharedPtr &msg_disp); + void getCamInfo(const sensor_msgs::msg::CameraInfo::ConstSharedPtr& msg_info); + void stereoDisparityCb(const stereo_msgs::msg::DisparityImage::ConstSharedPtr& msg_disp); void generateExpansionLUT(); - struct cell - { + struct cell { unsigned int idx1; unsigned int idx2; }; @@ -117,139 +116,135 @@ class disparity_expansion : public rclcpp::Node unsigned int width, height; }; -//################################################################################################################################################################################ -//################################################################################################################################################################################ +// ################################################################################################################################################################################ +// ################################################################################################################################################################################ -void disparity_expansion::generateExpansionLUT() -{ +void disparity_expansion::generateExpansionLUT() { bool debug = false; - if(debug) - { + if (debug) { RCLCPP_WARN(this->get_logger(), "Expansion LUT Debug disabled creation"); LUT_ready = true; } - if(LUT_ready) - { - RCLCPP_ERROR(this->get_logger(),"LUT all ready"); -// sleep(1); + if (LUT_ready) { + RCLCPP_ERROR(this->get_logger(), "LUT all ready"); + // sleep(1); return; } double center_x = cx_; double center_y = cy_; double constant_x = 1.0 / fx_; double constant_y = 1.0 / fy_; - RCLCPP_INFO(this->get_logger(),"Fx Fy Cx Cy: %f %f , %f %f \nW H Baseline: %d %d %f",fx_,fy_,cx_,cy_,width,height,baseline); - double r = robot_radius_;//expansion radius in cm - int u1,u2,v1,v2; - double x,y,z; + RCLCPP_INFO(this->get_logger(), "Fx Fy Cx Cy: %f %f , %f %f \nW H Baseline: %d %d %f", fx_, fy_, + cx_, cy_, width, height, baseline); + double r = robot_radius_; // expansion radius in cm + int u1, u2, v1, v2; + double x, y, z; double disparity; - - for(unsigned int disp_idx = 1;disp_idx< lut_max_disparity_ ;disp_idx++) - { -// z = depth*0.01;//cm to m - disparity = disp_idx/SCALE;//1 cell = 0.5m, z is in meters - r = robot_radius_;// * exp(DEPTH_ERROR_COEFF*z); + for (unsigned int disp_idx = 1; disp_idx < lut_max_disparity_; disp_idx++) { + // z = depth*0.01;//cm to m + disparity = disp_idx / SCALE; // 1 cell = 0.5m, z is in meters + r = robot_radius_; // * exp(DEPTH_ERROR_COEFF*z); z = baseline * fx_ / disparity; - double disp_new = baseline * fx_/(z - robot_radius_) + 0.5; - table_d[disp_idx] = disp_new ; -// ROS_INFO("REAL EXPANDED: %f , %f",disparity,table_d[disp_idx]); + double disp_new = baseline * fx_ / (z - robot_radius_) + 0.5; + table_d[disp_idx] = disp_new; + // ROS_INFO("REAL EXPANDED: %f , %f",disparity,table_d[disp_idx]); + for (int v = (int)height - 1; v >= 0; --v) { + y = (v - center_y) * z * constant_y; - for ( int v = ( int ) height - 1; v >= 0; --v ) - { - y = ( v - center_y ) * z * constant_y; - - double beta = atan2(z,y); - double beta1 = asin(r/sqrt(z*z + y*y)); + double beta = atan2(z, y); + double beta1 = asin(r / sqrt(z * z + y * y)); - double r1 = z/tan(beta+beta1); - double r2 = z/tan(beta-beta1); - v1 = fy_*r1/z + center_y; - v2 = fy_*r2/z + center_y; + double r1 = z / tan(beta + beta1); + double r2 = z / tan(beta - beta1); + v1 = fy_ * r1 / z + center_y; + v2 = fy_ * r2 / z + center_y; - if((v2-v1)<0) - RCLCPP_ERROR(this->get_logger(),"Something MESSED %d %d %d",v1,v2,disp_idx); + if ((v2 - v1) < 0) + RCLCPP_ERROR(this->get_logger(), "Something MESSED %d %d %d", v1, v2, disp_idx); - if(v1 < 0) v1 = 0; - if(v1 > (height-1)) v1 = height-1; + if (v1 < 0) v1 = 0; + if (v1 > (height - 1)) v1 = height - 1; - if(v2 < 0) v2 = 0; - if(v2 > (height-1)) v2 = height-1; + if (v2 < 0) v2 = 0; + if (v2 > (height - 1)) v2 = height - 1; - table_v[disp_idx][v].idx1 = v1 ; - table_v[disp_idx][v].idx2 = v2 ; + table_v[disp_idx][v].idx1 = v1; + table_v[disp_idx][v].idx2 = v2; } - for ( int u = ( int ) width - 1; u >= 0; --u ) - { - x = ( u - center_x ) * z * constant_x; - - double alpha = atan2(z,x); - double alpha1 = asin(r/sqrt(z*z + x*x)); + for (int u = (int)width - 1; u >= 0; --u) { + x = (u - center_x) * z * constant_x; - double r1 = z/tan(alpha+alpha1); - double r2 = z/tan(alpha-alpha1); - u1 = fx_*r1/z + center_x; - u2 = fx_*r2/z + center_x; + double alpha = atan2(z, x); + double alpha1 = asin(r / sqrt(z * z + x * x)); - if((u2-u1)<0) - RCLCPP_ERROR(this->get_logger(), "Something MESSED %d %d %d",u1,u2,disp_idx); + double r1 = z / tan(alpha + alpha1); + double r2 = z / tan(alpha - alpha1); + u1 = fx_ * r1 / z + center_x; + u2 = fx_ * r2 / z + center_x; - if(u1 < 0) u1 = 0; - if(u1 > (width-1)) u1 = width-1; + if ((u2 - u1) < 0) + RCLCPP_ERROR(this->get_logger(), "Something MESSED %d %d %d", u1, u2, disp_idx); - if(u2 < 0) u2 = 0; - if(u2 > (width-1)) u2 = width-1; + if (u1 < 0) u1 = 0; + if (u1 > (width - 1)) u1 = width - 1; - table_u[disp_idx][u].idx1 = u1 ; - table_u[disp_idx][u].idx2 = u2 ; + if (u2 < 0) u2 = 0; + if (u2 > (width - 1)) u2 = width - 1; + table_u[disp_idx][u].idx1 = u1; + table_u[disp_idx][u].idx2 = u2; } } -// for ( int u = (width - 1); u >= 0; --u ) -// { -// int d = 199; -// ROS_ERROR("window disp_idx u1 u2 \t %d \t%d \t%d",u,table_u[d][u].idx1,table_u[d][u].idx2); -// } - RCLCPP_WARN(this->get_logger(), "Expansion LUT created: LUT MAX: %d , ROBOT SIZE: %f",lut_max_disparity_/2,robot_radius_); + // for ( int u = (width - 1); u >= 0; --u ) + // { + // int d = 199; + // ROS_ERROR("window disp_idx u1 u2 \t %d \t%d + // \t%d",u,table_u[d][u].idx1,table_u[d][u].idx2); + // } + RCLCPP_WARN(this->get_logger(), "Expansion LUT created: LUT MAX: %d , ROBOT SIZE: %f", + lut_max_disparity_ / 2, robot_radius_); LUT_ready = true; } -//################################################################################################################ -//################################################################################################################ -void disparity_expansion::getCamInfo(const sensor_msgs::msg::CameraInfo::ConstSharedPtr &msg_info) -{ - if(got_cam_info) - return; - model_.fromCameraInfo ( msg_info ); - RCLCPP_INFO_ONCE(this->get_logger(), "Cam Info Recvd Fx Fy Cx Cy: %f %f , %f %f",model_.fx(),model_.fy(),model_.cx(),model_.cy()); - cx_ = model_.cx()/downsample_scale; - cy_ = model_.cy()/downsample_scale; - fx_ = fy_ = model_.fx()/downsample_scale; - width = msg_info->width/downsample_scale; - height = msg_info->height/downsample_scale; - baseline = -msg_info->p[3]/msg_info->p[0]; - baseline *=downsample_scale; +// ################################################################################################################ +// ################################################################################################################ +void disparity_expansion::getCamInfo(const sensor_msgs::msg::CameraInfo::ConstSharedPtr& msg_info) { + if (got_cam_info) return; + model_.fromCameraInfo(msg_info); + RCLCPP_INFO_ONCE(this->get_logger(), "Cam Info Recvd Fx Fy Cx Cy: %f %f , %f %f", model_.fx(), + model_.fy(), model_.cx(), model_.cy()); + cx_ = model_.cx() / downsample_scale; + cy_ = model_.cy() / downsample_scale; + fx_ = fy_ = model_.fx() / downsample_scale; + width = msg_info->width / downsample_scale; + height = msg_info->height / downsample_scale; + baseline = -msg_info->p[3] / msg_info->p[0]; + baseline *= downsample_scale; generateExpansionLUT(); got_cam_info = true; + RCLCPP_INFO(this->get_logger(), "Baseline: %.4f meters", baseline); + RCLCPP_INFO(this->get_logger(), "Focal length (fx): %.4f pixels", fx_); } +void disparity_expansion::stereoDisparityCb( + const stereo_msgs::msg::DisparityImage::ConstSharedPtr& + msg_disp) { // sensor_msgs::Image::ConstPtr &msg_disp){ + // ROS_INFO("Disparity CB"); + // dimage = *msg_disp; + std::cout << "hello" << std::endl; -void disparity_expansion::stereoDisparityCb(const stereo_msgs::msg::DisparityImage::ConstSharedPtr &msg_disp){//sensor_msgs::Image::ConstPtr &msg_disp){ -// ROS_INFO("Disparity CB"); -// dimage = *msg_disp; - std::cout << "hello" << std::endl; - - if(!LUT_ready) - { + if (!LUT_ready) { auto& clk = *this->get_clock(); - RCLCPP_INFO_THROTTLE(this->get_logger(),clk, 1,"LUT not ready yet, not processing disparity"); + RCLCPP_INFO_THROTTLE(this->get_logger(), clk, 1, + "LUT not ready yet, not processing disparity"); return; } -// generateExpansionLUT(); -//################################################################################# + // generateExpansionLUT(); + // ################################################################################# auto img_msg = std::make_shared(); img_msg->header = msg_disp->header; img_msg->height = msg_disp->image.height; @@ -258,67 +253,68 @@ void disparity_expansion::stereoDisparityCb(const stereo_msgs::msg::DisparityIma img_msg->is_bigendian = msg_disp->image.is_bigendian; img_msg->step = msg_disp->image.step; img_msg->data = msg_disp->image.data; -//#########################################################3 + // #########################################################3 -// auto disparity_img_msg = msg_disp->image; + // auto disparity_img_msg = msg_disp->image; cv_bridge::CvImagePtr fg_msg(new cv_bridge::CvImage()); cv_bridge::CvImagePtr bg_msg(new cv_bridge::CvImage()); - cv_bridge::CvImageConstPtr cv_ptrdisparity; - try - { - cv_ptrdisparity = cv_bridge::toCvShare(img_msg, sensor_msgs::image_encodings::TYPE_32FC1); - } - catch (cv_bridge::Exception& e) - { - RCLCPP_ERROR(this->get_logger(),"cv_bridge exception: %s", e.what()); - return; + try { + cv_ptrdisparity = cv_bridge::toCvShare(img_msg, sensor_msgs::image_encodings::TYPE_32FC1); + } catch (cv_bridge::Exception& e) { + RCLCPP_ERROR(this->get_logger(), "cv_bridge exception: %s", e.what()); + return; } cv::Mat disparity32F = cv_ptrdisparity->image; + if (disparity32F.empty()) { + RCLCPP_ERROR(this->get_logger(), "Received empty disparity image"); + return; + } cv::resize(disparity32F, disparity32F, cv::Size(), 0.5, 0.5, cv::INTER_AREA); + if (disparity32F.empty()) { + RCLCPP_ERROR(this->get_logger(), "Resized disparity image is empty"); + return; + } cv::Mat disparity_fg; cv::Mat disparity_bg; cv::Mat disparity32F_bg; - - -// const sensor_msgs::ImageConstPtr my_ptr = &dimage; -// cv::Mat dummy(msg_disp->image.height,msg_disp->image.width,CV_32FC4); -// dummy.copyTo(free_msg->image); -// free_msg->image.zeros(msg_disp->image.height,msg_disp->image.width,CV_32FC4); -// free_msg->header = dimage.header; -// free_msg->encoding = sensor_msgs::image_encodings::TYPE_32FC4; - try - { -// fg_msg = cv_bridge::toCvCopy(dimage, sensor_msgs::image_encodings::TYPE_32FC1); -// bg_msg = cv_bridge::toCvCopy(dimage, sensor_msgs::image_encodings::TYPE_32FC1); -// di_msg = cv_bridge::toCvCopy(dimage, sensor_msgs::image_encodings::TYPE_32FC1); - -// fg_msg->image.zeros(disparity32F.rows,disparity32F.cols,CV_32FC1);// = disparity32F; -// bg_msg->image.zeros(disparity32F.rows,disparity32F.cols,CV_32FC1);// .create(disparity32F.rows,disparity32F.cols,CV_32F);// = disparity32F; -// di_msg->image.zeros(disparity32F.rows,disparity32F.cols,CV_32FC1);// .create(disparity32F.rows,disparity32F.cols,CV_32F);// = disparity32F; - disparity32F.copyTo(fg_msg->image ); + // const sensor_msgs::ImageConstPtr my_ptr = &dimage; + // cv::Mat dummy(msg_disp->image.height,msg_disp->image.width,CV_32FC4); + // dummy.copyTo(free_msg->image); + // free_msg->image.zeros(msg_disp->image.height,msg_disp->image.width,CV_32FC4); + // free_msg->header = dimage.header; + // free_msg->encoding = sensor_msgs::image_encodings::TYPE_32FC4; + try { + // fg_msg = cv_bridge::toCvCopy(dimage, sensor_msgs::image_encodings::TYPE_32FC1); + // bg_msg = cv_bridge::toCvCopy(dimage, sensor_msgs::image_encodings::TYPE_32FC1); + // di_msg = cv_bridge::toCvCopy(dimage, sensor_msgs::image_encodings::TYPE_32FC1); + + // fg_msg->image.zeros(disparity32F.rows,disparity32F.cols,CV_32FC1);// = + // disparity32F; bg_msg->image.zeros(disparity32F.rows,disparity32F.cols,CV_32FC1);// + // .create(disparity32F.rows,disparity32F.cols,CV_32F);// = disparity32F; + // di_msg->image.zeros(disparity32F.rows,disparity32F.cols,CV_32FC1);// + // .create(disparity32F.rows,disparity32F.cols,CV_32F);// = disparity32F; + disparity32F.copyTo(fg_msg->image); disparity32F.copyTo(bg_msg->image); disparity32F.copyTo(disparity_fg); disparity32F.copyTo(disparity_bg); disparity32F.copyTo(disparity32F_bg); - } - catch (cv_bridge::Exception& e) - { - RCLCPP_ERROR(this->get_logger(),"cv_bridge exception: %s", e.what()); + } catch (cv_bridge::Exception& e) { + RCLCPP_ERROR(this->get_logger(), "cv_bridge exception: %s", e.what()); return; } - fg_msg->header = msg_disp->header; + fg_msg->header = msg_disp->header; fg_msg->encoding = sensor_msgs::image_encodings::TYPE_32FC1; - bg_msg->header = msg_disp->header; + bg_msg->header = msg_disp->header; bg_msg->encoding = sensor_msgs::image_encodings::TYPE_32FC1; -// bg_msg->image = bg_msg->image + INFINITY; -// fg_msg->image = fg_msg->image - INFINITY; - if(1)//make cloud + // bg_msg->image = bg_msg->image + INFINITY; + // fg_msg->image = fg_msg->image - INFINITY; + if (1) // make cloud { // Use correct principal point from calibration float center_x = cx_; @@ -327,71 +323,78 @@ void disparity_expansion::stereoDisparityCb(const stereo_msgs::msg::DisparityIma float constant_x = 1.0 / fx_; float constant_y = 1.0 / fy_; -// if ( di_msg->encoding == sensor_msgs::image_encodings::TYPE_32FC1 ) + // if ( di_msg->encoding == sensor_msgs::image_encodings::TYPE_32FC1 ) { RCLCPP_INFO_ONCE(this->get_logger(), "IMG TYPE 32FC, GOOD"); -// int row_step = dimage.step / sizeof ( float ); -// const float* disparity_row = reinterpret_cast ( &dimage.data[0] ); + // int row_step = dimage.step / sizeof ( float ); + // const float* disparity_row = reinterpret_cast ( + // &dimage.data[0] ); rclcpp::Time start = this->get_clock()->now(); float padding = padding_; - for ( int v = ( int ) height - 2; (v >= 0); v-=1 ) - { - for ( int u = ( int ) width - 1; u >= 0; u-=1 ) - { - float disparity_value = disparity32F.at(v,u);//disparity_row[v * row_step + u];// + 0.5; - if(!std::isnan(double(disparity_value)) && ((int(disparity_value*SCALE)+1) < lut_max_disparity_) && ((int(disparity_value*SCALE)+1) > 0))//expand + for (int v = (int)height - 2; (v >= 0); v -= 1) { + for (int u = (int)width - 1; u >= 0; u -= 1) { + float disparity_value = + disparity32F.at(v, u); // disparity_row[v * row_step + u];// + 0.5; + if (!std::isnan(double(disparity_value)) && + ((int(disparity_value * SCALE) + 1) < lut_max_disparity_) && + ((int(disparity_value * SCALE) + 1) > 0)) // expand { -// disparity_value = disparity32F.at(v,u)+0.5; - unsigned int u1 = table_u[int(disparity_value*SCALE)+1][u].idx1; - unsigned int u2 = table_u[int(disparity_value*SCALE)+1][u].idx2; - -// unsigned int v1 = v;//table_v[int(disparity_value*SCALE)+1][v].idx1; -// unsigned int v2 = v+1;//table_v[int(disparity_value*SCALE)+1][v].idx2; - -// if(v1 <0 || u1 <0 || v2 >=height || u2>=width || (u2-u1)<=0 || (v2-v1)<=0) -// { -// ROS_ERROR("U Expansion out of img bounds with disparity: %f",disparity_value); -// ROS_ERROR("u1 u2 v1 v2 %d %d \t %d %d",u1,u2,v1,v2); -// continue; -// } - cv::Rect roi = cv::Rect(u1,v,(u2-u1),1); + // disparity_value = disparity32F.at(v,u)+0.5; + unsigned int u1 = table_u[int(disparity_value * SCALE) + 1][u].idx1; + unsigned int u2 = table_u[int(disparity_value * SCALE) + 1][u].idx2; + + // unsigned int v1 = + // v;//table_v[int(disparity_value*SCALE)+1][v].idx1; + // unsigned int v2 = + // v+1;//table_v[int(disparity_value*SCALE)+1][v].idx2; + + // if(v1 <0 || u1 <0 || v2 >=height || u2>=width || + // (u2-u1)<=0 || (v2-v1)<=0) + // { + // ROS_ERROR("U Expansion out of img bounds with + // disparity: %f",disparity_value); ROS_ERROR("u1 + // u2 v1 v2 %d %d \t %d %d",u1,u2,v1,v2); + // continue; + // } + if (disparity32F.empty()) { + RCLCPP_ERROR(this->get_logger(), "disparity32F matrix is empty."); + return; + } + + cv::Rect roi = cv::Rect(u1, v, (u2 - u1), 1); cv::Mat submat_t = disparity32F(roi).clone(); double min, max; - cv::Point p1,p2; - int min_idx,max_idx; -// cv::minMaxIdx(disparity32F(roi), &min, &max,&min_idx,&max_idx); - cv::minMaxLoc(disparity32F(roi), &min, &max,&p1,&p2); + cv::Point p1, p2; + int min_idx, max_idx; + // cv::minMaxIdx(disparity32F(roi), &min, + // &max,&min_idx,&max_idx); + cv::minMaxLoc(disparity32F(roi), &min, &max, &p1, &p2); min_idx = p1.x; max_idx = p2.x; - float disp_new_fg = max;// = table_d[int(max*SCALE)]; - float disp_new_bg = min;// = table_d[int(min*SCALE)]; - float disp_to_depth = baseline * fx_/max; + float disp_new_fg = max; // = table_d[int(max*SCALE)]; + float disp_new_bg = min; // = table_d[int(min*SCALE)]; + float disp_to_depth = baseline * fx_ / max; cv::Mat submat; - cv::divide(baseline *fx_,submat_t,submat); - submat = (submat - disp_to_depth);///robot_radius_; -// ROS_INFO("submat at : %f",disp_to_depth); -// std::cout<(0,j); - if(std::isfinite(val)) - { - if(val < ctr*range && val > max_depth) - { + for (int j = 0; j < submat.cols; j++) { + float val = submat.at(0, j); + if (std::isfinite(val)) { + if (val < ctr * range && val > max_depth) { found = true; max_depth = val; } @@ -400,83 +403,75 @@ void disparity_expansion::stereoDisparityCb(const stereo_msgs::msg::DisparityIma ctr++; } disp_to_depth += max_depth; - } - else - disp_to_depth +=padding;// baseline * fx_/min; - + } else + disp_to_depth += padding; // baseline * fx_/min; - disp_new_bg = baseline * fx_/(disp_to_depth /*+ robot_radius_*/) /*- 0.5*/; + disp_new_bg = + baseline * fx_ / (disp_to_depth /*+ robot_radius_*/) /*- 0.5*/; disparity_fg(roi).setTo(disp_new_fg); - disparity_bg(roi).setTo(/*min*/disp_new_bg); + disparity_bg(roi).setTo(/*min*/ disp_new_bg); - int u_temp = u1+max_idx; + int u_temp = u1 + max_idx; if (u_temp >= u) u = u1; else - u = u_temp+1; - } - else - RCLCPP_ERROR_THROTTLE( - this->get_logger(), - *this->get_clock(), - 1, - "BAD disparity during expansion: %f", - disparity_value - ); + u = u_temp + 1; + } else + RCLCPP_ERROR_THROTTLE(this->get_logger(), *this->get_clock(), 1, + "BAD disparity during expansion: %f", + disparity_value); } } -// fg_msg->image.copyTo(disparity32F); + // fg_msg->image.copyTo(disparity32F); disparity_fg.copyTo(disparity32F); disparity_bg.copyTo(disparity32F_bg); - for ( int u = ( int ) width - 2; (u >= 0) && true; u-=1 ) - { - for ( int v = ( int ) height - 1; v >= 0; v-=1 ) - { - float disparity_value = disparity32F.at(v,u) + pixel_error_;//disparity_row[v * row_step + u];// + 0.5; - if(!std::isnan(double(disparity_value)) && ((int(disparity_value*SCALE)+1) < lut_max_disparity_) && ((int(disparity_value*SCALE)+1) > 0))//expand + for (int u = (int)width - 2; (u >= 0) && true; u -= 1) { + for (int v = (int)height - 1; v >= 0; v -= 1) { + float disparity_value = + disparity32F.at(v, u) + + pixel_error_; // disparity_row[v * row_step + u];// + 0.5; + if (!std::isnan(double(disparity_value)) && + ((int(disparity_value * SCALE) + 1) < lut_max_disparity_) && + ((int(disparity_value * SCALE) + 1) > 0)) // expand { - unsigned int v1 = table_v[int(disparity_value*SCALE)+1][v].idx1; - unsigned int v2 = table_v[int(disparity_value*SCALE)+1][v].idx2; + unsigned int v1 = table_v[int(disparity_value * SCALE) + 1][v].idx1; + unsigned int v2 = table_v[int(disparity_value * SCALE) + 1][v].idx2; - cv::Rect roi = cv::Rect(u,v1,1,(v2-v1)); + cv::Rect roi = cv::Rect(u, v1, 1, (v2 - v1)); cv::Mat submat_t = disparity32F_bg(roi).clone(); double min, max; - cv::Point p1,p2; - int min_idx,max_idx; - cv::minMaxLoc(disparity32F(roi), &min, &max,&p1,&p2); + cv::Point p1, p2; + int min_idx, max_idx; + cv::minMaxLoc(disparity32F(roi), &min, &max, &p1, &p2); min_idx = p1.y; max_idx = p2.y; - float disp_new_fg;// = max;// = table_d[int(max*SCALE)]; - float disp_new_bg;// = min;// = table_d[int(min*SCALE)]; - float disp_to_depth = baseline * fx_/max; - disp_new_fg = baseline * fx_/(disp_to_depth - robot_radius_) + pixel_error_; + float disp_new_fg; // = max;// = table_d[int(max*SCALE)]; + float disp_new_bg; // = min;// = table_d[int(min*SCALE)]; + float disp_to_depth = baseline * fx_ / max; + disp_new_fg = + baseline * fx_ / (disp_to_depth - robot_radius_) + pixel_error_; cv::Mat submat; - cv::divide(baseline *fx_,submat_t,submat); - cv::minMaxLoc(disparity32F_bg(roi), &min, &max,&p1,&p2); - disp_to_depth = baseline * fx_/max; - submat = (submat - disp_to_depth);///robot_radius_; -// ROS_INFO("submat at : %f",disp_to_depth); -// std::cout<(j,0); - if(std::isfinite(val)) - { - if(val < ctr*range && val > max_depth) - { + for (int j = 0; j < submat.rows; j++) { + float val = submat.at(j, 0); + if (std::isfinite(val)) { + if (val < ctr * range && val > max_depth) { found = true; max_depth = val; } @@ -485,44 +480,39 @@ void disparity_expansion::stereoDisparityCb(const stereo_msgs::msg::DisparityIma ctr++; } disp_to_depth += max_depth; - } - else - disp_to_depth +=padding;// baseline * fx_/min; + } else + disp_to_depth += padding; // baseline * fx_/min; - disp_new_bg = baseline * fx_/(disp_to_depth + robot_radius_) - pixel_error_; + disp_new_bg = + baseline * fx_ / (disp_to_depth + robot_radius_) - pixel_error_; disp_new_bg = disp_new_bg < 0.0 ? 0.0001 : disp_new_bg; disparity_fg(roi).setTo(disp_new_fg); disparity_bg(roi).setTo(disp_new_bg); - int v_temp = v1+max_idx; + int v_temp = v1 + max_idx; if (v_temp >= v) v = v1; else - v = v_temp+1; - } - else - RCLCPP_ERROR_THROTTLE( - this->get_logger(), - *this->get_clock(), - 1, - "BAD disparity during expansion: %f", - disparity_value -); + v = v_temp + 1; + } else + RCLCPP_ERROR_THROTTLE(this->get_logger(), *this->get_clock(), 1, + "BAD disparity during expansion: %f", + disparity_value); } } fg_msg->image = disparity_fg; bg_msg->image = disparity_bg; - - RCLCPP_INFO(this->get_logger(), "Time: %f \t%f", (this->get_clock()->now() -start).seconds(),1/(this->get_clock()->now()-start).seconds()); - + RCLCPP_INFO(this->get_logger(), "Time: %f \t%f", + (this->get_clock()->now() - start).seconds(), + 1 / (this->get_clock()->now() - start).seconds()); expanded_disparity_fg_pub->publish(*(fg_msg->toImageMsg())); expanded_disparity_bg_pub->publish(*(bg_msg->toImageMsg())); - if(expansion_poly_pub->get_subscription_count() > 0 )//create expansion PCD + if (expansion_poly_pub->get_subscription_count() > 0) // create expansion PCD { visualization_msgs::msg::MarkerArray marker_arr; visualization_msgs::msg::Marker marker; @@ -530,22 +520,23 @@ void disparity_expansion::stereoDisparityCb(const stereo_msgs::msg::DisparityIma marker.ns = "occ_space"; marker.id = 0; marker.type = visualization_msgs::msg::Marker::LINE_STRIP; -// marker.mesh_resource = "package://gazebo_robot_description/meshes/octorotor/riverine_octo_m.dae"; + // marker.mesh_resource = + // "package://gazebo_robot_description/meshes/octorotor/riverine_octo_m.dae"; marker.lifetime = rclcpp::Duration::from_seconds(0.5); marker.action = visualization_msgs::msg::Marker::ADD; - marker.pose.position.x =0;//xyz_centroid[0]; - marker.pose.position.y =0;//xyz_centroid[1]; - marker.pose.position.z =0;//xyz_centroid[2]; + marker.pose.position.x = 0; // xyz_centroid[0]; + marker.pose.position.y = 0; // xyz_centroid[1]; + marker.pose.position.z = 0; // xyz_centroid[2]; tf2::Quaternion q; q.setRPY(0.0, 0.0, 0.0); marker.pose.orientation = tf2::toMsg(q); -// marker.pose.orientation.w = 1; + // marker.pose.orientation.w = 1; float marker_scale = 0.51; marker.scale.x = marker_scale; marker.scale.y = marker_scale; marker.scale.z = marker_scale; - marker.color.a = 0.3; // Don't forget to set the alpha! + marker.color.a = 0.3; // Don't forget to set the alpha! marker.color.r = 0.0; marker.color.g = 0.0; marker.color.b = 0.0; @@ -554,33 +545,32 @@ void disparity_expansion::stereoDisparityCb(const stereo_msgs::msg::DisparityIma poly.header = msg_disp->header; int v = 120; float prev_depth = 0.0; - for ( int v = ( int ) 0; v <= 239; v+=10 ) - { - for ( int u = ( int ) width - 1; u >= 0; u-- ) - { - float depth_value = baseline * fx_ / fg_msg->image.at(v,u);//free_msg->image.at(v,u)[0]; - float depth_diff = fabs(depth_value-prev_depth); + for (int v = (int)0; v <= 239; v += 10) { + for (int u = (int)width - 1; u >= 0; u--) { + float depth_value = baseline * fx_ / + fg_msg->image.at( + v, u); // free_msg->image.at(v,u)[0]; + float depth_diff = fabs(depth_value - prev_depth); prev_depth = depth_value; - if(!std::isnan(depth_value) && !std::isinf(depth_value) && depth_diff < 0.5) - { - marker.color.r = 1.0 * (fg_msg->image.at(v,u)-pixel_error_)/fg_msg->image.at(v,u); - marker.color.g = 1.0 * (pixel_error_)/fg_msg->image.at(v,u); + if (!std::isnan(depth_value) && !std::isinf(depth_value) && + depth_diff < 0.5) { + marker.color.r = 1.0 * (fg_msg->image.at(v, u) - pixel_error_) / + fg_msg->image.at(v, u); + marker.color.g = 1.0 * (pixel_error_) / fg_msg->image.at(v, u); geometry_msgs::msg::Point gm_p; - gm_p.x = ( u - center_x ) * depth_value * constant_x; - gm_p.y = ( v - center_y ) * depth_value * constant_y; + gm_p.x = (u - center_x) * depth_value * constant_x; + gm_p.y = (v - center_y) * depth_value * constant_y; gm_p.z = depth_value; marker.points.push_back(gm_p); - depth_value = baseline * fx_ / bg_msg->image.at(v,u); - gm_p.x = ( u - center_x ) * depth_value * constant_x; - gm_p.y = ( v - center_y ) * depth_value * constant_y; + depth_value = baseline * fx_ / bg_msg->image.at(v, u); + gm_p.x = (u - center_x) * depth_value * constant_x; + gm_p.y = (v - center_y) * depth_value * constant_y; gm_p.z = depth_value; marker.points.push_back(gm_p); // poly.polygon.points.push_back(gm_p); - } - else - { + } else { marker_arr.markers.push_back(marker); marker.points.clear(); marker.id++; @@ -591,83 +581,91 @@ void disparity_expansion::stereoDisparityCb(const stereo_msgs::msg::DisparityIma expansion_poly_pub->publish(marker_arr); } - if(expansion_cloud_pub->get_subscription_count() > 0 )//create expansion PCD + if (expansion_cloud_pub->get_subscription_count() > 0) // create expansion PCD { - PointCloud::Ptr cloud (new PointCloud); + PointCloud::Ptr cloud(new PointCloud); cloud->header.frame_id = msg_disp->header.frame_id; cloud->height = 1; - cloud->width =1; + cloud->width = 1; cloud->is_dense = false; - int point_counter=0; - pcl::PointXYZI pt_fg,pt_bg,pt_free1,pt_free2,pt_real; - - for ( int v = ( int ) height - 1; v >= 0; v-=4 ) - { - for ( int u = ( int ) width - 1; u >= 0; u-=4 ) - { + int point_counter = 0; + pcl::PointXYZI pt_fg, pt_bg, pt_free1, pt_free2, pt_real; + for (int v = (int)height - 1; v >= 0; v -= 4) { + for (int u = (int)width - 1; u >= 0; u -= 4) { // Fill in XYZ -// float depth_value = baseline * fx_ / new_disparity_bridgePtr->image.at(v,u);//fg_msg->image.at(v,u);//free_msg->image.at(v,u)[0]; - float depth_value = baseline * fx_ / fg_msg->image.at(v,u);//free_msg->image.at(v,u)[0]; - pt_fg.x = ( u - center_x ) * depth_value * constant_x; - pt_fg.y = ( v - center_y ) * depth_value * constant_y; + // float depth_value = baseline * fx_ / + // new_disparity_bridgePtr->image.at(v,u);//fg_msg->image.at(v,u);//free_msg->image.at(v,u)[0]; + float depth_value = baseline * fx_ / + fg_msg->image.at( + v, u); // free_msg->image.at(v,u)[0]; + pt_fg.x = (u - center_x) * depth_value * constant_x; + pt_fg.y = (v - center_y) * depth_value * constant_y; pt_fg.z = depth_value; pt_fg.intensity = 220; - depth_value = baseline * fx_ / bg_msg->image.at(v,u);//free_msg->image.at(v,u)[1]; - pt_bg.x = ( u - center_x ) * depth_value * constant_x; - pt_bg.y = ( v - center_y ) * depth_value * constant_y; + depth_value = baseline * fx_ / + bg_msg->image.at( + v, u); // free_msg->image.at(v,u)[1]; + pt_bg.x = (u - center_x) * depth_value * constant_x; + pt_bg.y = (v - center_y) * depth_value * constant_y; pt_bg.z = depth_value; pt_bg.intensity = 120; - //ACtual PCD - depth_value = baseline * fx_ / cv_ptrdisparity->image.at(v,u);//new_disparity_bridgePtr->image.at(v,u); - pt_real.x = ( u - center_x ) * depth_value * constant_x; - pt_real.y = ( v - center_y ) * depth_value * constant_y; + // ACtual PCD + depth_value = baseline * fx_ / + cv_ptrdisparity->image.at( + v, u); // new_disparity_bridgePtr->image.at(v,u); + pt_real.x = (u - center_x) * depth_value * constant_x; + pt_real.y = (v - center_y) * depth_value * constant_y; pt_real.z = depth_value; - pt_real.intensity = 170;//*disparity32F.at(v,u)/200; - -// depth_value = baseline * fx_ / free_msg->image.at(v,u)[2]; -// pt_free1.x = ( u - center_x ) * depth_value * constant_x; -// pt_free1.y = ( v - center_y ) * depth_value * constant_y; -// pt_free1.z = depth_value; -// pt_free1.intensity = 170; -// depth_value = baseline * fx_ / free_msg->image.at(v,u)[3]; -// pt_free2.x = ( u - center_x ) * depth_value * constant_x; -// pt_free2.y = ( v - center_y ) * depth_value * constant_y; -// pt_free2.z = depth_value; -// pt_free2.intensity = 170; - -// if(fg_msg->image.at(v,u) >= 0.1 && bg_msg->image.at(v,u) >= 0.1 ) -// if(new_disparity_bridgePtr->image.at(v,u) > 0.1) + pt_real.intensity = 170; //*disparity32F.at(v,u)/200; + + // depth_value = baseline * fx_ / + // free_msg->image.at(v,u)[2]; pt_free1.x + // = ( u - center_x ) * depth_value * constant_x; + // pt_free1.y = ( v - center_y ) * depth_value * + // constant_y; pt_free1.z = depth_value; + // pt_free1.intensity = 170; + // depth_value = baseline * fx_ / + // free_msg->image.at(v,u)[3]; pt_free2.x + // = ( u - center_x ) * depth_value * constant_x; + // pt_free2.y = ( v - center_y ) * depth_value * + // constant_y; pt_free2.z = depth_value; + // pt_free2.intensity = 170; + + // if(fg_msg->image.at(v,u) >= 0.1 && + // bg_msg->image.at(v,u) >= 0.1 ) + // if(new_disparity_bridgePtr->image.at(v,u) > + // 0.1) { -// ROS_INFO("depth: %f",new_disparity_bridgePtr->image.at(v,u)); + // ROS_INFO("depth: + // %f",new_disparity_bridgePtr->image.at(v,u)); point_counter++; - cloud->points.push_back ( pt_fg ); + cloud->points.push_back(pt_fg); point_counter++; - cloud->points.push_back ( pt_bg ); + cloud->points.push_back(pt_bg); point_counter++; - cloud->points.push_back ( pt_real ); - -// point_counter++; -// cloud->points.push_back ( pt_free1 ); -// point_counter++; -// cloud->points.push_back ( pt_free2 ); + cloud->points.push_back(pt_real); + // point_counter++; + // cloud->points.push_back ( pt_free1 ); + // point_counter++; + // cloud->points.push_back ( pt_free2 ); } } } - cloud->width = point_counter; -//######################################################################################################## + cloud->width = point_counter; + // ######################################################################################################## - //Timestamp structure has changed cannot convert to uint64 - cloud->header.stamp = rclcpp::Time(msg_disp->header.stamp).nanoseconds(); - cloud->header.stamp = pcl_conversions::toPCL(rclcpp::Time(msg_disp->header.stamp)); - //cloud->header.stamp = msg_disp->header.stamp; - //cloud->header.stamp = pcl_conversions::toPCL(msg_disp->header.stamp); + // Timestamp structure has changed cannot convert to uint64 + cloud->header.stamp = rclcpp::Time(msg_disp->header.stamp).nanoseconds(); + cloud->header.stamp = pcl_conversions::toPCL(rclcpp::Time(msg_disp->header.stamp)); + // cloud->header.stamp = msg_disp->header.stamp; + // cloud->header.stamp = pcl_conversions::toPCL(msg_disp->header.stamp); sensor_msgs::msg::PointCloud2 cloud_PC2; - pcl::toROSMsg(*cloud,cloud_PC2); + pcl::toROSMsg(*cloud, cloud_PC2); expansion_cloud_pub->publish(cloud_PC2); } } @@ -675,49 +673,58 @@ void disparity_expansion::stereoDisparityCb(const stereo_msgs::msg::DisparityIma return; } - disparity_expansion::disparity_expansion(const rclcpp::NodeOptions & options) - : Node("disparity_expansion", options) - { - expansion_cloud_pub = this->create_publisher("/expansion/cloud_fg", 10); - expansion_poly_pub = this->create_publisher("/expansion/occ_marker", 10); - expanded_disparity_fg_pub = this->create_publisher("/narrow_stereo/left/expanded_disparity_fg", 10); - expanded_disparity_bg_pub = this->create_publisher("/narrow_stereo/left/expanded_disparity_bg", 10); - - RCLCPP_INFO(this->get_logger(), "into constr with node name %s", this->get_name()); - LUT_ready = false; - got_cam_info = false; - - cam_info_sub_ = this->create_subscription( - "/narrow_stereo/right/camera_info", 1, - std::bind(&disparity_expansion::getCamInfo, this, std::placeholders::_1)); - - disparity_sub_ = this->create_subscription( - "/narrow_stereo/disparity", 1, - std::bind(&disparity_expansion::stereoDisparityCb, this, std::placeholders::_1)); - - this->declare_parameter("robot_radius", 2.0); - this->declare_parameter("lut_max_disparity", 164); - this->declare_parameter("padding", 2.0); - this->declare_parameter("bg_multiplier", 5.0); - this->declare_parameter("sensor_pixel_error", 0.5); - - this->get_parameter("robot_radius", robot_radius_); - this->get_parameter("lut_max_disparity", lut_max_disparity_); - this->get_parameter("padding", padding_); - this->get_parameter("bg_multiplier", bg_multiplier_); - this->get_parameter("sensor_pixel_error", pixel_error_); - - cx_ = 317.20617294311523; - cy_ = 233.2914752960205; - fx_ = fy_ = 307.4838344732113; - baseline = 0.5576007548439765; - width = 640; - height = 480; - downsample_scale = 2.0; - } +disparity_expansion::disparity_expansion(const rclcpp::NodeOptions& options) + : Node("disparity_expansion", options) { + expansion_cloud_pub = + this->create_publisher("/expansion/cloud_fg", 10); + expansion_poly_pub = + this->create_publisher("/expansion/occ_marker", 10); + expanded_disparity_fg_pub = this->create_publisher( + "/narrow_stereo/left/expanded_disparity_fg", 10); + expanded_disparity_bg_pub = this->create_publisher( + "/narrow_stereo/left/expanded_disparity_bg", 10); + + RCLCPP_INFO(this->get_logger(), "into constr with node name %s", this->get_name()); + LUT_ready = false; + got_cam_info = false; + + // cam_info_sub_ = this->create_subscription( + // "/narrow_stereo/right/camera_info", 1, + // std::bind(&disparity_expansion::getCamInfo, this, std::placeholders::_1)); + cam_info_sub_ = this->create_subscription( + "/camera_info", 1, + std::bind(&disparity_expansion::getCamInfo, this, std::placeholders::_1)); + + // disparity_sub_ = this->create_subscription( + // "/narrow_stereo/disparity", 1, + // std::bind(&disparity_expansion::stereoDisparityCb, this, std::placeholders::_1)); + + disparity_sub_ = this->create_subscription( + "/disparity/image_raw", 1, + std::bind(&disparity_expansion::stereoDisparityCb, this, std::placeholders::_1)); + + this->declare_parameter("robot_radius", 2.0); + this->declare_parameter("lut_max_disparity", 164); + this->declare_parameter("padding", 2.0); + this->declare_parameter("bg_multiplier", 5.0); + this->declare_parameter("sensor_pixel_error", 0.5); + + this->get_parameter("robot_radius", robot_radius_); + this->get_parameter("lut_max_disparity", lut_max_disparity_); + this->get_parameter("padding", padding_); + this->get_parameter("bg_multiplier", bg_multiplier_); + this->get_parameter("sensor_pixel_error", pixel_error_); + + cx_ = 317.20617294311523; + cy_ = 233.2914752960205; + fx_ = fy_ = 307.4838344732113; + baseline = 0.5576007548439765; + width = 640; + height = 480; + downsample_scale = 2.0; +} -int main(int argc, char** argv) -{ +int main(int argc, char** argv) { rclcpp::init(argc, argv); auto node = std::make_shared(); rclcpp::spin(node); diff --git a/ros_ws/src/robot/robot_bringup/CMakeLists.txt b/ros_ws/src/robot/robot_bringup/CMakeLists.txt index c7795f507..7f506e7f5 100644 --- a/ros_ws/src/robot/robot_bringup/CMakeLists.txt +++ b/ros_ws/src/robot/robot_bringup/CMakeLists.txt @@ -29,3 +29,4 @@ install(DIRECTORY rviz DESTINATION share/${PROJECT_NAME}) install(DIRECTORY params DESTINATION share/${PROJECT_NAME}) ament_package() + \ No newline at end of file From ed70b3dcbc215cc8729303e22f3dc43218bb3ba6 Mon Sep 17 00:00:00 2001 From: Andrew Jong Date: Fri, 16 Aug 2024 18:24:45 -0400 Subject: [PATCH 24/50] Rename disparity_expansion class to DisparityExpansionNode --- .../src/disparity_expansion.cpp | 25 +++++++++--------- .../src/disparity_expansion_working.cpp | 26 +++++++++---------- 2 files changed, 26 insertions(+), 25 deletions(-) diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_expansion.cpp b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_expansion.cpp index 746966093..c592ccd93 100755 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_expansion.cpp +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_expansion.cpp @@ -79,9 +79,9 @@ typedef pcl::PointCloud PointCloud; -class disparity_expansion : public rclcpp::Node { +class DisparityExpansionNode : public rclcpp::Node { public: - disparity_expansion(const rclcpp::NodeOptions& options = rclcpp::NodeOptions()); + DisparityExpansionNode(const rclcpp::NodeOptions& options = rclcpp::NodeOptions()); rclcpp::Publisher::SharedPtr expansion_cloud_pub; rclcpp::Publisher::SharedPtr expanded_disparity_fg_pub; @@ -119,7 +119,7 @@ class disparity_expansion : public rclcpp::Node { // ################################################################################################################################################################################ // ################################################################################################################################################################################ -void disparity_expansion::generateExpansionLUT() { +void DisparityExpansionNode::generateExpansionLUT() { bool debug = false; if (debug) { RCLCPP_WARN(this->get_logger(), "Expansion LUT Debug disabled creation"); @@ -212,7 +212,8 @@ void disparity_expansion::generateExpansionLUT() { // ################################################################################################################ // ################################################################################################################ -void disparity_expansion::getCamInfo(const sensor_msgs::msg::CameraInfo::ConstSharedPtr& msg_info) { +void DisparityExpansionNode::getCamInfo( + const sensor_msgs::msg::CameraInfo::ConstSharedPtr& msg_info) { if (got_cam_info) return; model_.fromCameraInfo(msg_info); RCLCPP_INFO_ONCE(this->get_logger(), "Cam Info Recvd Fx Fy Cx Cy: %f %f , %f %f", model_.fx(), @@ -230,7 +231,7 @@ void disparity_expansion::getCamInfo(const sensor_msgs::msg::CameraInfo::ConstSh RCLCPP_INFO(this->get_logger(), "Focal length (fx): %.4f pixels", fx_); } -void disparity_expansion::stereoDisparityCb( +void DisparityExpansionNode::stereoDisparityCb( const stereo_msgs::msg::DisparityImage::ConstSharedPtr& msg_disp) { // sensor_msgs::Image::ConstPtr &msg_disp){ // ROS_INFO("Disparity CB"); @@ -673,8 +674,8 @@ void disparity_expansion::stereoDisparityCb( return; } -disparity_expansion::disparity_expansion(const rclcpp::NodeOptions& options) - : Node("disparity_expansion", options) { +DisparityExpansionNode::DisparityExpansionNode(const rclcpp::NodeOptions& options) + : Node("DisparityExpansionNode", options) { expansion_cloud_pub = this->create_publisher("/expansion/cloud_fg", 10); expansion_poly_pub = @@ -690,18 +691,18 @@ disparity_expansion::disparity_expansion(const rclcpp::NodeOptions& options) // cam_info_sub_ = this->create_subscription( // "/narrow_stereo/right/camera_info", 1, - // std::bind(&disparity_expansion::getCamInfo, this, std::placeholders::_1)); + // std::bind(&DisparityExpansionNode::getCamInfo, this, std::placeholders::_1)); cam_info_sub_ = this->create_subscription( "/camera_info", 1, - std::bind(&disparity_expansion::getCamInfo, this, std::placeholders::_1)); + std::bind(&DisparityExpansionNode::getCamInfo, this, std::placeholders::_1)); // disparity_sub_ = this->create_subscription( // "/narrow_stereo/disparity", 1, - // std::bind(&disparity_expansion::stereoDisparityCb, this, std::placeholders::_1)); + // std::bind(&DisparityExpansionNode::stereoDisparityCb, this, std::placeholders::_1)); disparity_sub_ = this->create_subscription( "/disparity/image_raw", 1, - std::bind(&disparity_expansion::stereoDisparityCb, this, std::placeholders::_1)); + std::bind(&DisparityExpansionNode::stereoDisparityCb, this, std::placeholders::_1)); this->declare_parameter("robot_radius", 2.0); this->declare_parameter("lut_max_disparity", 164); @@ -726,7 +727,7 @@ disparity_expansion::disparity_expansion(const rclcpp::NodeOptions& options) int main(int argc, char** argv) { rclcpp::init(argc, argv); - auto node = std::make_shared(); + auto node = std::make_shared(); rclcpp::spin(node); rclcpp::shutdown(); return 0; diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_expansion_working.cpp b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_expansion_working.cpp index ffad0131a..b288630ab 100644 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_expansion_working.cpp +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_expansion_working.cpp @@ -37,9 +37,9 @@ typedef pcl::PointCloud PointCloud; -class disparity_expansion{ +class DisparityExpansionNode{ public: - disparity_expansion(ros::NodeHandle& nh); + DisparityExpansionNode(ros::NodeHandle& nh); ros::Publisher expansion_cloud_pub; ros::Publisher expanded_disparity_fg_pub; @@ -76,7 +76,7 @@ class disparity_expansion{ float table_d[LUT_MAX_DISPARITY]; }; -void disparity_expansion::generateExpansionLUT() +void DisparityExpansionNode::generateExpansionLUT() { bool debug = false; if(debug) @@ -183,14 +183,14 @@ void disparity_expansion::generateExpansionLUT() } -void disparity_expansion::getCamInfo(const sensor_msgs::CameraInfo::ConstPtr& msg_info) +void DisparityExpansionNode::getCamInfo(const sensor_msgs::CameraInfo::ConstPtr& msg_info) { model_.fromCameraInfo ( msg_info ); ROS_INFO_ONCE("Cam Info Recvd Fx Fy Cx Cy: %f %f , %f %f",model_.fx(),model_.fy(),model_.cx(),model_.cy()); got_cam_info = true; } -void disparity_expansion::stereoDisparityCb(const stereo_msgs::DisparityImage::ConstPtr &msg_disp){ +void DisparityExpansionNode::stereoDisparityCb(const stereo_msgs::DisparityImage::ConstPtr &msg_disp){ ROS_INFO("Disparity CB"); @@ -447,7 +447,7 @@ void disparity_expansion::stereoDisparityCb(const stereo_msgs::DisparityImage::C return; } -disparity_expansion::disparity_expansion(ros::NodeHandle& nh){ +DisparityExpansionNode::DisparityExpansionNode(ros::NodeHandle& nh){ //the depth image stream and color image stream have different framerates and therefore are not aligned. So we use a time synchronizer message filter (http://www.ros.org/wiki/message_filters) // depth_sub.subscribe(nh,"/camera/depth/image", 1); // image_sub.subscribe(nh, "/camera/rgb/image_rect_color", 1); @@ -467,7 +467,7 @@ disparity_expansion::disparity_expansion(ros::NodeHandle& nh){ // sync2 = new message_filters::Synchronizer(2); // sync2->connectInput(disp_sub,image_sub, info_sub); -// sync2->registerCallback(boost::bind(&disparity_expansion::stereoDisparityCb,this, _1, _2,_3)); +// sync2->registerCallback(boost::bind(&DisparityExpansionNode::stereoDisparityCb,this, _1, _2,_3)); expansion_cloud_pub = nh.advertise("/expansion/cloud_fg", 10); expanded_disparity_fg_pub = nh.advertise("/ceye/left/expanded_disparity_fg", 10); expanded_disparity_bg_pub = nh.advertise("/ceye/left/expanded_disparity_bg", 10); @@ -476,18 +476,18 @@ disparity_expansion::disparity_expansion(ros::NodeHandle& nh){ got_cam_info = false; -// cam_info_sub_ = nh.subscribe("/ceye/left/camera_info", 1,&disparity_expansion::getCamInfo,this); -// disparity_sub_ = nh.subscribe("/ceye/disparity", 1,&disparity_expansion::stereoDisparityCb,this); - cam_info_sub_ = nh.subscribe("/camera/depth/camera_info", 1,&disparity_expansion::getCamInfo,this); - disparity_sub_ = nh.subscribe("/camera/disparity/image_raw", 1,&disparity_expansion::stereoDisparityCb,this); +// cam_info_sub_ = nh.subscribe("/ceye/left/camera_info", 1,&DisparityExpansionNode::getCamInfo,this); +// disparity_sub_ = nh.subscribe("/ceye/disparity", 1,&DisparityExpansionNode::stereoDisparityCb,this); + cam_info_sub_ = nh.subscribe("/camera/depth/camera_info", 1,&DisparityExpansionNode::getCamInfo,this); + disparity_sub_ = nh.subscribe("/camera/disparity/image_raw", 1,&DisparityExpansionNode::stereoDisparityCb,this); } int main(int argc, char** argv) { - ros::init(argc, argv, "disparity_expansion"); + ros::init(argc, argv, "DisparityExpansionNode"); // cv::initModule_nonfree();//THIS LINE IS IMPORTANT for using surf and sift features of opencv ros::NodeHandle nh; - disparity_expansion d(nh); + DisparityExpansionNode d(nh); ros::spin(); return 0; } From 5bbe21cc5d24347950a73e453e86b7b094c8b7cb Mon Sep 17 00:00:00 2001 From: Andrew Jong Date: Fri, 16 Aug 2024 18:32:12 -0400 Subject: [PATCH 25/50] Add todo to fix raw pointer --- .../planning/local/core_local_planner/src/local_planner.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/ros_ws/src/robot/autonomy/planning/local/core_local_planner/src/local_planner.cpp b/ros_ws/src/robot/autonomy/planning/local/core_local_planner/src/local_planner.cpp index 292bdc61d..5aeb5c260 100644 --- a/ros_ws/src/robot/autonomy/planning/local/core_local_planner/src/local_planner.cpp +++ b/ros_ws/src/robot/autonomy/planning/local/core_local_planner/src/local_planner.cpp @@ -75,6 +75,7 @@ bool LocalPlanner::initialize() { return false; } + // 2024.08.16 AndrewJ TODO: this is a naked pointer, should changed to a unique_ptr traj_lib = new TrajectoryLibrary(traj_lib_config_filename, listener); got_global_plan = false; global_plan_trajectory_distance = 0; From d2d25bdd08770a41ac597611bc8491b9e1590b87 Mon Sep 17 00:00:00 2001 From: Robbi Exley Date: Tue, 20 Aug 2024 15:24:30 -0400 Subject: [PATCH 26/50] Disparity Expansion --- .../CMakeLists.txt | 26 +++- .../COLCON_IGNORE | 0 .../depth_to_disparity_package/__init__.py | 0 .../depth_to_disparity.py | 115 ++++++++++++++++++ .../depth_to_disparity_package/package.xml | 18 +++ .../resource/depth_to_disparity_package | 0 .../depth_to_disparity_package/setup.cfg | 4 + .../local/depth_to_disparity_package/setup.py | 24 ++++ .../test/test_copyright.py | 25 ++++ .../test/test_flake8.py | 25 ++++ .../test/test_pep257.py | 23 ++++ .../local/disparity_expansion/CMakeLists.txt | 8 +- .../src/disparity_expansion.cpp | 48 +++++--- .../local/disparity_graph/CMakeLists.txt | 2 +- 14 files changed, 298 insertions(+), 20 deletions(-) create mode 100644 ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/COLCON_IGNORE create mode 100644 ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/depth_to_disparity_package/__init__.py create mode 100644 ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/depth_to_disparity_package/depth_to_disparity.py create mode 100644 ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/package.xml create mode 100644 ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/resource/depth_to_disparity_package create mode 100644 ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/setup.cfg create mode 100644 ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/setup.py create mode 100644 ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/test/test_copyright.py create mode 100644 ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/test/test_flake8.py create mode 100644 ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/test/test_pep257.py diff --git a/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/CMakeLists.txt b/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/CMakeLists.txt index eb69c961e..e568a1656 100644 --- a/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/CMakeLists.txt +++ b/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/CMakeLists.txt @@ -62,9 +62,25 @@ ament_target_dependencies(disparity_map_representation pluginlib ) +ament_export_targets(disparity_map_representationTargets HAS_LIBRARY_TARGET) +ament_export_dependencies( rclcpp +tf2 +tf2_ros +disparity_graph +core_map_representation_interface +core_trajectory_msgs +cv_bridge +tflib +pluginlib +) -install(TARGETS disparity_map_representation - DESTINATION lib/${PROJECT_NAME} +install( +TARGETS disparity_map_representation +EXPORT disparity_map_representationTargets + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib + RUNTIME DESTINATION bin + INCLUDES DESTINATION include ) #install(DIRECTORY launch DESTINATION share/${PROJECT_NAME}) install(FILES package.xml @@ -77,6 +93,10 @@ target_link_libraries(disparity_map_representation #ament_export_libraries(disparity_map_representation) #ament_export_targets(export_${PROJECT_NAME} HAS_LIBRARY_TARGET) - +install( + DIRECTORY include/${PROJECT_NAME}/ + DESTINATION include/${PROJECT_NAME} + FILES_MATCHING PATTERN "*.h" +) ament_package() diff --git a/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/COLCON_IGNORE b/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/COLCON_IGNORE new file mode 100644 index 000000000..e69de29bb diff --git a/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/depth_to_disparity_package/__init__.py b/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/depth_to_disparity_package/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/depth_to_disparity_package/depth_to_disparity.py b/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/depth_to_disparity_package/depth_to_disparity.py new file mode 100644 index 000000000..304773365 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/depth_to_disparity_package/depth_to_disparity.py @@ -0,0 +1,115 @@ +import rclpy +from rclpy.node import Node +from sensor_msgs.msg import Image +from stereo_msgs.msg import DisparityImage +from cv_bridge import CvBridge +import cv2 +import numpy as np + + +def visualize_disparity_image(disparity_image): + if disparity_image.size == 0: + raise ValueError("Disparity image is empty.") + cv2.imshow("Disparity Image", disparity_image) + cv2.waitKey(1) + + +def visualize_depth_image(depth_image): + if depth_image.size == 0: + raise ValueError("Depth image is empty.") + depth_image_normalized = cv2.normalize(depth_image, None, 0, 255, cv2.NORM_MINMAX) + depth_image_uint8 = np.uint8(depth_image_normalized) + cv2.imshow("Depth Image", depth_image_uint8) + cv2.waitKey(1) + + +class DepthToDisparityNode(Node): + def __init__(self): + super().__init__("depth_to_disparity_node") + + # Declare and get parameters + self.declare_parameter("baseline", 0.25) # Baseline in meters + self.declare_parameter("focal_length", 731.4286) + + self.baseline = ( + self.get_parameter("baseline").get_parameter_value().double_value + ) + self.focal_length = ( + self.get_parameter("focal_length").get_parameter_value().double_value + ) + + self.get_logger().info(f"Baseline: {self.baseline} meters") + self.get_logger().info(f"Focal length (fx): {self.focal_length} pixels") + + self.bridge = CvBridge() + + self.subscription = self.create_subscription( + Image, "/depth", self.listener_callback, 10 + ) + self.publisher = self.create_publisher( + DisparityImage, "disparity/image_raw", 10 + ) + + def listener_callback(self, msg): + try: + # Convert the ROS Image message to OpenCV format + cv_image = self.bridge.imgmsg_to_cv2(msg, desired_encoding="32FC1") + except Exception as e: + self.get_logger().error(f"Failed to convert image: {e}") + return + + if cv_image.size == 0: + self.get_logger().error("Received empty depth image. Raising an error.") + raise ValueError("Depth image is empty.") + + disparity_image = self.depth_to_disparity(cv_image) + + disparity_msg = DisparityImage() + disparity_msg.header = msg.header + disparity_msg.image = self.bridge.cv2_to_imgmsg( + disparity_image, encoding="32FC1" + ) + disparity_msg.f = self.focal_length # Focal length + + visualize_disparity_image(disparity_image) + + self.get_logger().info(f"Disparity image min: {np.min(disparity_image)}") + # Publish the disparity image + self.publisher.publish(disparity_msg) + + def depth_to_disparity(self, depth_image): + if depth_image.size == 0: + self.get_logger().error( + "Depth image is empty in depth_to_disparity. Raising an error." + ) + raise ValueError("Depth image is empty in depth_to_disparity.") + + depth_image = np.array(depth_image, dtype=np.float32) + + with np.errstate(divide="ignore", invalid="ignore"): + # DISPARITY FORMULA + disparity_image = (self.baseline * self.focal_length) / depth_image + + # Handle infinite and NaN values in the disparity image + disparity_image[np.isinf(disparity_image)] = 0 + disparity_image[np.isnan(disparity_image)] = 0 + + if disparity_image.size == 0: + self.get_logger().error( + "Disparity image is empty after processing. Raising an error." + ) + raise ValueError("Disparity image is empty after processing.") + + return disparity_image + + +def main(args=None): + rclpy.init(args=args) + node = DepthToDisparityNode() + rclpy.spin(node) + node.destroy_node() + rclpy.shutdown() + + +if __name__ == "__main__": + main() diff --git a/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/package.xml b/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/package.xml new file mode 100644 index 000000000..69f521642 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/package.xml @@ -0,0 +1,18 @@ + + depth_to_disparity_package + 0.0.0 + My package for depth to disparity conversion. + + Your Name + + Apache 2.0 + + rclpy + sensor_msgs + cv_bridge + opencv-python + + + ament_python + + diff --git a/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/resource/depth_to_disparity_package b/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/resource/depth_to_disparity_package new file mode 100644 index 000000000..e69de29bb diff --git a/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/setup.cfg b/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/setup.cfg new file mode 100644 index 000000000..7d5e56bac --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/setup.cfg @@ -0,0 +1,4 @@ +[develop] +script_dir=$base/lib/depth_to_disparity_package +[install] +install_scripts=$base/lib/depth_to_disparity_package diff --git a/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/setup.py b/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/setup.py new file mode 100644 index 000000000..3a38c6dd3 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/setup.py @@ -0,0 +1,24 @@ +from setuptools import setup + +package_name = "depth_to_disparity_package" + +setup( + name=package_name, + version="0.0.0", + packages=[package_name], + data_files=[ + ("share/" + package_name, ["package.xml"]), + ], + install_requires=["setuptools", "opencv-python", "cv_bridge"], + zip_safe=True, + maintainer="Your Name", + maintainer_email="your_email@example.com", + description="A package that converts depth images to disparity images", + license="Apache 2.0", + tests_require=["pytest"], + entry_points={ + "console_scripts": [ + "depth_to_disparity = depth_to_disparity_package.depth_to_disparity:main", + ], + }, +) diff --git a/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/test/test_copyright.py b/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/test/test_copyright.py new file mode 100644 index 000000000..97a39196e --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/test/test_copyright.py @@ -0,0 +1,25 @@ +# Copyright 2015 Open Source Robotics Foundation, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from ament_copyright.main import main +import pytest + + +# Remove the `skip` decorator once the source file(s) have a copyright header +@pytest.mark.skip(reason='No copyright header has been placed in the generated source file.') +@pytest.mark.copyright +@pytest.mark.linter +def test_copyright(): + rc = main(argv=['.', 'test']) + assert rc == 0, 'Found errors' diff --git a/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/test/test_flake8.py b/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/test/test_flake8.py new file mode 100644 index 000000000..27ee1078f --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/test/test_flake8.py @@ -0,0 +1,25 @@ +# Copyright 2017 Open Source Robotics Foundation, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from ament_flake8.main import main_with_errors +import pytest + + +@pytest.mark.flake8 +@pytest.mark.linter +def test_flake8(): + rc, errors = main_with_errors(argv=[]) + assert rc == 0, \ + 'Found %d code style errors / warnings:\n' % len(errors) + \ + '\n'.join(errors) diff --git a/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/test/test_pep257.py b/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/test/test_pep257.py new file mode 100644 index 000000000..b234a3840 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/test/test_pep257.py @@ -0,0 +1,23 @@ +# Copyright 2015 Open Source Robotics Foundation, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from ament_pep257.main import main +import pytest + + +@pytest.mark.linter +@pytest.mark.pep257 +def test_pep257(): + rc = main(argv=['.', 'test']) + assert rc == 0, 'Found code style errors / warnings' diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/CMakeLists.txt b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/CMakeLists.txt index 2c6b10cd8..d55256a75 100644 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/CMakeLists.txt +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/CMakeLists.txt @@ -21,8 +21,10 @@ find_package(image_transport REQUIRED) find_package(sensor_msgs REQUIRED) find_package(std_msgs REQUIRED) find_package(tf2 REQUIRED) -find_package(pcl_ros REQUIRED) +#find_package(pcl_ros REQUIRED) find_package(stereo_msgs REQUIRED) +find_package(tf2_geometry_msgs REQUIRED) + find_package(message_filters REQUIRED) find_package(visualization_msgs REQUIRED) find_package(pcl_conversions REQUIRED) @@ -124,6 +126,7 @@ include_directories( ${OpenCV_INCLUDE_DIRS} ${PCL_INCLUDE_DIRS} ${pcl_conversions_INCLUDE_DIRS} + ${tf2_geometry_msgs_INCLUDE_DIRS} ) @@ -169,6 +172,7 @@ ament_target_dependencies(disparity_expansion message_filters visualization_msgs stereo_msgs + tf2_geometry_msgs ) add_executable (disparity_conv src/disparity_conv.cpp) target_link_libraries(disparity_conv ${OpenCV_LIBS} ${catkin_LIBRARIES} @@ -185,6 +189,7 @@ ament_target_dependencies(disparity_conv tf2 pcl_conversions message_filters + tf2_geometry_msgs ) add_executable (disparity_pcd src/disparity_pcd.cpp) @@ -202,6 +207,7 @@ ament_target_dependencies(disparity_pcd tf2 pcl_conversions message_filters + tf2_geometry_msgs ) diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_expansion.cpp b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_expansion.cpp index c592ccd93..1119c6aae 100755 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_expansion.cpp +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_expansion.cpp @@ -31,8 +31,9 @@ #include "visualization_msgs/MarkerArray.h" */ -#define SCALE 2.0 // num_units/pixel -// #define lut_max_disparity_ 165 // units +#define SCALE 100000.0 // num_units/pixel +// #define SCALE_D 1000.0 +// #define lut_max_disparity_ 165 // units #include #include @@ -338,7 +339,7 @@ void DisparityExpansionNode::stereoDisparityCb( for (int u = (int)width - 1; u >= 0; u -= 1) { float disparity_value = disparity32F.at(v, u); // disparity_row[v * row_step + u];// + 0.5; - if (!std::isnan(double(disparity_value)) && + if (!std::isnan(double(disparity_value * SCALE)) && ((int(disparity_value * SCALE) + 1) < lut_max_disparity_) && ((int(disparity_value * SCALE) + 1) > 0)) // expand { @@ -364,7 +365,24 @@ void DisparityExpansionNode::stereoDisparityCb( return; } + // if (u1 < 0 || u1 >= disparity32F.cols || u2 < 0 || + // u2 >= disparity32F.cols || u1 >= u2) { + // std::cerr << "Invalid ROI indices: u1=" << u1 << ", u2=" << u2 + // << std::endl; + // return; + cv::Rect roi = cv::Rect(u1, v, (u2 - u1), 1); + + // if (roi.width <= 0 || roi.height <= 0 || roi.x < 0 || roi.y < 0 || + // roi.x + roi.width > disparity32F.cols || + // roi.y + roi.height > disparity32F.rows) { + // RCLCPP_ERROR(this->get_logger(), + // "ROI is out of bounds: u1=%d, v=%d, u2=%d, " + // "disparity32F.cols=%d, disparity32F.rows=%d", + // u1, v, u2, disparity32F.cols, disparity32F.rows); + // continue; + // } + cv::Mat submat_t = disparity32F(roi).clone(); double min, max; @@ -623,22 +641,22 @@ void DisparityExpansionNode::stereoDisparityCb( pt_real.intensity = 170; //*disparity32F.at(v,u)/200; // depth_value = baseline * fx_ / - // free_msg->image.at(v,u)[2]; pt_free1.x - // = ( u - center_x ) * depth_value * constant_x; - // pt_free1.y = ( v - center_y ) * depth_value * - // constant_y; pt_free1.z = depth_value; - // pt_free1.intensity = 170; + // free_msg->image.at(v,u)[2]; + // pt_free1.x = ( u - center_x ) * depth_value * + // constant_x; pt_free1.y = ( v - center_y ) * + // depth_value * constant_y; pt_free1.z = + // depth_value; pt_free1.intensity = 170; // depth_value = baseline * fx_ / - // free_msg->image.at(v,u)[3]; pt_free2.x - // = ( u - center_x ) * depth_value * constant_x; - // pt_free2.y = ( v - center_y ) * depth_value * - // constant_y; pt_free2.z = depth_value; - // pt_free2.intensity = 170; + // free_msg->image.at(v,u)[3]; + // pt_free2.x = ( u - center_x ) * depth_value * + // constant_x; pt_free2.y = ( v - center_y ) * + // depth_value * constant_y; pt_free2.z = + // depth_value; pt_free2.intensity = 170; // if(fg_msg->image.at(v,u) >= 0.1 && // bg_msg->image.at(v,u) >= 0.1 ) - // if(new_disparity_bridgePtr->image.at(v,u) > - // 0.1) + // if(new_disparity_bridgePtr->image.at(v,u) + // > 0.1) { // ROS_INFO("depth: // %f",new_disparity_bridgePtr->image.at(v,u)); diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_graph/CMakeLists.txt b/ros_ws/src/robot/autonomy/planning/local/disparity_graph/CMakeLists.txt index 08155ddaf..b9d05a24a 100644 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_graph/CMakeLists.txt +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_graph/CMakeLists.txt @@ -27,7 +27,7 @@ find_package(image_geometry REQUIRED) find_package(image_transport REQUIRED) find_package(nav_msgs REQUIRED) find_package(pcl_conversions REQUIRED) -find_package(pcl_ros REQUIRED) +#find_package(pcl_ros REQUIRED) find_package(rclcpp REQUIRED) find_package(sensor_msgs REQUIRED) find_package(std_msgs REQUIRED) From 8a69fab8258d990ed6e8c39e94a641e3e4c33eaf Mon Sep 17 00:00:00 2001 From: Andrew Jong Date: Thu, 22 Aug 2024 10:00:34 -0400 Subject: [PATCH 27/50] Got working on andrews computer --- .../src/disparity_map_representation.cpp | 7 ++- .../depth_to_disparity.py | 9 +-- .../src/disparity_expansion.cpp | 56 +++++++++++-------- 3 files changed, 42 insertions(+), 30 deletions(-) diff --git a/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/src/disparity_map_representation.cpp b/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/src/disparity_map_representation.cpp index 8a73571f7..86e8f4613 100644 --- a/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/src/disparity_map_representation.cpp +++ b/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/src/disparity_map_representation.cpp @@ -38,8 +38,11 @@ std::vector > DisparityMapRepresentation::get_values( std::vector > trajectories) { std::vector > values(trajectories.size()); - for (int i = 0; i < trajectories.size(); i++) - for (int j = 0; j < trajectories[i].size(); j++) values[i].push_back(0); + for (int i = 0; i < trajectories.size(); i++) { + for (int j = 0; j < trajectories[i].size(); j++) { + values[i].push_back(0); + } + } for (int i = 0; i < trajectories.size(); i++) { // core_trajectory_msgs::TrajectoryXYZVYaw trajectory = trajectories[i]; diff --git a/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/depth_to_disparity_package/depth_to_disparity.py b/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/depth_to_disparity_package/depth_to_disparity.py index 304773365..2abb6dbca 100644 --- a/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/depth_to_disparity_package/depth_to_disparity.py +++ b/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/depth_to_disparity_package/depth_to_disparity.py @@ -29,7 +29,7 @@ def __init__(self): # Declare and get parameters self.declare_parameter("baseline", 0.25) # Baseline in meters - self.declare_parameter("focal_length", 731.4286) + self.declare_parameter("focal_length", 554.256251) self.baseline = ( self.get_parameter("baseline").get_parameter_value().double_value @@ -44,10 +44,10 @@ def __init__(self): self.bridge = CvBridge() self.subscription = self.create_subscription( - Image, "/depth", self.listener_callback, 10 + Image, "/robot1/perception/depth", self.listener_callback, 10 ) self.publisher = self.create_publisher( - DisparityImage, "disparity/image_raw", 10 + DisparityImage, "/disparity/image_raw", 10 ) def listener_callback(self, msg): @@ -71,9 +71,10 @@ def listener_callback(self, msg): ) disparity_msg.f = self.focal_length # Focal length + visualize_depth_image(cv_image) visualize_disparity_image(disparity_image) - self.get_logger().info(f"Disparity image min: {np.min(disparity_image)}") + self.get_logger().info(f"Disparity image min: {np.min(disparity_image)}", throttle_duration_sec=1) # Publish the disparity image self.publisher.publish(disparity_msg) diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_expansion.cpp b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_expansion.cpp index 1119c6aae..960b2699b 100755 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_expansion.cpp +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_expansion.cpp @@ -31,7 +31,7 @@ #include "visualization_msgs/MarkerArray.h" */ -#define SCALE 100000.0 // num_units/pixel +#define SCALE 2.0 // num_units/pixel // #define SCALE_D 1000.0 // #define lut_max_disparity_ 165 // units #include @@ -110,8 +110,10 @@ class DisparityExpansionNode : public rclcpp::Node { double padding_; double bg_multiplier_; double pixel_error_; - cell table_u[200][640]; - cell table_v[200][480]; + std::vector> table_u; + std::vector> table_v; + // cell table_u[200][640]; + // cell table_v[200][480]; double table_d[200]; double fx_, fy_, cx_, cy_; unsigned int width, height; @@ -138,6 +140,8 @@ void DisparityExpansionNode::generateExpansionLUT() { RCLCPP_INFO(this->get_logger(), "Fx Fy Cx Cy: %f %f , %f %f \nW H Baseline: %d %d %f", fx_, fy_, cx_, cy_, width, height, baseline); double r = robot_radius_; // expansion radius in cm + table_u = std::vector>(lut_max_disparity_, std::vector(width)); + table_v = std::vector>(lut_max_disparity_, std::vector(height)); int u1, u2, v1, v2; double x, y, z; double disparity; @@ -225,6 +229,7 @@ void DisparityExpansionNode::getCamInfo( width = msg_info->width / downsample_scale; height = msg_info->height / downsample_scale; baseline = -msg_info->p[3] / msg_info->p[0]; + baseline = 0.25; baseline *= downsample_scale; generateExpansionLUT(); got_cam_info = true; @@ -435,10 +440,13 @@ void DisparityExpansionNode::stereoDisparityCb( u = u1; else u = u_temp + 1; - } else - RCLCPP_ERROR_THROTTLE(this->get_logger(), *this->get_clock(), 1, - "BAD disparity during expansion: %f", - disparity_value); + } else { + RCLCPP_ERROR_STREAM_THROTTLE( + this->get_logger(), *this->get_clock(), 1000, + "BAD disparity during expansion for u: " + << disparity_value << " lut_max_disparity_: " << lut_max_disparity_ + << " SCALE: " << SCALE); + } } } @@ -514,19 +522,22 @@ void DisparityExpansionNode::stereoDisparityCb( v = v1; else v = v_temp + 1; - } else - RCLCPP_ERROR_THROTTLE(this->get_logger(), *this->get_clock(), 1, - "BAD disparity during expansion: %f", - disparity_value); + } else { + RCLCPP_ERROR_STREAM_THROTTLE( + this->get_logger(), *this->get_clock(), 1000, + "BAD disparity during expansion for v: " + << disparity_value << " lut_max_disparity_: " << lut_max_disparity_ + << " SCALE: " << SCALE); + } } } fg_msg->image = disparity_fg; bg_msg->image = disparity_bg; - RCLCPP_INFO(this->get_logger(), "Time: %f \t%f", - (this->get_clock()->now() - start).seconds(), - 1 / (this->get_clock()->now() - start).seconds()); + // RCLCPP_INFO(this->get_logger(), "Time: %f \t%f", + // (this->get_clock()->now() - start).seconds(), + // 1 / (this->get_clock()->now() - start).seconds()); expanded_disparity_fg_pub->publish(*(fg_msg->toImageMsg())); expanded_disparity_bg_pub->publish(*(bg_msg->toImageMsg())); @@ -707,11 +718,8 @@ DisparityExpansionNode::DisparityExpansionNode(const rclcpp::NodeOptions& option LUT_ready = false; got_cam_info = false; - // cam_info_sub_ = this->create_subscription( - // "/narrow_stereo/right/camera_info", 1, - // std::bind(&DisparityExpansionNode::getCamInfo, this, std::placeholders::_1)); cam_info_sub_ = this->create_subscription( - "/camera_info", 1, + "/robot1/perception/camera_info", 1, std::bind(&DisparityExpansionNode::getCamInfo, this, std::placeholders::_1)); // disparity_sub_ = this->create_subscription( @@ -734,12 +742,12 @@ DisparityExpansionNode::DisparityExpansionNode(const rclcpp::NodeOptions& option this->get_parameter("bg_multiplier", bg_multiplier_); this->get_parameter("sensor_pixel_error", pixel_error_); - cx_ = 317.20617294311523; - cy_ = 233.2914752960205; - fx_ = fy_ = 307.4838344732113; - baseline = 0.5576007548439765; - width = 640; - height = 480; + // cx_ = 317.20617294311523; + // cy_ = 233.2914752960205; + // fx_ = fy_ = 307.4838344732113; + // baseline = 0.5576007548439765; + // width = 640; + // height = 480; downsample_scale = 2.0; } From 44f36ef583194313e99c7346e8c6a0956380d9ef Mon Sep 17 00:00:00 2001 From: Andrew Jong Date: Thu, 22 Aug 2024 10:01:07 -0400 Subject: [PATCH 28/50] Launch robot launch disparity representation --- .../robot/robot_bringup/launch/launch_robot.yaml | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/ros_ws/src/robot/robot_bringup/launch/launch_robot.yaml b/ros_ws/src/robot/robot_bringup/launch/launch_robot.yaml index 1acad2580..433f0aa8d 100644 --- a/ros_ws/src/robot/robot_bringup/launch/launch_robot.yaml +++ b/ros_ws/src/robot/robot_bringup/launch/launch_robot.yaml @@ -3,15 +3,21 @@ launch: - arg: name: "robot_name" default: "robot1" - # include another launch file in the chatter_ns namespace - group: - push_ros_namespace: namespace: "$(var robot_name)" # AUTONOMY - # controls + - node: + pkg: "depth_to_disparity_package" + exec: "depth_to_disparity" + name: "depth_to_disparity" + # local planner - include: - file: "$(find-pkg-share controls_bringup)/launch/launch_controls.yaml" + file: "$(find-pkg-share disparity_expansion)/launch/disparity_expansion.xml" + # controls + # - include: + # file: "$(find-pkg-share controls_bringup)/launch/launch_controls.yaml" # world model - include: file: "$(find-pkg-share vdb_mapping_ros2)/launch/vdb_mapping_ros2.py" @@ -20,4 +26,4 @@ launch: exec: "rviz2" name: "rviz2_robot" namespace: "$(var robot_name)" - args: "-d $(find-pkg-share robot_bringup)/rviz/robot.rviz" + args: "-d $(find-pkg-share robot_bringup)/rviz/robot.rviz --ros-args --log-level INFO" From 54feeac7a2aef1d7ca51066a9169437f95dad0e9 Mon Sep 17 00:00:00 2001 From: Andrew Jong Date: Thu, 22 Aug 2024 10:01:22 -0400 Subject: [PATCH 29/50] Update rviz to show disparity --- .../src/robot/robot_bringup/rviz/robot.rviz | 133 +++++++++++++++--- 1 file changed, 117 insertions(+), 16 deletions(-) diff --git a/ros_ws/src/robot/robot_bringup/rviz/robot.rviz b/ros_ws/src/robot/robot_bringup/rviz/robot.rviz index c80fe9e9e..2241045f2 100644 --- a/ros_ws/src/robot/robot_bringup/rviz/robot.rviz +++ b/ros_ws/src/robot/robot_bringup/rviz/robot.rviz @@ -6,6 +6,7 @@ Panels: Expanded: - /Global Options1 - /Status1 + - /DisparityExpansion1 Splitter Ratio: 0.5 Tree Height: 385 - Class: rviz_common/Selection @@ -95,6 +96,74 @@ Visualization Manager: {} Update Interval: 0 Value: true + - Alpha: 1 + Autocompute Intensity Bounds: true + Autocompute Value Bounds: + Max Value: 3.0580480098724365 + Min Value: 0.06459617614746094 + Value: true + Axis: Z + Channel Name: intensity + Class: rviz_default_plugins/PointCloud2 + Color: 255; 255; 255 + Color Transformer: AxisColor + Decay Time: 3 + Enabled: false + Invert Rainbow: false + Max Color: 255; 255; 255 + Max Intensity: 4096 + Min Color: 0; 0; 0 + Min Intensity: 0 + Name: PointCloud2 + Position Transformer: XYZ + Selectable: true + Size (Pixels): 1 + Size (m): 0.019999999552965164 + Style: Points + Topic: + Depth: 5 + Durability Policy: Volatile + Filter size: 10 + History Policy: Keep Last + Reliability Policy: Reliable + Value: /robot1/perception/point_cloud + Use Fixed Frame: true + Use rainbow: true + Value: false + - Alpha: 1 + Autocompute Intensity Bounds: true + Autocompute Value Bounds: + Max Value: 10 + Min Value: -10 + Value: true + Axis: Z + Channel Name: intensity + Class: rviz_default_plugins/LaserScan + Color: 255; 255; 255 + Color Transformer: Intensity + Decay Time: 0 + Enabled: false + Invert Rainbow: false + Max Color: 255; 255; 255 + Max Intensity: 140 + Min Color: 0; 0; 0 + Min Intensity: 1 + Name: LaserScan + Position Transformer: XYZ + Selectable: true + Size (Pixels): 3 + Size (m): 0.03999999910593033 + Style: Flat Squares + Topic: + Depth: 5 + Durability Policy: Volatile + Filter size: 10 + History Policy: Keep Last + Reliability Policy: Reliable + Value: /robot1/perception/laser_scan + Use Fixed Frame: true + Use rainbow: true + Value: false - Class: rviz_default_plugins/Image Enabled: true Max Value: 1 @@ -131,21 +200,21 @@ Visualization Manager: Value: true Axis: Z Channel Name: intensity - Class: rviz_default_plugins/LaserScan + Class: rviz_default_plugins/PointCloud2 Color: 255; 255; 255 Color Transformer: Intensity Decay Time: 0 Enabled: true Invert Rainbow: false Max Color: 255; 255; 255 - Max Intensity: 50 + Max Intensity: 220 Min Color: 0; 0; 0 - Min Intensity: 1 - Name: LaserScan + Min Intensity: 120 + Name: DisparityExpansion Position Transformer: XYZ Selectable: true Size (Pixels): 3 - Size (m): 0.009999999776482582 + Size (m): 0.05000000074505806 Style: Flat Squares Topic: Depth: 5 @@ -153,10 +222,38 @@ Visualization Manager: Filter size: 10 History Policy: Keep Last Reliability Policy: Reliable - Value: /robot1/perception/laser_scan + Value: /expansion/cloud_fg Use Fixed Frame: true Use rainbow: true Value: true + - Class: rviz_default_plugins/Image + Enabled: true + Max Value: 1 + Median window: 5 + Min Value: 0 + Name: expand_disparity_fg + Normalize Range: true + Topic: + Depth: 5 + Durability Policy: Volatile + History Policy: Keep Last + Reliability Policy: Reliable + Value: /narrow_stereo/left/expanded_disparity_fg + Value: true + - Class: rviz_default_plugins/Image + Enabled: true + Max Value: 1 + Median window: 5 + Min Value: 0 + Name: expanded_disparity_bg + Normalize Range: true + Topic: + Depth: 5 + Durability Policy: Volatile + History Policy: Keep Last + Reliability Policy: Reliable + Value: /narrow_stereo/left/expanded_disparity_bg + Value: true Enabled: true Global Options: Background Color: 48; 48; 48 @@ -203,25 +300,25 @@ Visualization Manager: Views: Current: Class: rviz_default_plugins/Orbit - Distance: 33.41558074951172 + Distance: 18.20482635498047 Enable Stereo Rendering: Stereo Eye Separation: 0.05999999865889549 Stereo Focal Distance: 1 Swap Stereo Eyes: false Value: false Focal Point: - X: 1.2950841188430786 - Y: 1.5061166286468506 - Z: -1.1563808917999268 + X: 0.965320885181427 + Y: 1.274168610572815 + Z: 2.3382456302642822 Focal Shape Fixed Size: true Focal Shape Size: 0.05000000074505806 Invert Z Axis: false Name: Current View Near Clip Distance: 0.009999999776482582 - Pitch: 0.4103981554508209 + Pitch: 0.40979740023612976 Target Frame: Value: Orbit (rviz) - Yaw: 5.63358736038208 + Yaw: 0.9285785555839539 Saved: ~ Window Geometry: Depth: @@ -231,7 +328,7 @@ Window Geometry: Height: 1043 Hide Left Dock: false Hide Right Dock: false - QMainWindow State: 000000ff00000000fd00000004000000000000015600000379fc020000000afb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003b0000020a000000c700fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261fb0000000a00440065007000740068010000024b0000009a0000002800fffffffb0000000600520047004201000002eb000000c90000002800ffffff000000010000010f00000379fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073010000003b00000379000000a000fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000007800000003efc0100000002fb0000000800540069006d00650100000000000007800000025300fffffffb0000000800540069006d006501000000000000045000000000000000000000050f0000037900000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 + QMainWindow State: 000000ff00000000fd00000004000000000000018a0000050afc020000000cfb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003b0000018c000000c700fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261fb0000000a0044006500700074006801000001cd000000910000002800fffffffb0000000600520047004201000002640000014b0000002800fffffffb000000260065007800700061006e0064005f006400690073007000610072006900740079005f0066006701000003b5000000b20000002800fffffffb0000002a0065007800700061006e006400650064005f006400690073007000610072006900740079005f00620067010000046d000000d80000002800ffffff000000010000015f00000506fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073000000003d00000506000000a000fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000004420000003efc0100000002fb0000000800540069006d00650100000000000004420000000000000000fb0000000800540069006d006501000000000000045000000000000000000000082a0000050a00000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 RGB: collapsed: false Selection: @@ -242,6 +339,10 @@ Window Geometry: collapsed: false Views: collapsed: false - Width: 1920 - X: 0 - Y: 360 + Width: 2490 + X: 1150 + Y: 27 + expand_disparity_fg: + collapsed: false + expanded_disparity_bg: + collapsed: false From 67e4eb47d3e3d2168afd693d8004e26d5d38226b Mon Sep 17 00:00:00 2001 From: Andrew Jong Date: Thu, 22 Aug 2024 10:02:08 -0400 Subject: [PATCH 30/50] Update dockerfile to auto install rosdeps --- docker/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index f29d354bd..3634b3fa7 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -48,8 +48,8 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ && rm -rf /var/lib/apt/lists/* # Package dependencies # perform ROS dependency installation for our workspace. -#COPY ros_ws/src /tmp/ros_ws/src -#RUN rosdep install --from-paths /tmp/ros_ws/src --ignore-src -r -y && rm -rf /tmp/ros_ws +COPY ros_ws/src /tmp/ros_ws/src +RUN rosdep install --from-paths /tmp/ros_ws/src --ignore-src -r -y && rm -rf /tmp/ros_ws # Install Gazebo Harmonic RUN apt-get update && apt-get install -y lsb-release gnupg From cfe713141001810fbd86bc79409778cfa69600e4 Mon Sep 17 00:00:00 2001 From: Robbi Exley Date: Thu, 22 Aug 2024 17:52:32 -0400 Subject: [PATCH 31/50] Testing new disparity expansion --- .vscode/settings.json | 3 +- .../depth_to_disparity_package/package.xml | 2 +- .../config/disparity_expansion_params.yaml | 17 + .../launch/disparity_expansion.xml | 1 + .../src/disparity_conv.cpp | 10 +- .../src/disparity_expansion.cpp | 340 +++++++++--------- 6 files changed, 197 insertions(+), 176 deletions(-) create mode 100644 ros_ws/src/robot/autonomy/planning/local/disparity_expansion/config/disparity_expansion_params.yaml diff --git a/.vscode/settings.json b/.vscode/settings.json index bb6fc8844..d22717a20 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -802,7 +802,8 @@ "variant": "cpp", "bit": "cpp", "__nullptr": "cpp", - "__locale": "cpp" + "__locale": "cpp", + "codecvt": "cpp" }, "C_Cpp.clang_format_fallbackStyle": "{ BasedOnStyle: Google, IndentWidth: 4, ColumnLimit: 100 }", "editor.formatOnSave": true diff --git a/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/package.xml b/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/package.xml index 69f521642..a55374ce5 100644 --- a/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/package.xml +++ b/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/package.xml @@ -1,5 +1,5 @@ - depth_to_disparity_package + my_depth_disparity_package 0.0.0 My package for depth to disparity conversion. diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/config/disparity_expansion_params.yaml b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/config/disparity_expansion_params.yaml new file mode 100644 index 000000000..146fd03d6 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/config/disparity_expansion_params.yaml @@ -0,0 +1,17 @@ +disparity_expansion: + ros__parameters: + expansion_cloud_topic: "/expansion_cloud" + expanded_disparity_fg_topic: "/expanded_disparity_fg" + expanded_disparity_bg_topic: "/expanded_disparity_bg" + expansion_poly_topic: "/expansion_poly" + camera_info_topic: "/camera_info" + disparity_topic: "/disparity" + depth_topic: "/depth" + scale: 2.0 + + # Other parameters + #lut_max_disparity: 180 + #robot_radius: 1.0 + #bg_multiplier: 2.0 + #sensor_pixel_error: 0.5 + #scale: 2.0 \ No newline at end of file diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/launch/disparity_expansion.xml b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/launch/disparity_expansion.xml index 3ce672fb4..056d0d24a 100644 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/launch/disparity_expansion.xml +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/launch/disparity_expansion.xml @@ -2,6 +2,7 @@ + diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_conv.cpp b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_conv.cpp index f1fa4b31b..3ad069650 100644 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_conv.cpp +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_conv.cpp @@ -59,7 +59,7 @@ class disparity_conv : public rclcpp::Node { public: - disparity_conv(const rclcpp::NodeOptions& options = rclcpp::NodeOptions()); + disparity_conv(const rclcpp::NodeOptions &options = rclcpp::NodeOptions()); void callback(const sensor_msgs::msg::Image::ConstSharedPtr &msg_disp, const sensor_msgs::msg::Image::ConstSharedPtr &msg_image); @@ -95,7 +95,7 @@ void disparity_conv::stereoDisparityCb(const sensor_msgs::msg::Image::ConstShare try { cv_ptrdisparity = cv_bridge::toCvShare(msg_disp); cv_ptrdisparity->image.convertTo(disparity32F, CV_32F); - } catch (cv_bridge::Exception& e) { + } catch (cv_bridge::Exception &e) { RCLCPP_ERROR(this->get_logger(), "cv_bridge exception: %s", e.what()); return; } @@ -186,7 +186,7 @@ void disparity_conv::callback(const sensor_msgs::msg::Image::ConstSharedPtr &msg cv_ptrdisparity->image.convertTo(disparity32F, CV_32F); cv_ptrImage = cv_bridge::toCvShare(msg_image); cv_ptrImage->image.convertTo(image32F, CV_32F); - } catch (cv_bridge::Exception& e) { + } catch (cv_bridge::Exception &e) { RCLCPP_ERROR(this->get_logger(), "cv_bridge exception: %s", e.what()); return; } @@ -265,7 +265,7 @@ void disparity_conv::callback(const sensor_msgs::msg::Image::ConstSharedPtr &msg // ############################################################################################################################################# // ############################################################################################################################################ -disparity_conv::disparity_conv(const rclcpp::NodeOptions& options) +disparity_conv::disparity_conv(const rclcpp::NodeOptions &options) : Node("disparity_conv", options) { @@ -296,7 +296,7 @@ disparity_conv::disparity_conv(const rclcpp::NodeOptions& options) first = true; } -int main(int argc, char** argv) { +int main(int argc, char **argv) { rclcpp::init(argc, argv); // cv::initModule_nonfree();//THIS LINE IS IMPORTANT for using surf and sift features of opencv auto node = std::make_shared(rclcpp::NodeOptions()); diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_expansion.cpp b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_expansion.cpp index 960b2699b..5fc95808d 100755 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_expansion.cpp +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_expansion.cpp @@ -6,49 +6,11 @@ */ // Applies C-Space expansion on disparity images. -/* -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +// #define SCALE 2.0 // num_units/pixel -#include "geometry_msgs/PolygonStamped.h" -#include "opencv2/core/core.hpp" -#include "ros/ros.h" -#include "sensor_msgs/CameraInfo.h" -#include "sensor_msgs/Image.h" -#include "std_msgs/Header.h" -#include "stereo_msgs/DisparityImage.h" -#include "tf/tf.h" -#include "visualization_msgs/MarkerArray.h" -*/ - -#define SCALE 2.0 // num_units/pixel -// #define SCALE_D 1000.0 -// #define lut_max_disparity_ 165 // units #include #include - -#include -#include -#include -#include -#include - -#include "opencv2/core/core.hpp" -#include "rclcpp/rclcpp.hpp" -#include "sensor_msgs/msg/camera_info.hpp" -#include "sensor_msgs/msg/image.hpp" -#include "std_msgs/msg/header.hpp" -// #include #include #include #include @@ -58,38 +20,44 @@ #include #include #include +#include +#include +#include #include #include #include +#include #include +#include #include #include #include #include -// #define SCALE 2.0 // num_units/pixel -// #define lut_max_disparity_ 165 // units -// #define robot_radius_ 2.0 // in meters -// for 2times Robsize = 0.0173 at 40m -// 15 = 0.0677 +#include "opencv2/core/core.hpp" +#include "opencv2/opencv.hpp" +#include "rclcpp/rclcpp.hpp" +#include "sensor_msgs/msg/camera_info.hpp" +#include "sensor_msgs/msg/image.hpp" +#include "std_msgs/msg/header.hpp" + #define DEPTH_ERROR_COEFF 0.0177 -// #define robot_radius_ 2.0 // in meters -// for 2times Robsize = 0.0173 at 40m -// 15 = 0.0677/ -// #define DEPTH_ERROR_COEFF 0.0177 typedef pcl::PointCloud PointCloud; class DisparityExpansionNode : public rclcpp::Node { public: DisparityExpansionNode(const rclcpp::NodeOptions& options = rclcpp::NodeOptions()); + // ############################################################################################### + // ############################################################################################### rclcpp::Publisher::SharedPtr expansion_cloud_pub; rclcpp::Publisher::SharedPtr expanded_disparity_fg_pub; rclcpp::Publisher::SharedPtr expanded_disparity_bg_pub; rclcpp::Publisher::SharedPtr expansion_poly_pub; rclcpp::Subscription::SharedPtr cam_info_sub_; rclcpp::Subscription::SharedPtr disparity_sub_; + rclcpp::Subscription::SharedPtr depth_sub_; double baseline; double downsample_scale; @@ -98,8 +66,13 @@ class DisparityExpansionNode : public rclcpp::Node { image_geometry::PinholeCameraModel model_; void getCamInfo(const sensor_msgs::msg::CameraInfo::ConstSharedPtr& msg_info); - void stereoDisparityCb(const stereo_msgs::msg::DisparityImage::ConstSharedPtr& msg_disp); + void depthImageCb(const sensor_msgs::msg::Image::ConstSharedPtr& msg); + // void stereoDisparityCb(const stereo_msgs::msg::DisparityImage::ConstSharedPtr& msg_disp); + void stereoDisparityCb(const std::shared_ptr& msg_disp); void generateExpansionLUT(); + cv::Mat depthToDisparity(const cv::Mat& depth_image); + void visualizeDepthImage(const cv::Mat& depth_image); + void visualizeDisparityImage(const cv::Mat& disparity_image); struct cell { unsigned int idx1; @@ -110,6 +83,7 @@ class DisparityExpansionNode : public rclcpp::Node { double padding_; double bg_multiplier_; double pixel_error_; + double scale_; std::vector> table_u; std::vector> table_v; // cell table_u[200][640]; @@ -148,8 +122,8 @@ void DisparityExpansionNode::generateExpansionLUT() { for (unsigned int disp_idx = 1; disp_idx < lut_max_disparity_; disp_idx++) { // z = depth*0.01;//cm to m - disparity = disp_idx / SCALE; // 1 cell = 0.5m, z is in meters - r = robot_radius_; // * exp(DEPTH_ERROR_COEFF*z); + disparity = disp_idx / scale_; // 1 cell = 0.5m, z is in meters + r = robot_radius_; // * exp(DEPTH_ERROR_COEFF*z); z = baseline * fx_ / disparity; double disp_new = baseline * fx_ / (z - robot_radius_) + 0.5; @@ -204,17 +178,14 @@ void DisparityExpansionNode::generateExpansionLUT() { table_u[disp_idx][u].idx2 = u2; } } - // for ( int u = (width - 1); u >= 0; --u ) - // { - // int d = 199; - // ROS_ERROR("window disp_idx u1 u2 \t %d \t%d - // \t%d",u,table_u[d][u].idx1,table_u[d][u].idx2); - // } + RCLCPP_WARN(this->get_logger(), "Expansion LUT created: LUT MAX: %d , ROBOT SIZE: %f", lut_max_disparity_ / 2, robot_radius_); LUT_ready = true; } +// ###################################################################################################################### + // ################################################################################################################ // ################################################################################################################ void DisparityExpansionNode::getCamInfo( @@ -237,8 +208,97 @@ void DisparityExpansionNode::getCamInfo( RCLCPP_INFO(this->get_logger(), "Focal length (fx): %.4f pixels", fx_); } +// ##################################################################################################################################### +void DisparityExpansionNode::depthImageCb(const sensor_msgs::msg::Image::ConstSharedPtr& msg) { + cv_bridge::CvImagePtr cv_ptr; + try { + cv_ptr = cv_bridge::toCvCopy(msg, sensor_msgs::image_encodings::TYPE_32FC1); + } catch (cv_bridge::Exception& e) { + RCLCPP_ERROR(this->get_logger(), "cv_bridge exception: %s", e.what()); + return; + } + + if (cv_ptr->image.empty()) { + RCLCPP_ERROR(this->get_logger(), "Received empty depth image."); + return; + } + + cv::Mat disparity_image = depthToDisparity(cv_ptr->image); + visualizeDisparityImage(disparity_image); + + auto disparity_msg = std::make_shared(); + disparity_msg->header = msg->header; + disparity_msg->image = + *cv_bridge::CvImage(msg->header, sensor_msgs::image_encodings::TYPE_32FC1, disparity_image) + .toImageMsg(); + disparity_msg->f = fx_; + + // Call the existing disparity processing function + stereoDisparityCb(disparity_msg); +} + +cv::Mat DisparityExpansionNode::depthToDisparity(const cv::Mat& depth_image) { + if (depth_image.empty()) { + RCLCPP_ERROR(this->get_logger(), + "Depth image is empty in depthToDisparity. Raising an error."); + throw std::runtime_error("Depth image is empty in depthToDisparity."); + } + + // Ensure depth_image is CV_32F (float32) + cv::Mat depth_float; + if (depth_image.type() != CV_32F) { + depth_image.convertTo(depth_float, CV_32F); + } else { + depth_float = depth_image; + } + + cv::Mat disparity_image(depth_float.size(), CV_32F); + + // DISPARITY FORMULA + // Instead of using cv::divide, we'll use element-wise operation + for (int i = 0; i < depth_float.rows; ++i) { + for (int j = 0; j < depth_float.cols; ++j) { + float depth = depth_float.at(i, j); + if (depth > 0) { + disparity_image.at(i, j) = (baseline * fx_) / depth; + } else { + disparity_image.at(i, j) = 0.0f; + } + } + } + + // DISPARITY FORMULA + + disparity_image = (baseline * fx_) / depth_image; + // Handle infinite and NaN values + // RCLCPP_INFO(this->get_logger(), "Baseline: %.4f", baseline); + // RCLCPP_INFO(this->get_logger(), "Focal length (fx): %.4f", fx_); + cv::patchNaNs(disparity_image, 0.0f); + disparity_image.setTo(0.0f, disparity_image == std::numeric_limits::infinity()); + + // Print array of depth and disparity values (5x5 grid from top-left corner) + + return disparity_image; +} + +void DisparityExpansionNode::visualizeDepthImage(const cv::Mat& depth_image) { + cv::Mat normalized, display; + cv::normalize(depth_image, normalized, 0, 255, cv::NORM_MINMAX, CV_8UC1); + cv::applyColorMap(normalized, display, cv::COLORMAP_JET); + cv::imshow("Depth Image", display); + cv::waitKey(1); +} + +void DisparityExpansionNode::visualizeDisparityImage(const cv::Mat& disparity_image) { + cv::imshow("Disparity Image", disparity_image); + cv::waitKey(1); +} + +// ##################################################################################################################################### +// ##################################################################################################################################### + void DisparityExpansionNode::stereoDisparityCb( - const stereo_msgs::msg::DisparityImage::ConstSharedPtr& + const std::shared_ptr& msg_disp) { // sensor_msgs::Image::ConstPtr &msg_disp){ // ROS_INFO("Disparity CB"); // dimage = *msg_disp; @@ -288,22 +348,7 @@ void DisparityExpansionNode::stereoDisparityCb( cv::Mat disparity_bg; cv::Mat disparity32F_bg; - // const sensor_msgs::ImageConstPtr my_ptr = &dimage; - // cv::Mat dummy(msg_disp->image.height,msg_disp->image.width,CV_32FC4); - // dummy.copyTo(free_msg->image); - // free_msg->image.zeros(msg_disp->image.height,msg_disp->image.width,CV_32FC4); - // free_msg->header = dimage.header; - // free_msg->encoding = sensor_msgs::image_encodings::TYPE_32FC4; try { - // fg_msg = cv_bridge::toCvCopy(dimage, sensor_msgs::image_encodings::TYPE_32FC1); - // bg_msg = cv_bridge::toCvCopy(dimage, sensor_msgs::image_encodings::TYPE_32FC1); - // di_msg = cv_bridge::toCvCopy(dimage, sensor_msgs::image_encodings::TYPE_32FC1); - - // fg_msg->image.zeros(disparity32F.rows,disparity32F.cols,CV_32FC1);// = - // disparity32F; bg_msg->image.zeros(disparity32F.rows,disparity32F.cols,CV_32FC1);// - // .create(disparity32F.rows,disparity32F.cols,CV_32F);// = disparity32F; - // di_msg->image.zeros(disparity32F.rows,disparity32F.cols,CV_32FC1);// - // .create(disparity32F.rows,disparity32F.cols,CV_32F);// = disparity32F; disparity32F.copyTo(fg_msg->image); disparity32F.copyTo(bg_msg->image); @@ -344,50 +389,21 @@ void DisparityExpansionNode::stereoDisparityCb( for (int u = (int)width - 1; u >= 0; u -= 1) { float disparity_value = disparity32F.at(v, u); // disparity_row[v * row_step + u];// + 0.5; - if (!std::isnan(double(disparity_value * SCALE)) && - ((int(disparity_value * SCALE) + 1) < lut_max_disparity_) && - ((int(disparity_value * SCALE) + 1) > 0)) // expand + if (!std::isnan(double(disparity_value * scale_)) && + ((int(disparity_value * scale_) + 1) < lut_max_disparity_) && + ((int(disparity_value * scale_) + 1) > 0)) // expand { // disparity_value = disparity32F.at(v,u)+0.5; - unsigned int u1 = table_u[int(disparity_value * SCALE) + 1][u].idx1; - unsigned int u2 = table_u[int(disparity_value * SCALE) + 1][u].idx2; - - // unsigned int v1 = - // v;//table_v[int(disparity_value*SCALE)+1][v].idx1; - // unsigned int v2 = - // v+1;//table_v[int(disparity_value*SCALE)+1][v].idx2; - - // if(v1 <0 || u1 <0 || v2 >=height || u2>=width || - // (u2-u1)<=0 || (v2-v1)<=0) - // { - // ROS_ERROR("U Expansion out of img bounds with - // disparity: %f",disparity_value); ROS_ERROR("u1 - // u2 v1 v2 %d %d \t %d %d",u1,u2,v1,v2); - // continue; - // } + unsigned int u1 = table_u[int(disparity_value * scale_) + 1][u].idx1; + unsigned int u2 = table_u[int(disparity_value * scale_) + 1][u].idx2; + if (disparity32F.empty()) { RCLCPP_ERROR(this->get_logger(), "disparity32F matrix is empty."); return; } - // if (u1 < 0 || u1 >= disparity32F.cols || u2 < 0 || - // u2 >= disparity32F.cols || u1 >= u2) { - // std::cerr << "Invalid ROI indices: u1=" << u1 << ", u2=" << u2 - // << std::endl; - // return; - cv::Rect roi = cv::Rect(u1, v, (u2 - u1), 1); - // if (roi.width <= 0 || roi.height <= 0 || roi.x < 0 || roi.y < 0 || - // roi.x + roi.width > disparity32F.cols || - // roi.y + roi.height > disparity32F.rows) { - // RCLCPP_ERROR(this->get_logger(), - // "ROI is out of bounds: u1=%d, v=%d, u2=%d, " - // "disparity32F.cols=%d, disparity32F.rows=%d", - // u1, v, u2, disparity32F.cols, disparity32F.rows); - // continue; - // } - cv::Mat submat_t = disparity32F(roi).clone(); double min, max; @@ -445,7 +461,7 @@ void DisparityExpansionNode::stereoDisparityCb( this->get_logger(), *this->get_clock(), 1000, "BAD disparity during expansion for u: " << disparity_value << " lut_max_disparity_: " << lut_max_disparity_ - << " SCALE: " << SCALE); + << " SCALE: " << scale_); } } } @@ -460,11 +476,11 @@ void DisparityExpansionNode::stereoDisparityCb( disparity32F.at(v, u) + pixel_error_; // disparity_row[v * row_step + u];// + 0.5; if (!std::isnan(double(disparity_value)) && - ((int(disparity_value * SCALE) + 1) < lut_max_disparity_) && - ((int(disparity_value * SCALE) + 1) > 0)) // expand + ((int(disparity_value * scale_) + 1) < lut_max_disparity_) && + ((int(disparity_value * scale_) + 1) > 0)) // expand { - unsigned int v1 = table_v[int(disparity_value * SCALE) + 1][v].idx1; - unsigned int v2 = table_v[int(disparity_value * SCALE) + 1][v].idx2; + unsigned int v1 = table_v[int(disparity_value * scale_) + 1][v].idx1; + unsigned int v2 = table_v[int(disparity_value * scale_) + 1][v].idx2; cv::Rect roi = cv::Rect(u, v1, 1, (v2 - v1)); cv::Mat submat_t = disparity32F_bg(roi).clone(); @@ -527,7 +543,7 @@ void DisparityExpansionNode::stereoDisparityCb( this->get_logger(), *this->get_clock(), 1000, "BAD disparity during expansion for v: " << disparity_value << " lut_max_disparity_: " << lut_max_disparity_ - << " SCALE: " << SCALE); + << " SCALE: " << scale_); } } } @@ -651,37 +667,13 @@ void DisparityExpansionNode::stereoDisparityCb( pt_real.z = depth_value; pt_real.intensity = 170; //*disparity32F.at(v,u)/200; - // depth_value = baseline * fx_ / - // free_msg->image.at(v,u)[2]; - // pt_free1.x = ( u - center_x ) * depth_value * - // constant_x; pt_free1.y = ( v - center_y ) * - // depth_value * constant_y; pt_free1.z = - // depth_value; pt_free1.intensity = 170; - // depth_value = baseline * fx_ / - // free_msg->image.at(v,u)[3]; - // pt_free2.x = ( u - center_x ) * depth_value * - // constant_x; pt_free2.y = ( v - center_y ) * - // depth_value * constant_y; pt_free2.z = - // depth_value; pt_free2.intensity = 170; - - // if(fg_msg->image.at(v,u) >= 0.1 && - // bg_msg->image.at(v,u) >= 0.1 ) - // if(new_disparity_bridgePtr->image.at(v,u) - // > 0.1) { - // ROS_INFO("depth: - // %f",new_disparity_bridgePtr->image.at(v,u)); point_counter++; cloud->points.push_back(pt_fg); point_counter++; cloud->points.push_back(pt_bg); point_counter++; cloud->points.push_back(pt_real); - - // point_counter++; - // cloud->points.push_back ( pt_free1 ); - // point_counter++; - // cloud->points.push_back ( pt_free2 ); } } } @@ -705,49 +697,59 @@ void DisparityExpansionNode::stereoDisparityCb( DisparityExpansionNode::DisparityExpansionNode(const rclcpp::NodeOptions& options) : Node("DisparityExpansionNode", options) { - expansion_cloud_pub = - this->create_publisher("/expansion/cloud_fg", 10); - expansion_poly_pub = - this->create_publisher("/expansion/occ_marker", 10); - expanded_disparity_fg_pub = this->create_publisher( - "/narrow_stereo/left/expanded_disparity_fg", 10); - expanded_disparity_bg_pub = this->create_publisher( - "/narrow_stereo/left/expanded_disparity_bg", 10); - - RCLCPP_INFO(this->get_logger(), "into constr with node name %s", this->get_name()); - LUT_ready = false; - got_cam_info = false; - - cam_info_sub_ = this->create_subscription( - "/robot1/perception/camera_info", 1, - std::bind(&DisparityExpansionNode::getCamInfo, this, std::placeholders::_1)); - - // disparity_sub_ = this->create_subscription( - // "/narrow_stereo/disparity", 1, - // std::bind(&DisparityExpansionNode::stereoDisparityCb, this, std::placeholders::_1)); - - disparity_sub_ = this->create_subscription( - "/disparity/image_raw", 1, - std::bind(&DisparityExpansionNode::stereoDisparityCb, this, std::placeholders::_1)); - + // ############################################################################# + this->declare_parameter("expansion_cloud_topic", "expansion_cloud"); + this->declare_parameter("expanded_disparity_fg_topic", "expanded_disparity_fg"); + this->declare_parameter("expanded_disparity_bg_topic", "expanded_disparity_bg"); + this->declare_parameter("expansion_poly_topic", "expansion_poly"); + this->declare_parameter("camera_info_topic", "camera_info"); + this->declare_parameter("disparity_topic", "disparity"); + this->declare_parameter("depth_topic", "depth"); + this->declare_parameter("scale", 2.0); this->declare_parameter("robot_radius", 2.0); this->declare_parameter("lut_max_disparity", 164); this->declare_parameter("padding", 2.0); this->declare_parameter("bg_multiplier", 5.0); this->declare_parameter("sensor_pixel_error", 0.5); + std::string expansion_cloud_topic = this->get_parameter("expansion_cloud_topic").as_string(); + std::string expanded_disparity_fg_topic = + this->get_parameter("expanded_disparity_fg_topic").as_string(); + std::string expanded_disparity_bg_topic = + this->get_parameter("expanded_disparity_bg_topic").as_string(); + std::string expansion_poly_topic = this->get_parameter("expansion_poly_topic").as_string(); + std::string camera_info_topic = this->get_parameter("camera_info_topic").as_string(); + std::string disparity_topic = this->get_parameter("disparity_topic").as_string(); + std::string depth_topic = this->get_parameter("depth_topic").as_string(); + scale_ = this->get_parameter("scale").as_double(); this->get_parameter("robot_radius", robot_radius_); this->get_parameter("lut_max_disparity", lut_max_disparity_); this->get_parameter("padding", padding_); this->get_parameter("bg_multiplier", bg_multiplier_); this->get_parameter("sensor_pixel_error", pixel_error_); + // ############################################################################# + + expansion_cloud_pub = + this->create_publisher(expansion_cloud_topic, 10); + expansion_poly_pub = + this->create_publisher(expansion_poly_topic, 10); + expanded_disparity_fg_pub = + this->create_publisher(expanded_disparity_fg_topic, 10); + expanded_disparity_bg_pub = + this->create_publisher(expanded_disparity_bg_topic, 10); + + RCLCPP_INFO(this->get_logger(), "into constr with node name %s", this->get_name()); + LUT_ready = false; + got_cam_info = false; + + cam_info_sub_ = this->create_subscription( + camera_info_topic, 1, + std::bind(&DisparityExpansionNode::getCamInfo, this, std::placeholders::_1)); + + depth_sub_ = this->create_subscription( + depth_topic, 1, + std::bind(&DisparityExpansionNode::depthImageCb, this, std::placeholders::_1)); - // cx_ = 317.20617294311523; - // cy_ = 233.2914752960205; - // fx_ = fy_ = 307.4838344732113; - // baseline = 0.5576007548439765; - // width = 640; - // height = 480; downsample_scale = 2.0; } From 445a67e5e0ad0da3277d75b91225e49003d6a221 Mon Sep 17 00:00:00 2001 From: Andrew Jong Date: Fri, 23 Aug 2024 11:14:10 -0400 Subject: [PATCH 32/50] Update try params --- .../local/disparity_expansion/CMakeLists.txt | 256 +++++++++--------- .../config/disparity_expansion_params.yaml | 10 +- .../src/disparity_expansion.cpp | 7 + 3 files changed, 141 insertions(+), 132 deletions(-) diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/CMakeLists.txt b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/CMakeLists.txt index d55256a75..d1d2f7175 100644 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/CMakeLists.txt +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/CMakeLists.txt @@ -1,18 +1,17 @@ cmake_minimum_required(VERSION 3.5) project(disparity_expansion) -## Find catkin macros and libraries -## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz) -## is used, also find other catkin packages -#find_package(catkin REQUIRED COMPONENTS -# cv_bridge -# image_geometry -# image_transport -# roscpp -# std_msgs -# tf -#) - +# # Find catkin macros and libraries +# # if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz) +# # is used, also find other catkin packages +# find_package(catkin REQUIRED COMPONENTS +# cv_bridge +# image_geometry +# image_transport +# roscpp +# std_msgs +# tf +# ) find_package(ament_cmake REQUIRED) find_package(rclcpp REQUIRED) find_package(cv_bridge REQUIRED) @@ -21,13 +20,15 @@ find_package(image_transport REQUIRED) find_package(sensor_msgs REQUIRED) find_package(std_msgs REQUIRED) find_package(tf2 REQUIRED) -#find_package(pcl_ros REQUIRED) + +# find_package(pcl_ros REQUIRED) find_package(stereo_msgs REQUIRED) find_package(tf2_geometry_msgs REQUIRED) find_package(message_filters REQUIRED) find_package(visualization_msgs REQUIRED) -find_package(pcl_conversions REQUIRED) +find_package(pcl_conversions REQUIRED) + # CONFIGURE OPENCV find_package(OpenCV REQUIRED) @@ -36,126 +37,124 @@ find_package(PCL 1.12 REQUIRED) set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_STANDARD_REQUIRED ON) -## System dependencies are found with CMake's conventions -# find_package(Boost REQUIRED COMPONENTS system) +# # System dependencies are found with CMake's conventions +# find_package(Boost REQUIRED COMPONENTS system) message(STATUS "PCL_INCLUDE_DIRS: ${PCL_INCLUDE_DIRS}") -## Uncomment this if the package has a setup.py. This macro ensures -## modules and global scripts declared therein get installed -## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html +# # Uncomment this if the package has a setup.py. This macro ensures +# # modules and global scripts declared therein get installed +# # See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html # catkin_python_setup() -################################################ -## Declare ROS messages, services and actions ## -################################################ - -## To declare and build messages, services or actions from within this -## package, follow these steps: -## * Let MSG_DEP_SET be the set of packages whose message types you use in -## your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...). -## * In the file package.xml: -## * add a build_depend and a run_depend tag for each package in MSG_DEP_SET -## * If MSG_DEP_SET isn't empty the following dependencies might have been -## pulled in transitively but can be declared for certainty nonetheless: -## * add a build_depend tag for "message_generation" -## * add a run_depend tag for "message_runtime" -## * In this file (CMakeLists.txt): -## * add "message_generation" and every package in MSG_DEP_SET to -## find_package(catkin REQUIRED COMPONENTS ...) -## * add "message_runtime" and every package in MSG_DEP_SET to -## catkin_package(CATKIN_DEPENDS ...) -## * uncomment the add_*_files sections below as needed -## and list every .msg/.srv/.action file to be processed -## * uncomment the generate_messages entry below -## * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...) - -## Generate messages in the 'msg' folder +# ############################################### +# # Declare ROS messages, services and actions ## +# ############################################### + +# # To declare and build messages, services or actions from within this +# # package, follow these steps: +# # * Let MSG_DEP_SET be the set of packages whose message types you use in +# # your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...). +# # * In the file package.xml: +# # * add a build_depend and a run_depend tag for each package in MSG_DEP_SET +# # * If MSG_DEP_SET isn't empty the following dependencies might have been +# # pulled in transitively but can be declared for certainty nonetheless: +# # * add a build_depend tag for "message_generation" +# # * add a run_depend tag for "message_runtime" +# # * In this file (CMakeLists.txt): +# # * add "message_generation" and every package in MSG_DEP_SET to +# # find_package(catkin REQUIRED COMPONENTS ...) +# # * add "message_runtime" and every package in MSG_DEP_SET to +# # catkin_package(CATKIN_DEPENDS ...) +# # * uncomment the add_*_files sections below as needed +# # and list every .msg/.srv/.action file to be processed +# # * uncomment the generate_messages entry below +# # * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...) + +# # Generate messages in the 'msg' folder # add_message_files( -# FILES -# Message1.msg -# Message2.msg +# FILES +# Message1.msg +# Message2.msg # ) -## Generate services in the 'srv' folder +# # Generate services in the 'srv' folder # add_service_files( -# FILES -# Service1.srv -# Service2.srv +# FILES +# Service1.srv +# Service2.srv # ) -## Generate actions in the 'action' folder +# # Generate actions in the 'action' folder # add_action_files( -# FILES -# Action1.action -# Action2.action +# FILES +# Action1.action +# Action2.action # ) -## Generate added messages and services with any dependencies listed here +# # Generate added messages and services with any dependencies listed here # generate_messages( -# DEPENDENCIES -# std_msgs +# DEPENDENCIES +# std_msgs # ) -################################### -## catkin specific configuration ## -################################### -## The catkin_package macro generates cmake config files for your package -## Declare things to be passed to dependent projects -## INCLUDE_DIRS: uncomment this if you package contains header files -## LIBRARIES: libraries you create in this project that dependent projects also need -## CATKIN_DEPENDS: catkin_packages dependent projects also need -## DEPENDS: system dependencies of this project that dependent projects also need -#catkin_package( -# INCLUDE_DIRS +# ################################## +# # catkin specific configuration ## +# ################################## +# # The catkin_package macro generates cmake config files for your package +# # Declare things to be passed to dependent projects +# # INCLUDE_DIRS: uncomment this if you package contains header files +# # LIBRARIES: libraries you create in this project that dependent projects also need +# # CATKIN_DEPENDS: catkin_packages dependent projects also need +# # DEPENDS: system dependencies of this project that dependent projects also need +# catkin_package( +# INCLUDE_DIRS # include -# ${catkin_INCLUDE_DIRS} -# ${OpenCV_INCLUDE_DIRS} -# ${PCL_INCLUDE_DIRS} - +# ${catkin_INCLUDE_DIRS} +# ${OpenCV_INCLUDE_DIRS} +# ${PCL_INCLUDE_DIRS} include_directories( ${rclcpp_INCLUDE_DIRS} - ${rcl_interfaces_INCLUDE_DIRS} + ${rcl_interfaces_INCLUDE_DIRS} ${cv_bridge_INCLUDE_DIRS} ${image_geometry_INCLUDE_DIRS} ${image_transport_INCLUDE_DIRS} ${sensor_msgs_INCLUDE_DIRS} ${std_msgs_INCLUDE_DIRS} ${tf2_INCLUDE_DIRS} - ${pcl_ros_INCLUDE_DIRS} + ${pcl_ros_INCLUDE_DIRS} ${OpenCV_INCLUDE_DIRS} ${PCL_INCLUDE_DIRS} - ${pcl_conversions_INCLUDE_DIRS} + ${pcl_conversions_INCLUDE_DIRS} ${tf2_geometry_msgs_INCLUDE_DIRS} ) +# LIBRARIES disparity_expansion +# CATKIN_DEPENDS cv_bridge image_geometry image_transport roscpp std_msgs tf +# DEPENDS system_lib +# ) -# LIBRARIES disparity_expansion -# CATKIN_DEPENDS cv_bridge image_geometry image_transport roscpp std_msgs tf -# DEPENDS system_lib -#) - -########### -## Build ## -########### - +# ########## +# # Build ## +# ########## set(CMAKE_BUILD_TYPE Release) -## Specify additional locations of header files -## Your package locations should be listed before other locations +# # Specify additional locations of header files +# # Your package locations should be listed before other locations # include_directories(include) include_directories( -# ${catkin_INCLUDE_DIRS} + + # ${catkin_INCLUDE_DIRS} ${PCL_INCLUDE_DIRS} ) -## Declare a cpp library +# # Declare a cpp library # add_library(disparity_expansion -# src/${PROJECT_NAME}/disparity_expansion.cpp +# src/${PROJECT_NAME}/disparity_expansion.cpp # ) -## Declare a cpp executable -add_executable (disparity_expansion src/disparity_expansion.cpp) +# # Declare a cpp executable +add_executable(disparity_expansion src/disparity_expansion.cpp) target_link_libraries(disparity_expansion ${OpenCV_LIBS} ${catkin_LIBRARIES} ) @@ -174,7 +173,7 @@ ament_target_dependencies(disparity_expansion stereo_msgs tf2_geometry_msgs ) -add_executable (disparity_conv src/disparity_conv.cpp) +add_executable(disparity_conv src/disparity_conv.cpp) target_link_libraries(disparity_conv ${OpenCV_LIBS} ${catkin_LIBRARIES} ) @@ -192,7 +191,7 @@ ament_target_dependencies(disparity_conv tf2_geometry_msgs ) -add_executable (disparity_pcd src/disparity_pcd.cpp) +add_executable(disparity_pcd src/disparity_pcd.cpp) target_link_libraries(disparity_pcd ${OpenCV_LIBS} ${catkin_LIBRARIES} ) @@ -210,9 +209,8 @@ ament_target_dependencies(disparity_pcd tf2_geometry_msgs ) - -#install(TARGETS disparity_expansion -# RUNTIME DESTINATION bin) +# install(TARGETS disparity_expansion +# RUNTIME DESTINATION bin) install(TARGETS disparity_expansion DESTINATION lib/${PROJECT_NAME} ) @@ -225,61 +223,65 @@ install(TARGETS disparity_pcd install(FILES package.xml DESTINATION share/${PROJECT_NAME} ) -#install(DIRECTORY params DESTINATION share/${PROJECT_NAME}) + +# install(DIRECTORY params DESTINATION share/${PROJECT_NAME}) install(DIRECTORY launch DESTINATION share/${PROJECT_NAME}) -## Add cmake target dependencies of the executable/library -## as an example, message headers may need to be generated before nodes +install(DIRECTORY config DESTINATION share/${PROJECT_NAME}) + +# # Add cmake target dependencies of the executable/library +# # as an example, message headers may need to be generated before nodes # add_dependencies(disparity_expansion_node disparity_expansion_generate_messages_cpp) -## Specify libraries to link a library or executable target against +# # Specify libraries to link a library or executable target against # target_link_libraries(disparity_expansion_node -# ${catkin_LIBRARIES} +# ${catkin_LIBRARIES} # ) ament_package() -############# -## Install ## -############# + +# ############ +# # Install ## +# ############ # all install targets should use catkin DESTINATION variables # See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html -## Mark executable scripts (Python etc.) for installation -## in contrast to setup.py, you can choose the destination +# # Mark executable scripts (Python etc.) for installation +# # in contrast to setup.py, you can choose the destination # install(PROGRAMS -# scripts/my_python_script -# DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} +# scripts/my_python_script +# DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} # ) -## Mark executables and/or libraries for installation +# # Mark executables and/or libraries for installation # install(TARGETS disparity_expansion disparity_expansion_node -# ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} -# LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} -# RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} +# ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} +# LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} +# RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} # ) -## Mark cpp header files for installation +# # Mark cpp header files for installation # install(DIRECTORY include/${PROJECT_NAME}/ -# DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} -# FILES_MATCHING PATTERN "*.h" -# PATTERN ".svn" EXCLUDE +# DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} +# FILES_MATCHING PATTERN "*.h" +# PATTERN ".svn" EXCLUDE # ) -## Mark other files for installation (e.g. launch and bag files, etc.) +# # Mark other files for installation (e.g. launch and bag files, etc.) # install(FILES -# # myfile1 -# # myfile2 -# DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} +# # myfile1 +# # myfile2 +# DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} # ) -############# -## Testing ## -############# +# ############ +# # Testing ## +# ############ -## Add gtest based cpp test target and link libraries +# # Add gtest based cpp test target and link libraries # catkin_add_gtest(${PROJECT_NAME}-test test/test_disparity_expansion.cpp) # if(TARGET ${PROJECT_NAME}-test) -# target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME}) +# target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME}) # endif() -## Add folders to be run by python nosetests +# # Add folders to be run by python nosetests # catkin_add_nosetests(test) diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/config/disparity_expansion_params.yaml b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/config/disparity_expansion_params.yaml index 146fd03d6..58f0fb3ab 100644 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/config/disparity_expansion_params.yaml +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/config/disparity_expansion_params.yaml @@ -1,12 +1,12 @@ disparity_expansion: ros__parameters: - expansion_cloud_topic: "/expansion_cloud" - expanded_disparity_fg_topic: "/expanded_disparity_fg" - expanded_disparity_bg_topic: "/expanded_disparity_bg" + expansion_cloud_topic: "/robot1/expansion_cloud" + expanded_disparity_fg_topic: "/robot1/expanded_disparity_fg" + expanded_disparity_bg_topic: "/robot1/expanded_disparity_bg" expansion_poly_topic: "/expansion_poly" - camera_info_topic: "/camera_info" + camera_info_topic: "/robot1/perception/camera_info" disparity_topic: "/disparity" - depth_topic: "/depth" + depth_topic: "/robot1/perception/depth" scale: 2.0 # Other parameters diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_expansion.cpp b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_expansion.cpp index 5fc95808d..e5e38fbe3 100755 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_expansion.cpp +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_expansion.cpp @@ -713,14 +713,21 @@ DisparityExpansionNode::DisparityExpansionNode(const rclcpp::NodeOptions& option this->declare_parameter("sensor_pixel_error", 0.5); std::string expansion_cloud_topic = this->get_parameter("expansion_cloud_topic").as_string(); + // log to console + RCLCPP_INFO(this->get_logger(), "expansion_cloud_topic: %s", expansion_cloud_topic.c_str()); std::string expanded_disparity_fg_topic = this->get_parameter("expanded_disparity_fg_topic").as_string(); + RCLCPP_INFO(this->get_logger(), "expanded_disparity_fg_topic: %s", + expanded_disparity_fg_topic.c_str()); std::string expanded_disparity_bg_topic = this->get_parameter("expanded_disparity_bg_topic").as_string(); + RCLCPP_INFO(this->get_logger(), "expanded_disparity_bg_topic: %s", + expanded_disparity_bg_topic.c_str()); std::string expansion_poly_topic = this->get_parameter("expansion_poly_topic").as_string(); std::string camera_info_topic = this->get_parameter("camera_info_topic").as_string(); std::string disparity_topic = this->get_parameter("disparity_topic").as_string(); std::string depth_topic = this->get_parameter("depth_topic").as_string(); + RCLCPP_INFO(this->get_logger(), "depth_topic: %s", depth_topic.c_str()); scale_ = this->get_parameter("scale").as_double(); this->get_parameter("robot_radius", robot_radius_); this->get_parameter("lut_max_disparity", lut_max_disparity_); From 1654253c615a3b772d7239d563138d3c8295c564 Mon Sep 17 00:00:00 2001 From: Andrew Jong Date: Fri, 23 Aug 2024 11:14:25 -0400 Subject: [PATCH 33/50] Turn off mavros in launch --- .../controls_bringup/launch/launch_controls.yaml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/ros_ws/src/robot/autonomy/controls/controls_bringup/launch/launch_controls.yaml b/ros_ws/src/robot/autonomy/controls/controls_bringup/launch/launch_controls.yaml index 229ca539c..ae11734c7 100644 --- a/ros_ws/src/robot/autonomy/controls/controls_bringup/launch/launch_controls.yaml +++ b/ros_ws/src/robot/autonomy/controls/controls_bringup/launch/launch_controls.yaml @@ -4,13 +4,14 @@ launch: namespace: "controls" # include MAVROS ardupilot - - include: - file: "$(find-pkg-share mavros)/launch/apm.launch" - arg: - - name: "fcu_url" - value: "udp://:14554@" - - name: "respawn_mavros" - value: "true" + # assume the interface is MAVROS and that MAVROS is already running + # - include: + # file: "$(find-pkg-share mavros)/launch/apm.launch" + # arg: + # - name: "fcu_url" + # value: "udp://:14554@" + # - name: "respawn_mavros" + # value: "true" - node: pkg: "robot_interface" From f96777c51d06f02430115a05d180f314726808d8 Mon Sep 17 00:00:00 2001 From: Robbi Exley Date: Fri, 23 Aug 2024 16:19:01 -0400 Subject: [PATCH 34/50] Cleaned code for DIsparity Expansion --- .../depth_to_disparity.py | 9 +- .../config/disparity_expansion_params.yaml | 8 +- .../src/disparity_expansion.cpp | 104 ++++-------------- 3 files changed, 32 insertions(+), 89 deletions(-) diff --git a/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/depth_to_disparity_package/depth_to_disparity.py b/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/depth_to_disparity_package/depth_to_disparity.py index 2abb6dbca..82572fb81 100644 --- a/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/depth_to_disparity_package/depth_to_disparity.py +++ b/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/depth_to_disparity_package/depth_to_disparity.py @@ -70,11 +70,14 @@ def listener_callback(self, msg): disparity_image, encoding="32FC1" ) disparity_msg.f = self.focal_length # Focal length + print(cv_image[:10]) visualize_depth_image(cv_image) visualize_disparity_image(disparity_image) - self.get_logger().info(f"Disparity image min: {np.min(disparity_image)}", throttle_duration_sec=1) + self.get_logger().info( + f"Disparity image min: {np.min(disparity_image)}", throttle_duration_sec=1 + ) # Publish the disparity image self.publisher.publish(disparity_msg) @@ -89,7 +92,9 @@ def depth_to_disparity(self, depth_image): with np.errstate(divide="ignore", invalid="ignore"): # DISPARITY FORMULA - disparity_image = (self.baseline * self.focal_length) / depth_image + disparity_image = (self.baseline * self.focal_length) / ( + depth_image + ) # mult by 100 # Handle infinite and NaN values in the disparity image disparity_image[np.isinf(disparity_image)] = 0 diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/config/disparity_expansion_params.yaml b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/config/disparity_expansion_params.yaml index 58f0fb3ab..a20abd3dd 100644 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/config/disparity_expansion_params.yaml +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/config/disparity_expansion_params.yaml @@ -8,10 +8,6 @@ disparity_expansion: disparity_topic: "/disparity" depth_topic: "/robot1/perception/depth" scale: 2.0 + downsample_scale: 2.0 - # Other parameters - #lut_max_disparity: 180 - #robot_radius: 1.0 - #bg_multiplier: 2.0 - #sensor_pixel_error: 0.5 - #scale: 2.0 \ No newline at end of file + \ No newline at end of file diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_expansion.cpp b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_expansion.cpp index e5e38fbe3..547fad67c 100755 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_expansion.cpp +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_expansion.cpp @@ -7,8 +7,6 @@ // Applies C-Space expansion on disparity images. -// #define SCALE 2.0 // num_units/pixel - #include #include #include @@ -41,16 +39,12 @@ #include "sensor_msgs/msg/image.hpp" #include "std_msgs/msg/header.hpp" -#define DEPTH_ERROR_COEFF 0.0177 - typedef pcl::PointCloud PointCloud; class DisparityExpansionNode : public rclcpp::Node { public: DisparityExpansionNode(const rclcpp::NodeOptions& options = rclcpp::NodeOptions()); - // ############################################################################################### - // ############################################################################################### rclcpp::Publisher::SharedPtr expansion_cloud_pub; rclcpp::Publisher::SharedPtr expanded_disparity_fg_pub; rclcpp::Publisher::SharedPtr expanded_disparity_bg_pub; @@ -67,7 +61,6 @@ class DisparityExpansionNode : public rclcpp::Node { void getCamInfo(const sensor_msgs::msg::CameraInfo::ConstSharedPtr& msg_info); void depthImageCb(const sensor_msgs::msg::Image::ConstSharedPtr& msg); - // void stereoDisparityCb(const stereo_msgs::msg::DisparityImage::ConstSharedPtr& msg_disp); void stereoDisparityCb(const std::shared_ptr& msg_disp); void generateExpansionLUT(); cv::Mat depthToDisparity(const cv::Mat& depth_image); @@ -86,16 +79,11 @@ class DisparityExpansionNode : public rclcpp::Node { double scale_; std::vector> table_u; std::vector> table_v; - // cell table_u[200][640]; - // cell table_v[200][480]; double table_d[200]; double fx_, fy_, cx_, cy_; unsigned int width, height; }; -// ################################################################################################################################################################################ -// ################################################################################################################################################################################ - void DisparityExpansionNode::generateExpansionLUT() { bool debug = false; if (debug) { @@ -104,7 +92,7 @@ void DisparityExpansionNode::generateExpansionLUT() { } if (LUT_ready) { RCLCPP_ERROR(this->get_logger(), "LUT all ready"); - // sleep(1); + return; } double center_x = cx_; @@ -121,14 +109,12 @@ void DisparityExpansionNode::generateExpansionLUT() { double disparity; for (unsigned int disp_idx = 1; disp_idx < lut_max_disparity_; disp_idx++) { - // z = depth*0.01;//cm to m disparity = disp_idx / scale_; // 1 cell = 0.5m, z is in meters r = robot_radius_; // * exp(DEPTH_ERROR_COEFF*z); z = baseline * fx_ / disparity; double disp_new = baseline * fx_ / (z - robot_radius_) + 0.5; table_d[disp_idx] = disp_new; - // ROS_INFO("REAL EXPANDED: %f , %f",disparity,table_d[disp_idx]); for (int v = (int)height - 1; v >= 0; --v) { y = (v - center_y) * z * constant_y; @@ -184,10 +170,6 @@ void DisparityExpansionNode::generateExpansionLUT() { LUT_ready = true; } -// ###################################################################################################################### - -// ################################################################################################################ -// ################################################################################################################ void DisparityExpansionNode::getCamInfo( const sensor_msgs::msg::CameraInfo::ConstSharedPtr& msg_info) { if (got_cam_info) return; @@ -208,7 +190,6 @@ void DisparityExpansionNode::getCamInfo( RCLCPP_INFO(this->get_logger(), "Focal length (fx): %.4f pixels", fx_); } -// ##################################################################################################################################### void DisparityExpansionNode::depthImageCb(const sensor_msgs::msg::Image::ConstSharedPtr& msg) { cv_bridge::CvImagePtr cv_ptr; try { @@ -222,9 +203,16 @@ void DisparityExpansionNode::depthImageCb(const sensor_msgs::msg::Image::ConstSh RCLCPP_ERROR(this->get_logger(), "Received empty depth image."); return; } - + RCLCPP_INFO(this->get_logger(), "Printing 5x5 grid of depth values:"); + for (int i = 0; i < 5 && i < cv_ptr->image.rows; ++i) { + for (int j = 0; j < 5 && j < cv_ptr->image.cols; ++j) { + float depth_val = cv_ptr->image.at(i, j); + RCLCPP_INFO(this->get_logger(), "Depth[%d,%d]: %.4f", i, j, depth_val); + } + } cv::Mat disparity_image = depthToDisparity(cv_ptr->image); visualizeDisparityImage(disparity_image); + // visualizeDepthImage(cv_ptr->image); auto disparity_msg = std::make_shared(); disparity_msg->header = msg->header; @@ -244,7 +232,6 @@ cv::Mat DisparityExpansionNode::depthToDisparity(const cv::Mat& depth_image) { throw std::runtime_error("Depth image is empty in depthToDisparity."); } - // Ensure depth_image is CV_32F (float32) cv::Mat depth_float; if (depth_image.type() != CV_32F) { depth_image.convertTo(depth_float, CV_32F); @@ -255,28 +242,14 @@ cv::Mat DisparityExpansionNode::depthToDisparity(const cv::Mat& depth_image) { cv::Mat disparity_image(depth_float.size(), CV_32F); // DISPARITY FORMULA - // Instead of using cv::divide, we'll use element-wise operation - for (int i = 0; i < depth_float.rows; ++i) { - for (int j = 0; j < depth_float.cols; ++j) { - float depth = depth_float.at(i, j); - if (depth > 0) { - disparity_image.at(i, j) = (baseline * fx_) / depth; - } else { - disparity_image.at(i, j) = 0.0f; - } - } - } - // DISPARITY FORMULA + disparity_image = (baseline * fx_) / (depth_image); // MULT BY 100 - disparity_image = (baseline * fx_) / depth_image; - // Handle infinite and NaN values - // RCLCPP_INFO(this->get_logger(), "Baseline: %.4f", baseline); - // RCLCPP_INFO(this->get_logger(), "Focal length (fx): %.4f", fx_); + RCLCPP_INFO(this->get_logger(), "Baseline: %.4f", baseline); + RCLCPP_INFO(this->get_logger(), "Focal length (fx): %.4f", fx_); cv::patchNaNs(disparity_image, 0.0f); - disparity_image.setTo(0.0f, disparity_image == std::numeric_limits::infinity()); - // Print array of depth and disparity values (5x5 grid from top-left corner) + disparity_image.setTo(0.0f, disparity_image == std::numeric_limits::infinity()); return disparity_image; } @@ -294,14 +267,10 @@ void DisparityExpansionNode::visualizeDisparityImage(const cv::Mat& disparity_im cv::waitKey(1); } -// ##################################################################################################################################### -// ##################################################################################################################################### - void DisparityExpansionNode::stereoDisparityCb( const std::shared_ptr& msg_disp) { // sensor_msgs::Image::ConstPtr &msg_disp){ - // ROS_INFO("Disparity CB"); - // dimage = *msg_disp; + std::cout << "hello" << std::endl; if (!LUT_ready) { @@ -310,8 +279,7 @@ void DisparityExpansionNode::stereoDisparityCb( "LUT not ready yet, not processing disparity"); return; } - // generateExpansionLUT(); - // ################################################################################# + auto img_msg = std::make_shared(); img_msg->header = msg_disp->header; img_msg->height = msg_disp->image.height; @@ -320,9 +288,7 @@ void DisparityExpansionNode::stereoDisparityCb( img_msg->is_bigendian = msg_disp->image.is_bigendian; img_msg->step = msg_disp->image.step; img_msg->data = msg_disp->image.data; - // #########################################################3 - // auto disparity_img_msg = msg_disp->image; cv_bridge::CvImagePtr fg_msg(new cv_bridge::CvImage()); cv_bridge::CvImagePtr bg_msg(new cv_bridge::CvImage()); @@ -364,8 +330,7 @@ void DisparityExpansionNode::stereoDisparityCb( fg_msg->encoding = sensor_msgs::image_encodings::TYPE_32FC1; bg_msg->header = msg_disp->header; bg_msg->encoding = sensor_msgs::image_encodings::TYPE_32FC1; - // bg_msg->image = bg_msg->image + INFINITY; - // fg_msg->image = fg_msg->image - INFINITY; + if (1) // make cloud { // Use correct principal point from calibration @@ -375,12 +340,9 @@ void DisparityExpansionNode::stereoDisparityCb( float constant_x = 1.0 / fx_; float constant_y = 1.0 / fy_; - // if ( di_msg->encoding == sensor_msgs::image_encodings::TYPE_32FC1 ) { RCLCPP_INFO_ONCE(this->get_logger(), "IMG TYPE 32FC, GOOD"); - // int row_step = dimage.step / sizeof ( float ); - // const float* disparity_row = reinterpret_cast ( - // &dimage.data[0] ); + rclcpp::Time start = this->get_clock()->now(); float padding = padding_; @@ -409,8 +371,7 @@ void DisparityExpansionNode::stereoDisparityCb( double min, max; cv::Point p1, p2; int min_idx, max_idx; - // cv::minMaxIdx(disparity32F(roi), &min, - // &max,&min_idx,&max_idx); + cv::minMaxLoc(disparity32F(roi), &min, &max, &p1, &p2); min_idx = p1.x; max_idx = p2.x; @@ -421,8 +382,6 @@ void DisparityExpansionNode::stereoDisparityCb( cv::Mat submat; cv::divide(baseline * fx_, submat_t, submat); submat = (submat - disp_to_depth); /// robot_radius_; - // ROS_INFO("submat at : %f",disp_to_depth); - // std::cout<image.copyTo(disparity32F); disparity_fg.copyTo(disparity32F); disparity_bg.copyTo(disparity32F_bg); @@ -501,8 +459,6 @@ void DisparityExpansionNode::stereoDisparityCb( cv::minMaxLoc(disparity32F_bg(roi), &min, &max, &p1, &p2); disp_to_depth = baseline * fx_ / max; submat = (submat - disp_to_depth); /// robot_radius_; - // ROS_INFO("submat at : %f",disp_to_depth); - // std::cout<image = disparity_fg; bg_msg->image = disparity_bg; - // RCLCPP_INFO(this->get_logger(), "Time: %f \t%f", - // (this->get_clock()->now() - start).seconds(), - // 1 / (this->get_clock()->now() - start).seconds()); - expanded_disparity_fg_pub->publish(*(fg_msg->toImageMsg())); expanded_disparity_bg_pub->publish(*(bg_msg->toImageMsg())); @@ -566,8 +518,7 @@ void DisparityExpansionNode::stereoDisparityCb( marker.ns = "occ_space"; marker.id = 0; marker.type = visualization_msgs::msg::Marker::LINE_STRIP; - // marker.mesh_resource = - // "package://gazebo_robot_description/meshes/octorotor/riverine_octo_m.dae"; + marker.lifetime = rclcpp::Duration::from_seconds(0.5); marker.action = visualization_msgs::msg::Marker::ADD; marker.pose.position.x = 0; // xyz_centroid[0]; @@ -577,7 +528,7 @@ void DisparityExpansionNode::stereoDisparityCb( tf2::Quaternion q; q.setRPY(0.0, 0.0, 0.0); marker.pose.orientation = tf2::toMsg(q); - // marker.pose.orientation.w = 1; + float marker_scale = 0.51; marker.scale.x = marker_scale; marker.scale.y = marker_scale; @@ -615,7 +566,6 @@ void DisparityExpansionNode::stereoDisparityCb( gm_p.z = depth_value; marker.points.push_back(gm_p); - // poly.polygon.points.push_back(gm_p); } else { marker_arr.markers.push_back(marker); marker.points.clear(); @@ -639,9 +589,6 @@ void DisparityExpansionNode::stereoDisparityCb( for (int v = (int)height - 1; v >= 0; v -= 4) { for (int u = (int)width - 1; u >= 0; u -= 4) { - // Fill in XYZ - // float depth_value = baseline * fx_ / - // new_disparity_bridgePtr->image.at(v,u);//fg_msg->image.at(v,u);//free_msg->image.at(v,u)[0]; float depth_value = baseline * fx_ / fg_msg->image.at( v, u); // free_msg->image.at(v,u)[0]; @@ -678,13 +625,9 @@ void DisparityExpansionNode::stereoDisparityCb( } } cloud->width = point_counter; - // ######################################################################################################## - // Timestamp structure has changed cannot convert to uint64 cloud->header.stamp = rclcpp::Time(msg_disp->header.stamp).nanoseconds(); cloud->header.stamp = pcl_conversions::toPCL(rclcpp::Time(msg_disp->header.stamp)); - // cloud->header.stamp = msg_disp->header.stamp; - // cloud->header.stamp = pcl_conversions::toPCL(msg_disp->header.stamp); sensor_msgs::msg::PointCloud2 cloud_PC2; pcl::toROSMsg(*cloud, cloud_PC2); @@ -697,7 +640,6 @@ void DisparityExpansionNode::stereoDisparityCb( DisparityExpansionNode::DisparityExpansionNode(const rclcpp::NodeOptions& options) : Node("DisparityExpansionNode", options) { - // ############################################################################# this->declare_parameter("expansion_cloud_topic", "expansion_cloud"); this->declare_parameter("expanded_disparity_fg_topic", "expanded_disparity_fg"); this->declare_parameter("expanded_disparity_bg_topic", "expanded_disparity_bg"); @@ -711,6 +653,7 @@ DisparityExpansionNode::DisparityExpansionNode(const rclcpp::NodeOptions& option this->declare_parameter("padding", 2.0); this->declare_parameter("bg_multiplier", 5.0); this->declare_parameter("sensor_pixel_error", 0.5); + this->declare_parameter("downsample_scale", 2.0); std::string expansion_cloud_topic = this->get_parameter("expansion_cloud_topic").as_string(); // log to console @@ -725,16 +668,17 @@ DisparityExpansionNode::DisparityExpansionNode(const rclcpp::NodeOptions& option expanded_disparity_bg_topic.c_str()); std::string expansion_poly_topic = this->get_parameter("expansion_poly_topic").as_string(); std::string camera_info_topic = this->get_parameter("camera_info_topic").as_string(); + RCLCPP_INFO(this->get_logger(), "camera_info_topic: %s", camera_info_topic.c_str()); std::string disparity_topic = this->get_parameter("disparity_topic").as_string(); std::string depth_topic = this->get_parameter("depth_topic").as_string(); RCLCPP_INFO(this->get_logger(), "depth_topic: %s", depth_topic.c_str()); scale_ = this->get_parameter("scale").as_double(); + downsample_scale = this->get_parameter("downsample_scale").as_double(); this->get_parameter("robot_radius", robot_radius_); this->get_parameter("lut_max_disparity", lut_max_disparity_); this->get_parameter("padding", padding_); this->get_parameter("bg_multiplier", bg_multiplier_); this->get_parameter("sensor_pixel_error", pixel_error_); - // ############################################################################# expansion_cloud_pub = this->create_publisher(expansion_cloud_topic, 10); @@ -756,8 +700,6 @@ DisparityExpansionNode::DisparityExpansionNode(const rclcpp::NodeOptions& option depth_sub_ = this->create_subscription( depth_topic, 1, std::bind(&DisparityExpansionNode::depthImageCb, this, std::placeholders::_1)); - - downsample_scale = 2.0; } int main(int argc, char** argv) { From ba0e626569e52de0c27191b9b8f41b257cdb78f4 Mon Sep 17 00:00:00 2001 From: Andrew Jong Date: Mon, 26 Aug 2024 15:47:18 -0400 Subject: [PATCH 35/50] Delete core_trajectory_library under local planning, use the one under controls/ --- .../core_trajectory_library/CMakeLists.txt | 270 ----- .../config/acceleration_magnitudes.yaml | 325 ------ .../config/acceleration_trajectories.yaml | 214 ---- .../acceleration_trajectories_fast.yaml | 214 ---- .../config/backup.yaml | 54 - .../config/demo_trajectory_definitions.yaml | 78 -- .../config/fixed_trajectories.yaml | 38 - .../core_trajectory_library/config/test.yaml | 9 - .../trajectory_library.h | 289 ----- .../local/core_trajectory_library/package.xml | 27 - .../local/core_trajectory_library/plugin.xml | 15 - .../scripts/rqt_fixed_trajectory_selector | 10 - .../local/core_trajectory_library/setup.py | 9 - .../src/fixed_trajectory_generator.py | 367 ------- .../rqt_fixed_trajectory_selector/__init__.py | 0 .../rqt_fixed_trajectory_selector.py | 204 ---- .../src/trajectory_library.cpp | 992 ------------------ .../src/trajectory_library_generator.py | 75 -- 18 files changed, 3190 deletions(-) delete mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/CMakeLists.txt delete mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/acceleration_magnitudes.yaml delete mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/acceleration_trajectories.yaml delete mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/acceleration_trajectories_fast.yaml delete mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/backup.yaml delete mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/demo_trajectory_definitions.yaml delete mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/fixed_trajectories.yaml delete mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/test.yaml delete mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/include/core_trajectory_library/trajectory_library.h delete mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/package.xml delete mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/plugin.xml delete mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/scripts/rqt_fixed_trajectory_selector delete mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/setup.py delete mode 100755 ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/src/fixed_trajectory_generator.py delete mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/src/rqt_fixed_trajectory_selector/__init__.py delete mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/src/rqt_fixed_trajectory_selector/rqt_fixed_trajectory_selector.py delete mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/src/trajectory_library.cpp delete mode 100755 ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/src/trajectory_library_generator.py diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/CMakeLists.txt b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/CMakeLists.txt deleted file mode 100644 index e1fef9903..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/CMakeLists.txt +++ /dev/null @@ -1,270 +0,0 @@ -cmake_minimum_required(VERSION 3.5) -project(core_trajectory_library) - -## Compile as C++11, supported in ROS Kinetic and newer -#add_compile_options(-std=c++11) -if(NOT CMAKE_CXX_STANDARD) - set(CMAKE_CXX_STANDARD 14) -endif() - -## Find catkin macros and libraries -## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz) -## is used, also find other catkin packages -#find_package(catkin REQUIRED COMPONENTS -# nav_msgs -# roscpp -# rospy -# sensor_msgs -# std_msgs -# tf -# tflib -# rqt_gui -# rqt_gui_py -# core_trajectory_msgs -#) -find_package(ament_cmake REQUIRED) -find_package(rclcpp REQUIRED) -find_package(rclpy) -find_package(nav_msgs REQUIRED) -find_package(sensor_msgs REQUIRED) -find_package(std_msgs REQUIRED) - -find_package(tf2_geometry_msgs REQUIRED) - -find_package(tf2 REQUIRED) -find_package(tf2_ros REQUIRED) -find_package(tflib) -#find_package(rqt_gui) -#find_package(rqt_gui_py) -find_package(visualization_msgs REQUIRED) -find_package(core_trajectory_msgs REQUIRED) -find_package(yaml_cpp_vendor REQUIRED) - -## System dependencies are found with CMake's conventions -# find_package(Boost REQUIRED COMPONENTS system) - - -## Uncomment this if the package has a setup.py. This macro ensures -## modules and global scripts declared therein get installed -## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html -#catkin_python_setup() - -################################################ -## Declare ROS messages, services and actions ## -################################################ - -## To declare and build messages, services or actions from within this -## package, follow these steps: -## * Let MSG_DEP_SET be the set of packages whose message types you use in -## your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...). -## * In the file package.xml: -## * add a build_depend tag for "message_generation" -## * add a build_depend and a exec_depend tag for each package in MSG_DEP_SET -## * If MSG_DEP_SET isn't empty the following dependency has been pulled in -## but can be declared for certainty nonetheless: -## * add a exec_depend tag for "message_runtime" -## * In this file (CMakeLists.txt): -## * add "message_generation" and every package in MSG_DEP_SET to -## find_package(catkin REQUIRED COMPONENTS ...) -## * add "message_runtime" and every package in MSG_DEP_SET to -## catkin_package(CATKIN_DEPENDS ...) -## * uncomment the add_*_files sections below as needed -## and list every .msg/.srv/.action file to be processed -## * uncomment the generate_messages entry below -## * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...) - -## Generate messages in the 'msg' folder -# add_message_files( -# FILES -# Message1.msg -# Message2.msg -# ) - -## Generate services in the 'srv' folder -# add_service_files( -# FILES -# Service1.srv -# Service2.srv -# ) - -## Generate actions in the 'action' folder -# add_action_files( -# FILES -# Action1.action -# Action2.action -# ) - -## Generate added messages and services with any dependencies listed here -# generate_messages( -# DEPENDENCIES -# nav_msgs# sensor_msgs# std_msgs -# ) - -################################################ -## Declare ROS dynamic reconfigure parameters ## -################################################ - -## To declare and build dynamic reconfigure parameters within this -## package, follow these steps: -## * In the file package.xml: -## * add a build_depend and a exec_depend tag for "dynamic_reconfigure" -## * In this file (CMakeLists.txt): -## * add "dynamic_reconfigure" to -## find_package(catkin REQUIRED COMPONENTS ...) -## * uncomment the "generate_dynamic_reconfigure_options" section below -## and list every .cfg file to be processed - -## Generate dynamic reconfigure parameters in the 'cfg' folder -# generate_dynamic_reconfigure_options( -# cfg/DynReconf1.cfg -# cfg/DynReconf2.cfg -# ) - -################################### -## catkin specific configuration ## -################################### -## The catkin_package macro generates cmake config files for your package -## Declare things to be passed to dependent projects -## INCLUDE_DIRS: uncomment this if your package contains header files -## LIBRARIES: libraries you create in this project that dependent projects also need -## CATKIN_DEPENDS: catkin_packages dependent projects also need -## DEPENDS: system dependencies of this project that dependent projects also need -#catkin_package( - # INCLUDE_DIRS include - # LIBRARIES trajectory_library - # CATKIN_DEPENDS nav_msgs roscpp rospy sensor_msgs std_msgs tf visualization_msgs -# DEPENDS system_lib -#) - -########### -## Build ## -########### - -## Specify additional locations of header files -## Your package locations should be listed before other locations -include_directories( - include - # ${rqt_gui_INCLUDE_DIRS} - # ${rqt_gui_py_INCLUDE_DIRS} - -) - -## Declare a C++ library -add_library(trajectory_library - src/trajectory_library.cpp -) - -## Add cmake target dependencies of the library -## as an example, code may need to be generated before libraries -## either from message generation or dynamic reconfigure -# add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) - -## Declare a C++ executable -## With catkin_make all packages are built within a single CMake context -## The recommended prefix ensures that target names across packages don't collide -# add_executable(${PROJECT_NAME}_node src/trajectory_library_node.cpp) - -## Rename C++ executable without prefix -## The above recommended prefix causes long target names, the following renames the -## target back to the shorter version for ease of user use -## e.g. "rosrun someones_pkg node" instead of "rosrun someones_pkg someones_pkg_node" -# set_target_properties(${PROJECT_NAME}_node PROPERTIES OUTPUT_NAME node PREFIX "") - -## Add cmake target dependencies of the executable -## same as for the library above -# add_dependencies(${PROJECT_NAME}_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) - -## Specify libraries to link a library or executable target against -ament_target_dependencies(trajectory_library - rclcpp - rclpy - nav_msgs - sensor_msgs - std_msgs - tf2 - tf2_ros - visualization_msgs - core_trajectory_msgs - #rqt_gui - tflib - #rqt_gui_py - yaml_cpp_vendor - tf2_geometry_msgs -) - -############# -## Install ## -############# - -# all install targets should use catkin DESTINATION variables -# See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html - -## Mark executable scripts (Python etc.) for installation -## in contrast to setup.py, you can choose the destination -# install(PROGRAMS -# scripts/my_python_script -# DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} -# ) -ament_export_targets(trajectory_libraryTargets HAS_LIBRARY_TARGET) -ament_export_dependencies(rclcpp -rclpy -nav_msgs -sensor_msgs -std_msgs -tf2 -tf2_ros -visualization_msgs -core_trajectory_msgs -#rqt_gui -tf2_geometry_msgs -tflib -#rqt_gui_py -) - -## Mark executables and/or libraries for installation -install(TARGETS trajectory_library - EXPORT trajectory_libraryTargets - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib - RUNTIME DESTINATION bin - INCLUDES DESTINATION include -) - -## Mark cpp header files for installation -install( - DIRECTORY include/${PROJECT_NAME}/ - DESTINATION include/${PROJECT_NAME} - FILES_MATCHING PATTERN "*.h" -) - -install(PROGRAMS - scripts/rqt_fixed_trajectory_selector - DESTINATION bin/${PROJECT_NAME} -) - -install(FILES - plugin.xml - DESTINATION share/${PROJECT_NAME} -) - - -## Mark other files for installation (e.g. launch and bag files, etc.) -# install(FILES -# # myfile1 -# # myfile2 -# DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} -# ) - -############# -## Testing ## -############# - -## Add gtest based cpp test target and link libraries -# catkin_add_gtest(${PROJECT_NAME}-test test/test_trajectory_library.cpp) -# if(TARGET ${PROJECT_NAME}-test) -# target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME}) -# endif() - -## Add folders to be run by python nosetests -# catkin_add_nosetests(test) -ament_package() \ No newline at end of file diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/acceleration_magnitudes.yaml b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/acceleration_magnitudes.yaml deleted file mode 100644 index e89eb3f0c..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/acceleration_magnitudes.yaml +++ /dev/null @@ -1,325 +0,0 @@ -trajectories: - - type: acceleration - frame: $(param tf_prefix)/look_ahead_point_stabilized - magnitude: $(param magnitude) - magnitude_yaw: 0. - magnitude_pitch: 0. - dt: $(param dt) - ht: $(param ht) - max_velocity: $(param max_velocity) - - type: acceleration - frame: $(param tf_prefix)/look_ahead_point_stabilized - magnitude: $(param magnitude) - magnitude_yaw: 45. - magnitude_pitch: 0. - dt: $(param dt) - ht: $(param ht) - max_velocity: $(param max_velocity) - - type: acceleration - frame: $(param tf_prefix)/look_ahead_point_stabilized - magnitude: $(param magnitude) - magnitude_yaw: 90. - magnitude_pitch: 0. - dt: $(param dt) - ht: $(param ht) - max_velocity: $(param max_velocity) - - type: acceleration - frame: $(param tf_prefix)/look_ahead_point_stabilized - magnitude: $(param magnitude) - magnitude_yaw: 135. - magnitude_pitch: 0. - dt: $(param dt) - ht: $(param ht) - max_velocity: $(param max_velocity) - - type: acceleration - frame: $(param tf_prefix)/look_ahead_point_stabilized - magnitude: $(param magnitude) - magnitude_yaw: 180. - magnitude_pitch: 0. - dt: $(param dt) - ht: $(param ht) - max_velocity: $(param max_velocity) - - type: acceleration - frame: $(param tf_prefix)/look_ahead_point_stabilized - magnitude: $(param magnitude) - magnitude_yaw: -45. - magnitude_pitch: 0. - dt: $(param dt) - ht: $(param ht) - max_velocity: $(param max_velocity) - - type: acceleration - frame: $(param tf_prefix)/look_ahead_point_stabilized - magnitude: $(param magnitude) - magnitude_yaw: -90. - magnitude_pitch: 0. - dt: $(param dt) - ht: $(param ht) - max_velocity: $(param max_velocity) - - type: acceleration - frame: $(param tf_prefix)/look_ahead_point_stabilized - magnitude: $(param magnitude) - magnitude_yaw: -135. - magnitude_pitch: 0. - dt: $(param dt) - ht: $(param ht) - max_velocity: $(param max_velocity) - - - type: acceleration - frame: $(param tf_prefix)/look_ahead_point_stabilized - magnitude: $(param magnitude) - magnitude_yaw: 0. - magnitude_pitch: 15. - dt: $(param dt) - ht: $(param ht) - max_velocity: $(param max_velocity) - - type: acceleration - frame: $(param tf_prefix)/look_ahead_point_stabilized - magnitude: $(param magnitude) - magnitude_yaw: 45. - magnitude_pitch: 15. - dt: $(param dt) - ht: $(param ht) - max_velocity: $(param max_velocity) - - type: acceleration - frame: $(param tf_prefix)/look_ahead_point_stabilized - magnitude: $(param magnitude) - magnitude_yaw: 90. - magnitude_pitch: 15. - dt: $(param dt) - ht: $(param ht) - max_velocity: $(param max_velocity) - - type: acceleration - frame: $(param tf_prefix)/look_ahead_point_stabilized - magnitude: $(param magnitude) - magnitude_yaw: 135. - magnitude_pitch: 15. - dt: $(param dt) - ht: $(param ht) - max_velocity: $(param max_velocity) - - type: acceleration - frame: $(param tf_prefix)/look_ahead_point_stabilized - magnitude: $(param magnitude) - magnitude_yaw: 180. - magnitude_pitch: 15. - dt: $(param dt) - ht: $(param ht) - max_velocity: $(param max_velocity) - - type: acceleration - frame: $(param tf_prefix)/look_ahead_point_stabilized - magnitude: $(param magnitude) - magnitude_yaw: -45. - magnitude_pitch: 15. - dt: $(param dt) - ht: $(param ht) - max_velocity: $(param max_velocity) - - type: acceleration - frame: $(param tf_prefix)/look_ahead_point_stabilized - magnitude: $(param magnitude) - magnitude_yaw: -90. - magnitude_pitch: 15. - dt: $(param dt) - ht: $(param ht) - max_velocity: $(param max_velocity) - - type: acceleration - frame: $(param tf_prefix)/look_ahead_point_stabilized - magnitude: $(param magnitude) - magnitude_yaw: -135. - magnitude_pitch: 15. - dt: $(param dt) - ht: $(param ht) - max_velocity: $(param max_velocity) - - - type: acceleration - frame: $(param tf_prefix)/look_ahead_point_stabilized - magnitude: $(param magnitude) - magnitude_yaw: 0. - magnitude_pitch: -15. - dt: $(param dt) - ht: $(param ht) - max_velocity: $(param max_velocity) - - type: acceleration - frame: $(param tf_prefix)/look_ahead_point_stabilized - magnitude: $(param magnitude) - magnitude_yaw: 45. - magnitude_pitch: -15. - dt: $(param dt) - ht: $(param ht) - max_velocity: $(param max_velocity) - - type: acceleration - frame: $(param tf_prefix)/look_ahead_point_stabilized - magnitude: $(param magnitude) - magnitude_yaw: 90. - magnitude_pitch: -15. - dt: $(param dt) - ht: $(param ht) - max_velocity: $(param max_velocity) - - type: acceleration - frame: $(param tf_prefix)/look_ahead_point_stabilized - magnitude: $(param magnitude) - magnitude_yaw: 135. - magnitude_pitch: -15. - dt: $(param dt) - ht: $(param ht) - max_velocity: $(param max_velocity) - - type: acceleration - frame: $(param tf_prefix)/look_ahead_point_stabilized - magnitude: $(param magnitude) - magnitude_yaw: 180. - magnitude_pitch: -15. - dt: $(param dt) - ht: $(param ht) - max_velocity: $(param max_velocity) - - type: acceleration - frame: $(param tf_prefix)/look_ahead_point_stabilized - magnitude: $(param magnitude) - magnitude_yaw: -45. - magnitude_pitch: -15. - dt: $(param dt) - ht: $(param ht) - max_velocity: $(param max_velocity) - - type: acceleration - frame: $(param tf_prefix)/look_ahead_point_stabilized - magnitude: $(param magnitude) - magnitude_yaw: -90. - magnitude_pitch: -15. - dt: $(param dt) - ht: $(param ht) - max_velocity: $(param max_velocity) - - type: acceleration - frame: $(param tf_prefix)/look_ahead_point_stabilized - magnitude: $(param magnitude) - magnitude_yaw: -135. - magnitude_pitch: -15. - dt: $(param dt) - ht: $(param ht) - max_velocity: $(param max_velocity) - - - type: acceleration - frame: $(param tf_prefix)/look_ahead_point_stabilized - magnitude: $(param magnitude) - magnitude_yaw: 0. - magnitude_pitch: 30. - dt: $(param dt) - ht: $(param ht) - max_velocity: $(param max_velocity) - - type: acceleration - frame: $(param tf_prefix)/look_ahead_point_stabilized - magnitude: $(param magnitude) - magnitude_yaw: 45. - magnitude_pitch: 30. - dt: $(param dt) - ht: $(param ht) - max_velocity: $(param max_velocity) - - type: acceleration - frame: $(param tf_prefix)/look_ahead_point_stabilized - magnitude: $(param magnitude) - magnitude_yaw: 90. - magnitude_pitch: 30. - dt: $(param dt) - ht: $(param ht) - max_velocity: $(param max_velocity) - - type: acceleration - frame: $(param tf_prefix)/look_ahead_point_stabilized - magnitude: $(param magnitude) - magnitude_yaw: 135. - magnitude_pitch: 30. - dt: $(param dt) - ht: $(param ht) - max_velocity: $(param max_velocity) - - type: acceleration - frame: $(param tf_prefix)/look_ahead_point_stabilized - magnitude: $(param magnitude) - magnitude_yaw: 180. - magnitude_pitch: 30. - dt: $(param dt) - ht: $(param ht) - max_velocity: $(param max_velocity) - - type: acceleration - frame: $(param tf_prefix)/look_ahead_point_stabilized - magnitude: $(param magnitude) - magnitude_yaw: -45. - magnitude_pitch: 30. - dt: $(param dt) - ht: $(param ht) - max_velocity: $(param max_velocity) - - type: acceleration - frame: $(param tf_prefix)/look_ahead_point_stabilized - magnitude: $(param magnitude) - magnitude_yaw: -90. - magnitude_pitch: 30. - dt: $(param dt) - ht: $(param ht) - max_velocity: $(param max_velocity) - - type: acceleration - frame: $(param tf_prefix)/look_ahead_point_stabilized - magnitude: $(param magnitude) - magnitude_yaw: -135. - magnitude_pitch: 30. - dt: $(param dt) - ht: $(param ht) - max_velocity: $(param max_velocity) - - - type: acceleration - frame: $(param tf_prefix)/look_ahead_point_stabilized - magnitude: $(param magnitude) - magnitude_yaw: 0. - magnitude_pitch: -30. - dt: $(param dt) - ht: $(param ht) - max_velocity: $(param max_velocity) - - type: acceleration - frame: $(param tf_prefix)/look_ahead_point_stabilized - magnitude: $(param magnitude) - magnitude_yaw: 45. - magnitude_pitch: -30. - dt: $(param dt) - ht: $(param ht) - max_velocity: $(param max_velocity) - - type: acceleration - frame: $(param tf_prefix)/look_ahead_point_stabilized - magnitude: $(param magnitude) - magnitude_yaw: 90. - magnitude_pitch: -30. - dt: $(param dt) - ht: $(param ht) - max_velocity: $(param max_velocity) - - type: acceleration - frame: $(param tf_prefix)/look_ahead_point_stabilized - magnitude: $(param magnitude) - magnitude_yaw: 135. - magnitude_pitch: -30. - dt: $(param dt) - ht: $(param ht) - max_velocity: $(param max_velocity) - - type: acceleration - frame: $(param tf_prefix)/look_ahead_point_stabilized - magnitude: $(param magnitude) - magnitude_yaw: 180. - magnitude_pitch: -30. - dt: $(param dt) - ht: $(param ht) - max_velocity: $(param max_velocity) - - type: acceleration - frame: $(param tf_prefix)/look_ahead_point_stabilized - magnitude: $(param magnitude) - magnitude_yaw: -45. - magnitude_pitch: -30. - dt: $(param dt) - ht: $(param ht) - max_velocity: $(param max_velocity) - - type: acceleration - frame: $(param tf_prefix)/look_ahead_point_stabilized - magnitude: $(param magnitude) - magnitude_yaw: -90. - magnitude_pitch: -30. - dt: $(param dt) - ht: $(param ht) - max_velocity: $(param max_velocity) - - type: acceleration - frame: $(param tf_prefix)/look_ahead_point_stabilized - magnitude: $(param magnitude) - magnitude_yaw: -135. - magnitude_pitch: -30. - dt: $(param dt) - ht: $(param ht) - max_velocity: $(param max_velocity) \ No newline at end of file diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/acceleration_trajectories.yaml b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/acceleration_trajectories.yaml deleted file mode 100644 index f8e268ee6..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/acceleration_trajectories.yaml +++ /dev/null @@ -1,214 +0,0 @@ -trajectories: - - type: acceleration - frame: look_ahead_point_stabilized - x: .3 - y: 0 - z: 0 - dt: 0.2 - ht: 3 - max_velocity: 0.7 - - type: acceleration - frame: look_ahead_point_stabilized - x: -.3 - y: 0 - z: 0 - dt: 0.2 - ht: 3 - max_velocity: 0.7 - - type: acceleration - frame: look_ahead_point_stabilized - x: 0 - y: .3 - z: 0 - dt: 0.2 - ht: 3 - max_velocity: 0.7 - - type: acceleration - frame: look_ahead_point_stabilized - x: 0 - y: -.3 - z: 0 - dt: 0.2 - ht: 3 - max_velocity: 0.7 - - type: acceleration - frame: look_ahead_point_stabilized - x: 0 - y: 0 - z: .3 - dt: 0.2 - ht: 3 - max_velocity: 0.7 - - type: acceleration - frame: look_ahead_point_stabilized - x: 0 - y: 0 - z: -.3 - dt: 0.2 - ht: 3 - max_velocity: 0.7 - - - type: acceleration - frame: look_ahead_point_stabilized - x: 0.173 - y: 0.173 - z: 0.173 - dt: 0.2 - ht: 3 - max_velocity: 0.7 - - type: acceleration - frame: look_ahead_point_stabilized - x: -0.173 - y: 0.173 - z: 0.173 - dt: 0.2 - ht: 3 - max_velocity: 0.7 - - type: acceleration - frame: look_ahead_point_stabilized - x: 0.173 - y: -0.173 - z: 0.173 - dt: 0.2 - ht: 3 - max_velocity: 0.7 - - type: acceleration - frame: look_ahead_point_stabilized - x: -0.173 - y: -0.173 - z: 0.173 - dt: 0.2 - ht: 3 - max_velocity: 0.7 - - - type: acceleration - frame: look_ahead_point_stabilized - x: 0.173 - y: 0.173 - z: -0.173 - dt: 0.2 - ht: 3 - max_velocity: 0.7 - - type: acceleration - frame: look_ahead_point_stabilized - x: -0.173 - y: 0.173 - z: -0.173 - dt: 0.2 - ht: 3 - max_velocity: 0.7 - - type: acceleration - frame: look_ahead_point_stabilized - x: 0.173 - y: -0.173 - z: -0.173 - dt: 0.2 - ht: 3 - max_velocity: 0.7 - - type: acceleration - frame: look_ahead_point_stabilized - x: -0.173 - y: -0.173 - z: -0.173 - dt: 0.2 - ht: 3 - max_velocity: 0.7 - - - type: acceleration - frame: look_ahead_point_stabilized - x: 0.212 - y: 0.212 - z: 0 - dt: 0.2 - ht: 3 - max_velocity: 0.7 - - type: acceleration - frame: look_ahead_point_stabilized - x: -0.212 - y: 0.212 - z: 0 - dt: 0.2 - ht: 3 - max_velocity: 0.7 - - type: acceleration - frame: look_ahead_point_stabilized - x: 0.212 - y: -0.212 - z: 0 - dt: 0.2 - ht: 3 - max_velocity: 0.7 - - type: acceleration - frame: look_ahead_point_stabilized - x: 0.212 - y: -0.212 - z: 0 - dt: 0.2 - ht: 3 - max_velocity: 0.7 - - - type: acceleration - frame: look_ahead_point_stabilized - x: 0.212 - y: 0 - z: 0.212 - dt: 0.2 - ht: 3 - max_velocity: 0.7 - - type: acceleration - frame: look_ahead_point_stabilized - x: -0.212 - y: 0 - z: 0.212 - dt: 0.2 - ht: 3 - max_velocity: 0.7 - - type: acceleration - frame: look_ahead_point_stabilized - x: 0.212 - y: 0 - z: -0.212 - dt: 0.2 - ht: 3 - max_velocity: 0.7 - - type: acceleration - frame: look_ahead_point_stabilized - x: -0.212 - y: 0 - z: -0.212 - dt: 0.2 - ht: 3 - max_velocity: 0.7 - - - type: acceleration - frame: look_ahead_point_stabilized - x: 0 - y: 0.212 - z: 0.212 - dt: 0.2 - ht: 3 - max_velocity: 0.7 - - type: acceleration - frame: look_ahead_point_stabilized - x: 0 - y: -0.212 - z: 0.212 - dt: 0.2 - ht: 3 - max_velocity: 0.7 - - type: acceleration - frame: look_ahead_point_stabilized - x: 0 - y: 0.212 - z: -0.212 - dt: 0.2 - ht: 3 - max_velocity: 0.7 - - type: acceleration - frame: look_ahead_point_stabilized - x: 0 - y: -0.212 - z: -0.212 - dt: 0.2 - ht: 3 - max_velocity: 0.7 diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/acceleration_trajectories_fast.yaml b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/acceleration_trajectories_fast.yaml deleted file mode 100644 index 4e14ac2f5..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/acceleration_trajectories_fast.yaml +++ /dev/null @@ -1,214 +0,0 @@ -trajectories: - - type: acceleration - frame: look_ahead_point_stabilized - x: 1. - y: 0 - z: 0 - dt: 0.2 - ht: 1.2 - max_velocity: 1.5 - - type: acceleration - frame: look_ahead_point_stabilized - x: -1. - y: 0 - z: 0 - dt: 0.2 - ht: 1.2 - max_velocity: 1.5 - - type: acceleration - frame: look_ahead_point_stabilized - x: 0 - y: 1. - z: 0 - dt: 0.2 - ht: 1.2 - max_velocity: 1.5 - - type: acceleration - frame: look_ahead_point_stabilized - x: 0 - y: -1. - z: 0 - dt: 0.2 - ht: 1.2 - max_velocity: 1.5 - - type: acceleration - frame: look_ahead_point_stabilized - x: 0 - y: 0 - z: 1. - dt: 0.2 - ht: 1.2 - max_velocity: 1.5 - - type: acceleration - frame: look_ahead_point_stabilized - x: 0 - y: 0 - z: -1. - dt: 0.2 - ht: 1.2 - max_velocity: 1.5 - - - type: acceleration - frame: look_ahead_point_stabilized - x: 0.577 - y: 0.577 - z: 0.577 - dt: 0.2 - ht: 1.2 - max_velocity: 1.5 - - type: acceleration - frame: look_ahead_point_stabilized - x: -0.577 - y: 0.577 - z: 0.577 - dt: 0.2 - ht: 1.2 - max_velocity: 1.5 - - type: acceleration - frame: look_ahead_point_stabilized - x: 0.577 - y: -0.577 - z: 0.577 - dt: 0.2 - ht: 1.2 - max_velocity: 1.5 - - type: acceleration - frame: look_ahead_point_stabilized - x: -0.577 - y: -0.577 - z: 0.577 - dt: 0.2 - ht: 1.2 - max_velocity: 1.5 - - - type: acceleration - frame: look_ahead_point_stabilized - x: 0.577 - y: 0.577 - z: -0.577 - dt: 0.2 - ht: 1.2 - max_velocity: 1.5 - - type: acceleration - frame: look_ahead_point_stabilized - x: -0.577 - y: 0.577 - z: -0.577 - dt: 0.2 - ht: 1.2 - max_velocity: 1.5 - - type: acceleration - frame: look_ahead_point_stabilized - x: 0.577 - y: -0.577 - z: -0.577 - dt: 0.2 - ht: 1.2 - max_velocity: 1.5 - - type: acceleration - frame: look_ahead_point_stabilized - x: -0.577 - y: -0.577 - z: -0.577 - dt: 0.2 - ht: 1.2 - max_velocity: 1.5 - - - type: acceleration - frame: look_ahead_point_stabilized - x: 0.707 - y: 0.707 - z: 0 - dt: 0.2 - ht: 1.2 - max_velocity: 1.5 - - type: acceleration - frame: look_ahead_point_stabilized - x: -0.707 - y: 0.707 - z: 0 - dt: 0.2 - ht: 1.2 - max_velocity: 1.5 - - type: acceleration - frame: look_ahead_point_stabilized - x: 0.707 - y: -0.707 - z: 0 - dt: 0.2 - ht: 1.2 - max_velocity: 1.5 - - type: acceleration - frame: look_ahead_point_stabilized - x: 0.707 - y: -0.707 - z: 0 - dt: 0.2 - ht: 1.2 - max_velocity: 1.5 - - - type: acceleration - frame: look_ahead_point_stabilized - x: 0.707 - y: 0 - z: 0.707 - dt: 0.2 - ht: 1.2 - max_velocity: 1.5 - - type: acceleration - frame: look_ahead_point_stabilized - x: -0.707 - y: 0 - z: 0.707 - dt: 0.2 - ht: 1.2 - max_velocity: 1.5 - - type: acceleration - frame: look_ahead_point_stabilized - x: 0.707 - y: 0 - z: -0.707 - dt: 0.2 - ht: 1.2 - max_velocity: 1.5 - - type: acceleration - frame: look_ahead_point_stabilized - x: -0.707 - y: 0 - z: -0.707 - dt: 0.2 - ht: 1.2 - max_velocity: 1.5 - - - type: acceleration - frame: look_ahead_point_stabilized - x: 0 - y: 0.707 - z: 0.707 - dt: 0.2 - ht: 1.2 - max_velocity: 1.5 - - type: acceleration - frame: look_ahead_point_stabilized - x: 0 - y: -0.707 - z: 0.707 - dt: 0.2 - ht: 1.2 - max_velocity: 1.5 - - type: acceleration - frame: look_ahead_point_stabilized - x: 0 - y: 0.707 - z: -0.707 - dt: 0.2 - ht: 1.2 - max_velocity: 1.5 - - type: acceleration - frame: look_ahead_point_stabilized - x: 0 - y: -0.707 - z: -0.707 - dt: 0.2 - ht: 1.2 - max_velocity: 1.5 diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/backup.yaml b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/backup.yaml deleted file mode 100644 index e43ca5893..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/backup.yaml +++ /dev/null @@ -1,54 +0,0 @@ -trajectories: - - type: curve - linear_velocity: 1 - angular_velocity: -45 - frame: tracking_point_stabilized - dt: 0.2 - time: 3 - yaw: heading - - type: curve - linear_velocity: 1 - angular_velocity: -30 - frame: tracking_point_stabilized - dt: 0.2 - time: 3 - yaw: heading - - type: curve - linear_velocity: 1 - angular_velocity: -15 - frame: tracking_point_stabilized - dt: 0.2 - time: 3 - yaw: heading - - type: curve - linear_velocity: 1 - angular_velocity: 0 - frame: tracking_point_stabilized - dt: 0.2 - time: 3 - yaw: heading - - type: curve - linear_velocity: 1 - angular_velocity: 15 - frame: tracking_point_stabilized - dt: 0.2 - time: 3 - yaw: heading - - type: curve - linear_velocity: 1 - angular_velocity: 30 - frame: tracking_point_stabilized - dt: 0.2 - time: 3 - yaw: heading - - type: curve - linear_velocity: 1 - angular_velocity: 45 - frame: tracking_point_stabilized - dt: 0.2 - time: 3 - yaw: heading - - type: acceleration - frame: tracking_point_stabilized - x: 2 - yaw: heading \ No newline at end of file diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/demo_trajectory_definitions.yaml b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/demo_trajectory_definitions.yaml deleted file mode 100644 index 6417bb275..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/demo_trajectory_definitions.yaml +++ /dev/null @@ -1,78 +0,0 @@ -trajectories: - - type: curve - linear_velocity: 0.2 - angular_velocity: -45 - frame: look_ahead_point_stabilized - dt: 0.2 - time: 3 - yaw: heading - - type: curve - linear_velocity: 0.2 - angular_velocity: -30 - frame: look_ahead_point_stabilized - dt: 0.2 - time: 3 - yaw: heading - - type: curve - linear_velocity: 0.2 - angular_velocity: -22 - frame: look_ahead_point_stabilized - dt: 0.2 - time: 3 - yaw: heading - - type: curve - linear_velocity: 0.2 - angular_velocity: -15 - frame: look_ahead_point_stabilized - dt: 0.2 - time: 3 - yaw: heading - - type: curve - linear_velocity: 0.2 - angular_velocity: -5 - frame: look_ahead_point_stabilized - dt: 0.2 - time: 3 - yaw: heading - - type: curve - linear_velocity: 0.2 - angular_velocity: 0 - frame: look_ahead_point_stabilized - dt: 0.2 - time: 3 - yaw: heading - - type: curve - linear_velocity: 0.2 - angular_velocity: 5 - frame: look_ahead_point_stabilized - dt: 0.2 - time: 3 - yaw: heading - - type: curve - linear_velocity: 0.2 - angular_velocity: 15 - frame: look_ahead_point_stabilized - dt: 0.2 - time: 3 - yaw: heading - - type: curve - linear_velocity: 0.2 - angular_velocity: 22 - frame: look_ahead_point_stabilized - dt: 0.2 - time: 3 - yaw: heading - - type: curve - linear_velocity: 0.2 - angular_velocity: 30 - frame: look_ahead_point_stabilized - dt: 0.2 - time: 3 - yaw: heading - - type: curve - linear_velocity: 0.2 - angular_velocity: 45 - frame: look_ahead_point_stabilized - dt: 0.2 - time: 3 - yaw: heading \ No newline at end of file diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/fixed_trajectories.yaml b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/fixed_trajectories.yaml deleted file mode 100644 index 64c1f54de..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/fixed_trajectories.yaml +++ /dev/null @@ -1,38 +0,0 @@ -trajectories: - - Figure8: - attributes: - - frame_id - - velocity - - max_acceleration - - length - - width - - height - - Racetrack: - attributes: - - frame_id - - velocity - - max_acceleration - - length - - width - - height - - Circle: - attributes: - - frame_id - - velocity - - radius - - Line: - attributes: - - frame_id - - velocity - - max_acceleration - - length - - width - - height - - Point: - attributes: - - frame_id - - velocity - - max_acceleration - - x - - y - - height diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/test.yaml b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/test.yaml deleted file mode 100644 index 5299c0603..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/config/test.yaml +++ /dev/null @@ -1,9 +0,0 @@ -trajectories: - - type: acceleration - frame: $(param tf_prefix)/look_ahead_point_stabilized - magnitude: 1. - magnitude_yaw: 0. - magnitude_pitch: 0. - dt: $(param dt) - ht: $(param ht) - max_velocity: $(param max_velocity) diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/include/core_trajectory_library/trajectory_library.h b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/include/core_trajectory_library/trajectory_library.h deleted file mode 100644 index 03ba1b695..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/include/core_trajectory_library/trajectory_library.h +++ /dev/null @@ -1,289 +0,0 @@ -#ifndef _TRJAECTORY_LIBRARY_H_ -#define _TRJAECTORY_LIBRARY_H_ -/* -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -*/ -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -// #include -#include - -class Trajectory; - -class Waypoint { - private: - double x_, y_, z_, yaw_, vx_, vy_, vz_, time_; - - public: - Waypoint(double x, double y, double z, double yaw, double vx, double vy, double vz, - double time = 0); - - double x() const { return x_; } - double y() const { return y_; } - double z() const { return z_; } - double vx() const { return vx_; } - double vy() const { return vy_; } - double vz() const { return vz_; } - double yaw() const { return yaw_; } - double time() const { return time_; } - - void set_time(double time) { time_ = time; } - - tf2::Quaternion q() const; - tf2::Vector3 position() const; - tf2::Vector3 velocity() const; - nav_msgs::msg::Odometry odometry(rclcpp::Time stamp, std::string frame_id) const; - Waypoint interpolate(Waypoint wp, double t); - - friend class Trajectory; -}; - -// Create one TransformListener instance to be used by every Trajectory instance -// static tf2::TransformListener* listener = NULL; -extern std::shared_ptr tf_buffer; -extern std::shared_ptr tf_listener; - -class Trajectory { - private: - std::string frame_id; - rclcpp::Time stamp; - std::vector waypoints; - - bool generated_waypoint_times; - void generate_waypoint_times(); - - void init_listener(); - rclcpp::Node::SharedPtr node_; - std::string marker_namespace; - - public: - Trajectory(); - Trajectory(std::string frame_id); - Trajectory(core_trajectory_msgs::msg::TrajectoryXYZVYaw path); - // Trajectory(core_trajectory_msgs::TrajectoryXYZVYaw path); - - void clear(); - bool get_closest_point(tf2::Vector3 point, tf2::Vector3* closest, int* wp_index = NULL, - double* path_distance = NULL); - bool get_trajectory_distance_at_closest_point(tf2::Vector3 point, double* trajectory_distance); - bool merge(Trajectory traj); - - double get_duration(); - bool get_odom(double time, nav_msgs::msg::Odometry* odom); - Trajectory to_frame(std::string target_frame, rclcpp::Time time); - Trajectory respace(double spacing); - Trajectory shorten(double new_length); // replace shorten with get_subtraj_dist - Trajectory get_subtrajectory_distance(double start, double end); - - void set_fixed_height(double height); - - int waypoint_count(); - Waypoint get_waypoint(int index); - std::string get_frame_id(); - core_trajectory_msgs::msg::TrajectoryXYZVYaw get_TrajectoryXYZVYaw(); - std::vector get_vector_PointStamped(); - - visualization_msgs::msg::MarkerArray get_markers(float r = 1, float g = 0, float b = 0, - float a = 1, bool show_poses = false, - bool show_velocity = false); -}; - -//=================================================================================== -//--------------------------------- Dynamic Trajectories ---------------------------- -//=================================================================================== - -class DynamicTrajectory { - private: - public: - virtual core_trajectory_msgs::msg::TrajectoryXYZVYaw get_trajectory( - nav_msgs::msg::Odometry odom) = 0; -}; - -class AccelerationTrajectory : public DynamicTrajectory, public rclcpp::Node { - private: - // subscribers - std::shared_ptr tf_buffer; - std::shared_ptr tf_listener; - rclcpp::Subscription::SharedPtr set_max_velocity_sub; - - double ax, ay, az; - double dt, ht; - double max_velocity; - std::string frame; - - // callbacks - void set_max_velocity_callback(const std_msgs::msg::Float32::ConstSharedPtr msg); - - public: - AccelerationTrajectory(std::shared_ptr tf_buffer, std::string frame, double ax, - double ay, double az, double dt, double ht, double max_velocity); - virtual core_trajectory_msgs::msg::TrajectoryXYZVYaw get_trajectory( - nav_msgs::msg::Odometry odom); -}; - -class TakeoffTrajectory : public DynamicTrajectory { - private: - double height, velocity; - double path_roll, path_pitch; - bool relative_to_orientation; - - public: - TakeoffTrajectory(double height, double velocity, double path_roll = 0., double path_pitch = 0., - bool relative_to_orientation = false); - core_trajectory_msgs::msg::TrajectoryXYZVYaw get_trajectory(nav_msgs::msg::Odometry odom); -}; - -//=================================================================================== -//--------------------------------- Static Trajectories ----------------------------- -//=================================================================================== - -class StaticTrajectory { - private: - public: - virtual core_trajectory_msgs::msg::TrajectoryXYZVYaw get_trajectory() = 0; -}; - -class CurveTrajectory : public StaticTrajectory { - private: - core_trajectory_msgs::msg::TrajectoryXYZVYaw trajectory; - - float linear_velocity, angular_velocity, dt, time, distance, yaw; - std::string frame; - bool use_heading; - - void generate_trajectory(); - - public: - CurveTrajectory(float linear_velocity, float angular_velocity, std::string frame, float time, - float dt, bool use_heading, float yaw = 0.f); - - virtual core_trajectory_msgs::msg::TrajectoryXYZVYaw get_trajectory(); -}; - -//=================================================================================== -//--------------------------------- Trajectory Library ------------------------------ -//=================================================================================== - -class TrajectoryLibrary { - private: - std::vector static_trajectories; - std::vector dynamic_trajectories; - std::shared_ptr tf_buffer_; - std::shared_ptr tf_listener_; - - rclcpp::Node::SharedPtr node_; - - std::string trim(std::string str) { - int trim_start = 0; - int trim_end = 0; - bool found_start = false; - for (int i = 0; i < str.size(); i++) - if (std::isspace(str[i])) - trim_start++; - else - break; - - for (int i = str.size() - 1; i >= 0; i--) - if (std::isspace(str[i])) - trim_end++; - else - break; - - std::string trimmed = str.substr(trim_start, str.size() - trim_end - trim_start); - return trimmed; - } - - template - std::string get_string(T t) { - return std::to_string(t); - } - - std::string get_string(std::string t) { return t; } - - template - T parse(YAML::Node node) { - // std::cout << "trim test |" << trim(" asdjfaksfdj jdfkj jakdsf ") << "|" << std::endl; - - std::string str = node.as(); - std::size_t start; - - std::string param_label = "$(param"; - - // std::cout << "string: " << str << std::endl; - while ((start = str.find(param_label)) != std::string::npos) { - std::size_t end = str.find(")"); - // std::cout << start << " " << end << std::endl; - if (end == std::string::npos) { - RCLCPP_ERROR( - node_->get_logger(), - "TRAJECTORY LIBRARY PARSING ERROR: No closing parenthesis for $(param"); - break; - } - - std::string parameter_name = - trim(str.substr(start + param_label.size(), end - (start + param_label.size()))); - // std::cout << "parameter_name: |" << parameter_name << "|" << std::endl; - T parameter_value; - if (!node_->get_parameter(parameter_name, parameter_value)) { - RCLCPP_ERROR(node_->get_logger(), - "Couldn't find parameter '%s'. This is either because it doesn't " - "exist or the type is " - "incorrect in the launch file.", - parameter_name.c_str()); - } - - // std::cout << str << " " << start << " " << end << std::endl; - str = str.substr(0, start) + get_string(parameter_value) + - str.substr(end + 1, str.size() - (end + 1)); - // std::cout << str << " " << str.find(param_label) << std::endl; - } - - // std::cout << "final: " << str << std::endl; - YAML::Emitter out; - out << YAML::BeginMap; - out << YAML::Key << "key"; - out << YAML::Value << str; - out << YAML::EndMap; - std::string yaml = out.c_str(); - YAML::Node n = YAML::Load(out.c_str()); - // std::cout << "yaml: " << yaml << " " << n["key"].as() << std::endl; - - return n["key"].as(); - } - - public: - TrajectoryLibrary(std::string config_filename, std::shared_ptr tf_buffer, - rclcpp::Node::SharedPtr node); - - std::vector get_static_trajectories(); - std::vector get_dynamic_trajectories(nav_msgs::msg::Odometry odom); - visualization_msgs::msg::MarkerArray get_markers( - std::vector trajectories); -}; - -#endif diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/package.xml b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/package.xml deleted file mode 100644 index 87702ee96..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/package.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - core_trajectory_library - 0.0.1 - The core_trajectory_library package - Your Name - Apache License 2.0 - - ament_cmake - - rclcpp - rclpy - nav_msgs - sensor_msgs - std_msgs - tf2 - tf2_ros - tflib - visualization_msgs - core_trajectory_msgs - common_rodeps - yaml_cpp_vendor - - - ament_cmake - - diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/plugin.xml b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/plugin.xml deleted file mode 100644 index ba4923252..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/plugin.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - An interface for choosing fixed trajectories. - - - - - - - system-help - Fixed Trajectory Selector. - - - diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/scripts/rqt_fixed_trajectory_selector b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/scripts/rqt_fixed_trajectory_selector deleted file mode 100644 index 4d4951103..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/scripts/rqt_fixed_trajectory_selector +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/env python - -import sys - -from rqt_fixed_trajectory_selector.rqt_fixed_trajectory_selector import FixedTrajectorySelectorPlugin -from rqt_gui.main import Main - -plugin = 'rqt_fixed_trajectory_selector' -main = Main(filename=plugin) -sys.exit(main.main(standalone=plugin)) diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/setup.py b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/setup.py deleted file mode 100644 index d8e789de9..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/setup.py +++ /dev/null @@ -1,9 +0,0 @@ -from distutils.core import setup -from catkin_pkg.python_setup import generate_distutils_setup - -d = generate_distutils_setup( - packages=['rqt_fixed_trajectory_selector'], - package_dir={'': 'src'}, -) - -setup(**d) diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/src/fixed_trajectory_generator.py b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/src/fixed_trajectory_generator.py deleted file mode 100755 index 2f2ea2b06..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/src/fixed_trajectory_generator.py +++ /dev/null @@ -1,367 +0,0 @@ -#!/usr/bin/python -import numpy as np -from nav_msgs.msg import Odometry -from geometry_msgs.msg import Point -import rospy -import tf.transformations as trans -import argparse -#from at_fcs_mavros.msg import Trajectory -#from at_fcs_mavros.msg import Waypoint -#from ca_nav_msgs.msg import XYZVPsi -#from ca_nav_msgs.msg import PathXYZVPsi -from core_trajectory_msgs.msg import WaypointXYZVYaw -from core_trajectory_msgs.msg import TrajectoryXYZVYaw -from core_trajectory_controller.msg import Trajectory -from core_trajectory_msgs.msg import FixedTrajectory -import time -import copy - -def get_velocities(traj, velocity, max_acc): - v_prev = 0. - - for i in range(len(traj.waypoints)): - j = (i+1) % len(traj.waypoints) - dx = traj.waypoints[j].position.x - traj.waypoints[i].position.x - dy = traj.waypoints[j].position.y - traj.waypoints[i].position.y - - dist = np.sqrt(dx**2 + dy**2) - v_limit = np.sqrt(v_prev**2 + 2*max_acc*dist) - traj.waypoints[i].velocity = min(velocity, v_limit) - v_prev = traj.waypoints[i].velocity - - - -def get_racetrack_waypoints(attributes):#length, width, height): - frame_id = str(attributes['frame_id']) - length = float(attributes['length']) - width = float(attributes['width']) - height = float(attributes['height']) - velocity = float(attributes['velocity']) - max_acceleration = float(attributes['max_acceleration']) - - traj = TrajectoryXYZVYaw() - traj.header.frame_id = frame_id - straightaway_length = length - width - - # first straightaway - xs1 = np.linspace(0, straightaway_length, 20) - ys1 = np.zeros(xs1.shape) - yaws1 = np.zeros(xs1.shape) - - # first turn - t = np.linspace(-np.pi/2, np.pi/2, 30)[1:-1] - xs2 = width/2.*np.cos(t) + straightaway_length - ys2 = width/2.*np.sin(t) + width/2. - xs2d = -width/2.*np.sin(t) # derivative of xs - ys2d = width/2.*np.cos(t) # derivative of ys - yaws2 = np.arctan2(ys2d, xs2d) - - # second straightaway - xs3 = np.linspace(straightaway_length, 0, 20) - ys3 = width*np.ones(xs3.shape) - yaws3 = np.pi*np.ones(xs3.shape) - - # second turn - t = np.linspace(np.pi/2, 3*np.pi/2, 30)[1:-1] - xs4 = width/2.*np.cos(t) - ys4 = width/2.*np.sin(t) + width/2. - yaws4 = yaws2 + np.pi - - xs = np.hstack((xs1, xs2, xs3, xs4)) - ys = np.hstack((ys1, ys2, ys3, ys4)) - yaws = np.hstack((yaws1, yaws2, yaws3, yaws4)) - - now = rospy.Time.now() - for i in range(xs.shape[0]): - wp = WaypointXYZVYaw() - wp.position.x = xs[i] - wp.position.y = ys[i] - wp.position.z = height - wp.yaw = yaws[i] - - traj.waypoints.append(wp) - - get_velocities(traj, velocity, max_acceleration) - - return traj - - -def get_figure8_waypoints(attributes):#length, width, height): - frame_id = str(attributes['frame_id']) - length = float(attributes['length']) - width = float(attributes['width']) - height = float(attributes['height']) - velocity = float(attributes['velocity']) - max_acceleration = float(attributes['max_acceleration']) - - traj = TrajectoryXYZVYaw() - traj.header.frame_id = frame_id - now = rospy.Time.now() - - # figure 8 points - t = np.linspace(0, 2*np.pi, 100) - x = np.cos(t) * length - length - y = np.cos(t)*np.sin(t) * 2*width - - # derivative of figure 8 curve, used to find yaw - xd = -np.sin(t) * length - yd = (np.cos(t)**2 - np.sin(t)**2) * 2*width - - for i in range(t.shape[0] - 1): - x1 = x[i] - y1 = y[i] - x2 = x1 + xd[i] - y2 = y1 + yd[i] - - yaw = np.arctan2(y2 - y1, x2 - x1) - - wp = WaypointXYZVYaw() - wp.position.x = x1 - wp.position.y = y1 - wp.position.z = height - wp.yaw = yaw - - traj.waypoints.append(wp) - - get_velocities(traj, velocity, max_acceleration) - - return traj - -def get_line_waypoints(attributes):#length, height): - frame_id = str(attributes['frame_id']) - length = float(attributes['length']) - height = float(attributes['height']) - velocity = float(attributes['velocity']) - max_acceleration = float(attributes['max_acceleration']) - - traj = TrajectoryXYZVYaw() - traj.header.frame_id = frame_id - - for y in np.arange(0, -length, -0.5): - wp = WaypointXYZVYaw() - wp.position.x = 0 - wp.position.y = y - wp.position.z = height - wp.yaw = 0 - - traj.waypoints.append(wp) - - get_velocities(traj, velocity, max_acceleration) - - return traj - -def get_point_waypoints(attributes):#length, height): - frame_id = str(attributes['frame_id']) - x = float(attributes['x']) - y = float(attributes['y']) - height = float(attributes['height']) - velocity = float(attributes['velocity']) - max_acceleration = float(attributes['max_acceleration']) - - traj = TrajectoryXYZVYaw() - traj.header.frame_id = frame_id - - # add first point - wp = WaypointXYZVYaw() - wp.position.x = x - wp.position.y = y - wp.position.z = height - wp.yaw = 0 - - traj.waypoints.append(wp) - - get_velocities(traj, velocity, max_acceleration) - - return traj - -def get_box_waypoints(attributes):#length, height): - frame_id = str(attributes['frame_id']) - length = float(attributes['length']) - height = float(attributes['height']) - velocity = float(attributes['velocity']) - max_acceleration = float(attributes['max_acceleration']) - - traj = TrajectoryXYZVYaw() - traj.header.frame_id = frame_id - - wp1 = WaypointXYZVYaw() - wp1.position.x = 0. - wp1.position.y = 0. - wp1.position.z = height - wp1.yaw = 0 - traj.waypoints.append(wp1) - - wp2 = WaypointXYZVYaw() - wp2.position.x = length - wp2.position.y = 0. - wp2.position.z = height - wp2.yaw = 0 - traj.waypoints.append(wp2) - - wp3 = WaypointXYZVYaw() - wp3.position.x = length - wp3.position.y = 0. - wp3.position.z = height + height - wp3.yaw = 0 - traj.waypoints.append(wp3) - - wp4 = WaypointXYZVYaw() - wp4.position.x = 0. - wp4.position.y = 0. - wp4.position.z = height + height - wp4.yaw = 0 - traj.waypoints.append(wp4) - - return traj - -def get_vertical_lawnmower_waypoints(attributes):#length, width, height, velocity): - frame_id = str(attributes['frame_id']) - length = float(attributes['length']) - width = float(attributes['width']) - height = float(attributes['height']) - velocity = float(attributes['velocity']) - - traj = TrajectoryXYZVYaw() - traj.header.frame_id = frame_id - - for i in range(abs(int(height/width))): - wp1 = WaypointXYZVYaw() - wp1.position.x = 0 - wp1.position.y = 0 - wp1.position.z = np.sign(height)*(i+1)*width - wp1.yaw = 0 - wp1.velocity = 0.1 - - wp1_ = WaypointXYZVYaw() - wp1_.position.x = 0 - wp1_.position.y = 0.5 - wp1_.position.z = np.sign(height)*(i+1)*width - wp1_.yaw = 0 - wp1_.velocity = velocity - - wp2 = WaypointXYZVYaw() - wp2.position.x = 0 - wp2.position.y = length - wp2.position.z = np.sign(height)*(i+1)*width - wp2.yaw = 0 - wp2.velocity = 0.1 - - wp2_ = WaypointXYZVYaw() - wp2_.position.x = 0 - wp2_.position.y = length - 0.5 - wp2_.position.z = np.sign(height)*(i+1)*width - wp2_.yaw = 0 - wp2_.velocity = velocity - - if i%2 == 0: - traj.waypoints.append(wp1) - wp1_slow = copy.deepcopy(wp1_) - wp1_slow.velocity = 0.1 - traj.waypoints.append(wp1_slow) - traj.waypoints.append(wp1_) - traj.waypoints.append(wp2_) - traj.waypoints.append(wp2) - else: - traj.waypoints.append(wp2) - wp2_slow = copy.deepcopy(wp2_) - wp2_slow.velocity = 0.1 - traj.waypoints.append(wp2_slow) - traj.waypoints.append(wp2_) - traj.waypoints.append(wp1_) - traj.waypoints.append(wp1) - - wp = WaypointXYZVYaw() - wp.position.x = 0 - wp.position.y = 0 - wp.position.z = 0 - wp.yaw = 0 - wp.velocity = 0.5 - traj.waypoints.append(wp) - - return traj - -def get_circle_waypoints(attributes):#radius, velocity, frame_id): - frame_id = str(attributes['frame_id']) - radius = float(attributes['radius']) - velocity = float(attributes['velocity']) - - traj = TrajectoryXYZVYaw() - traj.header.frame_id = frame_id - traj.header.stamp = rospy.Time.now() - - wp0 = WaypointXYZVYaw() - wp0.position.x = 0 - wp0.position.y = 0 - wp0.position.z = 0 - wp0.yaw = 0 - wp0.velocity = velocity - traj.waypoints.append(wp0) - - wp1 = WaypointXYZVYaw() - wp1.position.x = radius - wp1.position.y = 0 - wp1.position.z = 0 - wp1.yaw = 0 - wp1.velocity = velocity - traj.waypoints.append(wp1) - - for angle in np.arange(0, 2*np.pi, 10.*np.pi/180.): - wp = WaypointXYZVYaw() - wp.position.x = radius*np.cos(angle) - wp.position.y = radius*np.sin(angle) - wp.position.z = 0 - wp.yaw = 0 - wp.velocity = velocity - traj.waypoints.append(wp) - - wp_end0 = WaypointXYZVYaw() - wp_end0.position.x = radius - wp_end0.position.y = 0 - wp_end0.position.z = 0 - wp_end0.yaw = 0 - wp_end0.velocity = velocity - traj.waypoints.append(wp_end0) - - wp_end1 = WaypointXYZVYaw() - wp_end1.position.x = 0 - wp_end1.position.y = 0 - wp_end1.position.z = 0 - wp_end1.yaw = 0 - wp_end1.velocity = velocity - traj.waypoints.append(wp_end1) - - return traj - - -def fixed_trajectory_callback(msg): - attributes = {} - - for key_value in msg.attributes: - attributes[key_value.key] = key_value.value - - trajectory_msg = None - - if msg.type == 'Figure8': - trajectory_msg = get_figure8_waypoints(attributes) - elif msg.type == 'Circle': - trajectory_msg = get_circle_waypoints(attributes) - elif msg.type == 'Racetrack': - trajectory_msg = get_racetrack_waypoints(attributes) - elif msg.type == 'Line': - trajectory_msg = get_line_waypoints(attributes) - elif msg.type == 'Point': - trajectory_msg = get_point_waypoints(attributes) - - if trajectory_msg != None: - trajectory_track_pub.publish(trajectory_msg) - else: - print('No trajectory sent.') - -if __name__ == '__main__': - rospy.init_node('fixed_trajectory_generator') - - fixed_trajectory_sub = rospy.Subscriber('fixed_trajectory', FixedTrajectory, fixed_trajectory_callback) - - trajectory_track_pub = rospy.Publisher('trajectory_track', TrajectoryXYZVYaw, queue_size=1) - - rospy.spin() diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/src/rqt_fixed_trajectory_selector/__init__.py b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/src/rqt_fixed_trajectory_selector/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/src/rqt_fixed_trajectory_selector/rqt_fixed_trajectory_selector.py b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/src/rqt_fixed_trajectory_selector/rqt_fixed_trajectory_selector.py deleted file mode 100644 index af755a0ce..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/src/rqt_fixed_trajectory_selector/rqt_fixed_trajectory_selector.py +++ /dev/null @@ -1,204 +0,0 @@ -import os -import time -import rospy -import rospkg -from std_msgs.msg import String, Bool -from behavior_tree_msgs.msg import Status -import numpy as np -import yaml -import collections - -from qt_gui.plugin import Plugin -import python_qt_binding.QtWidgets as qt -import python_qt_binding.QtCore as core -import python_qt_binding.QtGui as gui - -from python_qt_binding import QT_BINDING, QT_BINDING_VERSION - -from python_qt_binding.QtCore import Slot, Qt, qVersion, qWarning, Signal -from python_qt_binding.QtGui import QColor -from python_qt_binding.QtWidgets import QWidget, QVBoxLayout, QSizePolicy - -from core_trajectory_msgs.msg import FixedTrajectory -from diagnostic_msgs.msg import KeyValue - -class FixedTrajectorySelectorPlugin(Plugin): - def __init__(self, context): - super(FixedTrajectorySelectorPlugin, self).__init__(context) - self.setObjectName('FixedTrajectorySelectorPlugin') - - self.config_filename = '' - - self.button_dct = {} - self.attribute_settings = collections.OrderedDict() - - self.timer = rospy.Timer(rospy.Duration(1./10.), self.timer_callback) - - self.fixed_trajectory_pub = rospy.Publisher('fixed_trajectory_command', FixedTrajectory, queue_size=1) - self.global_plan_fixed_trajectory_pub = rospy.Publisher('global_plan_fixed_trajectory', FixedTrajectory, queue_size=1) - - # main layout - self.widget = QWidget() - self.vbox = qt.QVBoxLayout() - self.widget.setLayout(self.vbox) - context.add_widget(self.widget) - - # config widget - self.config_widget = qt.QWidget() - self.config_widget.setStyleSheet('QWidget{margin-left:-1px;}') - self.config_layout = qt.QHBoxLayout() - self.config_widget.setLayout(self.config_layout) - self.config_widget.setFixedHeight(50) - - self.config_button = qt.QPushButton('Open Config...') - self.config_button.clicked.connect(self.select_config_file) - self.config_layout.addWidget(self.config_button) - - self.config_label = qt.QLabel('config filename: ') - self.config_layout.addWidget(self.config_label) - self.vbox.addWidget(self.config_widget) - - # trajectory widget - self.trajectory_widget = qt.QWidget() - self.trajectory_layout = qt.QVBoxLayout() - self.trajectory_widget.setLayout(self.trajectory_layout) - self.vbox.addWidget(self.trajectory_widget) - - self.tab_widget = qt.QTabWidget() - self.trajectory_layout.addWidget(self.tab_widget) - - # button widget - self.button_widget = qt.QWidget() - self.button_layout = qt.QHBoxLayout() - self.button_widget.setLayout(self.button_layout) - self.vbox.addWidget(self.button_widget) - - self.publish_button = qt.QPushButton('Publish') - self.publish_button.clicked.connect(self.publish_trajectory) - self.button_layout.addWidget(self.publish_button) - - self.trajectory_type_label = qt.QLabel('Type: ') - self.button_layout.addWidget(self.trajectory_type_label) - - self.trajectory_type_combo_box = qt.QComboBox() - self.trajectory_type_combo_box.addItem('Fixed Trajectory') - self.trajectory_type_combo_box.addItem('Global Plan') - self.button_layout.addWidget(self.trajectory_type_combo_box) - - def publish_trajectory(self): - trajectory_type = self.trajectory_type_combo_box.currentText() - trajectory_name = self.tab_widget.tabText(self.tab_widget.currentIndex()) - msg = FixedTrajectory() - msg.type = trajectory_name - for attribute, value in self.attribute_settings[trajectory_name].iteritems(): - key_value = KeyValue() - key_value.key = attribute - key_value.value = value - msg.attributes.append(key_value) - if trajectory_type == 'Fixed Trajectory': - self.fixed_trajectory_pub.publish(msg) - elif trajectory_type == 'Global Plan': - self.global_plan_fixed_trajectory_pub.publish(msg) - - - def select_config_file(self): - starting_path = os.path.join(rospkg.RosPack().get_path('core_trajectory_library'), 'config') - filename = qt.QFileDialog.getOpenFileName(self.widget, 'Open Config File', starting_path, "Config Files (*.yaml)")[0] - self.set_config(filename) - - def set_config(self, filename): - if filename != '': - self.config_filename = filename - if self.config_filename != None: - self.config_label.setText('config filename: ' + self.config_filename) - self.init_buttons(filename) - - def init_buttons(self, filename): - y = yaml.load(open(filename, 'r').read()) - print(y) - - def get_attribute_changed_function(trajectory_name, attribute_name): - def attribute_changed(text): - if trajectory_name not in self.attribute_settings: - self.attribute_settings[trajectory_name] = {} - self.attribute_settings[trajectory_name][attribute_name] = text - return attribute_changed - - def get_publish_function(trajectory_name): - def publish_function(): - msg = FixedTrajectory() - msg.type = trajectory_name - for attribute, value in self.attribute_settings[trajectory_name].iteritems(): - key_value = KeyValue() - key_value.key = attribute - key_value.value = value - msg.attributes.append(key_value) - self.fixed_trajectory_pub.publish(msg) - return publish_function - - - for trajectory in y['trajectories']: - trajectory_name = trajectory.keys()[0] - attributes = trajectory[trajectory_name]['attributes'] - - trajectory_tab = qt.QWidget() - trajectory_layout = qt.QVBoxLayout() - trajectory_tab.setLayout(trajectory_layout) - - for attribute in attributes: - attribute_widget = qt.QWidget() - attribute_layout = qt.QHBoxLayout() - attribute_widget.setLayout(attribute_layout) - - attribute_label = qt.QLabel() - attribute_label.setText(attribute) - attribute_layout.addWidget(attribute_label) - - attribute_default = '0' - if attribute == 'frame_id': - attribute_default = 'world' - if trajectory_name in self.attribute_settings.keys(): - if attribute in self.attribute_settings[trajectory_name].keys(): - attribute_default = self.attribute_settings[trajectory_name][attribute] - - attribute_edit = qt.QLineEdit() - attribute_edit.textChanged.connect(get_attribute_changed_function(trajectory_name, - attribute)) - attribute_edit.setText(attribute_default) - - attribute_layout.addWidget(attribute_edit) - - trajectory_layout.addWidget(attribute_widget) - - #publish_button = qt.QPushButton('Publish') - #publish_button.clicked.connect(get_publish_function(trajectory_name)) - #trajectory_layout.addWidget(publish_button) - - self.tab_widget.addTab(trajectory_tab, trajectory_name) - - - - def timer_callback(self, msg): - bool_msg = Bool() - for key in self.button_dct.keys(): - bool_msg.data = self.button_dct[key]['data'] - self.button_dct[key]['publisher'].publish(bool_msg) - - def shutdown_plugin(self): - pass - - def save_settings(self, plugin_settings, instance_settings): - instance_settings.set_value('config_filename', self.config_filename) - instance_settings.set_value('attribute_settings', self.attribute_settings) - - def restore_settings(self, plugin_settings, instance_settings): - attribute_settings = instance_settings.value('attribute_settings') - if attribute_settings != None: - self.attribute_settings = attribute_settings - self.set_config(instance_settings.value('config_filename')) - - #def trigger_configuration(self): - # Comment in to signal that the plugin has a way to configure - # This will enable a setting button (gear icon) in each dock widget title bar - # Usually used to open a modal configuration dialog - diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/src/trajectory_library.cpp b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/src/trajectory_library.cpp deleted file mode 100644 index 1c12cb8d3..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/src/trajectory_library.cpp +++ /dev/null @@ -1,992 +0,0 @@ -/* -#include -#include -#include -#include -#include -#include - -#include -*/ -#include -#include -#include -#include // Add this line -#include -#include -#include - -#include -#include -#include -#include -Waypoint::Waypoint(double x, double y, double z, double yaw, double vx, double vy, double vz, - double time) { - x_ = x; - y_ = y; - z_ = z; - vx_ = vx; - vy_ = vy; - vz_ = vz; - yaw_ = yaw; - time_ = time; -} - -tf2::Quaternion Waypoint::q() const { - tf2::Quaternion quat; - quat.setRPY(0, 0, yaw_); - return quat; -} - -tf2::Vector3 Waypoint::position() const { return tf2::Vector3(x_, y_, z_); } - -tf2::Vector3 Waypoint::velocity() const { return tf2::Vector3(vx_, vy_, vz_); } - -nav_msgs::msg::Odometry Waypoint::odometry(rclcpp::Time stamp, std::string frame_id) const { - nav_msgs::msg::Odometry odom; - odom.header.stamp = stamp; - odom.header.frame_id = frame_id; - odom.child_frame_id = frame_id; - - odom.pose.pose.position.x = x_; - odom.pose.pose.position.y = y_; - odom.pose.pose.position.z = z_; - - tf2::Quaternion quat = q(); - odom.pose.pose.orientation.x = quat.x(); - odom.pose.pose.orientation.y = quat.y(); - odom.pose.pose.orientation.z = quat.z(); - odom.pose.pose.orientation.w = quat.w(); - - odom.twist.twist.linear.x = vx_; - odom.twist.twist.linear.y = vy_; - odom.twist.twist.linear.z = vz_; - - return odom; -} -// Helper function to get yaw from a quaternion -double getYawFromQuaternion(const tf2::Quaternion& quat) { - double roll, pitch, yaw; - tf2::Matrix3x3(quat).getRPY(roll, pitch, yaw); - return yaw; -} - -Waypoint Waypoint::interpolate(Waypoint wp, double t) { - tf2::Vector3 pos_interp = position() + t * (wp.position() - position()); - tf2::Quaternion q_interp = q().slerp(wp.q(), t); - tf2::Vector3 vel_interp = velocity() + t * (wp.velocity() - velocity()); - double time_interp = time() + t * (time() - wp.time()); - - double yaw_interp = getYawFromQuaternion(q_interp); - - Waypoint wp_interp(pos_interp.x(), pos_interp.y(), pos_interp.z(), yaw_interp, vel_interp.x(), - vel_interp.y(), vel_interp.z(), time_interp); - - return wp_interp; -} - -static int trajectory_class_counter = 0; - -Trajectory::Trajectory() { - // listener = NULL; - generated_waypoint_times = false; - - // init marker namespace to be unique - std::stringstream ss; - ss << "trajectory_" << trajectory_class_counter; - marker_namespace = ss.str(); - trajectory_class_counter++; -} - -Trajectory::Trajectory(std::string frame_id) { - this->frame_id = frame_id; - // listener = NULL; - generated_waypoint_times = false; - - // init marker namespace to be unique - std::stringstream ss; - ss << "trajectory_" << trajectory_class_counter; - marker_namespace = ss.str(); - trajectory_class_counter++; -} - -Trajectory::Trajectory(core_trajectory_msgs::msg::TrajectoryXYZVYaw path) { - frame_id = path.header.frame_id; - stamp = path.header.stamp; - // listener = NULL; - generated_waypoint_times = false; - - // init marker namespace to be unique - std::stringstream ss; - ss << "trajectory_" << trajectory_class_counter; - marker_namespace = ss.str(); - trajectory_class_counter++; - - // remove any consecutive duplicate waypoints - core_trajectory_msgs::msg::TrajectoryXYZVYaw cleaned_path; - cleaned_path.header = path.header; - for (int i = 0; i < path.waypoints.size(); i++) { - core_trajectory_msgs::msg::WaypointXYZVYaw wp = path.waypoints[i]; - if (i == 0) - cleaned_path.waypoints.push_back(wp); - else if (!(wp.position.x == cleaned_path.waypoints.back().position.x && - wp.position.y == cleaned_path.waypoints.back().position.y && - wp.position.z == cleaned_path.waypoints.back().position.z)) - cleaned_path.waypoints.push_back(wp); - } - - // ROS_INFO_STREAM("TRAJECTORY CONSTRUCTOR"); - for (int i = 0; i < cleaned_path.waypoints.size(); i++) { - core_trajectory_msgs::msg::WaypointXYZVYaw wp = cleaned_path.waypoints[i]; - - // calculate the x, y, z components of velocity - tf2::Vector3 wp1(wp.position.x, wp.position.y, wp.position.z); - tf2::Vector3 wp2(wp1); - if (i == - 0) { // for the first waypoint use the next waypoint to figure out direction of travel - if (cleaned_path.waypoints.size() > 1) - wp2 = tf2::Vector3(cleaned_path.waypoints[i + 1].position.x, - cleaned_path.waypoints[i + 1].position.y, - cleaned_path.waypoints[i + 1].position.z); - } else { // otherwise use the previous waypoint - wp1 = tf2::Vector3(cleaned_path.waypoints[i - 1].position.x, - cleaned_path.waypoints[i - 1].position.y, - cleaned_path.waypoints[i - 1].position.z); - } - - tf2::Vector3 direction = (wp2 - wp1).normalized(); - tf2::Vector3 vel = wp.velocity * direction; - - // ROS_INFO_STREAM("WAYPOINT " << i << " vel: " << vel.x() << " " << vel.y() << " " << - // vel.z()); ROS_INFO_STREAM("\twp1: " << wp1.x() << " " << wp1.y() << " " << wp1.z()); - // ROS_INFO_STREAM("\twp2: " << wp2.x() << " " << wp2.y() << " " << wp2.z()); - // ROS_INFO_STREAM("\tdirection: " << direction.x() << " " << direction.y() << " " << - // direction.z() << " wp.vel: " << wp.vel); - - Waypoint waypoint(wp.position.x, wp.position.y, wp.position.z, wp.yaw, vel.x(), vel.y(), - vel.z()); - waypoints.push_back(waypoint); - } -} - -void Trajectory::init_listener() { - if (!tf_buffer) { - tf_buffer = std::make_unique(node_->get_clock()); - tf_listener = std::make_unique(*tf_buffer); - } -} - -void Trajectory::clear() { - waypoints.clear(); - generated_waypoint_times = false; -} - -void Trajectory::generate_waypoint_times() { - if (generated_waypoint_times) return; - - /* - if(waypoints.size() > 1){ - ROS_INFO_STREAM("WAYPOINT " << 0 << waypoints[0]); - } - */ - - for (int i = 1; i < waypoints.size(); i++) { - Waypoint& curr_wp = waypoints[i]; - Waypoint& prev_wp = waypoints[i - 1]; - - double distance = curr_wp.position().distance(prev_wp.position()); - double velocity = std::max(0.01, curr_wp.velocity().length()); - // if(i+1 < waypoints.size()){ - // velocity = (velocity + waypoints[i+1].velocity().length())/2.0; - // } - - // ROS_INFO_STREAM("WAYPOINT " << i << " dist: " << distance << " vel: " << velocity << " - // time: " << (prev_wp.time() + distance/velocity) << " prev_time: " << prev_wp.time() << " - // inc: " << (distance/velocity)); - - curr_wp.set_time(prev_wp.time() + distance / velocity); - } - - generated_waypoint_times = true; -} - -bool Trajectory::get_closest_point(tf2::Vector3 point, tf2::Vector3* closest, int* wp_index, - double* path_distance) { - double closest_distance = std::numeric_limits::max(); - double best_t = 0; - int best_wp_index = 0; - - if (waypoints.size() == 0) { - if (wp_index != NULL) *wp_index = 0; - if (path_distance != NULL) path_distance = 0; - return false; - } else if (waypoints.size() == 1) { - *closest = waypoints[0].position(); - best_wp_index = 0; - if (path_distance != NULL) path_distance = 0; - } else { - for (int i = 1; i < waypoints.size(); i++) { - // parameteric representation of segment between waypoints: segment_start + - // t*segment_vec - tf2::Vector3 segment_start = waypoints[i - 1].position(); - tf2::Vector3 segment_end = waypoints[i].position(); - tf2::Vector3 segment_vec = segment_end - segment_start; - - // project the vector (point - segment_start) onto the parametric line - double t = ((point - segment_start).dot(segment_vec)) / (segment_vec.dot(segment_vec)); - t = std::max(0.0, std::min(1.0, t)); - tf2::Vector3 closest_point = segment_start + t * segment_vec; - - // find the distance between the point and the closest point on the current segment - double distance = closest_point.distance(point); - if (distance < closest_distance) { - closest_distance = distance; - *closest = closest_point; - best_wp_index = i - 1; - best_t = t; - } - } - - if (path_distance != NULL) { - *path_distance = 0; - for (int i = 0; i <= best_wp_index; i++) { - tf2::Vector3 segment_start = waypoints[i].position(); - tf2::Vector3 segment_end = waypoints[i + 1].position(); - tf2::Vector3 segment_vec = segment_end - segment_start; - - if (i == best_wp_index) - *path_distance += best_t * segment_vec.length(); - else - *path_distance += segment_vec.length(); - } - } - } - - if (wp_index != NULL) *wp_index = best_wp_index; - - return true; -} - -bool Trajectory::get_trajectory_distance_at_closest_point(tf2::Vector3 point, - double* trajectory_distance) { - double closest_distance = std::numeric_limits::max(); - *trajectory_distance = 0; - double current_trajectory_distance = 0; - - if (waypoints.size() == 0) - return false; - else if (waypoints.size() == 1) - return true; - else { - for (int i = 1; i < waypoints.size(); i++) { - // parameteric representation of segment between waypoints: segment_start + - // t*segment_vec - tf2::Vector3 segment_start = waypoints[i - 1].position(); - tf2::Vector3 segment_end = waypoints[i].position(); - tf2::Vector3 segment_vec = segment_end - segment_start; - double segment_length = segment_start.distance(segment_end); - - // project the vector (point - segment_start) onto the parametric line - double t = ((point - segment_start).dot(segment_vec)) / (segment_vec.dot(segment_vec)); - t = std::max(0.0, std::min(1.0, t)); - tf2::Vector3 closest_point = segment_start + t * segment_vec; - - // find the distance between the point and the closest point on the current segment - double distance = closest_point.distance(point); - if (distance < closest_distance) { - closest_distance = distance; - *trajectory_distance = current_trajectory_distance + t * segment_length; - } - - current_trajectory_distance += segment_length; - } - } - - return true; -} - -bool Trajectory::merge(Trajectory traj) { - if (traj.waypoints.size() == 0) { - return true; - } - generated_waypoint_times = false; - - Trajectory transformed_traj; - try { - transformed_traj = traj.to_frame(frame_id, stamp); - } catch (tf2::TransformException& ex) { - RCLCPP_ERROR_STREAM(node_->get_logger(), - "Transform exception while merging trajectories: " << ex.what()); - } - if (transformed_traj.waypoints.size() == 0) { - return true; - } - - if (waypoints.size() == 0) { - waypoints.insert(waypoints.end(), transformed_traj.waypoints.begin(), - transformed_traj.waypoints.end()); - return true; - } - - tf2::Vector3 closest_point; - int wp_index; - bool valid = - get_closest_point(transformed_traj.waypoints[0].position(), &closest_point, &wp_index); - - waypoints.erase(waypoints.begin() + wp_index + 1, waypoints.end()); - waypoints.insert(waypoints.end(), transformed_traj.waypoints.begin(), - transformed_traj.waypoints.end()); - return true; -} - -double Trajectory::get_duration() { - generate_waypoint_times(); - - if (waypoints.size() == 0) return 0; - - return waypoints.back().time(); -} - -bool Trajectory::get_odom(double time, nav_msgs::msg::Odometry* odom) { - generate_waypoint_times(); - - if (waypoints.size() == 0) { - return false; - } else if (waypoints.size() == 1) { - *odom = waypoints[0].odometry(rclcpp::Clock().now(), frame_id); - return true; - } - - // figure out what waypoints we are between - Waypoint prev_wp = waypoints.back(); - Waypoint curr_wp = waypoints.back(); - Waypoint next_wp = waypoints.back(); - for (int i = 1; i < waypoints.size(); i++) { - if (time <= waypoints[i].time()) { - prev_wp = waypoints[i - 1]; - curr_wp = waypoints[i]; - next_wp = curr_wp; - if (i + 1 < waypoints.size()) next_wp = waypoints[i + 1]; - break; - } - } - - // figure out where we are in between the current and previous waypoints - double t = (time - prev_wp.time()) / (curr_wp.time() - prev_wp.time()); - t = std::max(0.0, std::min(1.0, t)); - - // set frame and timestamp - odom->header.stamp = rclcpp::Clock().now(); // TODO: figure out if this is correct - odom->header.frame_id = frame_id; - odom->child_frame_id = frame_id; - - // interpolate position - tf2::Vector3 position = prev_wp.position() + t * (curr_wp.position() - prev_wp.position()); - odom->pose.pose.position.x = position.x(); - odom->pose.pose.position.y = position.y(); - odom->pose.pose.position.z = position.z(); - - // interpolate velocity - tf2::Vector3 velocity = curr_wp.velocity() + t * (next_wp.velocity() - curr_wp.velocity()); - odom->twist.twist.linear.x = velocity.x(); - odom->twist.twist.linear.y = velocity.y(); - odom->twist.twist.linear.z = velocity.z(); - - // interpolate orientation - tf2::Quaternion q = prev_wp.q().slerp(curr_wp.q(), t); - odom->pose.pose.orientation.x = q.x(); - odom->pose.pose.orientation.y = q.y(); - odom->pose.pose.orientation.z = q.z(); - odom->pose.pose.orientation.w = q.w(); - - return true; -} - -Trajectory Trajectory::to_frame(std::string target_frame, rclcpp::Time time) { - init_listener(); - - geometry_msgs::msg::TransformStamped transform; - // listener->waitForTransform(target_frame, frame_id, time, ros::Duration(0.1)); - // listener->lookupTransform(target_frame, frame_id, time, transform); - try { - // Use tf2_buffer to get the transform - transform = tf_buffer->lookupTransform(target_frame, frame_id, time); - } catch (const tf2::TransformException& ex) { - RCLCPP_WARN(node_->get_logger(), "Transform error: %s", ex.what()); - return *this; // Handle the error as needed - } - - Trajectory transformed_traj; - transformed_traj.stamp = time; - transformed_traj.frame_id = target_frame; - - for (int i = 0; i < waypoints.size(); i++) { - Waypoint wp = waypoints[i]; - - // tf2::Vector3 transformed_position = transform * wp.position(); - // tf2::Vector3 transformed_velocity = tf::Transform(transform.getRotation()) * - // wp.velocity(); tf2::Quaternion transformed_q = transform * wp.q(); - - tf2::Vector3 transformed_position; - tf2::doTransform(wp.position(), transformed_position, transform); - - tf2::Vector3 transformed_velocity; - tf2::doTransform(wp.velocity(), transformed_velocity, transform); - - tf2::Quaternion transformed_q; - tf2::doTransform(wp.q(), transformed_q, transform); - Waypoint transformed_wp(transformed_position.x(), transformed_position.y(), - transformed_position.z(), getYawFromQuaternion(transformed_q), - transformed_velocity.x(), transformed_velocity.y(), - transformed_velocity.z()); - - transformed_traj.waypoints.push_back(transformed_wp); - } - - return transformed_traj; -} - -Trajectory Trajectory::respace(double spacing) { - Trajectory traj; - traj.stamp = stamp; - traj.frame_id = frame_id; - // ROS_INFO("RESPACE"); - - if (waypoints.size() > 0) { - double distance = 0; - traj.waypoints.push_back(waypoints[0]); // always add the first waypoint - - for (int i = 1; i < waypoints.size(); i++) { - if (i == waypoints.size() - 1) { // always add the last waypoint - traj.waypoints.push_back(waypoints[i]); - continue; - } - // ROS_INFO_STREAM("Waypoint " << i); - Waypoint prev_wp = waypoints[i - 1]; - Waypoint curr_wp = waypoints[i]; - double segment_length = prev_wp.position().distance(curr_wp.position()); - // ROS_INFO_STREAM("segment_length: " << segment_length << " distance: " << distance << - // " spacing: " << spacing); - - if (distance + segment_length >= spacing) { - // ROS_INFO("interpolating"); - Waypoint interp_wp = - prev_wp.interpolate(curr_wp, (spacing - distance) / segment_length); - traj.waypoints.push_back(interp_wp); - distance = 0; - } else - distance += segment_length; - } - } - - return traj; -} - -Trajectory Trajectory::shorten(double new_length) { - Trajectory traj; - traj.stamp = stamp; - traj.frame_id = frame_id; - - if (waypoints.size() > 0) { - double distance = 0; - traj.waypoints.push_back(waypoints[0]); // always add the first waypoint - - for (int i = 1; i < waypoints.size(); i++) { - Waypoint prev_wp = waypoints[i - 1]; - Waypoint curr_wp = waypoints[i]; - double segment_length = prev_wp.position().distance(curr_wp.position()); - - if (distance + segment_length >= new_length) { - Waypoint interp_wp = - prev_wp.interpolate(curr_wp, (new_length - distance) / segment_length); - traj.waypoints.push_back(interp_wp); - break; - } else { - traj.waypoints.push_back(curr_wp); - distance += segment_length; - } - } - } - - return traj; -} - -Trajectory Trajectory::get_subtrajectory_distance(double start, double end) { - Trajectory traj; - traj.stamp = stamp; - traj.frame_id = frame_id; - - if (waypoints.size() > 0) { - double distance = 0; - - for (int i = 1; i < waypoints.size(); i++) { - Waypoint prev_wp = waypoints[i - 1]; - Waypoint curr_wp = waypoints[i]; - double segment_length = prev_wp.position().distance(curr_wp.position()); - - if (start >= distance && start <= distance + segment_length) { - Waypoint interp_start_wp = - prev_wp.interpolate(curr_wp, (start - distance) / segment_length); - traj.waypoints.push_back(interp_start_wp); - } - - if (distance + segment_length > start && distance + segment_length < end) { - traj.waypoints.push_back(curr_wp); - } - - if (end >= distance && end <= distance + segment_length) { - Waypoint interp_end_wp = - prev_wp.interpolate(curr_wp, (end - distance) / segment_length); - traj.waypoints.push_back(interp_end_wp); - } - - distance += segment_length; - } - } - - return traj; -} - -void Trajectory::set_fixed_height(double height) { - for (int i = 0; i < waypoints.size(); i++) waypoints[i].z_ = height; -} - -int Trajectory::waypoint_count() { return waypoints.size(); } - -Waypoint Trajectory::get_waypoint(int index) { return waypoints[index]; } - -std::string Trajectory::get_frame_id() { return frame_id; } - -core_trajectory_msgs::msg::TrajectoryXYZVYaw Trajectory::get_TrajectoryXYZVYaw() { - core_trajectory_msgs::msg::TrajectoryXYZVYaw path; - path.header.stamp = stamp; - path.header.frame_id = frame_id; - - for (int i = 0; i < waypoints.size(); i++) { - Waypoint wp = waypoints[i]; - - core_trajectory_msgs::msg::WaypointXYZVYaw w; - w.position.x = wp.x(); - w.position.y = wp.y(); - w.position.z = wp.z(); - w.yaw = getYawFromQuaternion(wp.q()); - w.velocity = wp.velocity().length(); - - path.waypoints.push_back(w); - } - - return path; -} - -std::vector Trajectory::get_vector_PointStamped() { - std::vector points; - - for (int i = 0; i < waypoints.size(); i++) { - Waypoint wp = waypoints[i]; - - geometry_msgs::msg::PointStamped point; - point.header.stamp = stamp; - point.header.frame_id = frame_id; - point.point.x = wp.x(); - point.point.y = wp.y(); - point.point.z = wp.z(); - - points.push_back(point); - } - - return points; -} - -visualization_msgs::msg::MarkerArray Trajectory::get_markers(float r, float g, float b, float a, - bool show_poses, bool show_velocity) { - visualization_msgs::msg::MarkerArray marker_array; - auto now = rclcpp::Clock().now(); - - visualization_msgs::msg::Marker clear; - clear.ns = marker_namespace; - clear.action = visualization_msgs::msg::Marker::DELETEALL; - marker_array.markers.push_back(clear); - - visualization_msgs::msg::Marker lines; - lines.header.stamp = now; - lines.header.frame_id = frame_id; - lines.ns = marker_namespace; - lines.id = waypoints.size(); - lines.type = visualization_msgs::msg::Marker::LINE_STRIP; - lines.action = visualization_msgs::msg::Marker::ADD; - lines.scale.x = 0.1; - - for (int i = 0; i < waypoints.size(); i++) { - Waypoint wp = waypoints[i]; - - if (show_poses) { - visualization_msgs::msg::Marker arrow; - arrow.header.stamp = now; - arrow.header.frame_id = frame_id; - arrow.ns = marker_namespace; - arrow.id = i; - arrow.type = visualization_msgs::msg::Marker::ARROW; - arrow.action = visualization_msgs::msg::Marker::ADD; - - arrow.pose.position.x = wp.position().x(); - arrow.pose.position.y = wp.position().y(); - arrow.pose.position.z = wp.position().z(); - arrow.pose.orientation.x = wp.q().x(); - arrow.pose.orientation.y = wp.q().y(); - arrow.pose.orientation.z = wp.q().z(); - arrow.pose.orientation.w = wp.q().w(); - arrow.scale.x = 0.5; // length - arrow.scale.y = 0.1; // width - arrow.scale.z = 0.1; // height - arrow.color.r = r; - arrow.color.g = g; - arrow.color.b = b; - arrow.color.a = a; - - marker_array.markers.push_back(arrow); - } - - if (show_velocity) { - visualization_msgs::msg::Marker vel_arrow; - vel_arrow.header.stamp = now; - vel_arrow.header.frame_id = frame_id; - vel_arrow.ns = marker_namespace + "_velocities"; - vel_arrow.id = i; - vel_arrow.type = visualization_msgs::msg::Marker::ARROW; - vel_arrow.action = visualization_msgs::msg::Marker::ADD; - - geometry_msgs::msg::Point point1, point2; - point1.x = wp.position().x(); - point1.y = wp.position().y(); - point1.z = wp.position().z() + 0.2; - point2.x = wp.position().x() + wp.velocity().normalized().x() / 3.; - point2.y = wp.position().y() + wp.velocity().normalized().y() / 3.; - point2.z = wp.position().z() + 0.2 + wp.velocity().normalized().z() / 3.; - vel_arrow.points.push_back(point1); - vel_arrow.points.push_back(point2); - vel_arrow.scale.x = 0.1; - vel_arrow.scale.y = 0.15; - vel_arrow.scale.z = 0.1; - vel_arrow.color.r = r; - vel_arrow.color.g = g; - vel_arrow.color.b = b; - vel_arrow.color.a = a; - - marker_array.markers.push_back(vel_arrow); - } - - geometry_msgs::msg::Point p; - p.x = wp.position().x(); - p.y = wp.position().y(); - p.z = wp.position().z(); - lines.points.push_back(p); - std_msgs::msg::ColorRGBA color; - color.r = r; - color.g = g; - color.b = b; - color.a = a; - lines.colors.push_back(color); - } - - marker_array.markers.push_back(lines); - - return marker_array; -} - -//=================================================================================== -//--------------------------------- Dynamic Trajectories ---------------------------- -//=================================================================================== - -TakeoffTrajectory::TakeoffTrajectory(double height, double velocity, double path_roll, - double path_pitch, bool relative_to_orientation) { - this->height = height; - this->velocity = velocity; - this->path_roll = path_roll; - this->path_pitch = path_pitch; - this->relative_to_orientation = relative_to_orientation; -} - -core_trajectory_msgs::msg::TrajectoryXYZVYaw TakeoffTrajectory::get_trajectory( - nav_msgs::msg::Odometry odom) { - core_trajectory_msgs::msg::TrajectoryXYZVYaw traj; - traj.header.frame_id = odom.header.frame_id; - traj.header.stamp = odom.header.stamp; - - core_trajectory_msgs::msg::WaypointXYZVYaw wp1, wp2; - - wp1.position.x = odom.pose.pose.position.x; - wp1.position.y = odom.pose.pose.position.y; - wp1.position.z = odom.pose.pose.position.z; - - tf2::Quaternion q(odom.pose.pose.orientation.x, odom.pose.pose.orientation.y, - odom.pose.pose.orientation.z, odom.pose.pose.orientation.w); - double roll, pitch, yaw; - tf2::Matrix3x3(q).getRPY(roll, pitch, yaw); - wp1.yaw = yaw; // tf::getYaw(q); - wp1.velocity = velocity; - - wp2.position.x = odom.pose.pose.position.x + - height * sin(path_pitch + (relative_to_orientation ? pitch : 0)); - wp2.position.y = - odom.pose.pose.position.y + height * sin(path_roll - (relative_to_orientation ? roll : 0)); - wp2.position.z = odom.pose.pose.position.z + height; - wp2.yaw = wp1.yaw; - wp2.velocity = velocity; - - traj.waypoints.push_back(wp1); - traj.waypoints.push_back(wp2); - - return traj; -} - -AccelerationTrajectory::AccelerationTrajectory(std::shared_ptr tf_buffer, - std::string frame, double ax, double ay, double az, - double dt, double ht, double max_velocity) - : Node("acceleration_trajectory"), - ax(ax), - ay(ay), - az(az), - dt(dt), - ht(ht), - max_velocity(max_velocity), - frame(frame) { - tf_listener = std::make_shared(*tf_buffer); - - // Create the subscription - set_max_velocity_sub = this->create_subscription( - "set_max_velocity", 1, [this](const std_msgs::msg::Float32::SharedPtr msg) { - this->set_max_velocity_callback(msg); - }); -} - -void AccelerationTrajectory::set_max_velocity_callback(std_msgs::msg::Float32::ConstSharedPtr msg) { - max_velocity = msg->data; -} - -core_trajectory_msgs::msg::TrajectoryXYZVYaw AccelerationTrajectory::get_trajectory( - nav_msgs::msg::Odometry odom) { - core_trajectory_msgs::msg::TrajectoryXYZVYaw traj; - traj.header.frame_id = frame; - traj.header.stamp = odom.header.stamp; - - try { - /* - geometry_msgs::msg::TransformStamped pose_tf; - listener->waitForTransform(frame, odom.header.frame_id, odom.header.stamp, - ros::Duration(0.1)); - listener->lookupTransform(frame, odom.header.frame_id, odom.header.stamp, pose_tf); - geometry_msgs::msg::TransformStamped velocity_tf; - listener->waitForTransform(frame, odom.child_frame_id, odom.header.stamp, - ros::Duration(0.1)); - listener->lookupTransform(frame, odom.child_frame_id, odom.header.stamp, velocity_tf); - */ - geometry_msgs::msg::TransformStamped pose_tf = tf_buffer->lookupTransform( - frame, odom.header.frame_id, odom.header.stamp, rclcpp::Duration::from_seconds(0.1)); - geometry_msgs::msg::TransformStamped velocity_tf = tf_buffer->lookupTransform( - frame, odom.child_frame_id, odom.header.stamp, rclcpp::Duration::from_seconds(0.1)); - - // velocity_tf.setOrigin(tf::Vector3(0, 0, 0)); // only use rotation to transform the - // velocity - velocity_tf.transform.translation.x = 0; - velocity_tf.transform.translation.y = 0; - velocity_tf.transform.translation.z = 0; - - // tf2::Vector3 position = pose_tf * tflib::to_tf(odom.pose.pose.position); - // tf2::Quaternion orientation = pose_tf * tflib::to_tf(odom.pose.pose.orientation); - // tf2::Vector3 velocity = velocity_tf * tflib::to_tf(odom.twist.twist.linear); - - tf2::Vector3 position = tf2::Transform(tf2::Quaternion( - pose_tf.transform.rotation.x, pose_tf.transform.rotation.y, - pose_tf.transform.rotation.z, pose_tf.transform.rotation.w)) * - tflib::to_tf(odom.pose.pose.position); - - tf2::Quaternion orientation = - tf2::Transform( - tf2::Quaternion(pose_tf.transform.rotation.x, pose_tf.transform.rotation.y, - pose_tf.transform.rotation.z, pose_tf.transform.rotation.w)) * - tflib::to_tf(odom.pose.pose.orientation); - - tf2::Vector3 velocity = - tf2::Transform(tf2::Quaternion( - velocity_tf.transform.rotation.x, velocity_tf.transform.rotation.y, - velocity_tf.transform.rotation.z, velocity_tf.transform.rotation.w)) * - tflib::to_tf(odom.twist.twist.linear); - - tf2::Vector3 acceleration(ax, ay, az); - - core_trajectory_msgs::msg::WaypointXYZVYaw wp0; - wp0.position.x = position.x(); - wp0.position.y = position.y(); - wp0.position.z = position.z(); - wp0.yaw = 0; - wp0.velocity = velocity.length(); - traj.waypoints.push_back(wp0); - - for (double t = 0; t < ht; t += dt) { - velocity += acceleration * dt; - position += velocity * dt; - - core_trajectory_msgs::msg::WaypointXYZVYaw wp; - wp.position.x = position.x(); - wp.position.y = position.y(); - wp.position.z = position.z(); - wp.yaw = 0; - wp.velocity = std::min(velocity.length(), max_velocity); - traj.waypoints.push_back(wp); - } - } catch (tf2::TransformException& e) { - RCLCPP_ERROR_STREAM( - rclcpp::get_logger("AccelerationTrajectory"), - "TransformException in AccelerationTrajectory::get_trajectory: " << e.what()); - } - - return traj; -} - -//=================================================================================== -//--------------------------------- Static Trajectories ----------------------------- -//=================================================================================== - -CurveTrajectory::CurveTrajectory(float linear_velocity, float angular_velocity, std::string frame, - float time, float dt, bool use_heading, float yaw) { - this->linear_velocity = linear_velocity; - this->angular_velocity = angular_velocity; - this->frame = frame; - this->time = time; - this->dt = dt; - this->use_heading = use_heading; - this->yaw = yaw; - - generate_trajectory(); -} - -void CurveTrajectory::generate_trajectory() { - float prev_x = 0.f; - float prev_y = 0.f; - float prev_heading = 0.f; - - // TODO: when to fill in trajectory.header.stamp? - trajectory.header.frame_id = frame; - - for (float t = 0; t <= time; t += dt) { - core_trajectory_msgs::msg::WaypointXYZVYaw wp; - - if (t > 0) { - wp.position.x = prev_x + cos(prev_heading) * linear_velocity * dt; - wp.position.y = prev_y + sin(prev_heading) * linear_velocity * dt; - wp.yaw = prev_heading + angular_velocity * dt; - prev_x = wp.position.x; - prev_y = wp.position.y; - prev_heading = wp.yaw; - } - - wp.velocity = linear_velocity; - if (!use_heading) wp.yaw = yaw; - - trajectory.waypoints.push_back(wp); - } -} - -core_trajectory_msgs::msg::TrajectoryXYZVYaw CurveTrajectory::get_trajectory() { - return trajectory; -} - -//=================================================================================== -//--------------------------------- Trajectory Library ------------------------------ -//=================================================================================== - -TrajectoryLibrary::TrajectoryLibrary(std::string config_filename, - std::shared_ptr tf_buffer, - rclcpp::Node::SharedPtr node) - : tf_buffer_(tf_buffer), - tf_listener_(std::make_shared(*tf_buffer_)), - node_(node) { - // this->listener = listener; - // pnh = new ros::NodeHandle("~"); - - YAML::Node config = YAML::LoadFile(config_filename); - - YAML::Node trajectories = config["trajectories"]; - for (int i = 0; i < trajectories.size(); i++) { - YAML::Node traj_node = trajectories[i]; - std::string type = parse(traj_node["type"]); - - if (type == "curve") { - float linear_velocity = parse(traj_node["linear_velocity"]); - float angular_velocity = M_PI / 180. * parse(traj_node["angular_velocity"]); - std::string frame = parse(traj_node["frame"]); - float time = parse(traj_node["time"]); - float dt = parse(traj_node["dt"]); - bool use_heading = true; - float yaw = 0.f; - if (parse(traj_node["yaw"]) == std::string("heading")) - use_heading = true; - else { - use_heading = false; - yaw = M_PI / 180. * parse(traj_node["yaw"]); - } - - CurveTrajectory* traj = new CurveTrajectory(linear_velocity, angular_velocity, frame, - time, dt, use_heading, yaw); - - static_trajectories.push_back(traj); - } else if (type == "acceleration") { - std::string frame = parse(traj_node["frame"]); - double x; - double y; - double z; - - if (traj_node["x"] && traj_node["y"] && traj_node["z"]) { - x = parse(traj_node["x"]); - y = parse(traj_node["y"]); - z = parse(traj_node["z"]); - } else if (traj_node["magnitude"]) { - double magnitude = parse(traj_node["magnitude"]); - double magnitude_yaw = M_PI / 180. * parse(traj_node["magnitude_yaw"]); - double magnitude_pitch = M_PI / 180. * parse(traj_node["magnitude_pitch"]); - - tf2::Quaternion q; - q.setRPY(0, magnitude_pitch, magnitude_yaw); - tf2::Vector3 vector = tf2::Transform(q) * tf2::Vector3(magnitude, 0, 0); - x = vector.x(); - y = vector.y(); - z = vector.z(); - } else { - std::cout << "Couldn't construct acceleration trajectory. Need to have either x, " - "y, z or magnitude, magnitude_yaw, magnitude_pitch." - << std::endl; - continue; - } - double dt = parse(traj_node["dt"]); - double ht = parse(traj_node["ht"]); - double max_velocity = parse(traj_node["max_velocity"]); - - AccelerationTrajectory* traj = - new AccelerationTrajectory(tf_buffer, frame, x, y, z, dt, ht, max_velocity); - - dynamic_trajectories.push_back(traj); - } - } -} - -std::vector TrajectoryLibrary::get_static_trajectories() { - std::vector trajectories; - - for (int i = 0; i < static_trajectories.size(); i++) { - trajectories.push_back(Trajectory(static_trajectories[i]->get_trajectory())); - } - - return trajectories; -} - -std::vector TrajectoryLibrary::get_dynamic_trajectories(nav_msgs::msg::Odometry odom) { - std::vector trajectories; - - for (int i = 0; i < dynamic_trajectories.size(); i++) { - core_trajectory_msgs::msg::TrajectoryXYZVYaw path = - dynamic_trajectories[i]->get_trajectory(odom); - if (path.waypoints.size() > 0) trajectories.push_back(Trajectory(path)); - } - - return trajectories; -} diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/src/trajectory_library_generator.py b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/src/trajectory_library_generator.py deleted file mode 100755 index 8335ab714..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_library/src/trajectory_library_generator.py +++ /dev/null @@ -1,75 +0,0 @@ -#!/usr/bin/python -import numpy as np -import matplotlib.pyplot as plt -import yaml -import sys - -def generate_curve(traj_config): - lin_vel = float(traj_config['linear_velocity']) - ang_vel = np.pi/180.*float(traj_config['angular_velocity']) - - dt = 0.1 - if 'dt' in traj_config.keys(): - dt = traj_config['dt'] - - time = 0. - if 'distance' in traj_config.keys(): - time = float(traj_config['distance'])/lin_vel - if 'time' in traj_config.keys(): - time = traj_config['time'] - - xs = [0.] - ys = [0.] - yaws = [0.] - - for t in np.arange(0., time, dt): - xs.append(xs[-1] + np.cos(yaws[-1])*lin_vel*dt) - ys.append(ys[-1] + np.sin(yaws[-1])*lin_vel*dt) - yaws.append(yaws[-1] + ang_vel*dt) - - if 'yaw' in traj_config.keys(): - if traj_config['yaw'] != 'heading': - yaw = np.pi/180.*float(traj_config['yaw']) - for i in range(len(yaws)): - yaws[i] = yaw - - plt.plot(xs, ys, '.-') - plt.axis('equal') - plt.show() - - -def generate_arc(traj_config): - radius = float(traj_config['radius']) - angle = np.pi/180.*float(traj_config['angle']) - angle_increment = np.pi/180.*float(traj_config['angle_increment']) - - xs = radius*np.cos(np.arange(0., angle, angle_increment) - np.pi/2.) - ys = radius*np.sin(np.arange(0., angle, angle_increment) - np.pi/2.) - print(xs) - - plt.plot(xs, ys, '.-') - plt.axis('equal') - plt.show() - -def generate_acceleration(traj_config): - pass - -def generate_trajectory(traj_config): - if traj_config['type'] == 'curve': - return generate_curve(traj_config) - elif traj_config['type'] == 'arc': - return generate_arc(traj_config) - elif traj_config['type'] == 'acceleration': - return generate_acceleration(traj_config) - -if __name__ == '__main__': - input_filename = sys.argv[1] - output_filename = sys.argv[2] - - - config = yaml.load(open(input_filename, 'r').read()) - - for traj_config in config['trajectories']: - traj_config = traj_config['trajectory'] - traj = generate_trajectory(traj_config) - From 733f6aa82efbbe0e69c066218cab3819b259d28b Mon Sep 17 00:00:00 2001 From: Andrew Jong Date: Mon, 26 Aug 2024 15:48:51 -0400 Subject: [PATCH 36/50] Rename core_disparity_map_representation to disparity_map_representation --- .../CMakeLists.txt | 41 +++++++++---------- .../COLCON_IGNORE | 0 .../disparity_map_representation_plugin.xml | 0 .../disparity_map_representation.h | 0 .../package.xml | 5 +-- .../src/disparity_map_representation.cpp | 2 +- 6 files changed, 22 insertions(+), 26 deletions(-) rename ros_ws/src/robot/autonomy/planning/local/{core_disparity_map_representation => disparity_map_representation}/CMakeLists.txt (78%) rename ros_ws/src/robot/autonomy/planning/local/{core_disparity_map_representation => disparity_map_representation}/COLCON_IGNORE (100%) rename ros_ws/src/robot/autonomy/planning/local/{core_disparity_map_representation => disparity_map_representation}/disparity_map_representation_plugin.xml (100%) rename ros_ws/src/robot/autonomy/planning/local/{core_disparity_map_representation/include/core_disparity_map_representation => disparity_map_representation/include/disparity_map_representation}/disparity_map_representation.h (100%) rename ros_ws/src/robot/autonomy/planning/local/{core_disparity_map_representation => disparity_map_representation}/package.xml (89%) rename ros_ws/src/robot/autonomy/planning/local/{core_disparity_map_representation => disparity_map_representation}/src/disparity_map_representation.cpp (99%) diff --git a/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/CMakeLists.txt b/ros_ws/src/robot/autonomy/planning/local/disparity_map_representation/CMakeLists.txt similarity index 78% rename from ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/CMakeLists.txt rename to ros_ws/src/robot/autonomy/planning/local/disparity_map_representation/CMakeLists.txt index e568a1656..47f8f9adf 100644 --- a/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/CMakeLists.txt +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_map_representation/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.5) -project(core_disparity_map_representation) +project(disparity_map_representation) find_package(ament_cmake REQUIRED) find_package(rclcpp REQUIRED) @@ -24,7 +24,6 @@ find_package(image_transport REQUIRED) find_package(image_geometry REQUIRED) find_package(pcl_msgs REQUIRED) - ament_export_include_directories(include) ament_export_libraries(disparity_graph) @@ -34,13 +33,10 @@ include_directories( ${core_map_representation_interface_INCLUDE_DIRS} ${disparity_graph_INCLUDE_DIRS} ${pluginlib_INCLUDE_DIRS} - #${CMAKE_CURRENT_SOURCE_DIR}/include + # ${CMAKE_CURRENT_SOURCE_DIR}/include ) - - - add_library(disparity_map_representation src/disparity_map_representation.cpp ) @@ -60,39 +56,40 @@ ament_target_dependencies(disparity_map_representation cv_bridge tflib pluginlib -) +) ament_export_targets(disparity_map_representationTargets HAS_LIBRARY_TARGET) -ament_export_dependencies( rclcpp -tf2 -tf2_ros -disparity_graph -core_map_representation_interface -core_trajectory_msgs -cv_bridge -tflib -pluginlib +ament_export_dependencies(rclcpp + tf2 + tf2_ros + disparity_graph + core_map_representation_interface + core_trajectory_msgs + cv_bridge + tflib + pluginlib ) install( -TARGETS disparity_map_representation -EXPORT disparity_map_representationTargets + TARGETS disparity_map_representation + EXPORT disparity_map_representationTargets LIBRARY DESTINATION lib ARCHIVE DESTINATION lib RUNTIME DESTINATION bin INCLUDES DESTINATION include ) -#install(DIRECTORY launch DESTINATION share/${PROJECT_NAME}) + +# install(DIRECTORY launch DESTINATION share/${PROJECT_NAME}) install(FILES package.xml DESTINATION share/${PROJECT_NAME} ) target_link_libraries(disparity_map_representation ${disparity_graph_LIBRARIES} ) -#ament_export_include_directories(include) -#ament_export_libraries(disparity_map_representation) -#ament_export_targets(export_${PROJECT_NAME} HAS_LIBRARY_TARGET) +# ament_export_include_directories(include) +# ament_export_libraries(disparity_map_representation) +# ament_export_targets(export_${PROJECT_NAME} HAS_LIBRARY_TARGET) install( DIRECTORY include/${PROJECT_NAME}/ DESTINATION include/${PROJECT_NAME} diff --git a/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/COLCON_IGNORE b/ros_ws/src/robot/autonomy/planning/local/disparity_map_representation/COLCON_IGNORE similarity index 100% rename from ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/COLCON_IGNORE rename to ros_ws/src/robot/autonomy/planning/local/disparity_map_representation/COLCON_IGNORE diff --git a/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/disparity_map_representation_plugin.xml b/ros_ws/src/robot/autonomy/planning/local/disparity_map_representation/disparity_map_representation_plugin.xml similarity index 100% rename from ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/disparity_map_representation_plugin.xml rename to ros_ws/src/robot/autonomy/planning/local/disparity_map_representation/disparity_map_representation_plugin.xml diff --git a/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/include/core_disparity_map_representation/disparity_map_representation.h b/ros_ws/src/robot/autonomy/planning/local/disparity_map_representation/include/disparity_map_representation/disparity_map_representation.h similarity index 100% rename from ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/include/core_disparity_map_representation/disparity_map_representation.h rename to ros_ws/src/robot/autonomy/planning/local/disparity_map_representation/include/disparity_map_representation/disparity_map_representation.h diff --git a/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/package.xml b/ros_ws/src/robot/autonomy/planning/local/disparity_map_representation/package.xml similarity index 89% rename from ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/package.xml rename to ros_ws/src/robot/autonomy/planning/local/disparity_map_representation/package.xml index ce89e0b48..b95b48974 100644 --- a/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/package.xml +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_map_representation/package.xml @@ -1,9 +1,9 @@ - core_disparity_map_representation + disparity_map_representation 0.0.0 - The core_disparity_map_representation package + The disparity_map_representation package john TODO @@ -35,4 +35,3 @@ - diff --git a/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/src/disparity_map_representation.cpp b/ros_ws/src/robot/autonomy/planning/local/disparity_map_representation/src/disparity_map_representation.cpp similarity index 99% rename from ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/src/disparity_map_representation.cpp rename to ros_ws/src/robot/autonomy/planning/local/disparity_map_representation/src/disparity_map_representation.cpp index 86e8f4613..bb5035be6 100644 --- a/ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation/src/disparity_map_representation.cpp +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_map_representation/src/disparity_map_representation.cpp @@ -1,4 +1,4 @@ -#include +#include #include From 24f054a8999f9e05eb0774b2d1f5132f8f1274ba Mon Sep 17 00:00:00 2001 From: Andrew Jong Date: Mon, 26 Aug 2024 16:27:29 -0400 Subject: [PATCH 37/50] Delete --- install/.colcon_install_layout | 1 - install/COLCON_IGNORE | 0 install/_local_setup_util_ps1.py | 407 --- install/_local_setup_util_sh.py | 407 --- install/disparity_expansion/.catkin | 0 .../colcon-core/packages/disparity_expansion | 1 - .../share/disparity_expansion/hook/path.dsv | 1 - .../share/disparity_expansion/hook/path.ps1 | 3 - .../share/disparity_expansion/hook/path.sh | 3 - .../hook/pkg_config_path.dsv | 1 - .../hook/pkg_config_path.ps1 | 3 - .../hook/pkg_config_path.sh | 3 - .../hook/pkg_config_path_multiarch.dsv | 1 - .../hook/pkg_config_path_multiarch.ps1 | 3 - .../hook/pkg_config_path_multiarch.sh | 3 - .../hook/pythonscriptspath.dsv | 1 - .../hook/pythonscriptspath.ps1 | 3 - .../hook/pythonscriptspath.sh | 3 - .../hook/ros_package_path.dsv | 1 - .../hook/ros_package_path.ps1 | 3 - .../hook/ros_package_path.sh | 3 - .../share/disparity_expansion/package.bash | 31 - .../share/disparity_expansion/package.dsv | 15 - .../share/disparity_expansion/package.ps1 | 119 - .../share/disparity_expansion/package.sh | 90 - .../share/disparity_expansion/package.zsh | 42 - install/local_setup.bash | 121 - install/local_setup.ps1 | 55 - install/local_setup.sh | 137 - install/local_setup.zsh | 134 - install/setup.bash | 34 - install/setup.ps1 | 30 - install/setup.sh | 49 - install/setup.zsh | 34 - log/COLCON_IGNORE | 0 .../disparity_expansion/command.log | 4 - .../disparity_expansion/stderr.log | 8 - .../disparity_expansion/stdout.log | 140 - .../disparity_expansion/stdout_stderr.log | 148 - .../disparity_expansion/streams.log | 152 - log/build_2024-07-25_13-05-11/events.log | 218 -- log/build_2024-07-25_13-05-11/logger_all.log | 2597 ---------------- .../disparity_expansion/command.log | 2 - .../disparity_expansion/stderr.log | 20 - .../disparity_expansion/stdout.log | 31 - .../disparity_expansion/stdout_stderr.log | 51 - .../disparity_expansion/streams.log | 53 - log/build_2024-07-25_13-07-04/events.log | 103 - log/build_2024-07-25_13-07-04/logger_all.log | 2595 ---------------- .../disparity_expansion/command.log | 2 - .../disparity_expansion/stderr.log | 8 - .../disparity_expansion/stdout.log | 1 - .../disparity_expansion/stdout_stderr.log | 9 - .../disparity_expansion/streams.log | 11 - log/build_2024-07-25_13-14-27/events.log | 37 - log/build_2024-07-25_13-14-27/logger_all.log | 2595 ---------------- .../disparity_expansion/command.log | 6 - .../disparity_expansion/stderr.log | 18 - .../disparity_expansion/stdout.log | 44 - .../disparity_expansion/stdout_stderr.log | 62 - .../disparity_expansion/streams.log | 68 - log/build_2024-07-31_12-58-12/events.log | 280 -- log/build_2024-07-31_12-58-12/logger_all.log | 2688 ----------------- log/latest | 1 - log/latest_build | 1 - .../disparity_map_representation.h | 120 - 66 files changed, 13815 deletions(-) delete mode 100644 install/.colcon_install_layout delete mode 100644 install/COLCON_IGNORE delete mode 100644 install/_local_setup_util_ps1.py delete mode 100644 install/_local_setup_util_sh.py delete mode 100644 install/disparity_expansion/.catkin delete mode 100644 install/disparity_expansion/share/colcon-core/packages/disparity_expansion delete mode 100644 install/disparity_expansion/share/disparity_expansion/hook/path.dsv delete mode 100644 install/disparity_expansion/share/disparity_expansion/hook/path.ps1 delete mode 100644 install/disparity_expansion/share/disparity_expansion/hook/path.sh delete mode 100644 install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path.dsv delete mode 100644 install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path.ps1 delete mode 100644 install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path.sh delete mode 100644 install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path_multiarch.dsv delete mode 100644 install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path_multiarch.ps1 delete mode 100644 install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path_multiarch.sh delete mode 100644 install/disparity_expansion/share/disparity_expansion/hook/pythonscriptspath.dsv delete mode 100644 install/disparity_expansion/share/disparity_expansion/hook/pythonscriptspath.ps1 delete mode 100644 install/disparity_expansion/share/disparity_expansion/hook/pythonscriptspath.sh delete mode 100644 install/disparity_expansion/share/disparity_expansion/hook/ros_package_path.dsv delete mode 100644 install/disparity_expansion/share/disparity_expansion/hook/ros_package_path.ps1 delete mode 100644 install/disparity_expansion/share/disparity_expansion/hook/ros_package_path.sh delete mode 100644 install/disparity_expansion/share/disparity_expansion/package.bash delete mode 100644 install/disparity_expansion/share/disparity_expansion/package.dsv delete mode 100644 install/disparity_expansion/share/disparity_expansion/package.ps1 delete mode 100644 install/disparity_expansion/share/disparity_expansion/package.sh delete mode 100644 install/disparity_expansion/share/disparity_expansion/package.zsh delete mode 100644 install/local_setup.bash delete mode 100644 install/local_setup.ps1 delete mode 100644 install/local_setup.sh delete mode 100644 install/local_setup.zsh delete mode 100644 install/setup.bash delete mode 100644 install/setup.ps1 delete mode 100644 install/setup.sh delete mode 100644 install/setup.zsh delete mode 100644 log/COLCON_IGNORE delete mode 100644 log/build_2024-07-25_13-05-11/disparity_expansion/command.log delete mode 100644 log/build_2024-07-25_13-05-11/disparity_expansion/stderr.log delete mode 100644 log/build_2024-07-25_13-05-11/disparity_expansion/stdout.log delete mode 100644 log/build_2024-07-25_13-05-11/disparity_expansion/stdout_stderr.log delete mode 100644 log/build_2024-07-25_13-05-11/disparity_expansion/streams.log delete mode 100644 log/build_2024-07-25_13-05-11/events.log delete mode 100644 log/build_2024-07-25_13-05-11/logger_all.log delete mode 100644 log/build_2024-07-25_13-07-04/disparity_expansion/command.log delete mode 100644 log/build_2024-07-25_13-07-04/disparity_expansion/stderr.log delete mode 100644 log/build_2024-07-25_13-07-04/disparity_expansion/stdout.log delete mode 100644 log/build_2024-07-25_13-07-04/disparity_expansion/stdout_stderr.log delete mode 100644 log/build_2024-07-25_13-07-04/disparity_expansion/streams.log delete mode 100644 log/build_2024-07-25_13-07-04/events.log delete mode 100644 log/build_2024-07-25_13-07-04/logger_all.log delete mode 100644 log/build_2024-07-25_13-14-27/disparity_expansion/command.log delete mode 100644 log/build_2024-07-25_13-14-27/disparity_expansion/stderr.log delete mode 100644 log/build_2024-07-25_13-14-27/disparity_expansion/stdout.log delete mode 100644 log/build_2024-07-25_13-14-27/disparity_expansion/stdout_stderr.log delete mode 100644 log/build_2024-07-25_13-14-27/disparity_expansion/streams.log delete mode 100644 log/build_2024-07-25_13-14-27/events.log delete mode 100644 log/build_2024-07-25_13-14-27/logger_all.log delete mode 100644 log/build_2024-07-31_12-58-12/disparity_expansion/command.log delete mode 100644 log/build_2024-07-31_12-58-12/disparity_expansion/stderr.log delete mode 100644 log/build_2024-07-31_12-58-12/disparity_expansion/stdout.log delete mode 100644 log/build_2024-07-31_12-58-12/disparity_expansion/stdout_stderr.log delete mode 100644 log/build_2024-07-31_12-58-12/disparity_expansion/streams.log delete mode 100644 log/build_2024-07-31_12-58-12/events.log delete mode 100644 log/build_2024-07-31_12-58-12/logger_all.log delete mode 120000 log/latest delete mode 120000 log/latest_build delete mode 100644 ros_ws/src/robot/autonomy/planning/local/disparity_map_representation/include/disparity_map_representation/disparity_map_representation.h diff --git a/install/.colcon_install_layout b/install/.colcon_install_layout deleted file mode 100644 index 3aad5336a..000000000 --- a/install/.colcon_install_layout +++ /dev/null @@ -1 +0,0 @@ -isolated diff --git a/install/COLCON_IGNORE b/install/COLCON_IGNORE deleted file mode 100644 index e69de29bb..000000000 diff --git a/install/_local_setup_util_ps1.py b/install/_local_setup_util_ps1.py deleted file mode 100644 index 3c6d9e877..000000000 --- a/install/_local_setup_util_ps1.py +++ /dev/null @@ -1,407 +0,0 @@ -# Copyright 2016-2019 Dirk Thomas -# Licensed under the Apache License, Version 2.0 - -import argparse -from collections import OrderedDict -import os -from pathlib import Path -import sys - - -FORMAT_STR_COMMENT_LINE = '# {comment}' -FORMAT_STR_SET_ENV_VAR = 'Set-Item -Path "Env:{name}" -Value "{value}"' -FORMAT_STR_USE_ENV_VAR = '$env:{name}' -FORMAT_STR_INVOKE_SCRIPT = '_colcon_prefix_powershell_source_script "{script_path}"' # noqa: E501 -FORMAT_STR_REMOVE_LEADING_SEPARATOR = '' # noqa: E501 -FORMAT_STR_REMOVE_TRAILING_SEPARATOR = '' # noqa: E501 - -DSV_TYPE_APPEND_NON_DUPLICATE = 'append-non-duplicate' -DSV_TYPE_PREPEND_NON_DUPLICATE = 'prepend-non-duplicate' -DSV_TYPE_PREPEND_NON_DUPLICATE_IF_EXISTS = 'prepend-non-duplicate-if-exists' -DSV_TYPE_SET = 'set' -DSV_TYPE_SET_IF_UNSET = 'set-if-unset' -DSV_TYPE_SOURCE = 'source' - - -def main(argv=sys.argv[1:]): # noqa: D103 - parser = argparse.ArgumentParser( - description='Output shell commands for the packages in topological ' - 'order') - parser.add_argument( - 'primary_extension', - help='The file extension of the primary shell') - parser.add_argument( - 'additional_extension', nargs='?', - help='The additional file extension to be considered') - parser.add_argument( - '--merged-install', action='store_true', - help='All install prefixes are merged into a single location') - args = parser.parse_args(argv) - - packages = get_packages(Path(__file__).parent, args.merged_install) - - ordered_packages = order_packages(packages) - for pkg_name in ordered_packages: - if _include_comments(): - print( - FORMAT_STR_COMMENT_LINE.format_map( - {'comment': 'Package: ' + pkg_name})) - prefix = os.path.abspath(os.path.dirname(__file__)) - if not args.merged_install: - prefix = os.path.join(prefix, pkg_name) - for line in get_commands( - pkg_name, prefix, args.primary_extension, - args.additional_extension - ): - print(line) - - for line in _remove_ending_separators(): - print(line) - - -def get_packages(prefix_path, merged_install): - """ - Find packages based on colcon-specific files created during installation. - - :param Path prefix_path: The install prefix path of all packages - :param bool merged_install: The flag if the packages are all installed - directly in the prefix or if each package is installed in a subdirectory - named after the package - :returns: A mapping from the package name to the set of runtime - dependencies - :rtype: dict - """ - packages = {} - # since importing colcon_core isn't feasible here the following constant - # must match colcon_core.location.get_relative_package_index_path() - subdirectory = 'share/colcon-core/packages' - if merged_install: - # return if workspace is empty - if not (prefix_path / subdirectory).is_dir(): - return packages - # find all files in the subdirectory - for p in (prefix_path / subdirectory).iterdir(): - if not p.is_file(): - continue - if p.name.startswith('.'): - continue - add_package_runtime_dependencies(p, packages) - else: - # for each subdirectory look for the package specific file - for p in prefix_path.iterdir(): - if not p.is_dir(): - continue - if p.name.startswith('.'): - continue - p = p / subdirectory / p.name - if p.is_file(): - add_package_runtime_dependencies(p, packages) - - # remove unknown dependencies - pkg_names = set(packages.keys()) - for k in packages.keys(): - packages[k] = {d for d in packages[k] if d in pkg_names} - - return packages - - -def add_package_runtime_dependencies(path, packages): - """ - Check the path and if it exists extract the packages runtime dependencies. - - :param Path path: The resource file containing the runtime dependencies - :param dict packages: A mapping from package names to the sets of runtime - dependencies to add to - """ - content = path.read_text() - dependencies = set(content.split(os.pathsep) if content else []) - packages[path.name] = dependencies - - -def order_packages(packages): - """ - Order packages topologically. - - :param dict packages: A mapping from package name to the set of runtime - dependencies - :returns: The package names - :rtype: list - """ - # select packages with no dependencies in alphabetical order - to_be_ordered = list(packages.keys()) - ordered = [] - while to_be_ordered: - pkg_names_without_deps = [ - name for name in to_be_ordered if not packages[name]] - if not pkg_names_without_deps: - reduce_cycle_set(packages) - raise RuntimeError( - 'Circular dependency between: ' + ', '.join(sorted(packages))) - pkg_names_without_deps.sort() - pkg_name = pkg_names_without_deps[0] - to_be_ordered.remove(pkg_name) - ordered.append(pkg_name) - # remove item from dependency lists - for k in list(packages.keys()): - if pkg_name in packages[k]: - packages[k].remove(pkg_name) - return ordered - - -def reduce_cycle_set(packages): - """ - Reduce the set of packages to the ones part of the circular dependency. - - :param dict packages: A mapping from package name to the set of runtime - dependencies which is modified in place - """ - last_depended = None - while len(packages) > 0: - # get all remaining dependencies - depended = set() - for pkg_name, dependencies in packages.items(): - depended = depended.union(dependencies) - # remove all packages which are not dependent on - for name in list(packages.keys()): - if name not in depended: - del packages[name] - if last_depended: - # if remaining packages haven't changed return them - if last_depended == depended: - return packages.keys() - # otherwise reduce again - last_depended = depended - - -def _include_comments(): - # skipping comment lines when COLCON_TRACE is not set speeds up the - # processing especially on Windows - return bool(os.environ.get('COLCON_TRACE')) - - -def get_commands(pkg_name, prefix, primary_extension, additional_extension): - commands = [] - package_dsv_path = os.path.join(prefix, 'share', pkg_name, 'package.dsv') - if os.path.exists(package_dsv_path): - commands += process_dsv_file( - package_dsv_path, prefix, primary_extension, additional_extension) - return commands - - -def process_dsv_file( - dsv_path, prefix, primary_extension=None, additional_extension=None -): - commands = [] - if _include_comments(): - commands.append(FORMAT_STR_COMMENT_LINE.format_map({'comment': dsv_path})) - with open(dsv_path, 'r') as h: - content = h.read() - lines = content.splitlines() - - basenames = OrderedDict() - for i, line in enumerate(lines): - # skip over empty or whitespace-only lines - if not line.strip(): - continue - # skip over comments - if line.startswith('#'): - continue - try: - type_, remainder = line.split(';', 1) - except ValueError: - raise RuntimeError( - "Line %d in '%s' doesn't contain a semicolon separating the " - 'type from the arguments' % (i + 1, dsv_path)) - if type_ != DSV_TYPE_SOURCE: - # handle non-source lines - try: - commands += handle_dsv_types_except_source( - type_, remainder, prefix) - except RuntimeError as e: - raise RuntimeError( - "Line %d in '%s' %s" % (i + 1, dsv_path, e)) from e - else: - # group remaining source lines by basename - path_without_ext, ext = os.path.splitext(remainder) - if path_without_ext not in basenames: - basenames[path_without_ext] = set() - assert ext.startswith('.') - ext = ext[1:] - if ext in (primary_extension, additional_extension): - basenames[path_without_ext].add(ext) - - # add the dsv extension to each basename if the file exists - for basename, extensions in basenames.items(): - if not os.path.isabs(basename): - basename = os.path.join(prefix, basename) - if os.path.exists(basename + '.dsv'): - extensions.add('dsv') - - for basename, extensions in basenames.items(): - if not os.path.isabs(basename): - basename = os.path.join(prefix, basename) - if 'dsv' in extensions: - # process dsv files recursively - commands += process_dsv_file( - basename + '.dsv', prefix, primary_extension=primary_extension, - additional_extension=additional_extension) - elif primary_extension in extensions and len(extensions) == 1: - # source primary-only files - commands += [ - FORMAT_STR_INVOKE_SCRIPT.format_map({ - 'prefix': prefix, - 'script_path': basename + '.' + primary_extension})] - elif additional_extension in extensions: - # source non-primary files - commands += [ - FORMAT_STR_INVOKE_SCRIPT.format_map({ - 'prefix': prefix, - 'script_path': basename + '.' + additional_extension})] - - return commands - - -def handle_dsv_types_except_source(type_, remainder, prefix): - commands = [] - if type_ in (DSV_TYPE_SET, DSV_TYPE_SET_IF_UNSET): - try: - env_name, value = remainder.split(';', 1) - except ValueError: - raise RuntimeError( - "doesn't contain a semicolon separating the environment name " - 'from the value') - try_prefixed_value = os.path.join(prefix, value) if value else prefix - if os.path.exists(try_prefixed_value): - value = try_prefixed_value - if type_ == DSV_TYPE_SET: - commands += _set(env_name, value) - elif type_ == DSV_TYPE_SET_IF_UNSET: - commands += _set_if_unset(env_name, value) - else: - assert False - elif type_ in ( - DSV_TYPE_APPEND_NON_DUPLICATE, - DSV_TYPE_PREPEND_NON_DUPLICATE, - DSV_TYPE_PREPEND_NON_DUPLICATE_IF_EXISTS - ): - try: - env_name_and_values = remainder.split(';') - except ValueError: - raise RuntimeError( - "doesn't contain a semicolon separating the environment name " - 'from the values') - env_name = env_name_and_values[0] - values = env_name_and_values[1:] - for value in values: - if not value: - value = prefix - elif not os.path.isabs(value): - value = os.path.join(prefix, value) - if ( - type_ == DSV_TYPE_PREPEND_NON_DUPLICATE_IF_EXISTS and - not os.path.exists(value) - ): - comment = f'skip extending {env_name} with not existing ' \ - f'path: {value}' - if _include_comments(): - commands.append( - FORMAT_STR_COMMENT_LINE.format_map({'comment': comment})) - elif type_ == DSV_TYPE_APPEND_NON_DUPLICATE: - commands += _append_unique_value(env_name, value) - else: - commands += _prepend_unique_value(env_name, value) - else: - raise RuntimeError( - 'contains an unknown environment hook type: ' + type_) - return commands - - -env_state = {} - - -def _append_unique_value(name, value): - global env_state - if name not in env_state: - if os.environ.get(name): - env_state[name] = set(os.environ[name].split(os.pathsep)) - else: - env_state[name] = set() - # append even if the variable has not been set yet, in case a shell script sets the - # same variable without the knowledge of this Python script. - # later _remove_ending_separators() will cleanup any unintentional leading separator - extend = FORMAT_STR_USE_ENV_VAR.format_map({'name': name}) + os.pathsep - line = FORMAT_STR_SET_ENV_VAR.format_map( - {'name': name, 'value': extend + value}) - if value not in env_state[name]: - env_state[name].add(value) - else: - if not _include_comments(): - return [] - line = FORMAT_STR_COMMENT_LINE.format_map({'comment': line}) - return [line] - - -def _prepend_unique_value(name, value): - global env_state - if name not in env_state: - if os.environ.get(name): - env_state[name] = set(os.environ[name].split(os.pathsep)) - else: - env_state[name] = set() - # prepend even if the variable has not been set yet, in case a shell script sets the - # same variable without the knowledge of this Python script. - # later _remove_ending_separators() will cleanup any unintentional trailing separator - extend = os.pathsep + FORMAT_STR_USE_ENV_VAR.format_map({'name': name}) - line = FORMAT_STR_SET_ENV_VAR.format_map( - {'name': name, 'value': value + extend}) - if value not in env_state[name]: - env_state[name].add(value) - else: - if not _include_comments(): - return [] - line = FORMAT_STR_COMMENT_LINE.format_map({'comment': line}) - return [line] - - -# generate commands for removing prepended underscores -def _remove_ending_separators(): - # do nothing if the shell extension does not implement the logic - if FORMAT_STR_REMOVE_TRAILING_SEPARATOR is None: - return [] - - global env_state - commands = [] - for name in env_state: - # skip variables that already had values before this script started prepending - if name in os.environ: - continue - commands += [ - FORMAT_STR_REMOVE_LEADING_SEPARATOR.format_map({'name': name}), - FORMAT_STR_REMOVE_TRAILING_SEPARATOR.format_map({'name': name})] - return commands - - -def _set(name, value): - global env_state - env_state[name] = value - line = FORMAT_STR_SET_ENV_VAR.format_map( - {'name': name, 'value': value}) - return [line] - - -def _set_if_unset(name, value): - global env_state - line = FORMAT_STR_SET_ENV_VAR.format_map( - {'name': name, 'value': value}) - if env_state.get(name, os.environ.get(name)): - line = FORMAT_STR_COMMENT_LINE.format_map({'comment': line}) - return [line] - - -if __name__ == '__main__': # pragma: no cover - try: - rc = main() - except RuntimeError as e: - print(str(e), file=sys.stderr) - rc = 1 - sys.exit(rc) diff --git a/install/_local_setup_util_sh.py b/install/_local_setup_util_sh.py deleted file mode 100644 index f67eaa989..000000000 --- a/install/_local_setup_util_sh.py +++ /dev/null @@ -1,407 +0,0 @@ -# Copyright 2016-2019 Dirk Thomas -# Licensed under the Apache License, Version 2.0 - -import argparse -from collections import OrderedDict -import os -from pathlib import Path -import sys - - -FORMAT_STR_COMMENT_LINE = '# {comment}' -FORMAT_STR_SET_ENV_VAR = 'export {name}="{value}"' -FORMAT_STR_USE_ENV_VAR = '${name}' -FORMAT_STR_INVOKE_SCRIPT = 'COLCON_CURRENT_PREFIX="{prefix}" _colcon_prefix_sh_source_script "{script_path}"' # noqa: E501 -FORMAT_STR_REMOVE_LEADING_SEPARATOR = 'if [ "$(echo -n ${name} | head -c 1)" = ":" ]; then export {name}=${{{name}#?}} ; fi' # noqa: E501 -FORMAT_STR_REMOVE_TRAILING_SEPARATOR = 'if [ "$(echo -n ${name} | tail -c 1)" = ":" ]; then export {name}=${{{name}%?}} ; fi' # noqa: E501 - -DSV_TYPE_APPEND_NON_DUPLICATE = 'append-non-duplicate' -DSV_TYPE_PREPEND_NON_DUPLICATE = 'prepend-non-duplicate' -DSV_TYPE_PREPEND_NON_DUPLICATE_IF_EXISTS = 'prepend-non-duplicate-if-exists' -DSV_TYPE_SET = 'set' -DSV_TYPE_SET_IF_UNSET = 'set-if-unset' -DSV_TYPE_SOURCE = 'source' - - -def main(argv=sys.argv[1:]): # noqa: D103 - parser = argparse.ArgumentParser( - description='Output shell commands for the packages in topological ' - 'order') - parser.add_argument( - 'primary_extension', - help='The file extension of the primary shell') - parser.add_argument( - 'additional_extension', nargs='?', - help='The additional file extension to be considered') - parser.add_argument( - '--merged-install', action='store_true', - help='All install prefixes are merged into a single location') - args = parser.parse_args(argv) - - packages = get_packages(Path(__file__).parent, args.merged_install) - - ordered_packages = order_packages(packages) - for pkg_name in ordered_packages: - if _include_comments(): - print( - FORMAT_STR_COMMENT_LINE.format_map( - {'comment': 'Package: ' + pkg_name})) - prefix = os.path.abspath(os.path.dirname(__file__)) - if not args.merged_install: - prefix = os.path.join(prefix, pkg_name) - for line in get_commands( - pkg_name, prefix, args.primary_extension, - args.additional_extension - ): - print(line) - - for line in _remove_ending_separators(): - print(line) - - -def get_packages(prefix_path, merged_install): - """ - Find packages based on colcon-specific files created during installation. - - :param Path prefix_path: The install prefix path of all packages - :param bool merged_install: The flag if the packages are all installed - directly in the prefix or if each package is installed in a subdirectory - named after the package - :returns: A mapping from the package name to the set of runtime - dependencies - :rtype: dict - """ - packages = {} - # since importing colcon_core isn't feasible here the following constant - # must match colcon_core.location.get_relative_package_index_path() - subdirectory = 'share/colcon-core/packages' - if merged_install: - # return if workspace is empty - if not (prefix_path / subdirectory).is_dir(): - return packages - # find all files in the subdirectory - for p in (prefix_path / subdirectory).iterdir(): - if not p.is_file(): - continue - if p.name.startswith('.'): - continue - add_package_runtime_dependencies(p, packages) - else: - # for each subdirectory look for the package specific file - for p in prefix_path.iterdir(): - if not p.is_dir(): - continue - if p.name.startswith('.'): - continue - p = p / subdirectory / p.name - if p.is_file(): - add_package_runtime_dependencies(p, packages) - - # remove unknown dependencies - pkg_names = set(packages.keys()) - for k in packages.keys(): - packages[k] = {d for d in packages[k] if d in pkg_names} - - return packages - - -def add_package_runtime_dependencies(path, packages): - """ - Check the path and if it exists extract the packages runtime dependencies. - - :param Path path: The resource file containing the runtime dependencies - :param dict packages: A mapping from package names to the sets of runtime - dependencies to add to - """ - content = path.read_text() - dependencies = set(content.split(os.pathsep) if content else []) - packages[path.name] = dependencies - - -def order_packages(packages): - """ - Order packages topologically. - - :param dict packages: A mapping from package name to the set of runtime - dependencies - :returns: The package names - :rtype: list - """ - # select packages with no dependencies in alphabetical order - to_be_ordered = list(packages.keys()) - ordered = [] - while to_be_ordered: - pkg_names_without_deps = [ - name for name in to_be_ordered if not packages[name]] - if not pkg_names_without_deps: - reduce_cycle_set(packages) - raise RuntimeError( - 'Circular dependency between: ' + ', '.join(sorted(packages))) - pkg_names_without_deps.sort() - pkg_name = pkg_names_without_deps[0] - to_be_ordered.remove(pkg_name) - ordered.append(pkg_name) - # remove item from dependency lists - for k in list(packages.keys()): - if pkg_name in packages[k]: - packages[k].remove(pkg_name) - return ordered - - -def reduce_cycle_set(packages): - """ - Reduce the set of packages to the ones part of the circular dependency. - - :param dict packages: A mapping from package name to the set of runtime - dependencies which is modified in place - """ - last_depended = None - while len(packages) > 0: - # get all remaining dependencies - depended = set() - for pkg_name, dependencies in packages.items(): - depended = depended.union(dependencies) - # remove all packages which are not dependent on - for name in list(packages.keys()): - if name not in depended: - del packages[name] - if last_depended: - # if remaining packages haven't changed return them - if last_depended == depended: - return packages.keys() - # otherwise reduce again - last_depended = depended - - -def _include_comments(): - # skipping comment lines when COLCON_TRACE is not set speeds up the - # processing especially on Windows - return bool(os.environ.get('COLCON_TRACE')) - - -def get_commands(pkg_name, prefix, primary_extension, additional_extension): - commands = [] - package_dsv_path = os.path.join(prefix, 'share', pkg_name, 'package.dsv') - if os.path.exists(package_dsv_path): - commands += process_dsv_file( - package_dsv_path, prefix, primary_extension, additional_extension) - return commands - - -def process_dsv_file( - dsv_path, prefix, primary_extension=None, additional_extension=None -): - commands = [] - if _include_comments(): - commands.append(FORMAT_STR_COMMENT_LINE.format_map({'comment': dsv_path})) - with open(dsv_path, 'r') as h: - content = h.read() - lines = content.splitlines() - - basenames = OrderedDict() - for i, line in enumerate(lines): - # skip over empty or whitespace-only lines - if not line.strip(): - continue - # skip over comments - if line.startswith('#'): - continue - try: - type_, remainder = line.split(';', 1) - except ValueError: - raise RuntimeError( - "Line %d in '%s' doesn't contain a semicolon separating the " - 'type from the arguments' % (i + 1, dsv_path)) - if type_ != DSV_TYPE_SOURCE: - # handle non-source lines - try: - commands += handle_dsv_types_except_source( - type_, remainder, prefix) - except RuntimeError as e: - raise RuntimeError( - "Line %d in '%s' %s" % (i + 1, dsv_path, e)) from e - else: - # group remaining source lines by basename - path_without_ext, ext = os.path.splitext(remainder) - if path_without_ext not in basenames: - basenames[path_without_ext] = set() - assert ext.startswith('.') - ext = ext[1:] - if ext in (primary_extension, additional_extension): - basenames[path_without_ext].add(ext) - - # add the dsv extension to each basename if the file exists - for basename, extensions in basenames.items(): - if not os.path.isabs(basename): - basename = os.path.join(prefix, basename) - if os.path.exists(basename + '.dsv'): - extensions.add('dsv') - - for basename, extensions in basenames.items(): - if not os.path.isabs(basename): - basename = os.path.join(prefix, basename) - if 'dsv' in extensions: - # process dsv files recursively - commands += process_dsv_file( - basename + '.dsv', prefix, primary_extension=primary_extension, - additional_extension=additional_extension) - elif primary_extension in extensions and len(extensions) == 1: - # source primary-only files - commands += [ - FORMAT_STR_INVOKE_SCRIPT.format_map({ - 'prefix': prefix, - 'script_path': basename + '.' + primary_extension})] - elif additional_extension in extensions: - # source non-primary files - commands += [ - FORMAT_STR_INVOKE_SCRIPT.format_map({ - 'prefix': prefix, - 'script_path': basename + '.' + additional_extension})] - - return commands - - -def handle_dsv_types_except_source(type_, remainder, prefix): - commands = [] - if type_ in (DSV_TYPE_SET, DSV_TYPE_SET_IF_UNSET): - try: - env_name, value = remainder.split(';', 1) - except ValueError: - raise RuntimeError( - "doesn't contain a semicolon separating the environment name " - 'from the value') - try_prefixed_value = os.path.join(prefix, value) if value else prefix - if os.path.exists(try_prefixed_value): - value = try_prefixed_value - if type_ == DSV_TYPE_SET: - commands += _set(env_name, value) - elif type_ == DSV_TYPE_SET_IF_UNSET: - commands += _set_if_unset(env_name, value) - else: - assert False - elif type_ in ( - DSV_TYPE_APPEND_NON_DUPLICATE, - DSV_TYPE_PREPEND_NON_DUPLICATE, - DSV_TYPE_PREPEND_NON_DUPLICATE_IF_EXISTS - ): - try: - env_name_and_values = remainder.split(';') - except ValueError: - raise RuntimeError( - "doesn't contain a semicolon separating the environment name " - 'from the values') - env_name = env_name_and_values[0] - values = env_name_and_values[1:] - for value in values: - if not value: - value = prefix - elif not os.path.isabs(value): - value = os.path.join(prefix, value) - if ( - type_ == DSV_TYPE_PREPEND_NON_DUPLICATE_IF_EXISTS and - not os.path.exists(value) - ): - comment = f'skip extending {env_name} with not existing ' \ - f'path: {value}' - if _include_comments(): - commands.append( - FORMAT_STR_COMMENT_LINE.format_map({'comment': comment})) - elif type_ == DSV_TYPE_APPEND_NON_DUPLICATE: - commands += _append_unique_value(env_name, value) - else: - commands += _prepend_unique_value(env_name, value) - else: - raise RuntimeError( - 'contains an unknown environment hook type: ' + type_) - return commands - - -env_state = {} - - -def _append_unique_value(name, value): - global env_state - if name not in env_state: - if os.environ.get(name): - env_state[name] = set(os.environ[name].split(os.pathsep)) - else: - env_state[name] = set() - # append even if the variable has not been set yet, in case a shell script sets the - # same variable without the knowledge of this Python script. - # later _remove_ending_separators() will cleanup any unintentional leading separator - extend = FORMAT_STR_USE_ENV_VAR.format_map({'name': name}) + os.pathsep - line = FORMAT_STR_SET_ENV_VAR.format_map( - {'name': name, 'value': extend + value}) - if value not in env_state[name]: - env_state[name].add(value) - else: - if not _include_comments(): - return [] - line = FORMAT_STR_COMMENT_LINE.format_map({'comment': line}) - return [line] - - -def _prepend_unique_value(name, value): - global env_state - if name not in env_state: - if os.environ.get(name): - env_state[name] = set(os.environ[name].split(os.pathsep)) - else: - env_state[name] = set() - # prepend even if the variable has not been set yet, in case a shell script sets the - # same variable without the knowledge of this Python script. - # later _remove_ending_separators() will cleanup any unintentional trailing separator - extend = os.pathsep + FORMAT_STR_USE_ENV_VAR.format_map({'name': name}) - line = FORMAT_STR_SET_ENV_VAR.format_map( - {'name': name, 'value': value + extend}) - if value not in env_state[name]: - env_state[name].add(value) - else: - if not _include_comments(): - return [] - line = FORMAT_STR_COMMENT_LINE.format_map({'comment': line}) - return [line] - - -# generate commands for removing prepended underscores -def _remove_ending_separators(): - # do nothing if the shell extension does not implement the logic - if FORMAT_STR_REMOVE_TRAILING_SEPARATOR is None: - return [] - - global env_state - commands = [] - for name in env_state: - # skip variables that already had values before this script started prepending - if name in os.environ: - continue - commands += [ - FORMAT_STR_REMOVE_LEADING_SEPARATOR.format_map({'name': name}), - FORMAT_STR_REMOVE_TRAILING_SEPARATOR.format_map({'name': name})] - return commands - - -def _set(name, value): - global env_state - env_state[name] = value - line = FORMAT_STR_SET_ENV_VAR.format_map( - {'name': name, 'value': value}) - return [line] - - -def _set_if_unset(name, value): - global env_state - line = FORMAT_STR_SET_ENV_VAR.format_map( - {'name': name, 'value': value}) - if env_state.get(name, os.environ.get(name)): - line = FORMAT_STR_COMMENT_LINE.format_map({'comment': line}) - return [line] - - -if __name__ == '__main__': # pragma: no cover - try: - rc = main() - except RuntimeError as e: - print(str(e), file=sys.stderr) - rc = 1 - sys.exit(rc) diff --git a/install/disparity_expansion/.catkin b/install/disparity_expansion/.catkin deleted file mode 100644 index e69de29bb..000000000 diff --git a/install/disparity_expansion/share/colcon-core/packages/disparity_expansion b/install/disparity_expansion/share/colcon-core/packages/disparity_expansion deleted file mode 100644 index d0b404c3e..000000000 --- a/install/disparity_expansion/share/colcon-core/packages/disparity_expansion +++ /dev/null @@ -1 +0,0 @@ -OpenCV:PCL:cv_bridge:image_geometry:image_transport:message_filters:pcl_conversions:rclcpp:sensor_msgs:std_msgs:stereo_msgs:tf2:visualization_msgs \ No newline at end of file diff --git a/install/disparity_expansion/share/disparity_expansion/hook/path.dsv b/install/disparity_expansion/share/disparity_expansion/hook/path.dsv deleted file mode 100644 index 95435e0c2..000000000 --- a/install/disparity_expansion/share/disparity_expansion/hook/path.dsv +++ /dev/null @@ -1 +0,0 @@ -prepend-non-duplicate;PATH;bin diff --git a/install/disparity_expansion/share/disparity_expansion/hook/path.ps1 b/install/disparity_expansion/share/disparity_expansion/hook/path.ps1 deleted file mode 100644 index 0b980efa4..000000000 --- a/install/disparity_expansion/share/disparity_expansion/hook/path.ps1 +++ /dev/null @@ -1,3 +0,0 @@ -# generated from colcon_powershell/shell/template/hook_prepend_value.ps1.em - -colcon_prepend_unique_value PATH "$env:COLCON_CURRENT_PREFIX\bin" diff --git a/install/disparity_expansion/share/disparity_expansion/hook/path.sh b/install/disparity_expansion/share/disparity_expansion/hook/path.sh deleted file mode 100644 index 295266d6f..000000000 --- a/install/disparity_expansion/share/disparity_expansion/hook/path.sh +++ /dev/null @@ -1,3 +0,0 @@ -# generated from colcon_core/shell/template/hook_prepend_value.sh.em - -_colcon_prepend_unique_value PATH "$COLCON_CURRENT_PREFIX/bin" diff --git a/install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path.dsv b/install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path.dsv deleted file mode 100644 index 858288c51..000000000 --- a/install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path.dsv +++ /dev/null @@ -1 +0,0 @@ -prepend-non-duplicate;PKG_CONFIG_PATH;lib/pkgconfig diff --git a/install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path.ps1 b/install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path.ps1 deleted file mode 100644 index 5b098df4d..000000000 --- a/install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path.ps1 +++ /dev/null @@ -1,3 +0,0 @@ -# generated from colcon_powershell/shell/template/hook_prepend_value.ps1.em - -colcon_prepend_unique_value PKG_CONFIG_PATH "$env:COLCON_CURRENT_PREFIX\lib/pkgconfig" diff --git a/install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path.sh b/install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path.sh deleted file mode 100644 index e452798d4..000000000 --- a/install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path.sh +++ /dev/null @@ -1,3 +0,0 @@ -# generated from colcon_core/shell/template/hook_prepend_value.sh.em - -_colcon_prepend_unique_value PKG_CONFIG_PATH "$COLCON_CURRENT_PREFIX/lib/pkgconfig" diff --git a/install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path_multiarch.dsv b/install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path_multiarch.dsv deleted file mode 100644 index 720ef6488..000000000 --- a/install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path_multiarch.dsv +++ /dev/null @@ -1 +0,0 @@ -prepend-non-duplicate;PKG_CONFIG_PATH;lib/x86_64-linux-gnu/pkgconfig diff --git a/install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path_multiarch.ps1 b/install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path_multiarch.ps1 deleted file mode 100644 index 498c167b8..000000000 --- a/install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path_multiarch.ps1 +++ /dev/null @@ -1,3 +0,0 @@ -# generated from colcon_powershell/shell/template/hook_prepend_value.ps1.em - -colcon_prepend_unique_value PKG_CONFIG_PATH "$env:COLCON_CURRENT_PREFIX\lib/x86_64-linux-gnu/pkgconfig" diff --git a/install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path_multiarch.sh b/install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path_multiarch.sh deleted file mode 100644 index ed2d31792..000000000 --- a/install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path_multiarch.sh +++ /dev/null @@ -1,3 +0,0 @@ -# generated from colcon_core/shell/template/hook_prepend_value.sh.em - -_colcon_prepend_unique_value PKG_CONFIG_PATH "$COLCON_CURRENT_PREFIX/lib/x86_64-linux-gnu/pkgconfig" diff --git a/install/disparity_expansion/share/disparity_expansion/hook/pythonscriptspath.dsv b/install/disparity_expansion/share/disparity_expansion/hook/pythonscriptspath.dsv deleted file mode 100644 index 95435e0c2..000000000 --- a/install/disparity_expansion/share/disparity_expansion/hook/pythonscriptspath.dsv +++ /dev/null @@ -1 +0,0 @@ -prepend-non-duplicate;PATH;bin diff --git a/install/disparity_expansion/share/disparity_expansion/hook/pythonscriptspath.ps1 b/install/disparity_expansion/share/disparity_expansion/hook/pythonscriptspath.ps1 deleted file mode 100644 index 0b980efa4..000000000 --- a/install/disparity_expansion/share/disparity_expansion/hook/pythonscriptspath.ps1 +++ /dev/null @@ -1,3 +0,0 @@ -# generated from colcon_powershell/shell/template/hook_prepend_value.ps1.em - -colcon_prepend_unique_value PATH "$env:COLCON_CURRENT_PREFIX\bin" diff --git a/install/disparity_expansion/share/disparity_expansion/hook/pythonscriptspath.sh b/install/disparity_expansion/share/disparity_expansion/hook/pythonscriptspath.sh deleted file mode 100644 index 295266d6f..000000000 --- a/install/disparity_expansion/share/disparity_expansion/hook/pythonscriptspath.sh +++ /dev/null @@ -1,3 +0,0 @@ -# generated from colcon_core/shell/template/hook_prepend_value.sh.em - -_colcon_prepend_unique_value PATH "$COLCON_CURRENT_PREFIX/bin" diff --git a/install/disparity_expansion/share/disparity_expansion/hook/ros_package_path.dsv b/install/disparity_expansion/share/disparity_expansion/hook/ros_package_path.dsv deleted file mode 100644 index 86df3c371..000000000 --- a/install/disparity_expansion/share/disparity_expansion/hook/ros_package_path.dsv +++ /dev/null @@ -1 +0,0 @@ -prepend-non-duplicate;ROS_PACKAGE_PATH;share diff --git a/install/disparity_expansion/share/disparity_expansion/hook/ros_package_path.ps1 b/install/disparity_expansion/share/disparity_expansion/hook/ros_package_path.ps1 deleted file mode 100644 index 541e60204..000000000 --- a/install/disparity_expansion/share/disparity_expansion/hook/ros_package_path.ps1 +++ /dev/null @@ -1,3 +0,0 @@ -# generated from colcon_powershell/shell/template/hook_prepend_value.ps1.em - -colcon_prepend_unique_value ROS_PACKAGE_PATH "$env:COLCON_CURRENT_PREFIX\share" diff --git a/install/disparity_expansion/share/disparity_expansion/hook/ros_package_path.sh b/install/disparity_expansion/share/disparity_expansion/hook/ros_package_path.sh deleted file mode 100644 index e142311ad..000000000 --- a/install/disparity_expansion/share/disparity_expansion/hook/ros_package_path.sh +++ /dev/null @@ -1,3 +0,0 @@ -# generated from colcon_core/shell/template/hook_prepend_value.sh.em - -_colcon_prepend_unique_value ROS_PACKAGE_PATH "$COLCON_CURRENT_PREFIX/share" diff --git a/install/disparity_expansion/share/disparity_expansion/package.bash b/install/disparity_expansion/share/disparity_expansion/package.bash deleted file mode 100644 index 617eaab32..000000000 --- a/install/disparity_expansion/share/disparity_expansion/package.bash +++ /dev/null @@ -1,31 +0,0 @@ -# generated from colcon_bash/shell/template/package.bash.em - -# This script extends the environment for this package. - -# a bash script is able to determine its own path if necessary -if [ -z "$COLCON_CURRENT_PREFIX" ]; then - # the prefix is two levels up from the package specific share directory - _colcon_package_bash_COLCON_CURRENT_PREFIX="$(builtin cd "`dirname "${BASH_SOURCE[0]}"`/../.." > /dev/null && pwd)" -else - _colcon_package_bash_COLCON_CURRENT_PREFIX="$COLCON_CURRENT_PREFIX" -fi - -# function to source another script with conditional trace output -# first argument: the path of the script -# additional arguments: arguments to the script -_colcon_package_bash_source_script() { - if [ -f "$1" ]; then - if [ -n "$COLCON_TRACE" ]; then - echo "# . \"$1\"" - fi - . "$@" - else - echo "not found: \"$1\"" 1>&2 - fi -} - -# source sh script of this package -_colcon_package_bash_source_script "$_colcon_package_bash_COLCON_CURRENT_PREFIX/share/disparity_expansion/package.sh" - -unset _colcon_package_bash_source_script -unset _colcon_package_bash_COLCON_CURRENT_PREFIX diff --git a/install/disparity_expansion/share/disparity_expansion/package.dsv b/install/disparity_expansion/share/disparity_expansion/package.dsv deleted file mode 100644 index e94fb59fa..000000000 --- a/install/disparity_expansion/share/disparity_expansion/package.dsv +++ /dev/null @@ -1,15 +0,0 @@ -source;share/disparity_expansion/hook/path.ps1 -source;share/disparity_expansion/hook/path.dsv -source;share/disparity_expansion/hook/path.sh -source;share/disparity_expansion/hook/pythonscriptspath.ps1 -source;share/disparity_expansion/hook/pythonscriptspath.dsv -source;share/disparity_expansion/hook/pythonscriptspath.sh -source;share/disparity_expansion/hook/ros_package_path.ps1 -source;share/disparity_expansion/hook/ros_package_path.dsv -source;share/disparity_expansion/hook/ros_package_path.sh -source;share/disparity_expansion/hook/pkg_config_path.ps1 -source;share/disparity_expansion/hook/pkg_config_path.dsv -source;share/disparity_expansion/hook/pkg_config_path.sh -source;share/disparity_expansion/hook/pkg_config_path_multiarch.ps1 -source;share/disparity_expansion/hook/pkg_config_path_multiarch.dsv -source;share/disparity_expansion/hook/pkg_config_path_multiarch.sh diff --git a/install/disparity_expansion/share/disparity_expansion/package.ps1 b/install/disparity_expansion/share/disparity_expansion/package.ps1 deleted file mode 100644 index 9151dbb60..000000000 --- a/install/disparity_expansion/share/disparity_expansion/package.ps1 +++ /dev/null @@ -1,119 +0,0 @@ -# generated from colcon_powershell/shell/template/package.ps1.em - -# function to append a value to a variable -# which uses colons as separators -# duplicates as well as leading separators are avoided -# first argument: the name of the result variable -# second argument: the value to be prepended -function colcon_append_unique_value { - param ( - $_listname, - $_value - ) - - # get values from variable - if (Test-Path Env:$_listname) { - $_values=(Get-Item env:$_listname).Value - } else { - $_values="" - } - $_duplicate="" - # start with no values - $_all_values="" - # iterate over existing values in the variable - if ($_values) { - $_values.Split(";") | ForEach { - # not an empty string - if ($_) { - # not a duplicate of _value - if ($_ -eq $_value) { - $_duplicate="1" - } - if ($_all_values) { - $_all_values="${_all_values};$_" - } else { - $_all_values="$_" - } - } - } - } - # append only non-duplicates - if (!$_duplicate) { - # avoid leading separator - if ($_all_values) { - $_all_values="${_all_values};${_value}" - } else { - $_all_values="${_value}" - } - } - - # export the updated variable - Set-Item env:\$_listname -Value "$_all_values" -} - -# function to prepend a value to a variable -# which uses colons as separators -# duplicates as well as trailing separators are avoided -# first argument: the name of the result variable -# second argument: the value to be prepended -function colcon_prepend_unique_value { - param ( - $_listname, - $_value - ) - - # get values from variable - if (Test-Path Env:$_listname) { - $_values=(Get-Item env:$_listname).Value - } else { - $_values="" - } - # start with the new value - $_all_values="$_value" - # iterate over existing values in the variable - if ($_values) { - $_values.Split(";") | ForEach { - # not an empty string - if ($_) { - # not a duplicate of _value - if ($_ -ne $_value) { - # keep non-duplicate values - $_all_values="${_all_values};$_" - } - } - } - } - # export the updated variable - Set-Item env:\$_listname -Value "$_all_values" -} - -# function to source another script with conditional trace output -# first argument: the path of the script -# additional arguments: arguments to the script -function colcon_package_source_powershell_script { - param ( - $_colcon_package_source_powershell_script - ) - # source script with conditional trace output - if (Test-Path $_colcon_package_source_powershell_script) { - if ($env:COLCON_TRACE) { - echo ". '$_colcon_package_source_powershell_script'" - } - . "$_colcon_package_source_powershell_script" - } else { - Write-Error "not found: '$_colcon_package_source_powershell_script'" - } -} - - -# a powershell script is able to determine its own path -# the prefix is two levels up from the package specific share directory -$env:COLCON_CURRENT_PREFIX=(Get-Item $PSCommandPath).Directory.Parent.Parent.FullName - -colcon_package_source_powershell_script "$env:COLCON_CURRENT_PREFIX\share/disparity_expansion/hook/path.ps1" -colcon_package_source_powershell_script "$env:COLCON_CURRENT_PREFIX\share/disparity_expansion/hook/pythonscriptspath.ps1" -colcon_package_source_powershell_script "$env:COLCON_CURRENT_PREFIX\share/disparity_expansion/hook/ros_package_path.ps1" -colcon_package_source_powershell_script "$env:COLCON_CURRENT_PREFIX\share/disparity_expansion/hook/pkg_config_path.ps1" -colcon_package_source_powershell_script "$env:COLCON_CURRENT_PREFIX\share/disparity_expansion/hook/pkg_config_path_multiarch.ps1" - -Remove-Item Env:\COLCON_CURRENT_PREFIX diff --git a/install/disparity_expansion/share/disparity_expansion/package.sh b/install/disparity_expansion/share/disparity_expansion/package.sh deleted file mode 100644 index 3b38d0cd3..000000000 --- a/install/disparity_expansion/share/disparity_expansion/package.sh +++ /dev/null @@ -1,90 +0,0 @@ -# generated from colcon_core/shell/template/package.sh.em - -# This script extends the environment for this package. - -# function to prepend a value to a variable -# which uses colons as separators -# duplicates as well as trailing separators are avoided -# first argument: the name of the result variable -# second argument: the value to be prepended -_colcon_prepend_unique_value() { - # arguments - _listname="$1" - _value="$2" - - # get values from variable - eval _values=\"\$$_listname\" - # backup the field separator - _colcon_prepend_unique_value_IFS=$IFS - IFS=":" - # start with the new value - _all_values="$_value" - # workaround SH_WORD_SPLIT not being set in zsh - if [ "$(command -v colcon_zsh_convert_to_array)" ]; then - colcon_zsh_convert_to_array _values - fi - # iterate over existing values in the variable - for _item in $_values; do - # ignore empty strings - if [ -z "$_item" ]; then - continue - fi - # ignore duplicates of _value - if [ "$_item" = "$_value" ]; then - continue - fi - # keep non-duplicate values - _all_values="$_all_values:$_item" - done - unset _item - # restore the field separator - IFS=$_colcon_prepend_unique_value_IFS - unset _colcon_prepend_unique_value_IFS - # export the updated variable - eval export $_listname=\"$_all_values\" - unset _all_values - unset _values - - unset _value - unset _listname -} - -# since a plain shell script can't determine its own path when being sourced -# either use the provided COLCON_CURRENT_PREFIX -# or fall back to the build time prefix (if it exists) -_colcon_package_sh_COLCON_CURRENT_PREFIX="/root/AirStack/install/disparity_expansion" -if [ -z "$COLCON_CURRENT_PREFIX" ]; then - if [ ! -d "$_colcon_package_sh_COLCON_CURRENT_PREFIX" ]; then - echo "The build time path \"$_colcon_package_sh_COLCON_CURRENT_PREFIX\" doesn't exist. Either source a script for a different shell or set the environment variable \"COLCON_CURRENT_PREFIX\" explicitly." 1>&2 - unset _colcon_package_sh_COLCON_CURRENT_PREFIX - return 1 - fi - COLCON_CURRENT_PREFIX="$_colcon_package_sh_COLCON_CURRENT_PREFIX" -fi -unset _colcon_package_sh_COLCON_CURRENT_PREFIX - -# function to source another script with conditional trace output -# first argument: the path of the script -# additional arguments: arguments to the script -_colcon_package_sh_source_script() { - if [ -f "$1" ]; then - if [ -n "$COLCON_TRACE" ]; then - echo "# . \"$1\"" - fi - . "$@" - else - echo "not found: \"$1\"" 1>&2 - fi -} - -# source sh hooks -_colcon_package_sh_source_script "$COLCON_CURRENT_PREFIX/share/disparity_expansion/hook/path.sh" -_colcon_package_sh_source_script "$COLCON_CURRENT_PREFIX/share/disparity_expansion/hook/pythonscriptspath.sh" -_colcon_package_sh_source_script "$COLCON_CURRENT_PREFIX/share/disparity_expansion/hook/ros_package_path.sh" -_colcon_package_sh_source_script "$COLCON_CURRENT_PREFIX/share/disparity_expansion/hook/pkg_config_path.sh" -_colcon_package_sh_source_script "$COLCON_CURRENT_PREFIX/share/disparity_expansion/hook/pkg_config_path_multiarch.sh" - -unset _colcon_package_sh_source_script -unset COLCON_CURRENT_PREFIX - -# do not unset _colcon_prepend_unique_value since it might be used by non-primary shell hooks diff --git a/install/disparity_expansion/share/disparity_expansion/package.zsh b/install/disparity_expansion/share/disparity_expansion/package.zsh deleted file mode 100644 index 461b6a087..000000000 --- a/install/disparity_expansion/share/disparity_expansion/package.zsh +++ /dev/null @@ -1,42 +0,0 @@ -# generated from colcon_zsh/shell/template/package.zsh.em - -# This script extends the environment for this package. - -# a zsh script is able to determine its own path if necessary -if [ -z "$COLCON_CURRENT_PREFIX" ]; then - # the prefix is two levels up from the package specific share directory - _colcon_package_zsh_COLCON_CURRENT_PREFIX="$(builtin cd -q "`dirname "${(%):-%N}"`/../.." > /dev/null && pwd)" -else - _colcon_package_zsh_COLCON_CURRENT_PREFIX="$COLCON_CURRENT_PREFIX" -fi - -# function to source another script with conditional trace output -# first argument: the path of the script -# additional arguments: arguments to the script -_colcon_package_zsh_source_script() { - if [ -f "$1" ]; then - if [ -n "$COLCON_TRACE" ]; then - echo "# . \"$1\"" - fi - . "$@" - else - echo "not found: \"$1\"" 1>&2 - fi -} - -# function to convert array-like strings into arrays -# to workaround SH_WORD_SPLIT not being set -colcon_zsh_convert_to_array() { - local _listname=$1 - local _dollar="$" - local _split="{=" - local _to_array="(\"$_dollar$_split$_listname}\")" - eval $_listname=$_to_array -} - -# source sh script of this package -_colcon_package_zsh_source_script "$_colcon_package_zsh_COLCON_CURRENT_PREFIX/share/disparity_expansion/package.sh" -unset convert_zsh_to_array - -unset _colcon_package_zsh_source_script -unset _colcon_package_zsh_COLCON_CURRENT_PREFIX diff --git a/install/local_setup.bash b/install/local_setup.bash deleted file mode 100644 index 03f00256c..000000000 --- a/install/local_setup.bash +++ /dev/null @@ -1,121 +0,0 @@ -# generated from colcon_bash/shell/template/prefix.bash.em - -# This script extends the environment with all packages contained in this -# prefix path. - -# a bash script is able to determine its own path if necessary -if [ -z "$COLCON_CURRENT_PREFIX" ]; then - _colcon_prefix_bash_COLCON_CURRENT_PREFIX="$(builtin cd "`dirname "${BASH_SOURCE[0]}"`" > /dev/null && pwd)" -else - _colcon_prefix_bash_COLCON_CURRENT_PREFIX="$COLCON_CURRENT_PREFIX" -fi - -# function to prepend a value to a variable -# which uses colons as separators -# duplicates as well as trailing separators are avoided -# first argument: the name of the result variable -# second argument: the value to be prepended -_colcon_prefix_bash_prepend_unique_value() { - # arguments - _listname="$1" - _value="$2" - - # get values from variable - eval _values=\"\$$_listname\" - # backup the field separator - _colcon_prefix_bash_prepend_unique_value_IFS="$IFS" - IFS=":" - # start with the new value - _all_values="$_value" - _contained_value="" - # iterate over existing values in the variable - for _item in $_values; do - # ignore empty strings - if [ -z "$_item" ]; then - continue - fi - # ignore duplicates of _value - if [ "$_item" = "$_value" ]; then - _contained_value=1 - continue - fi - # keep non-duplicate values - _all_values="$_all_values:$_item" - done - unset _item - if [ -z "$_contained_value" ]; then - if [ -n "$COLCON_TRACE" ]; then - if [ "$_all_values" = "$_value" ]; then - echo "export $_listname=$_value" - else - echo "export $_listname=$_value:\$$_listname" - fi - fi - fi - unset _contained_value - # restore the field separator - IFS="$_colcon_prefix_bash_prepend_unique_value_IFS" - unset _colcon_prefix_bash_prepend_unique_value_IFS - # export the updated variable - eval export $_listname=\"$_all_values\" - unset _all_values - unset _values - - unset _value - unset _listname -} - -# add this prefix to the COLCON_PREFIX_PATH -_colcon_prefix_bash_prepend_unique_value COLCON_PREFIX_PATH "$_colcon_prefix_bash_COLCON_CURRENT_PREFIX" -unset _colcon_prefix_bash_prepend_unique_value - -# check environment variable for custom Python executable -if [ -n "$COLCON_PYTHON_EXECUTABLE" ]; then - if [ ! -f "$COLCON_PYTHON_EXECUTABLE" ]; then - echo "error: COLCON_PYTHON_EXECUTABLE '$COLCON_PYTHON_EXECUTABLE' doesn't exist" - return 1 - fi - _colcon_python_executable="$COLCON_PYTHON_EXECUTABLE" -else - # try the Python executable known at configure time - _colcon_python_executable="/usr/bin/python3" - # if it doesn't exist try a fall back - if [ ! -f "$_colcon_python_executable" ]; then - if ! /usr/bin/env python3 --version > /dev/null 2> /dev/null; then - echo "error: unable to find python3 executable" - return 1 - fi - _colcon_python_executable=`/usr/bin/env python3 -c "import sys; print(sys.executable)"` - fi -fi - -# function to source another script with conditional trace output -# first argument: the path of the script -_colcon_prefix_sh_source_script() { - if [ -f "$1" ]; then - if [ -n "$COLCON_TRACE" ]; then - echo "# . \"$1\"" - fi - . "$1" - else - echo "not found: \"$1\"" 1>&2 - fi -} - -# get all commands in topological order -_colcon_ordered_commands="$($_colcon_python_executable "$_colcon_prefix_bash_COLCON_CURRENT_PREFIX/_local_setup_util_sh.py" sh bash)" -unset _colcon_python_executable -if [ -n "$COLCON_TRACE" ]; then - echo "$(declare -f _colcon_prefix_sh_source_script)" - echo "# Execute generated script:" - echo "# <<<" - echo "${_colcon_ordered_commands}" - echo "# >>>" - echo "unset _colcon_prefix_sh_source_script" -fi -eval "${_colcon_ordered_commands}" -unset _colcon_ordered_commands - -unset _colcon_prefix_sh_source_script - -unset _colcon_prefix_bash_COLCON_CURRENT_PREFIX diff --git a/install/local_setup.ps1 b/install/local_setup.ps1 deleted file mode 100644 index 6f68c8ded..000000000 --- a/install/local_setup.ps1 +++ /dev/null @@ -1,55 +0,0 @@ -# generated from colcon_powershell/shell/template/prefix.ps1.em - -# This script extends the environment with all packages contained in this -# prefix path. - -# check environment variable for custom Python executable -if ($env:COLCON_PYTHON_EXECUTABLE) { - if (!(Test-Path "$env:COLCON_PYTHON_EXECUTABLE" -PathType Leaf)) { - echo "error: COLCON_PYTHON_EXECUTABLE '$env:COLCON_PYTHON_EXECUTABLE' doesn't exist" - exit 1 - } - $_colcon_python_executable="$env:COLCON_PYTHON_EXECUTABLE" -} else { - # use the Python executable known at configure time - $_colcon_python_executable="/usr/bin/python3" - # if it doesn't exist try a fall back - if (!(Test-Path "$_colcon_python_executable" -PathType Leaf)) { - if (!(Get-Command "python3" -ErrorAction SilentlyContinue)) { - echo "error: unable to find python3 executable" - exit 1 - } - $_colcon_python_executable="python3" - } -} - -# function to source another script with conditional trace output -# first argument: the path of the script -function _colcon_prefix_powershell_source_script { - param ( - $_colcon_prefix_powershell_source_script_param - ) - # source script with conditional trace output - if (Test-Path $_colcon_prefix_powershell_source_script_param) { - if ($env:COLCON_TRACE) { - echo ". '$_colcon_prefix_powershell_source_script_param'" - } - . "$_colcon_prefix_powershell_source_script_param" - } else { - Write-Error "not found: '$_colcon_prefix_powershell_source_script_param'" - } -} - -# get all commands in topological order -$_colcon_ordered_commands = & "$_colcon_python_executable" "$(Split-Path $PSCommandPath -Parent)/_local_setup_util_ps1.py" ps1 - -# execute all commands in topological order -if ($env:COLCON_TRACE) { - echo "Execute generated script:" - echo "<<<" - $_colcon_ordered_commands.Split([Environment]::NewLine, [StringSplitOptions]::RemoveEmptyEntries) | Write-Output - echo ">>>" -} -if ($_colcon_ordered_commands) { - $_colcon_ordered_commands.Split([Environment]::NewLine, [StringSplitOptions]::RemoveEmptyEntries) | Invoke-Expression -} diff --git a/install/local_setup.sh b/install/local_setup.sh deleted file mode 100644 index 0a1ae21e2..000000000 --- a/install/local_setup.sh +++ /dev/null @@ -1,137 +0,0 @@ -# generated from colcon_core/shell/template/prefix.sh.em - -# This script extends the environment with all packages contained in this -# prefix path. - -# since a plain shell script can't determine its own path when being sourced -# either use the provided COLCON_CURRENT_PREFIX -# or fall back to the build time prefix (if it exists) -_colcon_prefix_sh_COLCON_CURRENT_PREFIX="/root/AirStack/install" -if [ -z "$COLCON_CURRENT_PREFIX" ]; then - if [ ! -d "$_colcon_prefix_sh_COLCON_CURRENT_PREFIX" ]; then - echo "The build time path \"$_colcon_prefix_sh_COLCON_CURRENT_PREFIX\" doesn't exist. Either source a script for a different shell or set the environment variable \"COLCON_CURRENT_PREFIX\" explicitly." 1>&2 - unset _colcon_prefix_sh_COLCON_CURRENT_PREFIX - return 1 - fi -else - _colcon_prefix_sh_COLCON_CURRENT_PREFIX="$COLCON_CURRENT_PREFIX" -fi - -# function to prepend a value to a variable -# which uses colons as separators -# duplicates as well as trailing separators are avoided -# first argument: the name of the result variable -# second argument: the value to be prepended -_colcon_prefix_sh_prepend_unique_value() { - # arguments - _listname="$1" - _value="$2" - - # get values from variable - eval _values=\"\$$_listname\" - # backup the field separator - _colcon_prefix_sh_prepend_unique_value_IFS="$IFS" - IFS=":" - # start with the new value - _all_values="$_value" - _contained_value="" - # iterate over existing values in the variable - for _item in $_values; do - # ignore empty strings - if [ -z "$_item" ]; then - continue - fi - # ignore duplicates of _value - if [ "$_item" = "$_value" ]; then - _contained_value=1 - continue - fi - # keep non-duplicate values - _all_values="$_all_values:$_item" - done - unset _item - if [ -z "$_contained_value" ]; then - if [ -n "$COLCON_TRACE" ]; then - if [ "$_all_values" = "$_value" ]; then - echo "export $_listname=$_value" - else - echo "export $_listname=$_value:\$$_listname" - fi - fi - fi - unset _contained_value - # restore the field separator - IFS="$_colcon_prefix_sh_prepend_unique_value_IFS" - unset _colcon_prefix_sh_prepend_unique_value_IFS - # export the updated variable - eval export $_listname=\"$_all_values\" - unset _all_values - unset _values - - unset _value - unset _listname -} - -# add this prefix to the COLCON_PREFIX_PATH -_colcon_prefix_sh_prepend_unique_value COLCON_PREFIX_PATH "$_colcon_prefix_sh_COLCON_CURRENT_PREFIX" -unset _colcon_prefix_sh_prepend_unique_value - -# check environment variable for custom Python executable -if [ -n "$COLCON_PYTHON_EXECUTABLE" ]; then - if [ ! -f "$COLCON_PYTHON_EXECUTABLE" ]; then - echo "error: COLCON_PYTHON_EXECUTABLE '$COLCON_PYTHON_EXECUTABLE' doesn't exist" - return 1 - fi - _colcon_python_executable="$COLCON_PYTHON_EXECUTABLE" -else - # try the Python executable known at configure time - _colcon_python_executable="/usr/bin/python3" - # if it doesn't exist try a fall back - if [ ! -f "$_colcon_python_executable" ]; then - if ! /usr/bin/env python3 --version > /dev/null 2> /dev/null; then - echo "error: unable to find python3 executable" - return 1 - fi - _colcon_python_executable=`/usr/bin/env python3 -c "import sys; print(sys.executable)"` - fi -fi - -# function to source another script with conditional trace output -# first argument: the path of the script -_colcon_prefix_sh_source_script() { - if [ -f "$1" ]; then - if [ -n "$COLCON_TRACE" ]; then - echo "# . \"$1\"" - fi - . "$1" - else - echo "not found: \"$1\"" 1>&2 - fi -} - -# get all commands in topological order -_colcon_ordered_commands="$($_colcon_python_executable "$_colcon_prefix_sh_COLCON_CURRENT_PREFIX/_local_setup_util_sh.py" sh)" -unset _colcon_python_executable -if [ -n "$COLCON_TRACE" ]; then - echo "_colcon_prefix_sh_source_script() { - if [ -f \"\$1\" ]; then - if [ -n \"\$COLCON_TRACE\" ]; then - echo \"# . \\\"\$1\\\"\" - fi - . \"\$1\" - else - echo \"not found: \\\"\$1\\\"\" 1>&2 - fi - }" - echo "# Execute generated script:" - echo "# <<<" - echo "${_colcon_ordered_commands}" - echo "# >>>" - echo "unset _colcon_prefix_sh_source_script" -fi -eval "${_colcon_ordered_commands}" -unset _colcon_ordered_commands - -unset _colcon_prefix_sh_source_script - -unset _colcon_prefix_sh_COLCON_CURRENT_PREFIX diff --git a/install/local_setup.zsh b/install/local_setup.zsh deleted file mode 100644 index b6487102f..000000000 --- a/install/local_setup.zsh +++ /dev/null @@ -1,134 +0,0 @@ -# generated from colcon_zsh/shell/template/prefix.zsh.em - -# This script extends the environment with all packages contained in this -# prefix path. - -# a zsh script is able to determine its own path if necessary -if [ -z "$COLCON_CURRENT_PREFIX" ]; then - _colcon_prefix_zsh_COLCON_CURRENT_PREFIX="$(builtin cd -q "`dirname "${(%):-%N}"`" > /dev/null && pwd)" -else - _colcon_prefix_zsh_COLCON_CURRENT_PREFIX="$COLCON_CURRENT_PREFIX" -fi - -# function to convert array-like strings into arrays -# to workaround SH_WORD_SPLIT not being set -_colcon_prefix_zsh_convert_to_array() { - local _listname=$1 - local _dollar="$" - local _split="{=" - local _to_array="(\"$_dollar$_split$_listname}\")" - eval $_listname=$_to_array -} - -# function to prepend a value to a variable -# which uses colons as separators -# duplicates as well as trailing separators are avoided -# first argument: the name of the result variable -# second argument: the value to be prepended -_colcon_prefix_zsh_prepend_unique_value() { - # arguments - _listname="$1" - _value="$2" - - # get values from variable - eval _values=\"\$$_listname\" - # backup the field separator - _colcon_prefix_zsh_prepend_unique_value_IFS="$IFS" - IFS=":" - # start with the new value - _all_values="$_value" - _contained_value="" - # workaround SH_WORD_SPLIT not being set - _colcon_prefix_zsh_convert_to_array _values - # iterate over existing values in the variable - for _item in $_values; do - # ignore empty strings - if [ -z "$_item" ]; then - continue - fi - # ignore duplicates of _value - if [ "$_item" = "$_value" ]; then - _contained_value=1 - continue - fi - # keep non-duplicate values - _all_values="$_all_values:$_item" - done - unset _item - if [ -z "$_contained_value" ]; then - if [ -n "$COLCON_TRACE" ]; then - if [ "$_all_values" = "$_value" ]; then - echo "export $_listname=$_value" - else - echo "export $_listname=$_value:\$$_listname" - fi - fi - fi - unset _contained_value - # restore the field separator - IFS="$_colcon_prefix_zsh_prepend_unique_value_IFS" - unset _colcon_prefix_zsh_prepend_unique_value_IFS - # export the updated variable - eval export $_listname=\"$_all_values\" - unset _all_values - unset _values - - unset _value - unset _listname -} - -# add this prefix to the COLCON_PREFIX_PATH -_colcon_prefix_zsh_prepend_unique_value COLCON_PREFIX_PATH "$_colcon_prefix_zsh_COLCON_CURRENT_PREFIX" -unset _colcon_prefix_zsh_prepend_unique_value -unset _colcon_prefix_zsh_convert_to_array - -# check environment variable for custom Python executable -if [ -n "$COLCON_PYTHON_EXECUTABLE" ]; then - if [ ! -f "$COLCON_PYTHON_EXECUTABLE" ]; then - echo "error: COLCON_PYTHON_EXECUTABLE '$COLCON_PYTHON_EXECUTABLE' doesn't exist" - return 1 - fi - _colcon_python_executable="$COLCON_PYTHON_EXECUTABLE" -else - # try the Python executable known at configure time - _colcon_python_executable="/usr/bin/python3" - # if it doesn't exist try a fall back - if [ ! -f "$_colcon_python_executable" ]; then - if ! /usr/bin/env python3 --version > /dev/null 2> /dev/null; then - echo "error: unable to find python3 executable" - return 1 - fi - _colcon_python_executable=`/usr/bin/env python3 -c "import sys; print(sys.executable)"` - fi -fi - -# function to source another script with conditional trace output -# first argument: the path of the script -_colcon_prefix_sh_source_script() { - if [ -f "$1" ]; then - if [ -n "$COLCON_TRACE" ]; then - echo "# . \"$1\"" - fi - . "$1" - else - echo "not found: \"$1\"" 1>&2 - fi -} - -# get all commands in topological order -_colcon_ordered_commands="$($_colcon_python_executable "$_colcon_prefix_zsh_COLCON_CURRENT_PREFIX/_local_setup_util_sh.py" sh zsh)" -unset _colcon_python_executable -if [ -n "$COLCON_TRACE" ]; then - echo "$(declare -f _colcon_prefix_sh_source_script)" - echo "# Execute generated script:" - echo "# <<<" - echo "${_colcon_ordered_commands}" - echo "# >>>" - echo "unset _colcon_prefix_sh_source_script" -fi -eval "${_colcon_ordered_commands}" -unset _colcon_ordered_commands - -unset _colcon_prefix_sh_source_script - -unset _colcon_prefix_zsh_COLCON_CURRENT_PREFIX diff --git a/install/setup.bash b/install/setup.bash deleted file mode 100644 index f5b1a0822..000000000 --- a/install/setup.bash +++ /dev/null @@ -1,34 +0,0 @@ -# generated from colcon_bash/shell/template/prefix_chain.bash.em - -# This script extends the environment with the environment of other prefix -# paths which were sourced when this file was generated as well as all packages -# contained in this prefix path. - -# function to source another script with conditional trace output -# first argument: the path of the script -_colcon_prefix_chain_bash_source_script() { - if [ -f "$1" ]; then - if [ -n "$COLCON_TRACE" ]; then - echo "# . \"$1\"" - fi - . "$1" - else - echo "not found: \"$1\"" 1>&2 - fi -} - -# source chained prefixes -# setting COLCON_CURRENT_PREFIX avoids determining the prefix in the sourced script -COLCON_CURRENT_PREFIX="/opt/ros/humble" -_colcon_prefix_chain_bash_source_script "$COLCON_CURRENT_PREFIX/local_setup.bash" -# setting COLCON_CURRENT_PREFIX avoids determining the prefix in the sourced script -COLCON_CURRENT_PREFIX="/root/AirStack/ros_ws/install" -_colcon_prefix_chain_bash_source_script "$COLCON_CURRENT_PREFIX/local_setup.bash" - -# source this prefix -# setting COLCON_CURRENT_PREFIX avoids determining the prefix in the sourced script -COLCON_CURRENT_PREFIX="$(builtin cd "`dirname "${BASH_SOURCE[0]}"`" > /dev/null && pwd)" -_colcon_prefix_chain_bash_source_script "$COLCON_CURRENT_PREFIX/local_setup.bash" - -unset COLCON_CURRENT_PREFIX -unset _colcon_prefix_chain_bash_source_script diff --git a/install/setup.ps1 b/install/setup.ps1 deleted file mode 100644 index ba7875062..000000000 --- a/install/setup.ps1 +++ /dev/null @@ -1,30 +0,0 @@ -# generated from colcon_powershell/shell/template/prefix_chain.ps1.em - -# This script extends the environment with the environment of other prefix -# paths which were sourced when this file was generated as well as all packages -# contained in this prefix path. - -# function to source another script with conditional trace output -# first argument: the path of the script -function _colcon_prefix_chain_powershell_source_script { - param ( - $_colcon_prefix_chain_powershell_source_script_param - ) - # source script with conditional trace output - if (Test-Path $_colcon_prefix_chain_powershell_source_script_param) { - if ($env:COLCON_TRACE) { - echo ". '$_colcon_prefix_chain_powershell_source_script_param'" - } - . "$_colcon_prefix_chain_powershell_source_script_param" - } else { - Write-Error "not found: '$_colcon_prefix_chain_powershell_source_script_param'" - } -} - -# source chained prefixes -_colcon_prefix_chain_powershell_source_script "/opt/ros/humble\local_setup.ps1" -_colcon_prefix_chain_powershell_source_script "/root/AirStack/ros_ws/install\local_setup.ps1" - -# source this prefix -$env:COLCON_CURRENT_PREFIX=(Split-Path $PSCommandPath -Parent) -_colcon_prefix_chain_powershell_source_script "$env:COLCON_CURRENT_PREFIX\local_setup.ps1" diff --git a/install/setup.sh b/install/setup.sh deleted file mode 100644 index 877cdfa4f..000000000 --- a/install/setup.sh +++ /dev/null @@ -1,49 +0,0 @@ -# generated from colcon_core/shell/template/prefix_chain.sh.em - -# This script extends the environment with the environment of other prefix -# paths which were sourced when this file was generated as well as all packages -# contained in this prefix path. - -# since a plain shell script can't determine its own path when being sourced -# either use the provided COLCON_CURRENT_PREFIX -# or fall back to the build time prefix (if it exists) -_colcon_prefix_chain_sh_COLCON_CURRENT_PREFIX=/root/AirStack/install -if [ ! -z "$COLCON_CURRENT_PREFIX" ]; then - _colcon_prefix_chain_sh_COLCON_CURRENT_PREFIX="$COLCON_CURRENT_PREFIX" -elif [ ! -d "$_colcon_prefix_chain_sh_COLCON_CURRENT_PREFIX" ]; then - echo "The build time path \"$_colcon_prefix_chain_sh_COLCON_CURRENT_PREFIX\" doesn't exist. Either source a script for a different shell or set the environment variable \"COLCON_CURRENT_PREFIX\" explicitly." 1>&2 - unset _colcon_prefix_chain_sh_COLCON_CURRENT_PREFIX - return 1 -fi - -# function to source another script with conditional trace output -# first argument: the path of the script -_colcon_prefix_chain_sh_source_script() { - if [ -f "$1" ]; then - if [ -n "$COLCON_TRACE" ]; then - echo "# . \"$1\"" - fi - . "$1" - else - echo "not found: \"$1\"" 1>&2 - fi -} - -# source chained prefixes -# setting COLCON_CURRENT_PREFIX avoids relying on the build time prefix of the sourced script -COLCON_CURRENT_PREFIX="/opt/ros/humble" -_colcon_prefix_chain_sh_source_script "$COLCON_CURRENT_PREFIX/local_setup.sh" - -# setting COLCON_CURRENT_PREFIX avoids relying on the build time prefix of the sourced script -COLCON_CURRENT_PREFIX="/root/AirStack/ros_ws/install" -_colcon_prefix_chain_sh_source_script "$COLCON_CURRENT_PREFIX/local_setup.sh" - - -# source this prefix -# setting COLCON_CURRENT_PREFIX avoids relying on the build time prefix of the sourced script -COLCON_CURRENT_PREFIX="$_colcon_prefix_chain_sh_COLCON_CURRENT_PREFIX" -_colcon_prefix_chain_sh_source_script "$COLCON_CURRENT_PREFIX/local_setup.sh" - -unset _colcon_prefix_chain_sh_COLCON_CURRENT_PREFIX -unset _colcon_prefix_chain_sh_source_script -unset COLCON_CURRENT_PREFIX diff --git a/install/setup.zsh b/install/setup.zsh deleted file mode 100644 index 401aff6bf..000000000 --- a/install/setup.zsh +++ /dev/null @@ -1,34 +0,0 @@ -# generated from colcon_zsh/shell/template/prefix_chain.zsh.em - -# This script extends the environment with the environment of other prefix -# paths which were sourced when this file was generated as well as all packages -# contained in this prefix path. - -# function to source another script with conditional trace output -# first argument: the path of the script -_colcon_prefix_chain_zsh_source_script() { - if [ -f "$1" ]; then - if [ -n "$COLCON_TRACE" ]; then - echo "# . \"$1\"" - fi - . "$1" - else - echo "not found: \"$1\"" 1>&2 - fi -} - -# source chained prefixes -# setting COLCON_CURRENT_PREFIX avoids determining the prefix in the sourced script -COLCON_CURRENT_PREFIX="/opt/ros/humble" -_colcon_prefix_chain_zsh_source_script "$COLCON_CURRENT_PREFIX/local_setup.zsh" -# setting COLCON_CURRENT_PREFIX avoids determining the prefix in the sourced script -COLCON_CURRENT_PREFIX="/root/AirStack/ros_ws/install" -_colcon_prefix_chain_zsh_source_script "$COLCON_CURRENT_PREFIX/local_setup.zsh" - -# source this prefix -# setting COLCON_CURRENT_PREFIX avoids determining the prefix in the sourced script -COLCON_CURRENT_PREFIX="$(builtin cd -q "`dirname "${(%):-%N}"`" > /dev/null && pwd)" -_colcon_prefix_chain_zsh_source_script "$COLCON_CURRENT_PREFIX/local_setup.zsh" - -unset COLCON_CURRENT_PREFIX -unset _colcon_prefix_chain_zsh_source_script diff --git a/log/COLCON_IGNORE b/log/COLCON_IGNORE deleted file mode 100644 index e69de29bb..000000000 diff --git a/log/build_2024-07-25_13-05-11/disparity_expansion/command.log b/log/build_2024-07-25_13-05-11/disparity_expansion/command.log deleted file mode 100644 index 16ca00795..000000000 --- a/log/build_2024-07-25_13-05-11/disparity_expansion/command.log +++ /dev/null @@ -1,4 +0,0 @@ -Invoking command in '/root/AirStack/build/disparity_expansion': /usr/bin/cmake /root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion -DCMAKE_INSTALL_PREFIX=/root/AirStack/install/disparity_expansion -Invoked command in '/root/AirStack/build/disparity_expansion' returned '0': /usr/bin/cmake /root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion -DCMAKE_INSTALL_PREFIX=/root/AirStack/install/disparity_expansion -Invoking command in '/root/AirStack/build/disparity_expansion': /usr/bin/cmake --build /root/AirStack/build/disparity_expansion -- -j12 -l12 -Invoked command in '/root/AirStack/build/disparity_expansion' returned '2': /usr/bin/cmake --build /root/AirStack/build/disparity_expansion -- -j12 -l12 diff --git a/log/build_2024-07-25_13-05-11/disparity_expansion/stderr.log b/log/build_2024-07-25_13-05-11/disparity_expansion/stderr.log deleted file mode 100644 index 8d7b7d7c3..000000000 --- a/log/build_2024-07-25_13-05-11/disparity_expansion/stderr.log +++ /dev/null @@ -1,8 +0,0 @@ -** WARNING ** io features related to pcap will be disabled -/root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_conv.cpp:42:10: fatal error: pcl_ros/point_cloud.hpp: No such file or directory - 42 | #include  - | ^~~~~~~~~~~~~~~~~~~~~~~~~ -compilation terminated. -gmake[2]: *** [CMakeFiles/disparity_conv.dir/build.make:76: CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o] Error 1 -gmake[1]: *** [CMakeFiles/Makefile2:137: CMakeFiles/disparity_conv.dir/all] Error 2 -gmake: *** [Makefile:101: all] Error 2 diff --git a/log/build_2024-07-25_13-05-11/disparity_expansion/stdout.log b/log/build_2024-07-25_13-05-11/disparity_expansion/stdout.log deleted file mode 100644 index 40192dcb1..000000000 --- a/log/build_2024-07-25_13-05-11/disparity_expansion/stdout.log +++ /dev/null @@ -1,140 +0,0 @@ --- The C compiler identification is GNU 11.4.0 --- The CXX compiler identification is GNU 11.4.0 --- Detecting C compiler ABI info --- Detecting C compiler ABI info - done --- Check for working C compiler: /usr/bin/cc - skipped --- Detecting C compile features --- Detecting C compile features - done --- Detecting CXX compiler ABI info --- Detecting CXX compiler ABI info - done --- Check for working CXX compiler: /usr/bin/c++ - skipped --- Detecting CXX compile features --- Detecting CXX compile features - done --- Found ament_cmake: 1.3.9 (/opt/ros/humble/share/ament_cmake/cmake) --- Found Python3: /usr/bin/python3 (found version "3.10.12") found components: Interpreter --- Found rclcpp: 16.0.9 (/opt/ros/humble/share/rclcpp/cmake) --- Found rosidl_generator_c: 3.1.5 (/opt/ros/humble/share/rosidl_generator_c/cmake) --- Found rosidl_adapter: 3.1.5 (/opt/ros/humble/share/rosidl_adapter/cmake) --- Found rosidl_generator_cpp: 3.1.5 (/opt/ros/humble/share/rosidl_generator_cpp/cmake) --- Using all available rosidl_typesupport_c: rosidl_typesupport_fastrtps_c;rosidl_typesupport_introspection_c --- Using all available rosidl_typesupport_cpp: rosidl_typesupport_fastrtps_cpp;rosidl_typesupport_introspection_cpp --- Found rmw_implementation_cmake: 6.1.2 (/opt/ros/humble/share/rmw_implementation_cmake/cmake) --- Found rmw_fastrtps_cpp: 6.2.6 (/opt/ros/humble/share/rmw_fastrtps_cpp/cmake) --- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libcrypto.so (found version "3.0.2") --- Found FastRTPS: /opt/ros/humble/include --- Using RMW implementation 'rmw_fastrtps_cpp' as default --- Looking for pthread.h --- Looking for pthread.h - found --- Performing Test CMAKE_HAVE_LIBC_PTHREAD --- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success --- Found Threads: TRUE --- Found cv_bridge: 3.2.1 (/opt/ros/humble/share/cv_bridge/cmake) --- Found image_geometry: 3.2.1 (/opt/ros/humble/share/image_geometry/cmake) --- Found image_transport: 3.1.9 (/opt/ros/humble/share/image_transport/cmake) --- Found tf2: 0.25.7 (/opt/ros/humble/share/tf2/cmake) --- Found OpenCV: /usr (found version "4.5.4") --- Checking for module 'eigen3' --- Found eigen3, version 3.4.0 --- Found Eigen: /usr/include/eigen3 (Required is at least version "3.1") --- Eigen found (include: /usr/include/eigen3, version: 3.4.0) --- Found Boost: /usr/lib/x86_64-linux-gnu/cmake/Boost-1.74.0/BoostConfig.cmake (found suitable version "1.74.0", minimum required is "1.65.0") found components: system filesystem date_time iostreams serialization --- Checking for module 'flann' --- Found flann, version 1.9.1 --- Found FLANN: /usr/lib/x86_64-linux-gnu/libflann_cpp.so --- FLANN found (include: /usr/include, lib: /usr/lib/x86_64-linux-gnu/libflann_cpp.so) --- Found GLEW: /usr/lib/x86_64-linux-gnu/libGLEW.so --- Found OpenGL: /usr/lib/x86_64-linux-gnu/libOpenGL.so found components: OpenGL GLX --- Found MPI_C: /usr/lib/x86_64-linux-gnu/libmpi.so (found version "3.1") --- Found MPI: TRUE (found version "3.1") found components: C --- Found JsonCpp: /usr/lib/x86_64-linux-gnu/libjsoncpp.so (found suitable version "1.9.5", minimum required is "0.7.0") --- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.11") --- Found PNG: /usr/lib/x86_64-linux-gnu/libpng.so (found version "1.6.37") --- Found Eigen3: /usr/include/eigen3 (found version "3.4.0") --- Found X11: /usr/include --- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so --- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so - found --- Looking for gethostbyname --- Looking for gethostbyname - found --- Looking for connect --- Looking for connect - found --- Looking for remove --- Looking for remove - found --- Looking for shmat --- Looking for shmat - found --- Looking for IceConnectionNumber in ICE --- Looking for IceConnectionNumber in ICE - found --- Found EXPAT: /usr/lib/x86_64-linux-gnu/libexpat.so (found version "2.4.7") --- Found double-conversion: /usr/lib/x86_64-linux-gnu/libdouble-conversion.so --- Found LZ4: /usr/lib/x86_64-linux-gnu/liblz4.so (found version "1.9.3") --- Found LZMA: /usr/lib/x86_64-linux-gnu/liblzma.so (found version "5.2.5") --- Found JPEG: /usr/lib/x86_64-linux-gnu/libjpeg.so (found version "80") --- Found TIFF: /usr/lib/x86_64-linux-gnu/libtiff.so (found version "4.3.0") --- Found Freetype: /usr/lib/x86_64-linux-gnu/libfreetype.so (found version "2.11.1") --- Found utf8cpp: /usr/include/utf8cpp --- Checking for module 'libusb-1.0' --- Found libusb-1.0, version 1.0.25 --- Found libusb: /usr/lib/x86_64-linux-gnu/libusb-1.0.so --- Found OpenNI: /usr/lib/libOpenNI.so;libusb::libusb (found version "1.5.4.0") --- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) --- Found OpenNI2: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb (found version "2.2.0.33") --- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb) --- Eigen found (include: /usr/include/eigen3, version: 3.4.0) --- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) --- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb) --- Found Qhull version 8.0.2 --- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) --- looking for PCL_COMMON --- Found PCL_COMMON: /usr/lib/x86_64-linux-gnu/libpcl_common.so --- looking for PCL_KDTREE --- Found PCL_KDTREE: /usr/lib/x86_64-linux-gnu/libpcl_kdtree.so --- looking for PCL_OCTREE --- Found PCL_OCTREE: /usr/lib/x86_64-linux-gnu/libpcl_octree.so --- looking for PCL_SEARCH --- Found PCL_SEARCH: /usr/lib/x86_64-linux-gnu/libpcl_search.so --- looking for PCL_SAMPLE_CONSENSUS --- Found PCL_SAMPLE_CONSENSUS: /usr/lib/x86_64-linux-gnu/libpcl_sample_consensus.so --- looking for PCL_FILTERS --- Found PCL_FILTERS: /usr/lib/x86_64-linux-gnu/libpcl_filters.so --- looking for PCL_2D --- Found PCL_2D: /usr/include/pcl-1.12 --- looking for PCL_GEOMETRY --- Found PCL_GEOMETRY: /usr/include/pcl-1.12 --- looking for PCL_IO --- Found PCL_IO: /usr/lib/x86_64-linux-gnu/libpcl_io.so --- looking for PCL_FEATURES --- Found PCL_FEATURES: /usr/lib/x86_64-linux-gnu/libpcl_features.so --- looking for PCL_ML --- Found PCL_ML: /usr/lib/x86_64-linux-gnu/libpcl_ml.so --- looking for PCL_SEGMENTATION --- Found PCL_SEGMENTATION: /usr/lib/x86_64-linux-gnu/libpcl_segmentation.so --- looking for PCL_VISUALIZATION --- Found PCL_VISUALIZATION: /usr/lib/x86_64-linux-gnu/libpcl_visualization.so --- looking for PCL_SURFACE --- Found PCL_SURFACE: /usr/lib/x86_64-linux-gnu/libpcl_surface.so --- looking for PCL_REGISTRATION --- Found PCL_REGISTRATION: /usr/lib/x86_64-linux-gnu/libpcl_registration.so --- looking for PCL_KEYPOINTS --- Found PCL_KEYPOINTS: /usr/lib/x86_64-linux-gnu/libpcl_keypoints.so --- looking for PCL_TRACKING --- Found PCL_TRACKING: /usr/lib/x86_64-linux-gnu/libpcl_tracking.so --- looking for PCL_RECOGNITION --- Found PCL_RECOGNITION: /usr/lib/x86_64-linux-gnu/libpcl_recognition.so --- looking for PCL_STEREO --- Found PCL_STEREO: /usr/lib/x86_64-linux-gnu/libpcl_stereo.so --- looking for PCL_APPS --- Found PCL_APPS: /usr/lib/x86_64-linux-gnu/libpcl_apps.so --- looking for PCL_IN_HAND_SCANNER --- Found PCL_IN_HAND_SCANNER: /usr/include/pcl-1.12 --- looking for PCL_MODELER --- Found PCL_MODELER: /usr/include/pcl-1.12 --- looking for PCL_POINT_CLOUD_EDITOR --- Found PCL_POINT_CLOUD_EDITOR: /usr/include/pcl-1.12 --- looking for PCL_OUTOFCORE --- Found PCL_OUTOFCORE: /usr/lib/x86_64-linux-gnu/libpcl_outofcore.so --- looking for PCL_PEOPLE --- Found PCL_PEOPLE: /usr/lib/x86_64-linux-gnu/libpcl_people.so --- Found PCL: pcl_common;pcl_kdtree;pcl_octree;pcl_search;pcl_sample_consensus;pcl_filters;pcl_io;pcl_features;pcl_ml;pcl_segmentation;pcl_visualization;pcl_surface;pcl_registration;pcl_keypoints;pcl_tracking;pcl_recognition;pcl_stereo;pcl_apps;pcl_outofcore;pcl_people;Boost::system;Boost::filesystem;Boost::date_time;Boost::iostreams;Boost::serialization;/usr/lib/libOpenNI.so;libusb::libusb;/usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb;VTK::ChartsCore;VTK::CommonColor;VTK::CommonComputationalGeometry;VTK::CommonCore;VTK::CommonDataModel;VTK::CommonExecutionModel;VTK::CommonMath;VTK::CommonMisc;VTK::CommonTransforms;VTK::FiltersCore;VTK::FiltersExtraction;VTK::FiltersGeneral;VTK::FiltersGeometry;VTK::FiltersModeling;VTK::FiltersSources;VTK::ImagingCore;VTK::ImagingSources;VTK::InteractionImage;VTK::InteractionStyle;VTK::InteractionWidgets;VTK::IOCore;VTK::IOGeometry;VTK::IOImage;VTK::IOLegacy;VTK::IOPLY;VTK::RenderingAnnotation;VTK::RenderingCore;VTK::RenderingContext2D;VTK::RenderingLOD;VTK::RenderingFreeType;VTK::ViewsCore;VTK::ViewsContext2D;VTK::RenderingOpenGL2;VTK::GUISupportQt;FLANN::FLANN;QHULL::QHULL (Required is at least version "1.7") --- Configuring done --- Generating done --- Build files have been written to: /root/AirStack/build/disparity_expansion -[ 50%] Building CXX object CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o diff --git a/log/build_2024-07-25_13-05-11/disparity_expansion/stdout_stderr.log b/log/build_2024-07-25_13-05-11/disparity_expansion/stdout_stderr.log deleted file mode 100644 index 5c11dae7a..000000000 --- a/log/build_2024-07-25_13-05-11/disparity_expansion/stdout_stderr.log +++ /dev/null @@ -1,148 +0,0 @@ --- The C compiler identification is GNU 11.4.0 --- The CXX compiler identification is GNU 11.4.0 --- Detecting C compiler ABI info --- Detecting C compiler ABI info - done --- Check for working C compiler: /usr/bin/cc - skipped --- Detecting C compile features --- Detecting C compile features - done --- Detecting CXX compiler ABI info --- Detecting CXX compiler ABI info - done --- Check for working CXX compiler: /usr/bin/c++ - skipped --- Detecting CXX compile features --- Detecting CXX compile features - done --- Found ament_cmake: 1.3.9 (/opt/ros/humble/share/ament_cmake/cmake) --- Found Python3: /usr/bin/python3 (found version "3.10.12") found components: Interpreter --- Found rclcpp: 16.0.9 (/opt/ros/humble/share/rclcpp/cmake) --- Found rosidl_generator_c: 3.1.5 (/opt/ros/humble/share/rosidl_generator_c/cmake) --- Found rosidl_adapter: 3.1.5 (/opt/ros/humble/share/rosidl_adapter/cmake) --- Found rosidl_generator_cpp: 3.1.5 (/opt/ros/humble/share/rosidl_generator_cpp/cmake) --- Using all available rosidl_typesupport_c: rosidl_typesupport_fastrtps_c;rosidl_typesupport_introspection_c --- Using all available rosidl_typesupport_cpp: rosidl_typesupport_fastrtps_cpp;rosidl_typesupport_introspection_cpp --- Found rmw_implementation_cmake: 6.1.2 (/opt/ros/humble/share/rmw_implementation_cmake/cmake) --- Found rmw_fastrtps_cpp: 6.2.6 (/opt/ros/humble/share/rmw_fastrtps_cpp/cmake) --- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libcrypto.so (found version "3.0.2") --- Found FastRTPS: /opt/ros/humble/include --- Using RMW implementation 'rmw_fastrtps_cpp' as default --- Looking for pthread.h --- Looking for pthread.h - found --- Performing Test CMAKE_HAVE_LIBC_PTHREAD --- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success --- Found Threads: TRUE --- Found cv_bridge: 3.2.1 (/opt/ros/humble/share/cv_bridge/cmake) --- Found image_geometry: 3.2.1 (/opt/ros/humble/share/image_geometry/cmake) --- Found image_transport: 3.1.9 (/opt/ros/humble/share/image_transport/cmake) --- Found tf2: 0.25.7 (/opt/ros/humble/share/tf2/cmake) --- Found OpenCV: /usr (found version "4.5.4") --- Checking for module 'eigen3' --- Found eigen3, version 3.4.0 --- Found Eigen: /usr/include/eigen3 (Required is at least version "3.1") --- Eigen found (include: /usr/include/eigen3, version: 3.4.0) --- Found Boost: /usr/lib/x86_64-linux-gnu/cmake/Boost-1.74.0/BoostConfig.cmake (found suitable version "1.74.0", minimum required is "1.65.0") found components: system filesystem date_time iostreams serialization --- Checking for module 'flann' --- Found flann, version 1.9.1 --- Found FLANN: /usr/lib/x86_64-linux-gnu/libflann_cpp.so --- FLANN found (include: /usr/include, lib: /usr/lib/x86_64-linux-gnu/libflann_cpp.so) --- Found GLEW: /usr/lib/x86_64-linux-gnu/libGLEW.so --- Found OpenGL: /usr/lib/x86_64-linux-gnu/libOpenGL.so found components: OpenGL GLX --- Found MPI_C: /usr/lib/x86_64-linux-gnu/libmpi.so (found version "3.1") --- Found MPI: TRUE (found version "3.1") found components: C --- Found JsonCpp: /usr/lib/x86_64-linux-gnu/libjsoncpp.so (found suitable version "1.9.5", minimum required is "0.7.0") --- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.11") --- Found PNG: /usr/lib/x86_64-linux-gnu/libpng.so (found version "1.6.37") --- Found Eigen3: /usr/include/eigen3 (found version "3.4.0") --- Found X11: /usr/include --- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so --- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so - found --- Looking for gethostbyname --- Looking for gethostbyname - found --- Looking for connect --- Looking for connect - found --- Looking for remove --- Looking for remove - found --- Looking for shmat --- Looking for shmat - found --- Looking for IceConnectionNumber in ICE --- Looking for IceConnectionNumber in ICE - found --- Found EXPAT: /usr/lib/x86_64-linux-gnu/libexpat.so (found version "2.4.7") --- Found double-conversion: /usr/lib/x86_64-linux-gnu/libdouble-conversion.so --- Found LZ4: /usr/lib/x86_64-linux-gnu/liblz4.so (found version "1.9.3") --- Found LZMA: /usr/lib/x86_64-linux-gnu/liblzma.so (found version "5.2.5") --- Found JPEG: /usr/lib/x86_64-linux-gnu/libjpeg.so (found version "80") --- Found TIFF: /usr/lib/x86_64-linux-gnu/libtiff.so (found version "4.3.0") --- Found Freetype: /usr/lib/x86_64-linux-gnu/libfreetype.so (found version "2.11.1") --- Found utf8cpp: /usr/include/utf8cpp --- Checking for module 'libusb-1.0' --- Found libusb-1.0, version 1.0.25 --- Found libusb: /usr/lib/x86_64-linux-gnu/libusb-1.0.so --- Found OpenNI: /usr/lib/libOpenNI.so;libusb::libusb (found version "1.5.4.0") --- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) --- Found OpenNI2: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb (found version "2.2.0.33") --- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb) -** WARNING ** io features related to pcap will be disabled --- Eigen found (include: /usr/include/eigen3, version: 3.4.0) --- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) --- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb) --- Found Qhull version 8.0.2 --- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) --- looking for PCL_COMMON --- Found PCL_COMMON: /usr/lib/x86_64-linux-gnu/libpcl_common.so --- looking for PCL_KDTREE --- Found PCL_KDTREE: /usr/lib/x86_64-linux-gnu/libpcl_kdtree.so --- looking for PCL_OCTREE --- Found PCL_OCTREE: /usr/lib/x86_64-linux-gnu/libpcl_octree.so --- looking for PCL_SEARCH --- Found PCL_SEARCH: /usr/lib/x86_64-linux-gnu/libpcl_search.so --- looking for PCL_SAMPLE_CONSENSUS --- Found PCL_SAMPLE_CONSENSUS: /usr/lib/x86_64-linux-gnu/libpcl_sample_consensus.so --- looking for PCL_FILTERS --- Found PCL_FILTERS: /usr/lib/x86_64-linux-gnu/libpcl_filters.so --- looking for PCL_2D --- Found PCL_2D: /usr/include/pcl-1.12 --- looking for PCL_GEOMETRY --- Found PCL_GEOMETRY: /usr/include/pcl-1.12 --- looking for PCL_IO --- Found PCL_IO: /usr/lib/x86_64-linux-gnu/libpcl_io.so --- looking for PCL_FEATURES --- Found PCL_FEATURES: /usr/lib/x86_64-linux-gnu/libpcl_features.so --- looking for PCL_ML --- Found PCL_ML: /usr/lib/x86_64-linux-gnu/libpcl_ml.so --- looking for PCL_SEGMENTATION --- Found PCL_SEGMENTATION: /usr/lib/x86_64-linux-gnu/libpcl_segmentation.so --- looking for PCL_VISUALIZATION --- Found PCL_VISUALIZATION: /usr/lib/x86_64-linux-gnu/libpcl_visualization.so --- looking for PCL_SURFACE --- Found PCL_SURFACE: /usr/lib/x86_64-linux-gnu/libpcl_surface.so --- looking for PCL_REGISTRATION --- Found PCL_REGISTRATION: /usr/lib/x86_64-linux-gnu/libpcl_registration.so --- looking for PCL_KEYPOINTS --- Found PCL_KEYPOINTS: /usr/lib/x86_64-linux-gnu/libpcl_keypoints.so --- looking for PCL_TRACKING --- Found PCL_TRACKING: /usr/lib/x86_64-linux-gnu/libpcl_tracking.so --- looking for PCL_RECOGNITION --- Found PCL_RECOGNITION: /usr/lib/x86_64-linux-gnu/libpcl_recognition.so --- looking for PCL_STEREO --- Found PCL_STEREO: /usr/lib/x86_64-linux-gnu/libpcl_stereo.so --- looking for PCL_APPS --- Found PCL_APPS: /usr/lib/x86_64-linux-gnu/libpcl_apps.so --- looking for PCL_IN_HAND_SCANNER --- Found PCL_IN_HAND_SCANNER: /usr/include/pcl-1.12 --- looking for PCL_MODELER --- Found PCL_MODELER: /usr/include/pcl-1.12 --- looking for PCL_POINT_CLOUD_EDITOR --- Found PCL_POINT_CLOUD_EDITOR: /usr/include/pcl-1.12 --- looking for PCL_OUTOFCORE --- Found PCL_OUTOFCORE: /usr/lib/x86_64-linux-gnu/libpcl_outofcore.so --- looking for PCL_PEOPLE --- Found PCL_PEOPLE: /usr/lib/x86_64-linux-gnu/libpcl_people.so --- Found PCL: pcl_common;pcl_kdtree;pcl_octree;pcl_search;pcl_sample_consensus;pcl_filters;pcl_io;pcl_features;pcl_ml;pcl_segmentation;pcl_visualization;pcl_surface;pcl_registration;pcl_keypoints;pcl_tracking;pcl_recognition;pcl_stereo;pcl_apps;pcl_outofcore;pcl_people;Boost::system;Boost::filesystem;Boost::date_time;Boost::iostreams;Boost::serialization;/usr/lib/libOpenNI.so;libusb::libusb;/usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb;VTK::ChartsCore;VTK::CommonColor;VTK::CommonComputationalGeometry;VTK::CommonCore;VTK::CommonDataModel;VTK::CommonExecutionModel;VTK::CommonMath;VTK::CommonMisc;VTK::CommonTransforms;VTK::FiltersCore;VTK::FiltersExtraction;VTK::FiltersGeneral;VTK::FiltersGeometry;VTK::FiltersModeling;VTK::FiltersSources;VTK::ImagingCore;VTK::ImagingSources;VTK::InteractionImage;VTK::InteractionStyle;VTK::InteractionWidgets;VTK::IOCore;VTK::IOGeometry;VTK::IOImage;VTK::IOLegacy;VTK::IOPLY;VTK::RenderingAnnotation;VTK::RenderingCore;VTK::RenderingContext2D;VTK::RenderingLOD;VTK::RenderingFreeType;VTK::ViewsCore;VTK::ViewsContext2D;VTK::RenderingOpenGL2;VTK::GUISupportQt;FLANN::FLANN;QHULL::QHULL (Required is at least version "1.7") --- Configuring done --- Generating done --- Build files have been written to: /root/AirStack/build/disparity_expansion -[ 50%] Building CXX object CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o -/root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_conv.cpp:42:10: fatal error: pcl_ros/point_cloud.hpp: No such file or directory - 42 | #include  - | ^~~~~~~~~~~~~~~~~~~~~~~~~ -compilation terminated. -gmake[2]: *** [CMakeFiles/disparity_conv.dir/build.make:76: CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o] Error 1 -gmake[1]: *** [CMakeFiles/Makefile2:137: CMakeFiles/disparity_conv.dir/all] Error 2 -gmake: *** [Makefile:101: all] Error 2 diff --git a/log/build_2024-07-25_13-05-11/disparity_expansion/streams.log b/log/build_2024-07-25_13-05-11/disparity_expansion/streams.log deleted file mode 100644 index d7bfd5aac..000000000 --- a/log/build_2024-07-25_13-05-11/disparity_expansion/streams.log +++ /dev/null @@ -1,152 +0,0 @@ -[0.009s] Invoking command in '/root/AirStack/build/disparity_expansion': /usr/bin/cmake /root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion -DCMAKE_INSTALL_PREFIX=/root/AirStack/install/disparity_expansion -[0.076s] -- The C compiler identification is GNU 11.4.0 -[0.142s] -- The CXX compiler identification is GNU 11.4.0 -[0.152s] -- Detecting C compiler ABI info -[0.232s] -- Detecting C compiler ABI info - done -[0.240s] -- Check for working C compiler: /usr/bin/cc - skipped -[0.241s] -- Detecting C compile features -[0.241s] -- Detecting C compile features - done -[0.245s] -- Detecting CXX compiler ABI info -[0.335s] -- Detecting CXX compiler ABI info - done -[0.344s] -- Check for working CXX compiler: /usr/bin/c++ - skipped -[0.344s] -- Detecting CXX compile features -[0.345s] -- Detecting CXX compile features - done -[0.349s] -- Found ament_cmake: 1.3.9 (/opt/ros/humble/share/ament_cmake/cmake) -[0.506s] -- Found Python3: /usr/bin/python3 (found version "3.10.12") found components: Interpreter -[0.624s] -- Found rclcpp: 16.0.9 (/opt/ros/humble/share/rclcpp/cmake) -[0.681s] -- Found rosidl_generator_c: 3.1.5 (/opt/ros/humble/share/rosidl_generator_c/cmake) -[0.689s] -- Found rosidl_adapter: 3.1.5 (/opt/ros/humble/share/rosidl_adapter/cmake) -[0.700s] -- Found rosidl_generator_cpp: 3.1.5 (/opt/ros/humble/share/rosidl_generator_cpp/cmake) -[0.716s] -- Using all available rosidl_typesupport_c: rosidl_typesupport_fastrtps_c;rosidl_typesupport_introspection_c -[0.738s] -- Using all available rosidl_typesupport_cpp: rosidl_typesupport_fastrtps_cpp;rosidl_typesupport_introspection_cpp -[0.814s] -- Found rmw_implementation_cmake: 6.1.2 (/opt/ros/humble/share/rmw_implementation_cmake/cmake) -[0.819s] -- Found rmw_fastrtps_cpp: 6.2.6 (/opt/ros/humble/share/rmw_fastrtps_cpp/cmake) -[0.978s] -- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libcrypto.so (found version "3.0.2") -[1.023s] -- Found FastRTPS: /opt/ros/humble/include -[1.098s] -- Using RMW implementation 'rmw_fastrtps_cpp' as default -[1.115s] -- Looking for pthread.h -[1.196s] -- Looking for pthread.h - found -[1.197s] -- Performing Test CMAKE_HAVE_LIBC_PTHREAD -[1.299s] -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success -[1.300s] -- Found Threads: TRUE -[1.448s] -- Found cv_bridge: 3.2.1 (/opt/ros/humble/share/cv_bridge/cmake) -[1.576s] -- Found image_geometry: 3.2.1 (/opt/ros/humble/share/image_geometry/cmake) -[1.585s] -- Found image_transport: 3.1.9 (/opt/ros/humble/share/image_transport/cmake) -[1.651s] -- Found tf2: 0.25.7 (/opt/ros/humble/share/tf2/cmake) -[1.660s] -- Found OpenCV: /usr (found version "4.5.4") -[1.682s] -- Checking for module 'eigen3' -[1.707s] -- Found eigen3, version 3.4.0 -[1.769s] -- Found Eigen: /usr/include/eigen3 (Required is at least version "3.1") -[1.769s] -- Eigen found (include: /usr/include/eigen3, version: 3.4.0) -[1.795s] -- Found Boost: /usr/lib/x86_64-linux-gnu/cmake/Boost-1.74.0/BoostConfig.cmake (found suitable version "1.74.0", minimum required is "1.65.0") found components: system filesystem date_time iostreams serialization -[1.822s] -- Checking for module 'flann' -[1.847s] -- Found flann, version 1.9.1 -[1.916s] -- Found FLANN: /usr/lib/x86_64-linux-gnu/libflann_cpp.so -[1.916s] -- FLANN found (include: /usr/include, lib: /usr/lib/x86_64-linux-gnu/libflann_cpp.so) -[1.948s] -- Found GLEW: /usr/lib/x86_64-linux-gnu/libGLEW.so -[1.952s] -- Found OpenGL: /usr/lib/x86_64-linux-gnu/libOpenGL.so found components: OpenGL GLX -[2.147s] -- Found MPI_C: /usr/lib/x86_64-linux-gnu/libmpi.so (found version "3.1") -[2.148s] -- Found MPI: TRUE (found version "3.1") found components: C -[2.151s] -- Found JsonCpp: /usr/lib/x86_64-linux-gnu/libjsoncpp.so (found suitable version "1.9.5", minimum required is "0.7.0") -[2.159s] -- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.11") -[2.172s] -- Found PNG: /usr/lib/x86_64-linux-gnu/libpng.so (found version "1.6.37") -[2.182s] -- Found Eigen3: /usr/include/eigen3 (found version "3.4.0") -[2.311s] -- Found X11: /usr/include -[2.311s] -- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so -[2.413s] -- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so - found -[2.414s] -- Looking for gethostbyname -[2.503s] -- Looking for gethostbyname - found -[2.503s] -- Looking for connect -[2.592s] -- Looking for connect - found -[2.592s] -- Looking for remove -[2.697s] -- Looking for remove - found -[2.697s] -- Looking for shmat -[2.794s] -- Looking for shmat - found -[2.795s] -- Looking for IceConnectionNumber in ICE -[2.888s] -- Looking for IceConnectionNumber in ICE - found -[3.020s] -- Found EXPAT: /usr/lib/x86_64-linux-gnu/libexpat.so (found version "2.4.7") -[3.022s] -- Found double-conversion: /usr/lib/x86_64-linux-gnu/libdouble-conversion.so -[3.024s] -- Found LZ4: /usr/lib/x86_64-linux-gnu/liblz4.so (found version "1.9.3") -[3.025s] -- Found LZMA: /usr/lib/x86_64-linux-gnu/liblzma.so (found version "5.2.5") -[3.037s] -- Found JPEG: /usr/lib/x86_64-linux-gnu/libjpeg.so (found version "80") -[3.040s] -- Found TIFF: /usr/lib/x86_64-linux-gnu/libtiff.so (found version "4.3.0") -[3.043s] -- Found Freetype: /usr/lib/x86_64-linux-gnu/libfreetype.so (found version "2.11.1") -[3.048s] -- Found utf8cpp: /usr/include/utf8cpp -[3.171s] -- Checking for module 'libusb-1.0' -[3.198s] -- Found libusb-1.0, version 1.0.25 -[3.265s] -- Found libusb: /usr/lib/x86_64-linux-gnu/libusb-1.0.so -[3.267s] -- Found OpenNI: /usr/lib/libOpenNI.so;libusb::libusb (found version "1.5.4.0") -[3.267s] -- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) -[3.372s] -- Found OpenNI2: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb (found version "2.2.0.33") -[3.372s] -- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb) -[3.372s] ** WARNING ** io features related to pcap will be disabled -[3.534s] -- Eigen found (include: /usr/include/eigen3, version: 3.4.0) -[3.544s] -- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) -[3.555s] -- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb) -[3.712s] -- Found Qhull version 8.0.2 -[3.870s] -- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) -[4.023s] -- looking for PCL_COMMON -[4.024s] -- Found PCL_COMMON: /usr/lib/x86_64-linux-gnu/libpcl_common.so -[4.024s] -- looking for PCL_KDTREE -[4.024s] -- Found PCL_KDTREE: /usr/lib/x86_64-linux-gnu/libpcl_kdtree.so -[4.024s] -- looking for PCL_OCTREE -[4.025s] -- Found PCL_OCTREE: /usr/lib/x86_64-linux-gnu/libpcl_octree.so -[4.025s] -- looking for PCL_SEARCH -[4.026s] -- Found PCL_SEARCH: /usr/lib/x86_64-linux-gnu/libpcl_search.so -[4.026s] -- looking for PCL_SAMPLE_CONSENSUS -[4.026s] -- Found PCL_SAMPLE_CONSENSUS: /usr/lib/x86_64-linux-gnu/libpcl_sample_consensus.so -[4.026s] -- looking for PCL_FILTERS -[4.027s] -- Found PCL_FILTERS: /usr/lib/x86_64-linux-gnu/libpcl_filters.so -[4.027s] -- looking for PCL_2D -[4.027s] -- Found PCL_2D: /usr/include/pcl-1.12 -[4.027s] -- looking for PCL_GEOMETRY -[4.027s] -- Found PCL_GEOMETRY: /usr/include/pcl-1.12 -[4.027s] -- looking for PCL_IO -[4.028s] -- Found PCL_IO: /usr/lib/x86_64-linux-gnu/libpcl_io.so -[4.028s] -- looking for PCL_FEATURES -[4.029s] -- Found PCL_FEATURES: /usr/lib/x86_64-linux-gnu/libpcl_features.so -[4.029s] -- looking for PCL_ML -[4.029s] -- Found PCL_ML: /usr/lib/x86_64-linux-gnu/libpcl_ml.so -[4.029s] -- looking for PCL_SEGMENTATION -[4.030s] -- Found PCL_SEGMENTATION: /usr/lib/x86_64-linux-gnu/libpcl_segmentation.so -[4.030s] -- looking for PCL_VISUALIZATION -[4.031s] -- Found PCL_VISUALIZATION: /usr/lib/x86_64-linux-gnu/libpcl_visualization.so -[4.031s] -- looking for PCL_SURFACE -[4.031s] -- Found PCL_SURFACE: /usr/lib/x86_64-linux-gnu/libpcl_surface.so -[4.031s] -- looking for PCL_REGISTRATION -[4.032s] -- Found PCL_REGISTRATION: /usr/lib/x86_64-linux-gnu/libpcl_registration.so -[4.032s] -- looking for PCL_KEYPOINTS -[4.033s] -- Found PCL_KEYPOINTS: /usr/lib/x86_64-linux-gnu/libpcl_keypoints.so -[4.033s] -- looking for PCL_TRACKING -[4.033s] -- Found PCL_TRACKING: /usr/lib/x86_64-linux-gnu/libpcl_tracking.so -[4.033s] -- looking for PCL_RECOGNITION -[4.034s] -- Found PCL_RECOGNITION: /usr/lib/x86_64-linux-gnu/libpcl_recognition.so -[4.034s] -- looking for PCL_STEREO -[4.035s] -- Found PCL_STEREO: /usr/lib/x86_64-linux-gnu/libpcl_stereo.so -[4.035s] -- looking for PCL_APPS -[4.035s] -- Found PCL_APPS: /usr/lib/x86_64-linux-gnu/libpcl_apps.so -[4.036s] -- looking for PCL_IN_HAND_SCANNER -[4.036s] -- Found PCL_IN_HAND_SCANNER: /usr/include/pcl-1.12 -[4.036s] -- looking for PCL_MODELER -[4.036s] -- Found PCL_MODELER: /usr/include/pcl-1.12 -[4.036s] -- looking for PCL_POINT_CLOUD_EDITOR -[4.036s] -- Found PCL_POINT_CLOUD_EDITOR: /usr/include/pcl-1.12 -[4.037s] -- looking for PCL_OUTOFCORE -[4.037s] -- Found PCL_OUTOFCORE: /usr/lib/x86_64-linux-gnu/libpcl_outofcore.so -[4.037s] -- looking for PCL_PEOPLE -[4.038s] -- Found PCL_PEOPLE: /usr/lib/x86_64-linux-gnu/libpcl_people.so -[4.038s] -- Found PCL: pcl_common;pcl_kdtree;pcl_octree;pcl_search;pcl_sample_consensus;pcl_filters;pcl_io;pcl_features;pcl_ml;pcl_segmentation;pcl_visualization;pcl_surface;pcl_registration;pcl_keypoints;pcl_tracking;pcl_recognition;pcl_stereo;pcl_apps;pcl_outofcore;pcl_people;Boost::system;Boost::filesystem;Boost::date_time;Boost::iostreams;Boost::serialization;/usr/lib/libOpenNI.so;libusb::libusb;/usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb;VTK::ChartsCore;VTK::CommonColor;VTK::CommonComputationalGeometry;VTK::CommonCore;VTK::CommonDataModel;VTK::CommonExecutionModel;VTK::CommonMath;VTK::CommonMisc;VTK::CommonTransforms;VTK::FiltersCore;VTK::FiltersExtraction;VTK::FiltersGeneral;VTK::FiltersGeometry;VTK::FiltersModeling;VTK::FiltersSources;VTK::ImagingCore;VTK::ImagingSources;VTK::InteractionImage;VTK::InteractionStyle;VTK::InteractionWidgets;VTK::IOCore;VTK::IOGeometry;VTK::IOImage;VTK::IOLegacy;VTK::IOPLY;VTK::RenderingAnnotation;VTK::RenderingCore;VTK::RenderingContext2D;VTK::RenderingLOD;VTK::RenderingFreeType;VTK::ViewsCore;VTK::ViewsContext2D;VTK::RenderingOpenGL2;VTK::GUISupportQt;FLANN::FLANN;QHULL::QHULL (Required is at least version "1.7") -[4.042s] -- Configuring done -[4.061s] -- Generating done -[4.063s] -- Build files have been written to: /root/AirStack/build/disparity_expansion -[4.074s] Invoked command in '/root/AirStack/build/disparity_expansion' returned '0': /usr/bin/cmake /root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion -DCMAKE_INSTALL_PREFIX=/root/AirStack/install/disparity_expansion -[4.077s] Invoking command in '/root/AirStack/build/disparity_expansion': /usr/bin/cmake --build /root/AirStack/build/disparity_expansion -- -j12 -l12 -[4.144s] [ 50%] Building CXX object CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o -[4.457s] /root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_conv.cpp:42:10: fatal error: pcl_ros/point_cloud.hpp: No such file or directory -[4.457s] 42 | #include  -[4.458s] | ^~~~~~~~~~~~~~~~~~~~~~~~~ -[4.458s] compilation terminated. -[4.467s] gmake[2]: *** [CMakeFiles/disparity_conv.dir/build.make:76: CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o] Error 1 -[4.467s] gmake[1]: *** [CMakeFiles/Makefile2:137: CMakeFiles/disparity_conv.dir/all] Error 2 -[4.467s] gmake: *** [Makefile:101: all] Error 2 -[4.471s] Invoked command in '/root/AirStack/build/disparity_expansion' returned '2': /usr/bin/cmake --build /root/AirStack/build/disparity_expansion -- -j12 -l12 diff --git a/log/build_2024-07-25_13-05-11/events.log b/log/build_2024-07-25_13-05-11/events.log deleted file mode 100644 index ac66b0ea5..000000000 --- a/log/build_2024-07-25_13-05-11/events.log +++ /dev/null @@ -1,218 +0,0 @@ -[0.000000] (-) TimerEvent: {} -[0.000223] (-) JobUnselected: {'identifier': 'controls_bringup'} -[0.000302] (-) JobUnselected: {'identifier': 'dronekit'} -[0.000332] (-) JobUnselected: {'identifier': 'mav_comm'} -[0.000357] (-) JobUnselected: {'identifier': 'mav_msgs'} -[0.000395] (-) JobUnselected: {'identifier': 'mav_planning_msgs'} -[0.000476] (-) JobUnselected: {'identifier': 'mav_state_machine_msgs'} -[0.000516] (-) JobUnselected: {'identifier': 'mav_system_msgs'} -[0.000564] (-) JobUnselected: {'identifier': 'mavros_interface'} -[0.000611] (-) JobUnselected: {'identifier': 'px4_msgs'} -[0.000651] (-) JobUnselected: {'identifier': 'px4_ros_com'} -[0.000726] (-) JobUnselected: {'identifier': 'robot_bringup'} -[0.000768] (-) JobUnselected: {'identifier': 'robot_interface'} -[0.000828] (-) JobUnselected: {'identifier': 'vdb_mapping'} -[0.000871] (-) JobUnselected: {'identifier': 'vdb_mapping_interfaces'} -[0.000896] (-) JobUnselected: {'identifier': 'vdb_mapping_ros2'} -[0.000927] (disparity_expansion) JobQueued: {'identifier': 'disparity_expansion', 'dependencies': OrderedDict()} -[0.000957] (disparity_expansion) JobStarted: {'identifier': 'disparity_expansion'} -[0.008960] (disparity_expansion) JobProgress: {'identifier': 'disparity_expansion', 'progress': 'cmake'} -[0.009203] (disparity_expansion) Command: {'cmd': ['/usr/bin/cmake', '/root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion', '-DCMAKE_INSTALL_PREFIX=/root/AirStack/install/disparity_expansion'], 'cwd': '/root/AirStack/build/disparity_expansion', 'env': OrderedDict([('LESSOPEN', '| /usr/bin/lesspipe %s'), ('HOSTNAME', 'wildfire-desktop'), ('ISAACSIM_PATH', '/isaac-sim'), ('SHLVL', '1'), ('LD_LIBRARY_PATH', '/root/AirStack/ros_ws/install/vdb_mapping_interfaces/lib:/root/AirStack/ros_ws/install/vdb_mapping/lib:/root/AirStack/ros_ws/install/mavros_interface/lib:/root/AirStack/ros_ws/install/robot_interface/lib:/root/AirStack/ros_ws/install/px4_ros_com/lib:/root/AirStack/ros_ws/install/px4_msgs/lib:/root/AirStack/ros_ws/install/mav_system_msgs/lib:/root/AirStack/ros_ws/install/mav_state_machine_msgs/lib:/root/AirStack/ros_ws/install/mav_planning_msgs/lib:/root/AirStack/ros_ws/install/mav_msgs/lib:/opt/ros/humble/opt/rviz_ogre_vendor/lib:/opt/ros/humble/lib/x86_64-linux-gnu:/opt/ros/humble/lib'), ('HOME', '/root'), ('MIN_DRIVER_VERSION', '525.60.11'), ('ROS_PYTHON_VERSION', '3'), ('LC_CTYPE', 'C.UTF-8'), ('COLCON_PREFIX_PATH', '/root/AirStack/ros_ws/install'), ('ROS_DISTRO', 'humble'), ('_', '/usr/bin/colcon'), ('ROS_VERSION', '2'), ('PKG_CONFIG_PATH', '/root/AirStack/ros_ws/install/vdb_mapping/lib/x86_64-linux-gnu/pkgconfig:/root/AirStack/ros_ws/install/vdb_mapping/lib/pkgconfig'), ('NVIDIA_DRIVER_CAPABILITIES', 'all'), ('TERM', 'xterm'), ('ROS_LOCALHOST_ONLY', '0'), ('PATH', '/opt/ros/humble/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'), ('VK_DRIVER_FILES', '/etc/vulkan/icd.d/nvidia_icd.json'), ('DISPLAY', ':1'), ('LS_COLORS', 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:'), ('AMENT_PREFIX_PATH', '/root/AirStack/ros_ws/install/vdb_mapping_ros2:/root/AirStack/ros_ws/install/vdb_mapping_interfaces:/root/AirStack/ros_ws/install/mavros_interface:/root/AirStack/ros_ws/install/robot_interface:/root/AirStack/ros_ws/install/robot_bringup:/root/AirStack/ros_ws/install/px4_ros_com:/root/AirStack/ros_ws/install/px4_msgs:/root/AirStack/ros_ws/install/mav_comm:/root/AirStack/ros_ws/install/mav_system_msgs:/root/AirStack/ros_ws/install/mav_state_machine_msgs:/root/AirStack/ros_ws/install/mav_planning_msgs:/root/AirStack/ros_ws/install/mav_msgs:/root/AirStack/ros_ws/install/controls_bringup:/opt/ros/humble'), ('OMNI_PASS', 'admin'), ('LESSCLOSE', '/usr/bin/lesspipe %s %s'), ('ACCEPT_EULA', 'Y'), ('CMAKE_MODULE_PATH', '/root/AirStack/ros_ws/install/vdb_mapping/lib/cmake/vdb_mapping'), ('OMNI_SERVER', 'http://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/4.0'), ('PWD', '/root/AirStack/build/disparity_expansion'), ('OMNI_USER', 'admin'), ('PYTHONPATH', '/root/AirStack/ros_ws/install/vdb_mapping_interfaces/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/px4_ros_com/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/px4_msgs/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/mav_planning_msgs/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/mav_msgs/local/lib/python3.10/dist-packages:/opt/ros/humble/lib/python3.10/site-packages:/opt/ros/humble/local/lib/python3.10/dist-packages'), ('NVIDIA_VISIBLE_DEVICES', 'all'), ('TZ', 'America/New_York'), ('COLCON', '1'), ('CMAKE_PREFIX_PATH', '/root/AirStack/ros_ws/install/vdb_mapping_ros2:/root/AirStack/ros_ws/install/vdb_mapping_interfaces:/root/AirStack/ros_ws/install/vdb_mapping:/root/AirStack/ros_ws/install/mavros_interface:/root/AirStack/ros_ws/install/robot_interface:/root/AirStack/ros_ws/install/robot_bringup:/root/AirStack/ros_ws/install/px4_ros_com:/root/AirStack/ros_ws/install/px4_msgs:/root/AirStack/ros_ws/install/mav_comm:/root/AirStack/ros_ws/install/mav_system_msgs:/root/AirStack/ros_ws/install/mav_state_machine_msgs:/root/AirStack/ros_ws/install/mav_planning_msgs:/root/AirStack/ros_ws/install/mav_msgs:/root/AirStack/ros_ws/install/controls_bringup')]), 'shell': False} -[0.076923] (disparity_expansion) StdoutLine: {'line': b'-- The C compiler identification is GNU 11.4.0\n'} -[0.099504] (-) TimerEvent: {} -[0.142553] (disparity_expansion) StdoutLine: {'line': b'-- The CXX compiler identification is GNU 11.4.0\n'} -[0.152843] (disparity_expansion) StdoutLine: {'line': b'-- Detecting C compiler ABI info\n'} -[0.199578] (-) TimerEvent: {} -[0.232811] (disparity_expansion) StdoutLine: {'line': b'-- Detecting C compiler ABI info - done\n'} -[0.241310] (disparity_expansion) StdoutLine: {'line': b'-- Check for working C compiler: /usr/bin/cc - skipped\n'} -[0.241637] (disparity_expansion) StdoutLine: {'line': b'-- Detecting C compile features\n'} -[0.242099] (disparity_expansion) StdoutLine: {'line': b'-- Detecting C compile features - done\n'} -[0.245893] (disparity_expansion) StdoutLine: {'line': b'-- Detecting CXX compiler ABI info\n'} -[0.299666] (-) TimerEvent: {} -[0.335719] (disparity_expansion) StdoutLine: {'line': b'-- Detecting CXX compiler ABI info - done\n'} -[0.345121] (disparity_expansion) StdoutLine: {'line': b'-- Check for working CXX compiler: /usr/bin/c++ - skipped\n'} -[0.345351] (disparity_expansion) StdoutLine: {'line': b'-- Detecting CXX compile features\n'} -[0.345723] (disparity_expansion) StdoutLine: {'line': b'-- Detecting CXX compile features - done\n'} -[0.349760] (disparity_expansion) StdoutLine: {'line': b'-- Found ament_cmake: 1.3.9 (/opt/ros/humble/share/ament_cmake/cmake)\n'} -[0.399741] (-) TimerEvent: {} -[0.499983] (-) TimerEvent: {} -[0.507207] (disparity_expansion) StdoutLine: {'line': b'-- Found Python3: /usr/bin/python3 (found version "3.10.12") found components: Interpreter \n'} -[0.600054] (-) TimerEvent: {} -[0.624519] (disparity_expansion) StdoutLine: {'line': b'-- Found rclcpp: 16.0.9 (/opt/ros/humble/share/rclcpp/cmake)\n'} -[0.682130] (disparity_expansion) StdoutLine: {'line': b'-- Found rosidl_generator_c: 3.1.5 (/opt/ros/humble/share/rosidl_generator_c/cmake)\n'} -[0.690014] (disparity_expansion) StdoutLine: {'line': b'-- Found rosidl_adapter: 3.1.5 (/opt/ros/humble/share/rosidl_adapter/cmake)\n'} -[0.700125] (-) TimerEvent: {} -[0.700581] (disparity_expansion) StdoutLine: {'line': b'-- Found rosidl_generator_cpp: 3.1.5 (/opt/ros/humble/share/rosidl_generator_cpp/cmake)\n'} -[0.716634] (disparity_expansion) StdoutLine: {'line': b'-- Using all available rosidl_typesupport_c: rosidl_typesupport_fastrtps_c;rosidl_typesupport_introspection_c\n'} -[0.738694] (disparity_expansion) StdoutLine: {'line': b'-- Using all available rosidl_typesupport_cpp: rosidl_typesupport_fastrtps_cpp;rosidl_typesupport_introspection_cpp\n'} -[0.800202] (-) TimerEvent: {} -[0.815354] (disparity_expansion) StdoutLine: {'line': b'-- Found rmw_implementation_cmake: 6.1.2 (/opt/ros/humble/share/rmw_implementation_cmake/cmake)\n'} -[0.819530] (disparity_expansion) StdoutLine: {'line': b'-- Found rmw_fastrtps_cpp: 6.2.6 (/opt/ros/humble/share/rmw_fastrtps_cpp/cmake)\n'} -[0.900305] (-) TimerEvent: {} -[0.978649] (disparity_expansion) StdoutLine: {'line': b'-- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libcrypto.so (found version "3.0.2") \n'} -[1.000380] (-) TimerEvent: {} -[1.023418] (disparity_expansion) StdoutLine: {'line': b'-- Found FastRTPS: /opt/ros/humble/include \n'} -[1.098447] (disparity_expansion) StdoutLine: {'line': b"-- Using RMW implementation 'rmw_fastrtps_cpp' as default\n"} -[1.100456] (-) TimerEvent: {} -[1.115495] (disparity_expansion) StdoutLine: {'line': b'-- Looking for pthread.h\n'} -[1.197278] (disparity_expansion) StdoutLine: {'line': b'-- Looking for pthread.h - found\n'} -[1.197928] (disparity_expansion) StdoutLine: {'line': b'-- Performing Test CMAKE_HAVE_LIBC_PTHREAD\n'} -[1.200523] (-) TimerEvent: {} -[1.299611] (disparity_expansion) StdoutLine: {'line': b'-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success\n'} -[1.300602] (-) TimerEvent: {} -[1.301255] (disparity_expansion) StdoutLine: {'line': b'-- Found Threads: TRUE \n'} -[1.400685] (-) TimerEvent: {} -[1.448851] (disparity_expansion) StdoutLine: {'line': b'-- Found cv_bridge: 3.2.1 (/opt/ros/humble/share/cv_bridge/cmake)\n'} -[1.500941] (-) TimerEvent: {} -[1.577304] (disparity_expansion) StdoutLine: {'line': b'-- Found image_geometry: 3.2.1 (/opt/ros/humble/share/image_geometry/cmake)\n'} -[1.586315] (disparity_expansion) StdoutLine: {'line': b'-- Found image_transport: 3.1.9 (/opt/ros/humble/share/image_transport/cmake)\n'} -[1.601047] (-) TimerEvent: {} -[1.651541] (disparity_expansion) StdoutLine: {'line': b'-- Found tf2: 0.25.7 (/opt/ros/humble/share/tf2/cmake)\n'} -[1.660703] (disparity_expansion) StdoutLine: {'line': b'-- Found OpenCV: /usr (found version "4.5.4") \n'} -[1.682589] (disparity_expansion) StdoutLine: {'line': b"-- Checking for module 'eigen3'\n"} -[1.701133] (-) TimerEvent: {} -[1.707534] (disparity_expansion) StdoutLine: {'line': b'-- Found eigen3, version 3.4.0\n'} -[1.769977] (disparity_expansion) StdoutLine: {'line': b'-- Found Eigen: /usr/include/eigen3 (Required is at least version "3.1") \n'} -[1.770220] (disparity_expansion) StdoutLine: {'line': b'-- Eigen found (include: /usr/include/eigen3, version: 3.4.0)\n'} -[1.795592] (disparity_expansion) StdoutLine: {'line': b'-- Found Boost: /usr/lib/x86_64-linux-gnu/cmake/Boost-1.74.0/BoostConfig.cmake (found suitable version "1.74.0", minimum required is "1.65.0") found components: system filesystem date_time iostreams serialization \n'} -[1.801208] (-) TimerEvent: {} -[1.823388] (disparity_expansion) StdoutLine: {'line': b"-- Checking for module 'flann'\n"} -[1.848308] (disparity_expansion) StdoutLine: {'line': b'-- Found flann, version 1.9.1\n'} -[1.901287] (-) TimerEvent: {} -[1.916439] (disparity_expansion) StdoutLine: {'line': b'-- Found FLANN: /usr/lib/x86_64-linux-gnu/libflann_cpp.so \n'} -[1.916653] (disparity_expansion) StdoutLine: {'line': b'-- FLANN found (include: /usr/include, lib: /usr/lib/x86_64-linux-gnu/libflann_cpp.so)\n'} -[1.948553] (disparity_expansion) StdoutLine: {'line': b'-- Found GLEW: /usr/lib/x86_64-linux-gnu/libGLEW.so \n'} -[1.952645] (disparity_expansion) StdoutLine: {'line': b'-- Found OpenGL: /usr/lib/x86_64-linux-gnu/libOpenGL.so found components: OpenGL GLX \n'} -[2.001361] (-) TimerEvent: {} -[2.101583] (-) TimerEvent: {} -[2.148219] (disparity_expansion) StdoutLine: {'line': b'-- Found MPI_C: /usr/lib/x86_64-linux-gnu/libmpi.so (found version "3.1") \n'} -[2.148598] (disparity_expansion) StdoutLine: {'line': b'-- Found MPI: TRUE (found version "3.1") found components: C \n'} -[2.151926] (disparity_expansion) StdoutLine: {'line': b'-- Found JsonCpp: /usr/lib/x86_64-linux-gnu/libjsoncpp.so (found suitable version "1.9.5", minimum required is "0.7.0") \n'} -[2.159663] (disparity_expansion) StdoutLine: {'line': b'-- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.11") \n'} -[2.172838] (disparity_expansion) StdoutLine: {'line': b'-- Found PNG: /usr/lib/x86_64-linux-gnu/libpng.so (found version "1.6.37") \n'} -[2.183282] (disparity_expansion) StdoutLine: {'line': b'-- Found Eigen3: /usr/include/eigen3 (found version "3.4.0") \n'} -[2.201653] (-) TimerEvent: {} -[2.301879] (-) TimerEvent: {} -[2.311982] (disparity_expansion) StdoutLine: {'line': b'-- Found X11: /usr/include \n'} -[2.312328] (disparity_expansion) StdoutLine: {'line': b'-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so\n'} -[2.401950] (-) TimerEvent: {} -[2.414314] (disparity_expansion) StdoutLine: {'line': b'-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so - found\n'} -[2.414503] (disparity_expansion) StdoutLine: {'line': b'-- Looking for gethostbyname\n'} -[2.502032] (-) TimerEvent: {} -[2.504198] (disparity_expansion) StdoutLine: {'line': b'-- Looking for gethostbyname - found\n'} -[2.504392] (disparity_expansion) StdoutLine: {'line': b'-- Looking for connect\n'} -[2.593144] (disparity_expansion) StdoutLine: {'line': b'-- Looking for connect - found\n'} -[2.593307] (disparity_expansion) StdoutLine: {'line': b'-- Looking for remove\n'} -[2.602098] (-) TimerEvent: {} -[2.697789] (disparity_expansion) StdoutLine: {'line': b'-- Looking for remove - found\n'} -[2.697975] (disparity_expansion) StdoutLine: {'line': b'-- Looking for shmat\n'} -[2.702172] (-) TimerEvent: {} -[2.795212] (disparity_expansion) StdoutLine: {'line': b'-- Looking for shmat - found\n'} -[2.795422] (disparity_expansion) StdoutLine: {'line': b'-- Looking for IceConnectionNumber in ICE\n'} -[2.802247] (-) TimerEvent: {} -[2.888573] (disparity_expansion) StdoutLine: {'line': b'-- Looking for IceConnectionNumber in ICE - found\n'} -[2.902329] (-) TimerEvent: {} -[3.002536] (-) TimerEvent: {} -[3.020662] (disparity_expansion) StdoutLine: {'line': b'-- Found EXPAT: /usr/lib/x86_64-linux-gnu/libexpat.so (found version "2.4.7") \n'} -[3.022977] (disparity_expansion) StdoutLine: {'line': b'-- Found double-conversion: /usr/lib/x86_64-linux-gnu/libdouble-conversion.so \n'} -[3.024615] (disparity_expansion) StdoutLine: {'line': b'-- Found LZ4: /usr/lib/x86_64-linux-gnu/liblz4.so (found version "1.9.3") \n'} -[3.025795] (disparity_expansion) StdoutLine: {'line': b'-- Found LZMA: /usr/lib/x86_64-linux-gnu/liblzma.so (found version "5.2.5") \n'} -[3.037673] (disparity_expansion) StdoutLine: {'line': b'-- Found JPEG: /usr/lib/x86_64-linux-gnu/libjpeg.so (found version "80") \n'} -[3.040972] (disparity_expansion) StdoutLine: {'line': b'-- Found TIFF: /usr/lib/x86_64-linux-gnu/libtiff.so (found version "4.3.0") \n'} -[3.044124] (disparity_expansion) StdoutLine: {'line': b'-- Found Freetype: /usr/lib/x86_64-linux-gnu/libfreetype.so (found version "2.11.1") \n'} -[3.048780] (disparity_expansion) StdoutLine: {'line': b'-- Found utf8cpp: /usr/include/utf8cpp \n'} -[3.102619] (-) TimerEvent: {} -[3.172090] (disparity_expansion) StdoutLine: {'line': b"-- Checking for module 'libusb-1.0'\n"} -[3.198689] (disparity_expansion) StdoutLine: {'line': b'-- Found libusb-1.0, version 1.0.25\n'} -[3.202690] (-) TimerEvent: {} -[3.265939] (disparity_expansion) StdoutLine: {'line': b'-- Found libusb: /usr/lib/x86_64-linux-gnu/libusb-1.0.so \n'} -[3.267413] (disparity_expansion) StdoutLine: {'line': b'-- Found OpenNI: /usr/lib/libOpenNI.so;libusb::libusb (found version "1.5.4.0") \n'} -[3.267539] (disparity_expansion) StdoutLine: {'line': b'-- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb)\n'} -[3.302763] (-) TimerEvent: {} -[3.372722] (disparity_expansion) StdoutLine: {'line': b'-- Found OpenNI2: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb (found version "2.2.0.33") \n'} -[3.372909] (disparity_expansion) StdoutLine: {'line': b'-- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb)\n'} -[3.373052] (disparity_expansion) StderrLine: {'line': b'\x1b[0m** WARNING ** io features related to pcap will be disabled\x1b[0m\n'} -[3.402834] (-) TimerEvent: {} -[3.503057] (-) TimerEvent: {} -[3.534485] (disparity_expansion) StdoutLine: {'line': b'-- Eigen found (include: /usr/include/eigen3, version: 3.4.0)\n'} -[3.545371] (disparity_expansion) StdoutLine: {'line': b'-- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb)\n'} -[3.555947] (disparity_expansion) StdoutLine: {'line': b'-- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb)\n'} -[3.603132] (-) TimerEvent: {} -[3.703334] (-) TimerEvent: {} -[3.712761] (disparity_expansion) StdoutLine: {'line': b'-- Found Qhull version 8.0.2\n'} -[3.803423] (-) TimerEvent: {} -[3.870677] (disparity_expansion) StdoutLine: {'line': b'-- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb)\n'} -[3.903499] (-) TimerEvent: {} -[4.003692] (-) TimerEvent: {} -[4.024039] (disparity_expansion) StdoutLine: {'line': b'-- looking for PCL_COMMON\n'} -[4.024595] (disparity_expansion) StdoutLine: {'line': b'-- Found PCL_COMMON: /usr/lib/x86_64-linux-gnu/libpcl_common.so \n'} -[4.024733] (disparity_expansion) StdoutLine: {'line': b'-- looking for PCL_KDTREE\n'} -[4.025203] (disparity_expansion) StdoutLine: {'line': b'-- Found PCL_KDTREE: /usr/lib/x86_64-linux-gnu/libpcl_kdtree.so \n'} -[4.025321] (disparity_expansion) StdoutLine: {'line': b'-- looking for PCL_OCTREE\n'} -[4.025820] (disparity_expansion) StdoutLine: {'line': b'-- Found PCL_OCTREE: /usr/lib/x86_64-linux-gnu/libpcl_octree.so \n'} -[4.025933] (disparity_expansion) StdoutLine: {'line': b'-- looking for PCL_SEARCH\n'} -[4.026408] (disparity_expansion) StdoutLine: {'line': b'-- Found PCL_SEARCH: /usr/lib/x86_64-linux-gnu/libpcl_search.so \n'} -[4.026528] (disparity_expansion) StdoutLine: {'line': b'-- looking for PCL_SAMPLE_CONSENSUS\n'} -[4.027034] (disparity_expansion) StdoutLine: {'line': b'-- Found PCL_SAMPLE_CONSENSUS: /usr/lib/x86_64-linux-gnu/libpcl_sample_consensus.so \n'} -[4.027145] (disparity_expansion) StdoutLine: {'line': b'-- looking for PCL_FILTERS\n'} -[4.027669] (disparity_expansion) StdoutLine: {'line': b'-- Found PCL_FILTERS: /usr/lib/x86_64-linux-gnu/libpcl_filters.so \n'} -[4.027809] (disparity_expansion) StdoutLine: {'line': b'-- looking for PCL_2D\n'} -[4.027969] (disparity_expansion) StdoutLine: {'line': b'-- Found PCL_2D: /usr/include/pcl-1.12 \n'} -[4.028085] (disparity_expansion) StdoutLine: {'line': b'-- looking for PCL_GEOMETRY\n'} -[4.028251] (disparity_expansion) StdoutLine: {'line': b'-- Found PCL_GEOMETRY: /usr/include/pcl-1.12 \n'} -[4.028369] (disparity_expansion) StdoutLine: {'line': b'-- looking for PCL_IO\n'} -[4.028814] (disparity_expansion) StdoutLine: {'line': b'-- Found PCL_IO: /usr/lib/x86_64-linux-gnu/libpcl_io.so \n'} -[4.028994] (disparity_expansion) StdoutLine: {'line': b'-- looking for PCL_FEATURES\n'} -[4.029502] (disparity_expansion) StdoutLine: {'line': b'-- Found PCL_FEATURES: /usr/lib/x86_64-linux-gnu/libpcl_features.so \n'} -[4.029671] (disparity_expansion) StdoutLine: {'line': b'-- looking for PCL_ML\n'} -[4.030170] (disparity_expansion) StdoutLine: {'line': b'-- Found PCL_ML: /usr/lib/x86_64-linux-gnu/libpcl_ml.so \n'} -[4.030285] (disparity_expansion) StdoutLine: {'line': b'-- looking for PCL_SEGMENTATION\n'} -[4.030761] (disparity_expansion) StdoutLine: {'line': b'-- Found PCL_SEGMENTATION: /usr/lib/x86_64-linux-gnu/libpcl_segmentation.so \n'} -[4.030954] (disparity_expansion) StdoutLine: {'line': b'-- looking for PCL_VISUALIZATION\n'} -[4.031464] (disparity_expansion) StdoutLine: {'line': b'-- Found PCL_VISUALIZATION: /usr/lib/x86_64-linux-gnu/libpcl_visualization.so \n'} -[4.031650] (disparity_expansion) StdoutLine: {'line': b'-- looking for PCL_SURFACE\n'} -[4.032153] (disparity_expansion) StdoutLine: {'line': b'-- Found PCL_SURFACE: /usr/lib/x86_64-linux-gnu/libpcl_surface.so \n'} -[4.032299] (disparity_expansion) StdoutLine: {'line': b'-- looking for PCL_REGISTRATION\n'} -[4.032793] (disparity_expansion) StdoutLine: {'line': b'-- Found PCL_REGISTRATION: /usr/lib/x86_64-linux-gnu/libpcl_registration.so \n'} -[4.032966] (disparity_expansion) StdoutLine: {'line': b'-- looking for PCL_KEYPOINTS\n'} -[4.033473] (disparity_expansion) StdoutLine: {'line': b'-- Found PCL_KEYPOINTS: /usr/lib/x86_64-linux-gnu/libpcl_keypoints.so \n'} -[4.033636] (disparity_expansion) StdoutLine: {'line': b'-- looking for PCL_TRACKING\n'} -[4.034134] (disparity_expansion) StdoutLine: {'line': b'-- Found PCL_TRACKING: /usr/lib/x86_64-linux-gnu/libpcl_tracking.so \n'} -[4.034278] (disparity_expansion) StdoutLine: {'line': b'-- looking for PCL_RECOGNITION\n'} -[4.034784] (disparity_expansion) StdoutLine: {'line': b'-- Found PCL_RECOGNITION: /usr/lib/x86_64-linux-gnu/libpcl_recognition.so \n'} -[4.034998] (disparity_expansion) StdoutLine: {'line': b'-- looking for PCL_STEREO\n'} -[4.035532] (disparity_expansion) StdoutLine: {'line': b'-- Found PCL_STEREO: /usr/lib/x86_64-linux-gnu/libpcl_stereo.so \n'} -[4.035645] (disparity_expansion) StdoutLine: {'line': b'-- looking for PCL_APPS\n'} -[4.036152] (disparity_expansion) StdoutLine: {'line': b'-- Found PCL_APPS: /usr/lib/x86_64-linux-gnu/libpcl_apps.so \n'} -[4.036564] (disparity_expansion) StdoutLine: {'line': b'-- looking for PCL_IN_HAND_SCANNER\n'} -[4.036750] (disparity_expansion) StdoutLine: {'line': b'-- Found PCL_IN_HAND_SCANNER: /usr/include/pcl-1.12 \n'} -[4.036851] (disparity_expansion) StdoutLine: {'line': b'-- looking for PCL_MODELER\n'} -[4.037015] (disparity_expansion) StdoutLine: {'line': b'-- Found PCL_MODELER: /usr/include/pcl-1.12 \n'} -[4.037116] (disparity_expansion) StdoutLine: {'line': b'-- looking for PCL_POINT_CLOUD_EDITOR\n'} -[4.037335] (disparity_expansion) StdoutLine: {'line': b'-- Found PCL_POINT_CLOUD_EDITOR: /usr/include/pcl-1.12 \n'} -[4.037434] (disparity_expansion) StdoutLine: {'line': b'-- looking for PCL_OUTOFCORE\n'} -[4.037933] (disparity_expansion) StdoutLine: {'line': b'-- Found PCL_OUTOFCORE: /usr/lib/x86_64-linux-gnu/libpcl_outofcore.so \n'} -[4.038081] (disparity_expansion) StdoutLine: {'line': b'-- looking for PCL_PEOPLE\n'} -[4.038594] (disparity_expansion) StdoutLine: {'line': b'-- Found PCL_PEOPLE: /usr/lib/x86_64-linux-gnu/libpcl_people.so \n'} -[4.039219] (disparity_expansion) StdoutLine: {'line': b'-- Found PCL: pcl_common;pcl_kdtree;pcl_octree;pcl_search;pcl_sample_consensus;pcl_filters;pcl_io;pcl_features;pcl_ml;pcl_segmentation;pcl_visualization;pcl_surface;pcl_registration;pcl_keypoints;pcl_tracking;pcl_recognition;pcl_stereo;pcl_apps;pcl_outofcore;pcl_people;Boost::system;Boost::filesystem;Boost::date_time;Boost::iostreams;Boost::serialization;/usr/lib/libOpenNI.so;libusb::libusb;/usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb;VTK::ChartsCore;VTK::CommonColor;VTK::CommonComputationalGeometry;VTK::CommonCore;VTK::CommonDataModel;VTK::CommonExecutionModel;VTK::CommonMath;VTK::CommonMisc;VTK::CommonTransforms;VTK::FiltersCore;VTK::FiltersExtraction;VTK::FiltersGeneral;VTK::FiltersGeometry;VTK::FiltersModeling;VTK::FiltersSources;VTK::ImagingCore;VTK::ImagingSources;VTK::InteractionImage;VTK::InteractionStyle;VTK::InteractionWidgets;VTK::IOCore;VTK::IOGeometry;VTK::IOImage;VTK::IOLegacy;VTK::IOPLY;VTK::RenderingAnnotation;VTK::RenderingCore;VTK::RenderingContext2D;VTK::RenderingLOD;VTK::RenderingFreeType;VTK::ViewsCore;VTK::ViewsContext2D;VTK::RenderingOpenGL2;VTK::GUISupportQt;FLANN::FLANN;QHULL::QHULL (Required is at least version "1.7") \n'} -[4.042538] (disparity_expansion) StdoutLine: {'line': b'-- Configuring done\n'} -[4.061702] (disparity_expansion) StdoutLine: {'line': b'-- Generating done\n'} -[4.063544] (disparity_expansion) StdoutLine: {'line': b'-- Build files have been written to: /root/AirStack/build/disparity_expansion\n'} -[4.074975] (disparity_expansion) CommandEnded: {'returncode': 0} -[4.075755] (disparity_expansion) JobProgress: {'identifier': 'disparity_expansion', 'progress': 'build'} -[4.077015] (disparity_expansion) Command: {'cmd': ['/usr/bin/cmake', '--build', '/root/AirStack/build/disparity_expansion', '--', '-j12', '-l12'], 'cwd': '/root/AirStack/build/disparity_expansion', 'env': OrderedDict([('LESSOPEN', '| /usr/bin/lesspipe %s'), ('HOSTNAME', 'wildfire-desktop'), ('ISAACSIM_PATH', '/isaac-sim'), ('SHLVL', '1'), ('LD_LIBRARY_PATH', '/root/AirStack/ros_ws/install/vdb_mapping_interfaces/lib:/root/AirStack/ros_ws/install/vdb_mapping/lib:/root/AirStack/ros_ws/install/mavros_interface/lib:/root/AirStack/ros_ws/install/robot_interface/lib:/root/AirStack/ros_ws/install/px4_ros_com/lib:/root/AirStack/ros_ws/install/px4_msgs/lib:/root/AirStack/ros_ws/install/mav_system_msgs/lib:/root/AirStack/ros_ws/install/mav_state_machine_msgs/lib:/root/AirStack/ros_ws/install/mav_planning_msgs/lib:/root/AirStack/ros_ws/install/mav_msgs/lib:/opt/ros/humble/opt/rviz_ogre_vendor/lib:/opt/ros/humble/lib/x86_64-linux-gnu:/opt/ros/humble/lib'), ('HOME', '/root'), ('MIN_DRIVER_VERSION', '525.60.11'), ('ROS_PYTHON_VERSION', '3'), ('LC_CTYPE', 'C.UTF-8'), ('COLCON_PREFIX_PATH', '/root/AirStack/ros_ws/install'), ('ROS_DISTRO', 'humble'), ('_', '/usr/bin/colcon'), ('ROS_VERSION', '2'), ('PKG_CONFIG_PATH', '/root/AirStack/ros_ws/install/vdb_mapping/lib/x86_64-linux-gnu/pkgconfig:/root/AirStack/ros_ws/install/vdb_mapping/lib/pkgconfig'), ('NVIDIA_DRIVER_CAPABILITIES', 'all'), ('TERM', 'xterm'), ('ROS_LOCALHOST_ONLY', '0'), ('PATH', '/opt/ros/humble/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'), ('VK_DRIVER_FILES', '/etc/vulkan/icd.d/nvidia_icd.json'), ('DISPLAY', ':1'), ('LS_COLORS', 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:'), ('AMENT_PREFIX_PATH', '/root/AirStack/ros_ws/install/vdb_mapping_ros2:/root/AirStack/ros_ws/install/vdb_mapping_interfaces:/root/AirStack/ros_ws/install/mavros_interface:/root/AirStack/ros_ws/install/robot_interface:/root/AirStack/ros_ws/install/robot_bringup:/root/AirStack/ros_ws/install/px4_ros_com:/root/AirStack/ros_ws/install/px4_msgs:/root/AirStack/ros_ws/install/mav_comm:/root/AirStack/ros_ws/install/mav_system_msgs:/root/AirStack/ros_ws/install/mav_state_machine_msgs:/root/AirStack/ros_ws/install/mav_planning_msgs:/root/AirStack/ros_ws/install/mav_msgs:/root/AirStack/ros_ws/install/controls_bringup:/opt/ros/humble'), ('OMNI_PASS', 'admin'), ('LESSCLOSE', '/usr/bin/lesspipe %s %s'), ('ACCEPT_EULA', 'Y'), ('CMAKE_MODULE_PATH', '/root/AirStack/ros_ws/install/vdb_mapping/lib/cmake/vdb_mapping'), ('OMNI_SERVER', 'http://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/4.0'), ('PWD', '/root/AirStack/build/disparity_expansion'), ('OMNI_USER', 'admin'), ('PYTHONPATH', '/root/AirStack/ros_ws/install/vdb_mapping_interfaces/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/px4_ros_com/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/px4_msgs/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/mav_planning_msgs/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/mav_msgs/local/lib/python3.10/dist-packages:/opt/ros/humble/lib/python3.10/site-packages:/opt/ros/humble/local/lib/python3.10/dist-packages'), ('NVIDIA_VISIBLE_DEVICES', 'all'), ('TZ', 'America/New_York'), ('COLCON', '1'), ('CMAKE_PREFIX_PATH', '/root/AirStack/ros_ws/install/vdb_mapping_ros2:/root/AirStack/ros_ws/install/vdb_mapping_interfaces:/root/AirStack/ros_ws/install/vdb_mapping:/root/AirStack/ros_ws/install/mavros_interface:/root/AirStack/ros_ws/install/robot_interface:/root/AirStack/ros_ws/install/robot_bringup:/root/AirStack/ros_ws/install/px4_ros_com:/root/AirStack/ros_ws/install/px4_msgs:/root/AirStack/ros_ws/install/mav_comm:/root/AirStack/ros_ws/install/mav_system_msgs:/root/AirStack/ros_ws/install/mav_state_machine_msgs:/root/AirStack/ros_ws/install/mav_planning_msgs:/root/AirStack/ros_ws/install/mav_msgs:/root/AirStack/ros_ws/install/controls_bringup')]), 'shell': False} -[4.103756] (-) TimerEvent: {} -[4.145324] (disparity_expansion) StdoutLine: {'line': b'[ 50%] \x1b[32mBuilding CXX object CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o\x1b[0m\n'} -[4.203841] (-) TimerEvent: {} -[4.304084] (-) TimerEvent: {} -[4.404531] (-) TimerEvent: {} -[4.458257] (disparity_expansion) StderrLine: {'line': b'\x1b[01m\x1b[K/root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_conv.cpp:42:10:\x1b[m\x1b[K \x1b[01;31m\x1b[Kfatal error: \x1b[m\x1b[Kpcl_ros/point_cloud.hpp: No such file or directory\n'} -[4.458395] (disparity_expansion) StderrLine: {'line': b' 42 | #include \x1b[01;31m\x1b[K\x1b[m\x1b[K\n'} -[4.458455] (disparity_expansion) StderrLine: {'line': b' | \x1b[01;31m\x1b[K^~~~~~~~~~~~~~~~~~~~~~~~~\x1b[m\x1b[K\n'} -[4.458515] (disparity_expansion) StderrLine: {'line': b'compilation terminated.\n'} -[4.467903] (disparity_expansion) StderrLine: {'line': b'gmake[2]: *** [CMakeFiles/disparity_conv.dir/build.make:76: CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o] Error 1\n'} -[4.468132] (disparity_expansion) StderrLine: {'line': b'gmake[1]: *** [CMakeFiles/Makefile2:137: CMakeFiles/disparity_conv.dir/all] Error 2\n'} -[4.468413] (disparity_expansion) StderrLine: {'line': b'gmake: *** [Makefile:101: all] Error 2\n'} -[4.472204] (disparity_expansion) CommandEnded: {'returncode': 2} -[4.472516] (disparity_expansion) JobEnded: {'identifier': 'disparity_expansion', 'rc': 2} -[4.482633] (-) EventReactorShutdown: {} diff --git a/log/build_2024-07-25_13-05-11/logger_all.log b/log/build_2024-07-25_13-05-11/logger_all.log deleted file mode 100644 index 82eb8f0d3..000000000 --- a/log/build_2024-07-25_13-05-11/logger_all.log +++ /dev/null @@ -1,2597 +0,0 @@ -[0.077s] DEBUG:colcon:Command line arguments: ['/usr/bin/colcon', 'build', '--packages-select', 'disparity_expansion'] -[0.078s] DEBUG:colcon:Parsed command line arguments: Namespace(log_base=None, log_level=None, verb_name='build', build_base='build', install_base='install', merge_install=False, symlink_install=False, test_result_base=None, continue_on_error=False, executor='parallel', parallel_workers=12, event_handlers=None, ignore_user_meta=False, metas=['./colcon.meta'], base_paths=['.'], packages_ignore=None, packages_ignore_regex=None, paths=None, packages_up_to=None, packages_up_to_regex=None, packages_above=None, packages_above_and_dependencies=None, packages_above_depth=None, packages_select_by_dep=None, packages_skip_by_dep=None, packages_skip_up_to=None, packages_select_build_failed=False, packages_skip_build_finished=False, packages_select_test_failures=False, packages_skip_test_passed=False, packages_select=['disparity_expansion'], packages_skip=None, packages_select_regex=None, packages_skip_regex=None, packages_start=None, packages_end=None, allow_overriding=[], cmake_args=None, cmake_target=None, cmake_target_skip_unavailable=False, cmake_clean_cache=False, cmake_clean_first=False, cmake_force_configure=False, ament_cmake_args=None, catkin_cmake_args=None, catkin_skip_building_tests=False, mixin_files=None, mixin=None, verb_parser=, verb_extension=, main=>, mixin_verb=('build',)) -[0.198s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) check parameters -[0.198s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) check parameters -[0.198s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) check parameters -[0.198s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) check parameters -[0.198s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) discover -[0.198s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) discover -[0.198s] INFO:colcon.colcon_core.package_discovery:Crawling recursively for packages in '/root/AirStack' -[0.198s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ignore', 'ignore_ament_install'] -[0.198s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore' -[0.198s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore_ament_install' -[0.198s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_pkg'] -[0.198s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_pkg' -[0.198s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_meta'] -[0.198s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_meta' -[0.198s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ros'] -[0.198s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ros' -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['cmake', 'python'] -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'cmake' -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'python' -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['python_setup_py'] -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'python_setup_py' -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extensions ['ignore', 'ignore_ament_install'] -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'ignore' -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(build) ignored -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extensions ['ignore', 'ignore_ament_install'] -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'ignore' -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'ignore_ament_install' -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extensions ['colcon_pkg'] -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'colcon_pkg' -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extensions ['colcon_meta'] -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'colcon_meta' -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extensions ['ros'] -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'ros' -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extensions ['cmake', 'python'] -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'cmake' -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'python' -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extensions ['python_setup_py'] -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'python_setup_py' -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extensions ['ignore', 'ignore_ament_install'] -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'ignore' -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'ignore_ament_install' -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extensions ['colcon_pkg'] -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'colcon_pkg' -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extensions ['colcon_meta'] -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'colcon_meta' -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extensions ['ros'] -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'ros' -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extensions ['cmake', 'python'] -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'cmake' -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'python' -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extensions ['python_setup_py'] -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'python_setup_py' -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extensions ['ignore', 'ignore_ament_install'] -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'ignore' -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'ignore_ament_install' -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extensions ['colcon_pkg'] -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'colcon_pkg' -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extensions ['colcon_meta'] -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'colcon_meta' -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extensions ['ros'] -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'ros' -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extensions ['cmake', 'python'] -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'cmake' -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'python' -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extensions ['python_setup_py'] -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'python_setup_py' -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extensions ['ignore', 'ignore_ament_install'] -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'ignore' -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'ignore_ament_install' -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extensions ['colcon_pkg'] -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'colcon_pkg' -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extensions ['colcon_meta'] -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'colcon_meta' -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extensions ['ros'] -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'ros' -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extensions ['cmake', 'python'] -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'cmake' -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'python' -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extensions ['python_setup_py'] -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'python_setup_py' -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extensions ['ignore', 'ignore_ament_install'] -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'ignore' -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'ignore_ament_install' -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extensions ['colcon_pkg'] -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'colcon_pkg' -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extensions ['colcon_meta'] -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'colcon_meta' -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extensions ['ros'] -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'ros' -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extensions ['cmake', 'python'] -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'cmake' -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'python' -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extensions ['python_setup_py'] -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'python_setup_py' -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extensions ['ignore', 'ignore_ament_install'] -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'ignore' -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'ignore_ament_install' -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extensions ['colcon_pkg'] -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'colcon_pkg' -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extensions ['colcon_meta'] -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'colcon_meta' -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extensions ['ros'] -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'ros' -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extensions ['cmake', 'python'] -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'cmake' -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'python' -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extensions ['python_setup_py'] -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'python_setup_py' -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extensions ['ignore', 'ignore_ament_install'] -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'ignore' -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'ignore_ament_install' -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extensions ['colcon_pkg'] -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'colcon_pkg' -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extensions ['colcon_meta'] -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'colcon_meta' -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extensions ['ros'] -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'ros' -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extensions ['cmake', 'python'] -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'cmake' -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'python' -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extensions ['python_setup_py'] -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'python_setup_py' -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extensions ['ignore', 'ignore_ament_install'] -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'ignore' -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'ignore_ament_install' -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extensions ['colcon_pkg'] -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'colcon_pkg' -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extensions ['colcon_meta'] -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'colcon_meta' -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extensions ['ros'] -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'ros' -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extensions ['cmake', 'python'] -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'cmake' -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'python' -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extensions ['python_setup_py'] -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'python_setup_py' -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extensions ['ignore', 'ignore_ament_install'] -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'ignore' -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'ignore_ament_install' -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extensions ['colcon_pkg'] -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'colcon_pkg' -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extensions ['colcon_meta'] -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'colcon_meta' -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extensions ['ros'] -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'ros' -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extensions ['cmake', 'python'] -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'cmake' -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'python' -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extensions ['python_setup_py'] -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'python_setup_py' -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extensions ['ignore', 'ignore_ament_install'] -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'ignore' -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(install) ignored -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extensions ['ignore', 'ignore_ament_install'] -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'ignore' -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'ignore_ament_install' -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extensions ['colcon_pkg'] -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'colcon_pkg' -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extensions ['colcon_meta'] -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'colcon_meta' -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extensions ['ros'] -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'ros' -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extensions ['cmake', 'python'] -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'cmake' -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'python' -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extensions ['python_setup_py'] -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'python_setup_py' -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(log) by extensions ['ignore', 'ignore_ament_install'] -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(log) by extension 'ignore' -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(log) ignored -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extensions ['ignore', 'ignore_ament_install'] -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'ignore' -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'ignore_ament_install' -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extensions ['colcon_pkg'] -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'colcon_pkg' -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extensions ['colcon_meta'] -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'colcon_meta' -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extensions ['ros'] -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'ros' -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extensions ['cmake', 'python'] -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'cmake' -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'python' -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extensions ['python_setup_py'] -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'python_setup_py' -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/build) by extensions ['ignore', 'ignore_ament_install'] -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/build) by extension 'ignore' -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/build) ignored -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/install) by extensions ['ignore', 'ignore_ament_install'] -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/install) by extension 'ignore' -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/install) ignored -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/log) by extensions ['ignore', 'ignore_ament_install'] -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/log) by extension 'ignore' -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/log) ignored -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extensions ['ignore', 'ignore_ament_install'] -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'ignore' -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'ignore_ament_install' -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extensions ['colcon_pkg'] -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'colcon_pkg' -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extensions ['colcon_meta'] -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'colcon_meta' -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extensions ['ros'] -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'ros' -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extensions ['cmake', 'python'] -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'cmake' -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'python' -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extensions ['python_setup_py'] -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'python_setup_py' -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extensions ['ignore', 'ignore_ament_install'] -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'ignore' -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'ignore_ament_install' -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extensions ['colcon_pkg'] -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'colcon_pkg' -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extensions ['colcon_meta'] -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'colcon_meta' -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extensions ['ros'] -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'ros' -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extensions ['cmake', 'python'] -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'cmake' -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'python' -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extensions ['python_setup_py'] -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'python_setup_py' -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extensions ['ignore', 'ignore_ament_install'] -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'ignore' -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'ignore_ament_install' -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extensions ['colcon_pkg'] -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'colcon_pkg' -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extensions ['colcon_meta'] -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'colcon_meta' -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extensions ['ros'] -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'ros' -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extensions ['cmake', 'python'] -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'cmake' -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'python' -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extensions ['python_setup_py'] -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'python_setup_py' -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extensions ['ignore', 'ignore_ament_install'] -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'ignore' -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'ignore_ament_install' -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extensions ['colcon_pkg'] -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'colcon_pkg' -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extensions ['colcon_meta'] -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'colcon_meta' -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extensions ['ros'] -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'ros' -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extensions ['cmake', 'python'] -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'cmake' -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'python' -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extensions ['python_setup_py'] -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'python_setup_py' -[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extensions ['ignore', 'ignore_ament_install'] -[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'ignore' -[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'ignore_ament_install' -[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extensions ['colcon_pkg'] -[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'colcon_pkg' -[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extensions ['colcon_meta'] -[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'colcon_meta' -[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extensions ['ros'] -[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'ros' -[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extensions ['cmake', 'python'] -[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'cmake' -[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'python' -[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extensions ['python_setup_py'] -[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'python_setup_py' -[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extensions ['ignore', 'ignore_ament_install'] -[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extension 'ignore' -[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extension 'ignore_ament_install' -[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extensions ['colcon_pkg'] -[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extension 'colcon_pkg' -[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extensions ['colcon_meta'] -[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extension 'colcon_meta' -[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extensions ['ros'] -[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extension 'ros' -[0.217s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/controls_bringup' with type 'ros.ament_cmake' and name 'controls_bringup' -[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extensions ['ignore', 'ignore_ament_install'] -[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'ignore' -[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'ignore_ament_install' -[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extensions ['colcon_pkg'] -[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'colcon_pkg' -[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extensions ['colcon_meta'] -[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'colcon_meta' -[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extensions ['ros'] -[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'ros' -[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extensions ['cmake', 'python'] -[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'cmake' -[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'python' -[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extensions ['python_setup_py'] -[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'python_setup_py' -[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extensions ['ignore', 'ignore_ament_install'] -[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extension 'ignore' -[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extension 'ignore_ament_install' -[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extensions ['colcon_pkg'] -[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extension 'colcon_pkg' -[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extensions ['colcon_meta'] -[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extension 'colcon_meta' -[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extensions ['ros'] -[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extension 'ros' -[0.218s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm' with type 'ros.ament_cmake' and name 'mav_comm' -[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extensions ['ignore', 'ignore_ament_install'] -[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extension 'ignore' -[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extension 'ignore_ament_install' -[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extensions ['colcon_pkg'] -[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extension 'colcon_pkg' -[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extensions ['colcon_meta'] -[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extension 'colcon_meta' -[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extensions ['ros'] -[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extension 'ros' -[0.219s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs' with type 'ros.ament_cmake' and name 'mav_msgs' -[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extensions ['ignore', 'ignore_ament_install'] -[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extension 'ignore' -[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extension 'ignore_ament_install' -[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extensions ['colcon_pkg'] -[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extension 'colcon_pkg' -[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extensions ['colcon_meta'] -[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extension 'colcon_meta' -[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extensions ['ros'] -[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extension 'ros' -[0.220s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs' with type 'ros.ament_cmake' and name 'mav_planning_msgs' -[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extensions ['ignore', 'ignore_ament_install'] -[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extension 'ignore' -[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extension 'ignore_ament_install' -[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extensions ['colcon_pkg'] -[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extension 'colcon_pkg' -[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extensions ['colcon_meta'] -[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extension 'colcon_meta' -[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extensions ['ros'] -[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extension 'ros' -[0.221s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs' with type 'ros.ament_cmake' and name 'mav_state_machine_msgs' -[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extensions ['ignore', 'ignore_ament_install'] -[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extension 'ignore' -[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extension 'ignore_ament_install' -[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extensions ['colcon_pkg'] -[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extension 'colcon_pkg' -[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extensions ['colcon_meta'] -[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extension 'colcon_meta' -[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extensions ['ros'] -[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extension 'ros' -[0.222s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs' with type 'ros.ament_cmake' and name 'mav_system_msgs' -[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extensions ['ignore', 'ignore_ament_install'] -[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extension 'ignore' -[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extension 'ignore_ament_install' -[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extensions ['colcon_pkg'] -[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extension 'colcon_pkg' -[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extensions ['colcon_meta'] -[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extension 'colcon_meta' -[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extensions ['ros'] -[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extension 'ros' -[0.223s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/mavros_interface' with type 'ros.ament_cmake' and name 'mavros_interface' -[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extensions ['ignore', 'ignore_ament_install'] -[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extension 'ignore' -[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extension 'ignore_ament_install' -[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extensions ['colcon_pkg'] -[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extension 'colcon_pkg' -[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extensions ['colcon_meta'] -[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extension 'colcon_meta' -[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extensions ['ros'] -[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extension 'ros' -[0.224s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/px4_msgs' with type 'ros.ament_cmake' and name 'px4_msgs' -[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extensions ['ignore', 'ignore_ament_install'] -[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extension 'ignore' -[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extension 'ignore_ament_install' -[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extensions ['colcon_pkg'] -[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extension 'colcon_pkg' -[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extensions ['colcon_meta'] -[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extension 'colcon_meta' -[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extensions ['ros'] -[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extension 'ros' -[0.225s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/px4_ros_com' with type 'ros.ament_cmake' and name 'px4_ros_com' -[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extensions ['ignore', 'ignore_ament_install'] -[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extension 'ignore' -[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extension 'ignore_ament_install' -[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extensions ['colcon_pkg'] -[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extension 'colcon_pkg' -[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extensions ['colcon_meta'] -[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extension 'colcon_meta' -[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extensions ['ros'] -[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extension 'ros' -[0.226s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/robot_interface' with type 'ros.ament_cmake' and name 'robot_interface' -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extensions ['ignore', 'ignore_ament_install'] -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'ignore' -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'ignore_ament_install' -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extensions ['colcon_pkg'] -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'colcon_pkg' -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extensions ['colcon_meta'] -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'colcon_meta' -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extensions ['ros'] -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'ros' -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extensions ['cmake', 'python'] -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'cmake' -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'python' -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extensions ['python_setup_py'] -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'python_setup_py' -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extensions ['ignore', 'ignore_ament_install'] -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'ignore' -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'ignore_ament_install' -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extensions ['colcon_pkg'] -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'colcon_pkg' -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extensions ['colcon_meta'] -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'colcon_meta' -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extensions ['ros'] -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'ros' -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extensions ['cmake', 'python'] -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'cmake' -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'python' -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extensions ['python_setup_py'] -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'python_setup_py' -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extensions ['ignore', 'ignore_ament_install'] -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'ignore' -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'ignore_ament_install' -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extensions ['colcon_pkg'] -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'colcon_pkg' -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extensions ['colcon_meta'] -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'colcon_meta' -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extensions ['ros'] -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'ros' -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extensions ['cmake', 'python'] -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'cmake' -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'python' -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extensions ['python_setup_py'] -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'python_setup_py' -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extensions ['ignore', 'ignore_ament_install'] -[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'ignore' -[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'ignore_ament_install' -[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extensions ['colcon_pkg'] -[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'colcon_pkg' -[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extensions ['colcon_meta'] -[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'colcon_meta' -[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extensions ['ros'] -[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'ros' -[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extensions ['cmake', 'python'] -[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'cmake' -[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'python' -[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extensions ['python_setup_py'] -[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'python_setup_py' -[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation) by extensions ['ignore', 'ignore_ament_install'] -[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation) by extension 'ignore' -[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation) ignored -[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/core_local_planner) by extensions ['ignore', 'ignore_ament_install'] -[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/core_local_planner) by extension 'ignore' -[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/core_local_planner) ignored -[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extensions ['ignore', 'ignore_ament_install'] -[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extension 'ignore' -[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extension 'ignore_ament_install' -[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extensions ['colcon_pkg'] -[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extension 'colcon_pkg' -[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extensions ['colcon_meta'] -[0.229s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extension 'colcon_meta' -[0.229s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extensions ['ros'] -[0.229s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extension 'ros' -[0.229s] DEBUG:colcon.colcon_core.package_identification:Failed to parse potential ROS package manifest in'ros_ws/src/robot/autonomy/planning/local/disparity_expansion': Error(s) in package 'ros_ws/src/robot/autonomy/planning/local/disparity_expansion/package.xml': -Error(s): -- The manifest of package "disparity_expansion" (with format version 1) must not contain the following tags: exec_depend -- Either update to a newer format or replace tags with tags. -[0.229s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extensions ['cmake', 'python'] -[0.229s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extension 'cmake' -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extension 'python' -[0.231s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/planning/local/disparity_expansion' with type 'cmake' and name 'disparity_expansion' -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp) by extensions ['ignore', 'ignore_ament_install'] -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp) by extension 'ignore' -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp) ignored -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extensions ['ignore', 'ignore_ament_install'] -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'ignore' -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'ignore_ament_install' -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extensions ['colcon_pkg'] -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'colcon_pkg' -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extensions ['colcon_meta'] -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'colcon_meta' -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extensions ['ros'] -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'ros' -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extensions ['cmake', 'python'] -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'cmake' -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'python' -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extensions ['python_setup_py'] -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'python_setup_py' -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extensions ['ignore', 'ignore_ament_install'] -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'ignore' -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'ignore_ament_install' -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extensions ['colcon_pkg'] -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'colcon_pkg' -[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extensions ['colcon_meta'] -[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'colcon_meta' -[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extensions ['ros'] -[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'ros' -[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extensions ['cmake', 'python'] -[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'cmake' -[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'python' -[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extensions ['python_setup_py'] -[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'python_setup_py' -[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extensions ['ignore', 'ignore_ament_install'] -[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extension 'ignore' -[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extension 'ignore_ament_install' -[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extensions ['colcon_pkg'] -[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extension 'colcon_pkg' -[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extensions ['colcon_meta'] -[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extension 'colcon_meta' -[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extensions ['ros'] -[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extension 'ros' -[0.233s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping' with type 'ros.cmake' and name 'vdb_mapping' -[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extensions ['ignore', 'ignore_ament_install'] -[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'ignore' -[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'ignore_ament_install' -[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extensions ['colcon_pkg'] -[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'colcon_pkg' -[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extensions ['colcon_meta'] -[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'colcon_meta' -[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extensions ['ros'] -[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'ros' -[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extensions ['cmake', 'python'] -[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'cmake' -[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'python' -[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extensions ['python_setup_py'] -[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'python_setup_py' -[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extensions ['ignore', 'ignore_ament_install'] -[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extension 'ignore' -[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extension 'ignore_ament_install' -[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extensions ['colcon_pkg'] -[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extension 'colcon_pkg' -[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extensions ['colcon_meta'] -[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extension 'colcon_meta' -[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extensions ['ros'] -[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extension 'ros' -[0.234s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces' with type 'ros.ament_cmake' and name 'vdb_mapping_interfaces' -[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extensions ['ignore', 'ignore_ament_install'] -[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extension 'ignore' -[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extension 'ignore_ament_install' -[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extensions ['colcon_pkg'] -[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extension 'colcon_pkg' -[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extensions ['colcon_meta'] -[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extension 'colcon_meta' -[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extensions ['ros'] -[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extension 'ros' -[0.235s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2' with type 'ros.ament_cmake' and name 'vdb_mapping_ros2' -[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extensions ['ignore', 'ignore_ament_install'] -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'ignore' -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'ignore_ament_install' -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extensions ['colcon_pkg'] -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'colcon_pkg' -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extensions ['colcon_meta'] -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'colcon_meta' -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extensions ['ros'] -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'ros' -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extensions ['cmake', 'python'] -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'cmake' -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'python' -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extensions ['python_setup_py'] -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'python_setup_py' -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extensions ['ignore', 'ignore_ament_install'] -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extension 'ignore' -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extension 'ignore_ament_install' -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extensions ['colcon_pkg'] -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extension 'colcon_pkg' -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extensions ['colcon_meta'] -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extension 'colcon_meta' -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extensions ['ros'] -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extension 'ros' -[0.237s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/robot_bringup' with type 'ros.ament_cmake' and name 'robot_bringup' -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extensions ['ignore', 'ignore_ament_install'] -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'ignore' -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'ignore_ament_install' -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extensions ['colcon_pkg'] -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'colcon_pkg' -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extensions ['colcon_meta'] -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'colcon_meta' -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extensions ['ros'] -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'ros' -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extensions ['cmake', 'python'] -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'cmake' -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'python' -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extensions ['python_setup_py'] -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'python_setup_py' -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extensions ['ignore', 'ignore_ament_install'] -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'ignore' -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'ignore_ament_install' -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extensions ['colcon_pkg'] -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'colcon_pkg' -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extensions ['colcon_meta'] -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'colcon_meta' -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extensions ['ros'] -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'ros' -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extensions ['cmake', 'python'] -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'cmake' -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'python' -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extensions ['python_setup_py'] -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'python_setup_py' -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extensions ['ignore', 'ignore_ament_install'] -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'ignore' -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'ignore_ament_install' -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extensions ['colcon_pkg'] -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'colcon_pkg' -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extensions ['colcon_meta'] -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'colcon_meta' -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extensions ['ros'] -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'ros' -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extensions ['cmake', 'python'] -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'cmake' -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'python' -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extensions ['python_setup_py'] -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'python_setup_py' -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extensions ['ignore', 'ignore_ament_install'] -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'ignore' -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'ignore_ament_install' -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extensions ['colcon_pkg'] -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'colcon_pkg' -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extensions ['colcon_meta'] -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'colcon_meta' -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extensions ['ros'] -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'ros' -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extensions ['cmake', 'python'] -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'cmake' -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'python' -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extensions ['python_setup_py'] -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'python_setup_py' -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extensions ['ignore', 'ignore_ament_install'] -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'ignore' -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'ignore_ament_install' -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extensions ['colcon_pkg'] -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'colcon_pkg' -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extensions ['colcon_meta'] -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'colcon_meta' -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extensions ['ros'] -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'ros' -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extensions ['cmake', 'python'] -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'cmake' -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'python' -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extensions ['python_setup_py'] -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'python_setup_py' -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extensions ['ignore', 'ignore_ament_install'] -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'ignore' -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'ignore_ament_install' -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extensions ['colcon_pkg'] -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'colcon_pkg' -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extensions ['colcon_meta'] -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'colcon_meta' -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extensions ['ros'] -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'ros' -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extensions ['cmake', 'python'] -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'cmake' -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'python' -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extensions ['python_setup_py'] -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'python_setup_py' -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extensions ['ignore', 'ignore_ament_install'] -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'ignore' -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'ignore_ament_install' -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extensions ['colcon_pkg'] -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'colcon_pkg' -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extensions ['colcon_meta'] -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'colcon_meta' -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extensions ['ros'] -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'ros' -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extensions ['cmake', 'python'] -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'cmake' -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'python' -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extensions ['python_setup_py'] -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'python_setup_py' -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extensions ['ignore', 'ignore_ament_install'] -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'ignore' -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'ignore_ament_install' -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extensions ['colcon_pkg'] -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'colcon_pkg' -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extensions ['colcon_meta'] -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'colcon_meta' -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extensions ['ros'] -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'ros' -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extensions ['cmake', 'python'] -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'cmake' -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'python' -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extensions ['python_setup_py'] -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'python_setup_py' -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extensions ['ignore', 'ignore_ament_install'] -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'ignore' -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'ignore_ament_install' -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extensions ['colcon_pkg'] -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'colcon_pkg' -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extensions ['colcon_meta'] -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'colcon_meta' -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extensions ['ros'] -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'ros' -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extensions ['cmake', 'python'] -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'cmake' -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'python' -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extensions ['python_setup_py'] -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'python_setup_py' -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extensions ['ignore', 'ignore_ament_install'] -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'ignore' -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'ignore_ament_install' -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extensions ['colcon_pkg'] -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'colcon_pkg' -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extensions ['colcon_meta'] -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'colcon_meta' -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extensions ['ros'] -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'ros' -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extensions ['cmake', 'python'] -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'cmake' -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'python' -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extensions ['python_setup_py'] -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'python_setup_py' -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extensions ['ignore', 'ignore_ament_install'] -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'ignore' -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'ignore_ament_install' -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extensions ['colcon_pkg'] -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'colcon_pkg' -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extensions ['colcon_meta'] -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'colcon_meta' -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extensions ['ros'] -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'ros' -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extensions ['cmake', 'python'] -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'cmake' -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'python' -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extensions ['python_setup_py'] -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'python_setup_py' -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extensions ['ignore', 'ignore_ament_install'] -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'ignore' -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'ignore_ament_install' -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extensions ['colcon_pkg'] -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'colcon_pkg' -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extensions ['colcon_meta'] -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'colcon_meta' -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extensions ['ros'] -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'ros' -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extensions ['cmake', 'python'] -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'cmake' -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'python' -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extensions ['python_setup_py'] -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'python_setup_py' -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extensions ['ignore', 'ignore_ament_install'] -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'ignore' -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'ignore_ament_install' -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extensions ['colcon_pkg'] -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'colcon_pkg' -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extensions ['colcon_meta'] -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'colcon_meta' -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extensions ['ros'] -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'ros' -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extensions ['cmake', 'python'] -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'cmake' -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'python' -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extensions ['python_setup_py'] -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'python_setup_py' -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extensions ['ignore', 'ignore_ament_install'] -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'ignore' -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'ignore_ament_install' -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extensions ['colcon_pkg'] -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'colcon_pkg' -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extensions ['colcon_meta'] -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'colcon_meta' -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extensions ['ros'] -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'ros' -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extensions ['cmake', 'python'] -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'cmake' -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'python' -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extensions ['python_setup_py'] -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'python_setup_py' -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extensions ['ignore', 'ignore_ament_install'] -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'ignore' -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'ignore_ament_install' -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extensions ['colcon_pkg'] -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'colcon_pkg' -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extensions ['colcon_meta'] -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'colcon_meta' -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extensions ['ros'] -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'ros' -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extensions ['cmake', 'python'] -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'cmake' -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'python' -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extensions ['python_setup_py'] -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'python_setup_py' -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extensions ['ignore', 'ignore_ament_install'] -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'ignore' -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'ignore_ament_install' -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extensions ['colcon_pkg'] -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'colcon_pkg' -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extensions ['colcon_meta'] -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'colcon_meta' -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extensions ['ros'] -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'ros' -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extensions ['cmake', 'python'] -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'cmake' -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'python' -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extensions ['python_setup_py'] -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'python_setup_py' -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extensions ['ignore', 'ignore_ament_install'] -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'ignore' -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'ignore_ament_install' -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extensions ['colcon_pkg'] -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'colcon_pkg' -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extensions ['colcon_meta'] -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'colcon_meta' -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extensions ['ros'] -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'ros' -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extensions ['cmake', 'python'] -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'cmake' -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'python' -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extensions ['python_setup_py'] -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'python_setup_py' -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extensions ['ignore', 'ignore_ament_install'] -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'ignore' -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'ignore_ament_install' -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extensions ['colcon_pkg'] -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'colcon_pkg' -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extensions ['colcon_meta'] -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'colcon_meta' -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extensions ['ros'] -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'ros' -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extensions ['cmake', 'python'] -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'cmake' -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'python' -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extensions ['python_setup_py'] -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'python_setup_py' -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extensions ['ignore', 'ignore_ament_install'] -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'ignore' -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'ignore_ament_install' -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extensions ['colcon_pkg'] -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'colcon_pkg' -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extensions ['colcon_meta'] -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'colcon_meta' -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extensions ['ros'] -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'ros' -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extensions ['cmake', 'python'] -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'cmake' -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'python' -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extensions ['python_setup_py'] -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'python_setup_py' -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extensions ['ignore', 'ignore_ament_install'] -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'ignore' -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'ignore_ament_install' -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extensions ['colcon_pkg'] -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'colcon_pkg' -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extensions ['colcon_meta'] -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'colcon_meta' -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extensions ['ros'] -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'ros' -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extensions ['cmake', 'python'] -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'cmake' -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'python' -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extensions ['python_setup_py'] -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'python_setup_py' -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extensions ['ignore', 'ignore_ament_install'] -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'ignore' -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'ignore_ament_install' -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extensions ['colcon_pkg'] -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'colcon_pkg' -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extensions ['colcon_meta'] -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'colcon_meta' -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extensions ['ros'] -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'ros' -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extensions ['cmake', 'python'] -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'cmake' -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'python' -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extensions ['python_setup_py'] -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'python_setup_py' -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extensions ['ignore', 'ignore_ament_install'] -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'ignore' -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'ignore_ament_install' -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extensions ['colcon_pkg'] -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'colcon_pkg' -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extensions ['colcon_meta'] -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'colcon_meta' -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extensions ['ros'] -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'ros' -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extensions ['cmake', 'python'] -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'cmake' -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'python' -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extensions ['python_setup_py'] -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'python_setup_py' -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extensions ['ignore', 'ignore_ament_install'] -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'ignore' -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'ignore_ament_install' -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extensions ['colcon_pkg'] -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'colcon_pkg' -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extensions ['colcon_meta'] -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'colcon_meta' -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extensions ['ros'] -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'ros' -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extensions ['cmake', 'python'] -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'cmake' -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'python' -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extensions ['python_setup_py'] -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'python_setup_py' -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extensions ['ignore', 'ignore_ament_install'] -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'ignore' -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'ignore_ament_install' -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extensions ['colcon_pkg'] -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'colcon_pkg' -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extensions ['colcon_meta'] -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'colcon_meta' -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extensions ['ros'] -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'ros' -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extensions ['cmake', 'python'] -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'cmake' -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'python' -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extensions ['python_setup_py'] -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'python_setup_py' -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extensions ['ignore', 'ignore_ament_install'] -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'ignore' -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'ignore_ament_install' -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extensions ['colcon_pkg'] -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'colcon_pkg' -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extensions ['colcon_meta'] -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'colcon_meta' -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extensions ['ros'] -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'ros' -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extensions ['cmake', 'python'] -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'cmake' -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'python' -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extensions ['python_setup_py'] -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'python_setup_py' -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extensions ['ignore', 'ignore_ament_install'] -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'ignore' -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'ignore_ament_install' -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extensions ['colcon_pkg'] -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'colcon_pkg' -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extensions ['colcon_meta'] -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'colcon_meta' -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extensions ['ros'] -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'ros' -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extensions ['cmake', 'python'] -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'cmake' -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'python' -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extensions ['python_setup_py'] -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'python_setup_py' -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extensions ['ignore', 'ignore_ament_install'] -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'ignore' -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'ignore_ament_install' -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extensions ['colcon_pkg'] -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'colcon_pkg' -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extensions ['colcon_meta'] -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'colcon_meta' -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extensions ['ros'] -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'ros' -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extensions ['cmake', 'python'] -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'cmake' -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'python' -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extensions ['python_setup_py'] -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'python_setup_py' -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extensions ['ignore', 'ignore_ament_install'] -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'ignore' -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'ignore_ament_install' -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extensions ['colcon_pkg'] -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'colcon_pkg' -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extensions ['colcon_meta'] -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'colcon_meta' -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extensions ['ros'] -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'ros' -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extensions ['cmake', 'python'] -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'cmake' -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'python' -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extensions ['python_setup_py'] -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'python_setup_py' -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extensions ['ignore', 'ignore_ament_install'] -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'ignore' -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'ignore_ament_install' -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extensions ['colcon_pkg'] -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'colcon_pkg' -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extensions ['colcon_meta'] -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'colcon_meta' -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extensions ['ros'] -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'ros' -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extensions ['cmake', 'python'] -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'cmake' -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'python' -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extensions ['python_setup_py'] -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'python_setup_py' -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extensions ['ignore', 'ignore_ament_install'] -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'ignore' -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'ignore_ament_install' -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extensions ['colcon_pkg'] -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'colcon_pkg' -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extensions ['colcon_meta'] -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'colcon_meta' -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extensions ['ros'] -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'ros' -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extensions ['cmake', 'python'] -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'cmake' -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'python' -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extensions ['python_setup_py'] -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'python_setup_py' -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extensions ['ignore', 'ignore_ament_install'] -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'ignore' -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'ignore_ament_install' -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extensions ['colcon_pkg'] -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'colcon_pkg' -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extensions ['colcon_meta'] -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'colcon_meta' -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extensions ['ros'] -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'ros' -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extensions ['cmake', 'python'] -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'cmake' -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'python' -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extensions ['python_setup_py'] -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'python_setup_py' -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extensions ['ignore', 'ignore_ament_install'] -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'ignore' -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'ignore_ament_install' -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extensions ['colcon_pkg'] -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'colcon_pkg' -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extensions ['colcon_meta'] -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'colcon_meta' -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extensions ['ros'] -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'ros' -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extensions ['cmake', 'python'] -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'cmake' -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'python' -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extensions ['python_setup_py'] -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'python_setup_py' -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extensions ['ignore', 'ignore_ament_install'] -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'ignore' -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'ignore_ament_install' -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extensions ['colcon_pkg'] -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'colcon_pkg' -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extensions ['colcon_meta'] -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'colcon_meta' -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extensions ['ros'] -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'ros' -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extensions ['cmake', 'python'] -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'cmake' -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'python' -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extensions ['python_setup_py'] -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'python_setup_py' -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extensions ['ignore', 'ignore_ament_install'] -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'ignore' -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'ignore_ament_install' -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extensions ['colcon_pkg'] -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'colcon_pkg' -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extensions ['colcon_meta'] -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'colcon_meta' -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extensions ['ros'] -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'ros' -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extensions ['cmake', 'python'] -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'cmake' -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'python' -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extensions ['python_setup_py'] -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'python_setup_py' -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extensions ['ignore', 'ignore_ament_install'] -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'ignore' -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'ignore_ament_install' -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extensions ['colcon_pkg'] -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'colcon_pkg' -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extensions ['colcon_meta'] -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'colcon_meta' -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extensions ['ros'] -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'ros' -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extensions ['cmake', 'python'] -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'cmake' -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'python' -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extensions ['python_setup_py'] -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'python_setup_py' -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extensions ['ignore', 'ignore_ament_install'] -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'ignore' -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'ignore_ament_install' -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extensions ['colcon_pkg'] -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'colcon_pkg' -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extensions ['colcon_meta'] -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'colcon_meta' -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extensions ['ros'] -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'ros' -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extensions ['cmake', 'python'] -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'cmake' -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'python' -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extensions ['python_setup_py'] -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'python_setup_py' -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extensions ['ignore', 'ignore_ament_install'] -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'ignore' -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'ignore_ament_install' -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extensions ['colcon_pkg'] -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'colcon_pkg' -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extensions ['colcon_meta'] -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'colcon_meta' -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extensions ['ros'] -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'ros' -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extensions ['cmake', 'python'] -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'cmake' -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'python' -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extensions ['python_setup_py'] -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'python_setup_py' -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extensions ['ignore', 'ignore_ament_install'] -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'ignore' -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'ignore_ament_install' -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extensions ['colcon_pkg'] -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'colcon_pkg' -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extensions ['colcon_meta'] -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'colcon_meta' -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extensions ['ros'] -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'ros' -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extensions ['cmake', 'python'] -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'cmake' -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'python' -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extensions ['python_setup_py'] -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'python_setup_py' -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extensions ['ignore', 'ignore_ament_install'] -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'ignore' -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'ignore_ament_install' -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extensions ['colcon_pkg'] -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'colcon_pkg' -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extensions ['colcon_meta'] -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'colcon_meta' -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extensions ['ros'] -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'ros' -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extensions ['cmake', 'python'] -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'cmake' -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'python' -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extensions ['python_setup_py'] -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'python_setup_py' -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extensions ['ignore', 'ignore_ament_install'] -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'ignore' -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'ignore_ament_install' -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extensions ['colcon_pkg'] -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'colcon_pkg' -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extensions ['colcon_meta'] -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'colcon_meta' -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extensions ['ros'] -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'ros' -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extensions ['cmake', 'python'] -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'cmake' -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'python' -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extensions ['python_setup_py'] -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'python_setup_py' -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extensions ['ignore', 'ignore_ament_install'] -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'ignore' -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'ignore_ament_install' -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extensions ['colcon_pkg'] -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'colcon_pkg' -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extensions ['colcon_meta'] -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'colcon_meta' -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extensions ['ros'] -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'ros' -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extensions ['cmake', 'python'] -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'cmake' -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'python' -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extensions ['python_setup_py'] -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'python_setup_py' -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extensions ['ignore', 'ignore_ament_install'] -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'ignore' -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'ignore_ament_install' -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extensions ['colcon_pkg'] -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'colcon_pkg' -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extensions ['colcon_meta'] -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'colcon_meta' -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extensions ['ros'] -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'ros' -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extensions ['cmake', 'python'] -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'cmake' -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'python' -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extensions ['python_setup_py'] -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'python_setup_py' -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extensions ['ignore', 'ignore_ament_install'] -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'ignore' -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'ignore_ament_install' -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extensions ['colcon_pkg'] -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'colcon_pkg' -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extensions ['colcon_meta'] -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'colcon_meta' -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extensions ['ros'] -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'ros' -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extensions ['cmake', 'python'] -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'cmake' -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'python' -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extensions ['python_setup_py'] -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'python_setup_py' -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extensions ['ignore', 'ignore_ament_install'] -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'ignore' -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'ignore_ament_install' -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extensions ['colcon_pkg'] -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'colcon_pkg' -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extensions ['colcon_meta'] -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'colcon_meta' -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extensions ['ros'] -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'ros' -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extensions ['cmake', 'python'] -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'cmake' -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'python' -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extensions ['python_setup_py'] -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'python_setup_py' -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extensions ['ignore', 'ignore_ament_install'] -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'ignore' -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'ignore_ament_install' -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extensions ['colcon_pkg'] -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'colcon_pkg' -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extensions ['colcon_meta'] -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'colcon_meta' -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extensions ['ros'] -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'ros' -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extensions ['cmake', 'python'] -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'cmake' -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'python' -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extensions ['python_setup_py'] -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'python_setup_py' -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extensions ['ignore', 'ignore_ament_install'] -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'ignore' -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'ignore_ament_install' -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extensions ['colcon_pkg'] -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'colcon_pkg' -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extensions ['colcon_meta'] -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'colcon_meta' -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extensions ['ros'] -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'ros' -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extensions ['cmake', 'python'] -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'cmake' -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'python' -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extensions ['python_setup_py'] -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'python_setup_py' -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extensions ['ignore', 'ignore_ament_install'] -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'ignore' -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'ignore_ament_install' -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extensions ['colcon_pkg'] -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'colcon_pkg' -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extensions ['colcon_meta'] -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'colcon_meta' -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extensions ['ros'] -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'ros' -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extensions ['cmake', 'python'] -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'cmake' -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'python' -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extensions ['python_setup_py'] -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'python_setup_py' -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extensions ['ignore', 'ignore_ament_install'] -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'ignore' -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'ignore_ament_install' -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extensions ['colcon_pkg'] -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'colcon_pkg' -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extensions ['colcon_meta'] -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'colcon_meta' -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extensions ['ros'] -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'ros' -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extensions ['cmake', 'python'] -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'cmake' -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'python' -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extensions ['python_setup_py'] -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'python_setup_py' -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extensions ['ignore', 'ignore_ament_install'] -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'ignore' -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'ignore_ament_install' -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extensions ['colcon_pkg'] -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'colcon_pkg' -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extensions ['colcon_meta'] -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'colcon_meta' -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extensions ['ros'] -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'ros' -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extensions ['cmake', 'python'] -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'cmake' -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'python' -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extensions ['python_setup_py'] -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'python_setup_py' -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extensions ['ignore', 'ignore_ament_install'] -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'ignore' -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'ignore_ament_install' -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extensions ['colcon_pkg'] -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'colcon_pkg' -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extensions ['colcon_meta'] -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'colcon_meta' -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extensions ['ros'] -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'ros' -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extensions ['cmake', 'python'] -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'cmake' -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'python' -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extensions ['python_setup_py'] -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'python_setup_py' -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extensions ['ignore', 'ignore_ament_install'] -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'ignore' -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'ignore_ament_install' -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extensions ['colcon_pkg'] -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'colcon_pkg' -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extensions ['colcon_meta'] -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'colcon_meta' -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extensions ['ros'] -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'ros' -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extensions ['cmake', 'python'] -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'cmake' -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'python' -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extensions ['python_setup_py'] -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'python_setup_py' -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extensions ['ignore', 'ignore_ament_install'] -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'ignore' -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'ignore_ament_install' -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extensions ['colcon_pkg'] -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'colcon_pkg' -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extensions ['colcon_meta'] -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'colcon_meta' -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extensions ['ros'] -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'ros' -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extensions ['cmake', 'python'] -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'cmake' -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'python' -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extensions ['python_setup_py'] -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'python_setup_py' -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extensions ['ignore', 'ignore_ament_install'] -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'ignore' -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'ignore_ament_install' -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extensions ['colcon_pkg'] -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'colcon_pkg' -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extensions ['colcon_meta'] -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'colcon_meta' -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extensions ['ros'] -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'ros' -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extensions ['cmake', 'python'] -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'cmake' -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'python' -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extensions ['python_setup_py'] -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'python_setup_py' -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extensions ['ignore', 'ignore_ament_install'] -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'ignore' -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'ignore_ament_install' -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extensions ['colcon_pkg'] -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'colcon_pkg' -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extensions ['colcon_meta'] -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'colcon_meta' -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extensions ['ros'] -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'ros' -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extensions ['cmake', 'python'] -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'cmake' -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'python' -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extensions ['python_setup_py'] -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'python_setup_py' -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extensions ['ignore', 'ignore_ament_install'] -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'ignore' -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'ignore_ament_install' -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extensions ['colcon_pkg'] -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'colcon_pkg' -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extensions ['colcon_meta'] -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'colcon_meta' -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extensions ['ros'] -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'ros' -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extensions ['cmake', 'python'] -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'cmake' -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'python' -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extensions ['python_setup_py'] -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'python_setup_py' -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extensions ['ignore', 'ignore_ament_install'] -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'ignore' -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'ignore_ament_install' -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extensions ['colcon_pkg'] -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'colcon_pkg' -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extensions ['colcon_meta'] -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'colcon_meta' -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extensions ['ros'] -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'ros' -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extensions ['cmake', 'python'] -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'cmake' -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'python' -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extensions ['python_setup_py'] -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'python_setup_py' -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extensions ['ignore', 'ignore_ament_install'] -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'ignore' -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'ignore_ament_install' -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extensions ['colcon_pkg'] -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'colcon_pkg' -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extensions ['colcon_meta'] -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'colcon_meta' -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extensions ['ros'] -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'ros' -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extensions ['cmake', 'python'] -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'cmake' -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'python' -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extensions ['python_setup_py'] -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'python_setup_py' -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extensions ['ignore', 'ignore_ament_install'] -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'ignore' -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'ignore_ament_install' -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extensions ['colcon_pkg'] -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'colcon_pkg' -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extensions ['colcon_meta'] -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'colcon_meta' -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extensions ['ros'] -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'ros' -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extensions ['cmake', 'python'] -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'cmake' -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'python' -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extensions ['python_setup_py'] -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'python_setup_py' -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extensions ['ignore', 'ignore_ament_install'] -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'ignore' -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'ignore_ament_install' -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extensions ['colcon_pkg'] -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'colcon_pkg' -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extensions ['colcon_meta'] -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'colcon_meta' -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extensions ['ros'] -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'ros' -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extensions ['cmake', 'python'] -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'cmake' -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'python' -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extensions ['python_setup_py'] -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'python_setup_py' -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extensions ['ignore', 'ignore_ament_install'] -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'ignore' -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'ignore_ament_install' -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extensions ['colcon_pkg'] -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'colcon_pkg' -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extensions ['colcon_meta'] -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'colcon_meta' -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extensions ['ros'] -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'ros' -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extensions ['cmake', 'python'] -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'cmake' -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'python' -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extensions ['python_setup_py'] -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'python_setup_py' -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extensions ['ignore', 'ignore_ament_install'] -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'ignore' -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'ignore_ament_install' -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extensions ['colcon_pkg'] -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'colcon_pkg' -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extensions ['colcon_meta'] -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'colcon_meta' -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extensions ['ros'] -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'ros' -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extensions ['cmake', 'python'] -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'cmake' -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'python' -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extensions ['python_setup_py'] -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'python_setup_py' -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extensions ['ignore', 'ignore_ament_install'] -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'ignore' -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'ignore_ament_install' -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extensions ['colcon_pkg'] -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'colcon_pkg' -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extensions ['colcon_meta'] -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'colcon_meta' -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extensions ['ros'] -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'ros' -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extensions ['cmake', 'python'] -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'cmake' -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'python' -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extensions ['python_setup_py'] -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'python_setup_py' -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extensions ['ignore', 'ignore_ament_install'] -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'ignore' -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'ignore_ament_install' -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extensions ['colcon_pkg'] -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'colcon_pkg' -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extensions ['colcon_meta'] -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'colcon_meta' -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extensions ['ros'] -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'ros' -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extensions ['cmake', 'python'] -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'cmake' -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'python' -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extensions ['python_setup_py'] -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'python_setup_py' -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extensions ['ignore', 'ignore_ament_install'] -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'ignore' -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'ignore_ament_install' -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extensions ['colcon_pkg'] -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'colcon_pkg' -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extensions ['colcon_meta'] -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'colcon_meta' -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extensions ['ros'] -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'ros' -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extensions ['cmake', 'python'] -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'cmake' -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'python' -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extensions ['python_setup_py'] -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'python_setup_py' -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extensions ['ignore', 'ignore_ament_install'] -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'ignore' -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'ignore_ament_install' -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extensions ['colcon_pkg'] -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'colcon_pkg' -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extensions ['colcon_meta'] -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'colcon_meta' -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extensions ['ros'] -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'ros' -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extensions ['cmake', 'python'] -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'cmake' -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'python' -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extensions ['python_setup_py'] -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'python_setup_py' -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extensions ['ignore', 'ignore_ament_install'] -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'ignore' -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'ignore_ament_install' -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extensions ['colcon_pkg'] -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'colcon_pkg' -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extensions ['colcon_meta'] -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'colcon_meta' -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extensions ['ros'] -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'ros' -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extensions ['cmake', 'python'] -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'cmake' -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'python' -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extensions ['python_setup_py'] -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'python_setup_py' -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extensions ['ignore', 'ignore_ament_install'] -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'ignore' -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'ignore_ament_install' -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extensions ['colcon_pkg'] -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'colcon_pkg' -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extensions ['colcon_meta'] -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'colcon_meta' -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extensions ['ros'] -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'ros' -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extensions ['cmake', 'python'] -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'cmake' -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'python' -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extensions ['python_setup_py'] -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'python_setup_py' -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extensions ['ignore', 'ignore_ament_install'] -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'ignore' -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'ignore_ament_install' -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extensions ['colcon_pkg'] -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'colcon_pkg' -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extensions ['colcon_meta'] -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'colcon_meta' -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extensions ['ros'] -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'ros' -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extensions ['cmake', 'python'] -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'cmake' -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'python' -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extensions ['python_setup_py'] -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'python_setup_py' -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extensions ['ignore', 'ignore_ament_install'] -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'ignore' -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'ignore_ament_install' -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extensions ['colcon_pkg'] -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'colcon_pkg' -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extensions ['colcon_meta'] -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'colcon_meta' -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extensions ['ros'] -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'ros' -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extensions ['cmake', 'python'] -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'cmake' -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'python' -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extensions ['python_setup_py'] -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'python_setup_py' -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extensions ['ignore', 'ignore_ament_install'] -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'ignore' -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'ignore_ament_install' -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extensions ['colcon_pkg'] -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'colcon_pkg' -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extensions ['colcon_meta'] -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'colcon_meta' -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extensions ['ros'] -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'ros' -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extensions ['cmake', 'python'] -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'cmake' -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'python' -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extensions ['python_setup_py'] -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'python_setup_py' -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extensions ['ignore', 'ignore_ament_install'] -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'ignore' -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'ignore_ament_install' -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extensions ['colcon_pkg'] -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'colcon_pkg' -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extensions ['colcon_meta'] -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'colcon_meta' -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extensions ['ros'] -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'ros' -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extensions ['cmake', 'python'] -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'cmake' -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'python' -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extensions ['python_setup_py'] -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'python_setup_py' -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extensions ['ignore', 'ignore_ament_install'] -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'ignore' -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'ignore_ament_install' -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extensions ['colcon_pkg'] -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'colcon_pkg' -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extensions ['colcon_meta'] -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'colcon_meta' -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extensions ['ros'] -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'ros' -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extensions ['cmake', 'python'] -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'cmake' -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'python' -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extensions ['python_setup_py'] -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'python_setup_py' -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extensions ['ignore', 'ignore_ament_install'] -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'ignore' -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'ignore_ament_install' -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extensions ['colcon_pkg'] -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'colcon_pkg' -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extensions ['colcon_meta'] -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'colcon_meta' -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extensions ['ros'] -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'ros' -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extensions ['cmake', 'python'] -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'cmake' -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'python' -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extensions ['python_setup_py'] -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'python_setup_py' -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extensions ['ignore', 'ignore_ament_install'] -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'ignore' -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'ignore_ament_install' -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extensions ['colcon_pkg'] -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'colcon_pkg' -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extensions ['colcon_meta'] -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'colcon_meta' -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extensions ['ros'] -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'ros' -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extensions ['cmake', 'python'] -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'cmake' -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'python' -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extensions ['python_setup_py'] -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'python_setup_py' -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extensions ['ignore', 'ignore_ament_install'] -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'ignore' -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'ignore_ament_install' -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extensions ['colcon_pkg'] -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'colcon_pkg' -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extensions ['colcon_meta'] -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'colcon_meta' -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extensions ['ros'] -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'ros' -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extensions ['cmake', 'python'] -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'cmake' -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'python' -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extensions ['python_setup_py'] -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'python_setup_py' -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extensions ['ignore', 'ignore_ament_install'] -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'ignore' -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'ignore_ament_install' -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extensions ['colcon_pkg'] -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'colcon_pkg' -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extensions ['colcon_meta'] -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'colcon_meta' -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extensions ['ros'] -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'ros' -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extensions ['cmake', 'python'] -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'cmake' -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'python' -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extensions ['python_setup_py'] -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'python_setup_py' -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extensions ['ignore', 'ignore_ament_install'] -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'ignore' -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'ignore_ament_install' -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extensions ['colcon_pkg'] -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'colcon_pkg' -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extensions ['colcon_meta'] -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'colcon_meta' -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extensions ['ros'] -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'ros' -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extensions ['cmake', 'python'] -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'cmake' -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'python' -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extensions ['python_setup_py'] -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'python_setup_py' -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extensions ['ignore', 'ignore_ament_install'] -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'ignore' -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'ignore_ament_install' -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extensions ['colcon_pkg'] -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'colcon_pkg' -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extensions ['colcon_meta'] -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'colcon_meta' -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extensions ['ros'] -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'ros' -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extensions ['cmake', 'python'] -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'cmake' -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'python' -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extensions ['python_setup_py'] -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'python_setup_py' -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extensions ['ignore', 'ignore_ament_install'] -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'ignore' -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'ignore_ament_install' -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extensions ['colcon_pkg'] -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'colcon_pkg' -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extensions ['colcon_meta'] -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'colcon_meta' -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extensions ['ros'] -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'ros' -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extensions ['cmake', 'python'] -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'cmake' -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'python' -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extensions ['python_setup_py'] -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'python_setup_py' -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extensions ['ignore', 'ignore_ament_install'] -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'ignore' -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'ignore_ament_install' -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extensions ['colcon_pkg'] -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'colcon_pkg' -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extensions ['colcon_meta'] -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'colcon_meta' -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extensions ['ros'] -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'ros' -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extensions ['cmake', 'python'] -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'cmake' -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'python' -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extensions ['python_setup_py'] -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'python_setup_py' -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extensions ['ignore', 'ignore_ament_install'] -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'ignore' -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'ignore_ament_install' -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extensions ['colcon_pkg'] -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'colcon_pkg' -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extensions ['colcon_meta'] -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'colcon_meta' -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extensions ['ros'] -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'ros' -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extensions ['cmake', 'python'] -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'cmake' -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'python' -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extensions ['python_setup_py'] -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'python_setup_py' -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extensions ['ignore', 'ignore_ament_install'] -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'ignore' -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'ignore_ament_install' -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extensions ['colcon_pkg'] -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'colcon_pkg' -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extensions ['colcon_meta'] -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'colcon_meta' -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extensions ['ros'] -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'ros' -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extensions ['cmake', 'python'] -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'cmake' -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'python' -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extensions ['python_setup_py'] -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'python_setup_py' -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extensions ['ignore', 'ignore_ament_install'] -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'ignore' -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'ignore_ament_install' -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extensions ['colcon_pkg'] -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'colcon_pkg' -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extensions ['colcon_meta'] -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'colcon_meta' -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extensions ['ros'] -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'ros' -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extensions ['cmake', 'python'] -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'cmake' -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'python' -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extensions ['python_setup_py'] -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'python_setup_py' -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extensions ['ignore', 'ignore_ament_install'] -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'ignore' -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'ignore_ament_install' -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extensions ['colcon_pkg'] -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'colcon_pkg' -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extensions ['colcon_meta'] -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'colcon_meta' -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extensions ['ros'] -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'ros' -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extensions ['cmake', 'python'] -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'cmake' -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'python' -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extensions ['python_setup_py'] -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'python_setup_py' -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extensions ['ignore', 'ignore_ament_install'] -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'ignore' -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'ignore_ament_install' -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extensions ['colcon_pkg'] -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'colcon_pkg' -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extensions ['colcon_meta'] -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'colcon_meta' -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extensions ['ros'] -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'ros' -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extensions ['cmake', 'python'] -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'cmake' -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'python' -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extensions ['python_setup_py'] -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'python_setup_py' -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extensions ['ignore', 'ignore_ament_install'] -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'ignore' -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'ignore_ament_install' -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extensions ['colcon_pkg'] -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'colcon_pkg' -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extensions ['colcon_meta'] -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'colcon_meta' -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extensions ['ros'] -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'ros' -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extensions ['cmake', 'python'] -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'cmake' -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'python' -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extensions ['python_setup_py'] -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'python_setup_py' -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extensions ['ignore', 'ignore_ament_install'] -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'ignore' -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'ignore_ament_install' -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extensions ['colcon_pkg'] -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'colcon_pkg' -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extensions ['colcon_meta'] -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'colcon_meta' -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extensions ['ros'] -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'ros' -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extensions ['cmake', 'python'] -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'cmake' -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'python' -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extensions ['python_setup_py'] -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'python_setup_py' -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extensions ['ignore', 'ignore_ament_install'] -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'ignore' -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'ignore_ament_install' -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extensions ['colcon_pkg'] -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'colcon_pkg' -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extensions ['colcon_meta'] -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'colcon_meta' -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extensions ['ros'] -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'ros' -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extensions ['cmake', 'python'] -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'cmake' -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'python' -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extensions ['python_setup_py'] -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'python_setup_py' -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extensions ['ignore', 'ignore_ament_install'] -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'ignore' -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'ignore_ament_install' -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extensions ['colcon_pkg'] -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'colcon_pkg' -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extensions ['colcon_meta'] -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'colcon_meta' -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extensions ['ros'] -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'ros' -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extensions ['cmake', 'python'] -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'cmake' -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'python' -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extensions ['python_setup_py'] -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'python_setup_py' -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extensions ['ignore', 'ignore_ament_install'] -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'ignore' -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'ignore_ament_install' -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extensions ['colcon_pkg'] -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'colcon_pkg' -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extensions ['colcon_meta'] -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'colcon_meta' -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extensions ['ros'] -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'ros' -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extensions ['cmake', 'python'] -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'cmake' -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'python' -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extensions ['python_setup_py'] -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'python_setup_py' -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extensions ['ignore', 'ignore_ament_install'] -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'ignore' -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'ignore_ament_install' -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extensions ['colcon_pkg'] -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'colcon_pkg' -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extensions ['colcon_meta'] -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'colcon_meta' -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extensions ['ros'] -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'ros' -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extensions ['cmake', 'python'] -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'cmake' -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'python' -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extensions ['python_setup_py'] -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'python_setup_py' -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extensions ['ignore', 'ignore_ament_install'] -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'ignore' -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'ignore_ament_install' -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extensions ['colcon_pkg'] -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'colcon_pkg' -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extensions ['colcon_meta'] -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'colcon_meta' -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extensions ['ros'] -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'ros' -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extensions ['cmake', 'python'] -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'cmake' -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'python' -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extensions ['python_setup_py'] -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'python_setup_py' -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extensions ['ignore', 'ignore_ament_install'] -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'ignore' -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'ignore_ament_install' -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extensions ['colcon_pkg'] -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'colcon_pkg' -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extensions ['colcon_meta'] -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'colcon_meta' -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extensions ['ros'] -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'ros' -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extensions ['cmake', 'python'] -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'cmake' -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'python' -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extensions ['python_setup_py'] -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'python_setup_py' -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extensions ['ignore', 'ignore_ament_install'] -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'ignore' -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'ignore_ament_install' -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extensions ['colcon_pkg'] -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'colcon_pkg' -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extensions ['colcon_meta'] -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'colcon_meta' -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extensions ['ros'] -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'ros' -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extensions ['cmake', 'python'] -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'cmake' -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'python' -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extensions ['python_setup_py'] -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'python_setup_py' -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extensions ['ignore', 'ignore_ament_install'] -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'ignore' -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'ignore_ament_install' -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extensions ['colcon_pkg'] -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'colcon_pkg' -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extensions ['colcon_meta'] -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'colcon_meta' -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extensions ['ros'] -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'ros' -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extensions ['cmake', 'python'] -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'cmake' -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'python' -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extensions ['python_setup_py'] -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'python_setup_py' -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extensions ['ignore', 'ignore_ament_install'] -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'ignore' -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'ignore_ament_install' -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extensions ['colcon_pkg'] -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'colcon_pkg' -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extensions ['colcon_meta'] -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'colcon_meta' -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extensions ['ros'] -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'ros' -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extensions ['cmake', 'python'] -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'cmake' -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'python' -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extensions ['python_setup_py'] -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'python_setup_py' -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extensions ['ignore', 'ignore_ament_install'] -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'ignore' -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'ignore_ament_install' -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extensions ['colcon_pkg'] -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'colcon_pkg' -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extensions ['colcon_meta'] -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'colcon_meta' -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extensions ['ros'] -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'ros' -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extensions ['cmake', 'python'] -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'cmake' -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'python' -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extensions ['python_setup_py'] -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'python_setup_py' -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extensions ['ignore', 'ignore_ament_install'] -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'ignore' -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'ignore_ament_install' -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extensions ['colcon_pkg'] -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'colcon_pkg' -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extensions ['colcon_meta'] -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'colcon_meta' -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extensions ['ros'] -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'ros' -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extensions ['cmake', 'python'] -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'cmake' -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'python' -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extensions ['python_setup_py'] -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'python_setup_py' -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extensions ['ignore', 'ignore_ament_install'] -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'ignore' -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'ignore_ament_install' -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extensions ['colcon_pkg'] -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'colcon_pkg' -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extensions ['colcon_meta'] -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'colcon_meta' -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extensions ['ros'] -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'ros' -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extensions ['cmake', 'python'] -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'cmake' -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'python' -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extensions ['python_setup_py'] -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'python_setup_py' -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extensions ['ignore', 'ignore_ament_install'] -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'ignore' -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'ignore_ament_install' -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extensions ['colcon_pkg'] -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'colcon_pkg' -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extensions ['colcon_meta'] -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'colcon_meta' -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extensions ['ros'] -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'ros' -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extensions ['cmake', 'python'] -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'cmake' -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'python' -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extensions ['python_setup_py'] -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'python_setup_py' -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extensions ['ignore', 'ignore_ament_install'] -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'ignore' -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'ignore_ament_install' -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extensions ['colcon_pkg'] -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'colcon_pkg' -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extensions ['colcon_meta'] -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'colcon_meta' -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extensions ['ros'] -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'ros' -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extensions ['cmake', 'python'] -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'cmake' -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'python' -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extensions ['python_setup_py'] -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'python_setup_py' -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extensions ['ignore', 'ignore_ament_install'] -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'ignore' -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'ignore_ament_install' -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extensions ['colcon_pkg'] -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'colcon_pkg' -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extensions ['colcon_meta'] -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'colcon_meta' -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extensions ['ros'] -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'ros' -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extensions ['cmake', 'python'] -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'cmake' -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'python' -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extensions ['python_setup_py'] -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'python_setup_py' -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extensions ['ignore', 'ignore_ament_install'] -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'ignore' -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'ignore_ament_install' -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extensions ['colcon_pkg'] -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'colcon_pkg' -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extensions ['colcon_meta'] -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'colcon_meta' -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extensions ['ros'] -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'ros' -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extensions ['cmake', 'python'] -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'cmake' -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'python' -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extensions ['python_setup_py'] -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'python_setup_py' -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extensions ['ignore', 'ignore_ament_install'] -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'ignore' -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'ignore_ament_install' -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extensions ['colcon_pkg'] -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'colcon_pkg' -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extensions ['colcon_meta'] -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'colcon_meta' -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extensions ['ros'] -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'ros' -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extensions ['cmake', 'python'] -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'cmake' -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'python' -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extensions ['python_setup_py'] -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'python_setup_py' -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extensions ['ignore', 'ignore_ament_install'] -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'ignore' -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'ignore_ament_install' -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extensions ['colcon_pkg'] -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'colcon_pkg' -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extensions ['colcon_meta'] -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'colcon_meta' -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extensions ['ros'] -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'ros' -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extensions ['cmake', 'python'] -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'cmake' -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'python' -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extensions ['python_setup_py'] -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'python_setup_py' -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extensions ['ignore', 'ignore_ament_install'] -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'ignore' -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'ignore_ament_install' -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extensions ['colcon_pkg'] -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'colcon_pkg' -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extensions ['colcon_meta'] -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'colcon_meta' -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extensions ['ros'] -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'ros' -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extensions ['cmake', 'python'] -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'cmake' -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'python' -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extensions ['python_setup_py'] -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'python_setup_py' -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extensions ['ignore', 'ignore_ament_install'] -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'ignore' -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'ignore_ament_install' -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extensions ['colcon_pkg'] -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'colcon_pkg' -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extensions ['colcon_meta'] -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'colcon_meta' -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extensions ['ros'] -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'ros' -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extensions ['cmake', 'python'] -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'cmake' -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'python' -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extensions ['python_setup_py'] -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'python_setup_py' -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extensions ['ignore', 'ignore_ament_install'] -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'ignore' -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'ignore_ament_install' -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extensions ['colcon_pkg'] -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'colcon_pkg' -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extensions ['colcon_meta'] -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'colcon_meta' -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extensions ['ros'] -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'ros' -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extensions ['cmake', 'python'] -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'cmake' -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'python' -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extensions ['python_setup_py'] -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'python_setup_py' -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extensions ['ignore', 'ignore_ament_install'] -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'ignore' -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'ignore_ament_install' -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extensions ['colcon_pkg'] -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'colcon_pkg' -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extensions ['colcon_meta'] -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'colcon_meta' -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extensions ['ros'] -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'ros' -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extensions ['cmake', 'python'] -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'cmake' -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'python' -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extensions ['python_setup_py'] -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'python_setup_py' -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extensions ['ignore', 'ignore_ament_install'] -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'ignore' -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'ignore_ament_install' -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extensions ['colcon_pkg'] -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'colcon_pkg' -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extensions ['colcon_meta'] -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'colcon_meta' -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extensions ['ros'] -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'ros' -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extensions ['cmake', 'python'] -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'cmake' -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'python' -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extensions ['python_setup_py'] -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'python_setup_py' -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extensions ['ignore', 'ignore_ament_install'] -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'ignore' -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'ignore_ament_install' -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extensions ['colcon_pkg'] -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'colcon_pkg' -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extensions ['colcon_meta'] -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'colcon_meta' -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extensions ['ros'] -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'ros' -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extensions ['cmake', 'python'] -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'cmake' -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'python' -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extensions ['python_setup_py'] -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'python_setup_py' -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extensions ['ignore', 'ignore_ament_install'] -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'ignore' -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'ignore_ament_install' -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extensions ['colcon_pkg'] -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'colcon_pkg' -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extensions ['colcon_meta'] -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'colcon_meta' -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extensions ['ros'] -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'ros' -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extensions ['cmake', 'python'] -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'cmake' -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'python' -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extensions ['python_setup_py'] -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'python_setup_py' -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extensions ['ignore', 'ignore_ament_install'] -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'ignore' -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'ignore_ament_install' -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extensions ['colcon_pkg'] -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'colcon_pkg' -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extensions ['colcon_meta'] -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'colcon_meta' -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extensions ['ros'] -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'ros' -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extensions ['cmake', 'python'] -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'cmake' -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'python' -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extensions ['python_setup_py'] -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'python_setup_py' -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extensions ['ignore', 'ignore_ament_install'] -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'ignore' -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'ignore_ament_install' -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extensions ['colcon_pkg'] -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'colcon_pkg' -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extensions ['colcon_meta'] -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'colcon_meta' -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extensions ['ros'] -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'ros' -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extensions ['cmake', 'python'] -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'cmake' -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'python' -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extensions ['python_setup_py'] -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'python_setup_py' -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extensions ['ignore', 'ignore_ament_install'] -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'ignore' -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'ignore_ament_install' -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extensions ['colcon_pkg'] -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'colcon_pkg' -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extensions ['colcon_meta'] -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'colcon_meta' -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extensions ['ros'] -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'ros' -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extensions ['cmake', 'python'] -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'cmake' -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'python' -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extensions ['python_setup_py'] -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'python_setup_py' -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extensions ['ignore', 'ignore_ament_install'] -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'ignore' -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'ignore_ament_install' -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extensions ['colcon_pkg'] -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'colcon_pkg' -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extensions ['colcon_meta'] -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'colcon_meta' -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extensions ['ros'] -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'ros' -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extensions ['cmake', 'python'] -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'cmake' -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'python' -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extensions ['python_setup_py'] -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'python_setup_py' -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extensions ['ignore', 'ignore_ament_install'] -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'ignore' -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'ignore_ament_install' -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extensions ['colcon_pkg'] -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'colcon_pkg' -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extensions ['colcon_meta'] -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'colcon_meta' -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extensions ['ros'] -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'ros' -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extensions ['cmake', 'python'] -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'cmake' -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'python' -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extensions ['python_setup_py'] -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'python_setup_py' -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extensions ['ignore', 'ignore_ament_install'] -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'ignore' -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'ignore_ament_install' -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extensions ['colcon_pkg'] -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'colcon_pkg' -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extensions ['colcon_meta'] -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'colcon_meta' -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extensions ['ros'] -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'ros' -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extensions ['cmake', 'python'] -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'cmake' -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'python' -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extensions ['python_setup_py'] -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'python_setup_py' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extensions ['ignore', 'ignore_ament_install'] -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'ignore' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'ignore_ament_install' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extensions ['colcon_pkg'] -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'colcon_pkg' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extensions ['colcon_meta'] -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'colcon_meta' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extensions ['ros'] -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'ros' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extensions ['cmake', 'python'] -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'cmake' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'python' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extensions ['python_setup_py'] -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'python_setup_py' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extensions ['ignore', 'ignore_ament_install'] -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'ignore' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'ignore_ament_install' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extensions ['colcon_pkg'] -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'colcon_pkg' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extensions ['colcon_meta'] -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'colcon_meta' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extensions ['ros'] -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'ros' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extensions ['cmake', 'python'] -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'cmake' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'python' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extensions ['python_setup_py'] -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'python_setup_py' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extensions ['ignore', 'ignore_ament_install'] -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'ignore' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'ignore_ament_install' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extensions ['colcon_pkg'] -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'colcon_pkg' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extensions ['colcon_meta'] -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'colcon_meta' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extensions ['ros'] -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'ros' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extensions ['cmake', 'python'] -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'cmake' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'python' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extensions ['python_setup_py'] -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'python_setup_py' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extensions ['ignore', 'ignore_ament_install'] -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'ignore' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'ignore_ament_install' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extensions ['colcon_pkg'] -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'colcon_pkg' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extensions ['colcon_meta'] -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'colcon_meta' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extensions ['ros'] -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'ros' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extensions ['cmake', 'python'] -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'cmake' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'python' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extensions ['python_setup_py'] -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'python_setup_py' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extensions ['ignore', 'ignore_ament_install'] -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'ignore' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'ignore_ament_install' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extensions ['colcon_pkg'] -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'colcon_pkg' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extensions ['colcon_meta'] -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'colcon_meta' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extensions ['ros'] -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'ros' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extensions ['cmake', 'python'] -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'cmake' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'python' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extensions ['python_setup_py'] -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'python_setup_py' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extensions ['ignore', 'ignore_ament_install'] -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'ignore' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'ignore_ament_install' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extensions ['colcon_pkg'] -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'colcon_pkg' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extensions ['colcon_meta'] -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'colcon_meta' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extensions ['ros'] -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'ros' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extensions ['cmake', 'python'] -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'cmake' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'python' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extensions ['python_setup_py'] -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'python_setup_py' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extensions ['ignore', 'ignore_ament_install'] -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'ignore' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'ignore_ament_install' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extensions ['colcon_pkg'] -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'colcon_pkg' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extensions ['colcon_meta'] -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'colcon_meta' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extensions ['ros'] -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'ros' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extensions ['cmake', 'python'] -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'cmake' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'python' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extensions ['python_setup_py'] -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'python_setup_py' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extensions ['ignore', 'ignore_ament_install'] -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'ignore' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'ignore_ament_install' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extensions ['colcon_pkg'] -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'colcon_pkg' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extensions ['colcon_meta'] -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'colcon_meta' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extensions ['ros'] -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'ros' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extensions ['cmake', 'python'] -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'cmake' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'python' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extensions ['python_setup_py'] -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'python_setup_py' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extensions ['ignore', 'ignore_ament_install'] -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'ignore' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'ignore_ament_install' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extensions ['colcon_pkg'] -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'colcon_pkg' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extensions ['colcon_meta'] -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'colcon_meta' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extensions ['ros'] -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'ros' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extensions ['cmake', 'python'] -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'cmake' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'python' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extensions ['python_setup_py'] -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'python_setup_py' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extensions ['ignore', 'ignore_ament_install'] -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'ignore' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'ignore_ament_install' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extensions ['colcon_pkg'] -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'colcon_pkg' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extensions ['colcon_meta'] -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'colcon_meta' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extensions ['ros'] -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'ros' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extensions ['cmake', 'python'] -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'cmake' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'python' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extensions ['python_setup_py'] -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'python_setup_py' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extensions ['ignore', 'ignore_ament_install'] -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'ignore' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'ignore_ament_install' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extensions ['colcon_pkg'] -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'colcon_pkg' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extensions ['colcon_meta'] -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'colcon_meta' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extensions ['ros'] -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'ros' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extensions ['cmake', 'python'] -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'cmake' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'python' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extensions ['python_setup_py'] -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'python_setup_py' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extensions ['ignore', 'ignore_ament_install'] -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'ignore' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'ignore_ament_install' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extensions ['colcon_pkg'] -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'colcon_pkg' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extensions ['colcon_meta'] -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'colcon_meta' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extensions ['ros'] -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'ros' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extensions ['cmake', 'python'] -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'cmake' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'python' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extensions ['python_setup_py'] -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'python_setup_py' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extensions ['ignore', 'ignore_ament_install'] -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'ignore' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'ignore_ament_install' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extensions ['colcon_pkg'] -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'colcon_pkg' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extensions ['colcon_meta'] -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'colcon_meta' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extensions ['ros'] -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'ros' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extensions ['cmake', 'python'] -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'cmake' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'python' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extensions ['python_setup_py'] -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'python_setup_py' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extensions ['ignore', 'ignore_ament_install'] -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'ignore' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'ignore_ament_install' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extensions ['colcon_pkg'] -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'colcon_pkg' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extensions ['colcon_meta'] -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'colcon_meta' -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extensions ['ros'] -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'ros' -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extensions ['cmake', 'python'] -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'cmake' -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'python' -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extensions ['python_setup_py'] -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'python_setup_py' -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extensions ['ignore', 'ignore_ament_install'] -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'ignore' -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'ignore_ament_install' -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extensions ['colcon_pkg'] -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'colcon_pkg' -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extensions ['colcon_meta'] -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'colcon_meta' -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extensions ['ros'] -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'ros' -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extensions ['cmake', 'python'] -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'cmake' -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'python' -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extensions ['python_setup_py'] -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'python_setup_py' -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extensions ['ignore', 'ignore_ament_install'] -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'ignore' -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'ignore_ament_install' -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extensions ['colcon_pkg'] -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'colcon_pkg' -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extensions ['colcon_meta'] -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'colcon_meta' -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extensions ['ros'] -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'ros' -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extensions ['cmake', 'python'] -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'cmake' -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'python' -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extensions ['python_setup_py'] -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'python_setup_py' -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extensions ['ignore', 'ignore_ament_install'] -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'ignore' -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'ignore_ament_install' -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extensions ['colcon_pkg'] -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'colcon_pkg' -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extensions ['colcon_meta'] -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'colcon_meta' -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extensions ['ros'] -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'ros' -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extensions ['cmake', 'python'] -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'cmake' -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'python' -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extensions ['python_setup_py'] -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'python_setup_py' -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extensions ['ignore', 'ignore_ament_install'] -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'ignore' -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'ignore_ament_install' -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extensions ['colcon_pkg'] -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'colcon_pkg' -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extensions ['colcon_meta'] -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'colcon_meta' -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extensions ['ros'] -[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'ros' -[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extensions ['cmake', 'python'] -[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'cmake' -[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'python' -[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extensions ['python_setup_py'] -[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'python_setup_py' -[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extensions ['ignore', 'ignore_ament_install'] -[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'ignore' -[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'ignore_ament_install' -[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extensions ['colcon_pkg'] -[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'colcon_pkg' -[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extensions ['colcon_meta'] -[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'colcon_meta' -[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extensions ['ros'] -[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'ros' -[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extensions ['cmake', 'python'] -[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'cmake' -[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'python' -[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extensions ['python_setup_py'] -[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'python_setup_py' -[0.498s] DEBUG:colcon.colcon_core.package_identification:Package 'simulation/dronekit-python' with type 'python' and name 'dronekit' -[0.498s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extensions ['ignore', 'ignore_ament_install'] -[0.498s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'ignore' -[0.498s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'ignore_ament_install' -[0.499s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extensions ['colcon_pkg'] -[0.499s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'colcon_pkg' -[0.499s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extensions ['colcon_meta'] -[0.499s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'colcon_meta' -[0.499s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extensions ['ros'] -[0.499s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'ros' -[0.499s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extensions ['cmake', 'python'] -[0.499s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'cmake' -[0.499s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'python' -[0.499s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extensions ['python_setup_py'] -[0.499s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'python_setup_py' -[0.499s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extensions ['ignore', 'ignore_ament_install'] -[0.499s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'ignore' -[0.499s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'ignore_ament_install' -[0.499s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extensions ['colcon_pkg'] -[0.500s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'colcon_pkg' -[0.500s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extensions ['colcon_meta'] -[0.500s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'colcon_meta' -[0.500s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extensions ['ros'] -[0.500s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'ros' -[0.500s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extensions ['cmake', 'python'] -[0.500s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'cmake' -[0.500s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'python' -[0.500s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extensions ['python_setup_py'] -[0.500s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'python_setup_py' -[0.500s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extensions ['ignore', 'ignore_ament_install'] -[0.500s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'ignore' -[0.500s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'ignore_ament_install' -[0.500s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extensions ['colcon_pkg'] -[0.500s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'colcon_pkg' -[0.500s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extensions ['colcon_meta'] -[0.500s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'colcon_meta' -[0.501s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extensions ['ros'] -[0.501s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'ros' -[0.501s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extensions ['cmake', 'python'] -[0.501s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'cmake' -[0.501s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'python' -[0.501s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extensions ['python_setup_py'] -[0.501s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'python_setup_py' -[0.501s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extensions ['ignore', 'ignore_ament_install'] -[0.501s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'ignore' -[0.501s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'ignore_ament_install' -[0.501s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extensions ['colcon_pkg'] -[0.501s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'colcon_pkg' -[0.501s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extensions ['colcon_meta'] -[0.501s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'colcon_meta' -[0.501s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extensions ['ros'] -[0.502s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'ros' -[0.502s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extensions ['cmake', 'python'] -[0.502s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'cmake' -[0.502s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'python' -[0.502s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extensions ['python_setup_py'] -[0.502s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'python_setup_py' -[0.502s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) using defaults -[0.502s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) discover -[0.502s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) using defaults -[0.502s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) discover -[0.502s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) using defaults -[0.530s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'controls_bringup' in 'ros_ws/src/robot/autonomy/controls/controls_bringup' -[0.530s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'dronekit' in 'simulation/dronekit-python' -[0.530s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mav_msgs' in 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs' -[0.531s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mav_state_machine_msgs' in 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs' -[0.531s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mav_system_msgs' in 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs' -[0.531s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'px4_msgs' in 'ros_ws/src/robot/autonomy/controls/px4_msgs' -[0.531s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'robot_bringup' in 'ros_ws/src/robot/robot_bringup' -[0.531s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'vdb_mapping' in 'ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping' -[0.531s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'vdb_mapping_interfaces' in 'ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces' -[0.531s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mav_planning_msgs' in 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs' -[0.531s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'px4_ros_com' in 'ros_ws/src/robot/autonomy/controls/px4_ros_com' -[0.531s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'robot_interface' in 'ros_ws/src/robot/autonomy/controls/robot_interface' -[0.531s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'vdb_mapping_ros2' in 'ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2' -[0.531s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mav_comm' in 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm' -[0.531s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mavros_interface' in 'ros_ws/src/robot/autonomy/controls/mavros_interface' -[0.531s] Level 1:colcon.colcon_core.package_discovery:discover_packages(prefix_path) check parameters -[0.531s] Level 1:colcon.colcon_core.package_discovery:discover_packages(prefix_path) discover -[0.533s] DEBUG:colcon.colcon_installed_package_information.package_discovery:Found 14 installed packages in /root/AirStack/ros_ws/install -[0.534s] DEBUG:colcon.colcon_installed_package_information.package_discovery:Found 277 installed packages in /opt/ros/humble -[0.535s] Level 1:colcon.colcon_core.package_discovery:discover_packages(prefix_path) using defaults -[0.563s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'cmake_args' from command line to 'None' -[0.563s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'cmake_target' from command line to 'None' -[0.563s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'cmake_target_skip_unavailable' from command line to 'False' -[0.563s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'cmake_clean_cache' from command line to 'False' -[0.563s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'cmake_clean_first' from command line to 'False' -[0.563s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'cmake_force_configure' from command line to 'False' -[0.563s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'ament_cmake_args' from command line to 'None' -[0.563s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'catkin_cmake_args' from command line to 'None' -[0.563s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'catkin_skip_building_tests' from command line to 'False' -[0.563s] DEBUG:colcon.colcon_core.verb:Building package 'disparity_expansion' with the following arguments: {'ament_cmake_args': None, 'build_base': '/root/AirStack/build/disparity_expansion', 'catkin_cmake_args': None, 'catkin_skip_building_tests': False, 'cmake_args': None, 'cmake_clean_cache': False, 'cmake_clean_first': False, 'cmake_force_configure': False, 'cmake_target': None, 'cmake_target_skip_unavailable': False, 'install_base': '/root/AirStack/install/disparity_expansion', 'merge_install': False, 'path': '/root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion', 'symlink_install': False, 'test_result_base': None} -[0.563s] INFO:colcon.colcon_core.executor:Executing jobs using 'parallel' executor -[0.564s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete -[0.564s] INFO:colcon.colcon_cmake.task.cmake.build:Building CMake package in '/root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion' -[0.566s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_core.shell.bat': Not used on non-Windows systems -[0.566s] INFO:colcon.colcon_core.shell:Skip shell extension 'powershell' for command environment: Not usable outside of PowerShell -[0.566s] DEBUG:colcon.colcon_core.shell:Skip shell extension 'dsv' for command environment -[0.574s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoking command in '/root/AirStack/build/disparity_expansion': /usr/bin/cmake /root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion -DCMAKE_INSTALL_PREFIX=/root/AirStack/install/disparity_expansion -[4.639s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoked command in '/root/AirStack/build/disparity_expansion' returned '0': /usr/bin/cmake /root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion -DCMAKE_INSTALL_PREFIX=/root/AirStack/install/disparity_expansion -[4.642s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoking command in '/root/AirStack/build/disparity_expansion': /usr/bin/cmake --build /root/AirStack/build/disparity_expansion -- -j12 -l12 -[5.037s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoked command in '/root/AirStack/build/disparity_expansion' returned '2': /usr/bin/cmake --build /root/AirStack/build/disparity_expansion -- -j12 -l12 -[5.047s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:closing loop -[5.047s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:loop closed -[5.047s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete finished with '2' -[5.047s] DEBUG:colcon.colcon_core.event_reactor:joining thread -[5.053s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.notify_send': Could not find 'notify-send' -[5.053s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.terminal_notifier': Not used on non-Darwin systems -[5.053s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.win32': Not used on non-Windows systems -[5.053s] INFO:colcon.colcon_notification.desktop_notification:Sending desktop notification using 'notify2' -[5.057s] DEBUG:colcon.colcon_notification.desktop_notification.notify2:Failed to initialize notify2: org.freedesktop.DBus.Error.Spawn.ExecFailed: /usr/bin/dbus-launch terminated abnormally without any error message -[5.058s] DEBUG:colcon.colcon_core.event_reactor:joined thread -[5.059s] INFO:colcon.colcon_core.shell:Creating prefix script '/root/AirStack/install/local_setup.ps1' -[5.060s] INFO:colcon.colcon_core.shell:Creating prefix util module '/root/AirStack/install/_local_setup_util_ps1.py' -[5.062s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/root/AirStack/install/setup.ps1' -[5.065s] INFO:colcon.colcon_core.shell:Creating prefix script '/root/AirStack/install/local_setup.sh' -[5.065s] INFO:colcon.colcon_core.shell:Creating prefix util module '/root/AirStack/install/_local_setup_util_sh.py' -[5.066s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/root/AirStack/install/setup.sh' -[5.067s] INFO:colcon.colcon_core.shell:Creating prefix script '/root/AirStack/install/local_setup.bash' -[5.067s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/root/AirStack/install/setup.bash' -[5.068s] INFO:colcon.colcon_core.shell:Creating prefix script '/root/AirStack/install/local_setup.zsh' -[5.069s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/root/AirStack/install/setup.zsh' diff --git a/log/build_2024-07-25_13-07-04/disparity_expansion/command.log b/log/build_2024-07-25_13-07-04/disparity_expansion/command.log deleted file mode 100644 index c661a790e..000000000 --- a/log/build_2024-07-25_13-07-04/disparity_expansion/command.log +++ /dev/null @@ -1,2 +0,0 @@ -Invoking command in '/root/AirStack/build/disparity_expansion': /usr/bin/cmake --build /root/AirStack/build/disparity_expansion -- -j12 -l12 -Invoked command in '/root/AirStack/build/disparity_expansion' returned '2': /usr/bin/cmake --build /root/AirStack/build/disparity_expansion -- -j12 -l12 diff --git a/log/build_2024-07-25_13-07-04/disparity_expansion/stderr.log b/log/build_2024-07-25_13-07-04/disparity_expansion/stderr.log deleted file mode 100644 index 9e9e31aa8..000000000 --- a/log/build_2024-07-25_13-07-04/disparity_expansion/stderr.log +++ /dev/null @@ -1,20 +0,0 @@ -CMake Warning (dev) at CMakeLists.txt:29 (find_package): - Policy CMP0074 is not set: find_package uses _ROOT variables. - Run "cmake --help-policy CMP0074" for policy details. Use the cmake_policy - command to set the policy and suppress this warning. - - CMake variable PCL_ROOT is set to: - - /usr - - For compatibility, CMake is ignoring the variable. -This warning is for project developers. Use -Wno-dev to suppress it. - -In file included from /root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_conv.cpp:42: -/opt/ros/humble/include/pcl_ros/point_cloud.hpp:45:10: fatal error: ros/ros.h: No such file or directory - 45 | #include  - | ^~~~~~~~~~~ -compilation terminated. -gmake[2]: *** [CMakeFiles/disparity_conv.dir/build.make:76: CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o] Error 1 -gmake[1]: *** [CMakeFiles/Makefile2:137: CMakeFiles/disparity_conv.dir/all] Error 2 -gmake: *** [Makefile:101: all] Error 2 diff --git a/log/build_2024-07-25_13-07-04/disparity_expansion/stdout.log b/log/build_2024-07-25_13-07-04/disparity_expansion/stdout.log deleted file mode 100644 index 869198849..000000000 --- a/log/build_2024-07-25_13-07-04/disparity_expansion/stdout.log +++ /dev/null @@ -1,31 +0,0 @@ --- Found ament_cmake: 1.3.9 (/opt/ros/humble/share/ament_cmake/cmake) --- Found rclcpp: 16.0.9 (/opt/ros/humble/share/rclcpp/cmake) --- Found rosidl_generator_c: 3.1.5 (/opt/ros/humble/share/rosidl_generator_c/cmake) --- Found rosidl_adapter: 3.1.5 (/opt/ros/humble/share/rosidl_adapter/cmake) --- Found rosidl_generator_cpp: 3.1.5 (/opt/ros/humble/share/rosidl_generator_cpp/cmake) --- Using all available rosidl_typesupport_c: rosidl_typesupport_fastrtps_c;rosidl_typesupport_introspection_c --- Using all available rosidl_typesupport_cpp: rosidl_typesupport_fastrtps_cpp;rosidl_typesupport_introspection_cpp --- Found rmw_implementation_cmake: 6.1.2 (/opt/ros/humble/share/rmw_implementation_cmake/cmake) --- Found rmw_fastrtps_cpp: 6.2.6 (/opt/ros/humble/share/rmw_fastrtps_cpp/cmake) --- Using RMW implementation 'rmw_fastrtps_cpp' as default --- Found cv_bridge: 3.2.1 (/opt/ros/humble/share/cv_bridge/cmake) --- Found image_geometry: 3.2.1 (/opt/ros/humble/share/image_geometry/cmake) --- Found image_transport: 3.1.9 (/opt/ros/humble/share/image_transport/cmake) --- Found tf2: 0.25.7 (/opt/ros/humble/share/tf2/cmake) --- Found pcl_ros: 2.4.0 (/opt/ros/humble/share/pcl_ros/cmake) --- Found eigen3_cmake_module: 0.1.1 (/opt/ros/humble/share/eigen3_cmake_module/cmake) --- Found Eigen3: TRUE (found version "3.4.0") --- Ensuring Eigen3 include directory is part of orocos-kdl CMake target --- Eigen found (include: /usr/include/eigen3, version: 3.4.0) --- FLANN found (include: /usr/include, lib: /usr/lib/x86_64-linux-gnu/libflann_cpp.so) --- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) --- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb) --- Eigen found (include: /usr/include/eigen3, version: 3.4.0) --- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) --- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb) --- Found Qhull version 8.0.2 --- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) --- Configuring done --- Generating done --- Build files have been written to: /root/AirStack/build/disparity_expansion -[ 50%] Building CXX object CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o diff --git a/log/build_2024-07-25_13-07-04/disparity_expansion/stdout_stderr.log b/log/build_2024-07-25_13-07-04/disparity_expansion/stdout_stderr.log deleted file mode 100644 index d999a75c0..000000000 --- a/log/build_2024-07-25_13-07-04/disparity_expansion/stdout_stderr.log +++ /dev/null @@ -1,51 +0,0 @@ --- Found ament_cmake: 1.3.9 (/opt/ros/humble/share/ament_cmake/cmake) --- Found rclcpp: 16.0.9 (/opt/ros/humble/share/rclcpp/cmake) --- Found rosidl_generator_c: 3.1.5 (/opt/ros/humble/share/rosidl_generator_c/cmake) --- Found rosidl_adapter: 3.1.5 (/opt/ros/humble/share/rosidl_adapter/cmake) --- Found rosidl_generator_cpp: 3.1.5 (/opt/ros/humble/share/rosidl_generator_cpp/cmake) --- Using all available rosidl_typesupport_c: rosidl_typesupport_fastrtps_c;rosidl_typesupport_introspection_c --- Using all available rosidl_typesupport_cpp: rosidl_typesupport_fastrtps_cpp;rosidl_typesupport_introspection_cpp --- Found rmw_implementation_cmake: 6.1.2 (/opt/ros/humble/share/rmw_implementation_cmake/cmake) --- Found rmw_fastrtps_cpp: 6.2.6 (/opt/ros/humble/share/rmw_fastrtps_cpp/cmake) --- Using RMW implementation 'rmw_fastrtps_cpp' as default --- Found cv_bridge: 3.2.1 (/opt/ros/humble/share/cv_bridge/cmake) --- Found image_geometry: 3.2.1 (/opt/ros/humble/share/image_geometry/cmake) --- Found image_transport: 3.1.9 (/opt/ros/humble/share/image_transport/cmake) --- Found tf2: 0.25.7 (/opt/ros/humble/share/tf2/cmake) --- Found pcl_ros: 2.4.0 (/opt/ros/humble/share/pcl_ros/cmake) --- Found eigen3_cmake_module: 0.1.1 (/opt/ros/humble/share/eigen3_cmake_module/cmake) --- Found Eigen3: TRUE (found version "3.4.0") --- Ensuring Eigen3 include directory is part of orocos-kdl CMake target --- Eigen found (include: /usr/include/eigen3, version: 3.4.0) --- FLANN found (include: /usr/include, lib: /usr/lib/x86_64-linux-gnu/libflann_cpp.so) --- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) --- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb) --- Eigen found (include: /usr/include/eigen3, version: 3.4.0) --- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) --- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb) --- Found Qhull version 8.0.2 --- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) -CMake Warning (dev) at CMakeLists.txt:29 (find_package): - Policy CMP0074 is not set: find_package uses _ROOT variables. - Run "cmake --help-policy CMP0074" for policy details. Use the cmake_policy - command to set the policy and suppress this warning. - - CMake variable PCL_ROOT is set to: - - /usr - - For compatibility, CMake is ignoring the variable. -This warning is for project developers. Use -Wno-dev to suppress it. - --- Configuring done --- Generating done --- Build files have been written to: /root/AirStack/build/disparity_expansion -[ 50%] Building CXX object CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o -In file included from /root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_conv.cpp:42: -/opt/ros/humble/include/pcl_ros/point_cloud.hpp:45:10: fatal error: ros/ros.h: No such file or directory - 45 | #include  - | ^~~~~~~~~~~ -compilation terminated. -gmake[2]: *** [CMakeFiles/disparity_conv.dir/build.make:76: CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o] Error 1 -gmake[1]: *** [CMakeFiles/Makefile2:137: CMakeFiles/disparity_conv.dir/all] Error 2 -gmake: *** [Makefile:101: all] Error 2 diff --git a/log/build_2024-07-25_13-07-04/disparity_expansion/streams.log b/log/build_2024-07-25_13-07-04/disparity_expansion/streams.log deleted file mode 100644 index 27cd82829..000000000 --- a/log/build_2024-07-25_13-07-04/disparity_expansion/streams.log +++ /dev/null @@ -1,53 +0,0 @@ -[0.013s] Invoking command in '/root/AirStack/build/disparity_expansion': /usr/bin/cmake --build /root/AirStack/build/disparity_expansion -- -j12 -l12 -[0.042s] -- Found ament_cmake: 1.3.9 (/opt/ros/humble/share/ament_cmake/cmake) -[0.172s] -- Found rclcpp: 16.0.9 (/opt/ros/humble/share/rclcpp/cmake) -[0.200s] -- Found rosidl_generator_c: 3.1.5 (/opt/ros/humble/share/rosidl_generator_c/cmake) -[0.202s] -- Found rosidl_adapter: 3.1.5 (/opt/ros/humble/share/rosidl_adapter/cmake) -[0.207s] -- Found rosidl_generator_cpp: 3.1.5 (/opt/ros/humble/share/rosidl_generator_cpp/cmake) -[0.217s] -- Using all available rosidl_typesupport_c: rosidl_typesupport_fastrtps_c;rosidl_typesupport_introspection_c -[0.230s] -- Using all available rosidl_typesupport_cpp: rosidl_typesupport_fastrtps_cpp;rosidl_typesupport_introspection_cpp -[0.280s] -- Found rmw_implementation_cmake: 6.1.2 (/opt/ros/humble/share/rmw_implementation_cmake/cmake) -[0.282s] -- Found rmw_fastrtps_cpp: 6.2.6 (/opt/ros/humble/share/rmw_fastrtps_cpp/cmake) -[0.456s] -- Using RMW implementation 'rmw_fastrtps_cpp' as default -[0.585s] -- Found cv_bridge: 3.2.1 (/opt/ros/humble/share/cv_bridge/cmake) -[0.701s] -- Found image_geometry: 3.2.1 (/opt/ros/humble/share/image_geometry/cmake) -[0.707s] -- Found image_transport: 3.1.9 (/opt/ros/humble/share/image_transport/cmake) -[0.746s] -- Found tf2: 0.25.7 (/opt/ros/humble/share/tf2/cmake) -[0.755s] -- Found pcl_ros: 2.4.0 (/opt/ros/humble/share/pcl_ros/cmake) -[0.992s] -- Found eigen3_cmake_module: 0.1.1 (/opt/ros/humble/share/eigen3_cmake_module/cmake) -[0.993s] -- Found Eigen3: TRUE (found version "3.4.0") -[0.993s] -- Ensuring Eigen3 include directory is part of orocos-kdl CMake target -[1.334s] -- Eigen found (include: /usr/include/eigen3, version: 3.4.0) -[1.379s] -- FLANN found (include: /usr/include, lib: /usr/lib/x86_64-linux-gnu/libflann_cpp.so) -[1.726s] -- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) -[1.737s] -- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb) -[1.894s] -- Eigen found (include: /usr/include/eigen3, version: 3.4.0) -[1.906s] -- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) -[1.917s] -- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb) -[2.074s] -- Found Qhull version 8.0.2 -[2.229s] -- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) -[2.406s] CMake Warning (dev) at CMakeLists.txt:29 (find_package): -[2.406s] Policy CMP0074 is not set: find_package uses _ROOT variables. -[2.406s] Run "cmake --help-policy CMP0074" for policy details. Use the cmake_policy -[2.406s] command to set the policy and suppress this warning. -[2.406s] -[2.407s] CMake variable PCL_ROOT is set to: -[2.407s] -[2.407s] /usr -[2.407s] -[2.407s] For compatibility, CMake is ignoring the variable. -[2.407s] This warning is for project developers. Use -Wno-dev to suppress it. -[2.407s]  -[2.424s] -- Configuring done -[2.446s] -- Generating done -[2.448s] -- Build files have been written to: /root/AirStack/build/disparity_expansion -[2.498s] [ 50%] Building CXX object CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o -[2.825s] In file included from /root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_conv.cpp:42: -[2.825s] /opt/ros/humble/include/pcl_ros/point_cloud.hpp:45:10: fatal error: ros/ros.h: No such file or directory -[2.825s] 45 | #include  -[2.826s] | ^~~~~~~~~~~ -[2.826s] compilation terminated. -[2.835s] gmake[2]: *** [CMakeFiles/disparity_conv.dir/build.make:76: CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o] Error 1 -[2.835s] gmake[1]: *** [CMakeFiles/Makefile2:137: CMakeFiles/disparity_conv.dir/all] Error 2 -[2.835s] gmake: *** [Makefile:101: all] Error 2 -[2.838s] Invoked command in '/root/AirStack/build/disparity_expansion' returned '2': /usr/bin/cmake --build /root/AirStack/build/disparity_expansion -- -j12 -l12 diff --git a/log/build_2024-07-25_13-07-04/events.log b/log/build_2024-07-25_13-07-04/events.log deleted file mode 100644 index ca2511d38..000000000 --- a/log/build_2024-07-25_13-07-04/events.log +++ /dev/null @@ -1,103 +0,0 @@ -[0.000000] (-) TimerEvent: {} -[0.000542] (-) JobUnselected: {'identifier': 'controls_bringup'} -[0.000599] (-) JobUnselected: {'identifier': 'dronekit'} -[0.000697] (-) JobUnselected: {'identifier': 'mav_comm'} -[0.000735] (-) JobUnselected: {'identifier': 'mav_msgs'} -[0.000834] (-) JobUnselected: {'identifier': 'mav_planning_msgs'} -[0.000862] (-) JobUnselected: {'identifier': 'mav_state_machine_msgs'} -[0.000887] (-) JobUnselected: {'identifier': 'mav_system_msgs'} -[0.000911] (-) JobUnselected: {'identifier': 'mavros_interface'} -[0.000951] (-) JobUnselected: {'identifier': 'px4_msgs'} -[0.000990] (-) JobUnselected: {'identifier': 'px4_ros_com'} -[0.001059] (-) JobUnselected: {'identifier': 'robot_bringup'} -[0.001085] (-) JobUnselected: {'identifier': 'robot_interface'} -[0.001112] (-) JobUnselected: {'identifier': 'vdb_mapping'} -[0.001141] (-) JobUnselected: {'identifier': 'vdb_mapping_interfaces'} -[0.001165] (-) JobUnselected: {'identifier': 'vdb_mapping_ros2'} -[0.001247] (disparity_expansion) JobQueued: {'identifier': 'disparity_expansion', 'dependencies': OrderedDict()} -[0.001278] (disparity_expansion) JobStarted: {'identifier': 'disparity_expansion'} -[0.009838] (disparity_expansion) JobProgress: {'identifier': 'disparity_expansion', 'progress': 'cmake'} -[0.010775] (disparity_expansion) JobProgress: {'identifier': 'disparity_expansion', 'progress': 'build'} -[0.011841] (disparity_expansion) Command: {'cmd': ['/usr/bin/cmake', '--build', '/root/AirStack/build/disparity_expansion', '--', '-j12', '-l12'], 'cwd': '/root/AirStack/build/disparity_expansion', 'env': OrderedDict([('LESSOPEN', '| /usr/bin/lesspipe %s'), ('HOSTNAME', 'wildfire-desktop'), ('ISAACSIM_PATH', '/isaac-sim'), ('SHLVL', '1'), ('LD_LIBRARY_PATH', '/root/AirStack/ros_ws/install/vdb_mapping_interfaces/lib:/root/AirStack/ros_ws/install/vdb_mapping/lib:/root/AirStack/ros_ws/install/mavros_interface/lib:/root/AirStack/ros_ws/install/robot_interface/lib:/root/AirStack/ros_ws/install/px4_ros_com/lib:/root/AirStack/ros_ws/install/px4_msgs/lib:/root/AirStack/ros_ws/install/mav_system_msgs/lib:/root/AirStack/ros_ws/install/mav_state_machine_msgs/lib:/root/AirStack/ros_ws/install/mav_planning_msgs/lib:/root/AirStack/ros_ws/install/mav_msgs/lib:/opt/ros/humble/opt/rviz_ogre_vendor/lib:/opt/ros/humble/lib/x86_64-linux-gnu:/opt/ros/humble/lib'), ('HOME', '/root'), ('MIN_DRIVER_VERSION', '525.60.11'), ('ROS_PYTHON_VERSION', '3'), ('LC_CTYPE', 'C.UTF-8'), ('COLCON_PREFIX_PATH', '/root/AirStack/ros_ws/install'), ('ROS_DISTRO', 'humble'), ('_', '/usr/bin/colcon'), ('ROS_VERSION', '2'), ('PKG_CONFIG_PATH', '/root/AirStack/ros_ws/install/vdb_mapping/lib/x86_64-linux-gnu/pkgconfig:/root/AirStack/ros_ws/install/vdb_mapping/lib/pkgconfig'), ('NVIDIA_DRIVER_CAPABILITIES', 'all'), ('TERM', 'xterm'), ('ROS_LOCALHOST_ONLY', '0'), ('PATH', '/opt/ros/humble/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'), ('VK_DRIVER_FILES', '/etc/vulkan/icd.d/nvidia_icd.json'), ('DISPLAY', ':1'), ('LS_COLORS', 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:'), ('AMENT_PREFIX_PATH', '/root/AirStack/ros_ws/install/vdb_mapping_ros2:/root/AirStack/ros_ws/install/vdb_mapping_interfaces:/root/AirStack/ros_ws/install/mavros_interface:/root/AirStack/ros_ws/install/robot_interface:/root/AirStack/ros_ws/install/robot_bringup:/root/AirStack/ros_ws/install/px4_ros_com:/root/AirStack/ros_ws/install/px4_msgs:/root/AirStack/ros_ws/install/mav_comm:/root/AirStack/ros_ws/install/mav_system_msgs:/root/AirStack/ros_ws/install/mav_state_machine_msgs:/root/AirStack/ros_ws/install/mav_planning_msgs:/root/AirStack/ros_ws/install/mav_msgs:/root/AirStack/ros_ws/install/controls_bringup:/opt/ros/humble'), ('OMNI_PASS', 'admin'), ('LESSCLOSE', '/usr/bin/lesspipe %s %s'), ('ACCEPT_EULA', 'Y'), ('CMAKE_MODULE_PATH', '/root/AirStack/ros_ws/install/vdb_mapping/lib/cmake/vdb_mapping'), ('OMNI_SERVER', 'http://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/4.0'), ('PWD', '/root/AirStack/build/disparity_expansion'), ('OMNI_USER', 'admin'), ('PYTHONPATH', '/root/AirStack/ros_ws/install/vdb_mapping_interfaces/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/px4_ros_com/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/px4_msgs/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/mav_planning_msgs/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/mav_msgs/local/lib/python3.10/dist-packages:/opt/ros/humble/lib/python3.10/site-packages:/opt/ros/humble/local/lib/python3.10/dist-packages'), ('NVIDIA_VISIBLE_DEVICES', 'all'), ('TZ', 'America/New_York'), ('COLCON', '1'), ('CMAKE_PREFIX_PATH', '/root/AirStack/ros_ws/install/vdb_mapping_ros2:/root/AirStack/ros_ws/install/vdb_mapping_interfaces:/root/AirStack/ros_ws/install/vdb_mapping:/root/AirStack/ros_ws/install/mavros_interface:/root/AirStack/ros_ws/install/robot_interface:/root/AirStack/ros_ws/install/robot_bringup:/root/AirStack/ros_ws/install/px4_ros_com:/root/AirStack/ros_ws/install/px4_msgs:/root/AirStack/ros_ws/install/mav_comm:/root/AirStack/ros_ws/install/mav_system_msgs:/root/AirStack/ros_ws/install/mav_state_machine_msgs:/root/AirStack/ros_ws/install/mav_planning_msgs:/root/AirStack/ros_ws/install/mav_msgs:/root/AirStack/ros_ws/install/controls_bringup')]), 'shell': False} -[0.043222] (disparity_expansion) StdoutLine: {'line': b'-- Found ament_cmake: 1.3.9 (/opt/ros/humble/share/ament_cmake/cmake)\n'} -[0.099825] (-) TimerEvent: {} -[0.173072] (disparity_expansion) StdoutLine: {'line': b'-- Found rclcpp: 16.0.9 (/opt/ros/humble/share/rclcpp/cmake)\n'} -[0.199901] (-) TimerEvent: {} -[0.201131] (disparity_expansion) StdoutLine: {'line': b'-- Found rosidl_generator_c: 3.1.5 (/opt/ros/humble/share/rosidl_generator_c/cmake)\n'} -[0.203246] (disparity_expansion) StdoutLine: {'line': b'-- Found rosidl_adapter: 3.1.5 (/opt/ros/humble/share/rosidl_adapter/cmake)\n'} -[0.208210] (disparity_expansion) StdoutLine: {'line': b'-- Found rosidl_generator_cpp: 3.1.5 (/opt/ros/humble/share/rosidl_generator_cpp/cmake)\n'} -[0.217801] (disparity_expansion) StdoutLine: {'line': b'-- Using all available rosidl_typesupport_c: rosidl_typesupport_fastrtps_c;rosidl_typesupport_introspection_c\n'} -[0.231101] (disparity_expansion) StdoutLine: {'line': b'-- Using all available rosidl_typesupport_cpp: rosidl_typesupport_fastrtps_cpp;rosidl_typesupport_introspection_cpp\n'} -[0.281625] (disparity_expansion) StdoutLine: {'line': b'-- Found rmw_implementation_cmake: 6.1.2 (/opt/ros/humble/share/rmw_implementation_cmake/cmake)\n'} -[0.282979] (disparity_expansion) StdoutLine: {'line': b'-- Found rmw_fastrtps_cpp: 6.2.6 (/opt/ros/humble/share/rmw_fastrtps_cpp/cmake)\n'} -[0.299978] (-) TimerEvent: {} -[0.400167] (-) TimerEvent: {} -[0.457108] (disparity_expansion) StdoutLine: {'line': b"-- Using RMW implementation 'rmw_fastrtps_cpp' as default\n"} -[0.500242] (-) TimerEvent: {} -[0.586495] (disparity_expansion) StdoutLine: {'line': b'-- Found cv_bridge: 3.2.1 (/opt/ros/humble/share/cv_bridge/cmake)\n'} -[0.600323] (-) TimerEvent: {} -[0.700530] (-) TimerEvent: {} -[0.702091] (disparity_expansion) StdoutLine: {'line': b'-- Found image_geometry: 3.2.1 (/opt/ros/humble/share/image_geometry/cmake)\n'} -[0.708207] (disparity_expansion) StdoutLine: {'line': b'-- Found image_transport: 3.1.9 (/opt/ros/humble/share/image_transport/cmake)\n'} -[0.747590] (disparity_expansion) StdoutLine: {'line': b'-- Found tf2: 0.25.7 (/opt/ros/humble/share/tf2/cmake)\n'} -[0.756669] (disparity_expansion) StdoutLine: {'line': b'-- Found pcl_ros: 2.4.0 (/opt/ros/humble/share/pcl_ros/cmake)\n'} -[0.800590] (-) TimerEvent: {} -[0.900770] (-) TimerEvent: {} -[0.992737] (disparity_expansion) StdoutLine: {'line': b'-- Found eigen3_cmake_module: 0.1.1 (/opt/ros/humble/share/eigen3_cmake_module/cmake)\n'} -[0.993725] (disparity_expansion) StdoutLine: {'line': b'-- Found Eigen3: TRUE (found version "3.4.0") \n'} -[0.993857] (disparity_expansion) StdoutLine: {'line': b'-- Ensuring Eigen3 include directory is part of orocos-kdl CMake target\n'} -[1.000860] (-) TimerEvent: {} -[1.101066] (-) TimerEvent: {} -[1.201280] (-) TimerEvent: {} -[1.301485] (-) TimerEvent: {} -[1.334832] (disparity_expansion) StdoutLine: {'line': b'-- Eigen found (include: /usr/include/eigen3, version: 3.4.0)\n'} -[1.380341] (disparity_expansion) StdoutLine: {'line': b'-- FLANN found (include: /usr/include, lib: /usr/lib/x86_64-linux-gnu/libflann_cpp.so)\n'} -[1.401577] (-) TimerEvent: {} -[1.501831] (-) TimerEvent: {} -[1.602123] (-) TimerEvent: {} -[1.702406] (-) TimerEvent: {} -[1.727612] (disparity_expansion) StdoutLine: {'line': b'-- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb)\n'} -[1.738468] (disparity_expansion) StdoutLine: {'line': b'-- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb)\n'} -[1.802506] (-) TimerEvent: {} -[1.895538] (disparity_expansion) StdoutLine: {'line': b'-- Eigen found (include: /usr/include/eigen3, version: 3.4.0)\n'} -[1.902575] (-) TimerEvent: {} -[1.907106] (disparity_expansion) StdoutLine: {'line': b'-- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb)\n'} -[1.917965] (disparity_expansion) StdoutLine: {'line': b'-- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb)\n'} -[2.002679] (-) TimerEvent: {} -[2.074991] (disparity_expansion) StdoutLine: {'line': b'-- Found Qhull version 8.0.2\n'} -[2.102749] (-) TimerEvent: {} -[2.202966] (-) TimerEvent: {} -[2.230216] (disparity_expansion) StdoutLine: {'line': b'-- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb)\n'} -[2.303036] (-) TimerEvent: {} -[2.403213] (-) TimerEvent: {} -[2.407134] (disparity_expansion) StderrLine: {'line': b'\x1b[33mCMake Warning (dev) at CMakeLists.txt:29 (find_package):\n'} -[2.407314] (disparity_expansion) StderrLine: {'line': b' Policy CMP0074 is not set: find_package uses _ROOT variables.\n'} -[2.407439] (disparity_expansion) StderrLine: {'line': b' Run "cmake --help-policy CMP0074" for policy details. Use the cmake_policy\n'} -[2.407534] (disparity_expansion) StderrLine: {'line': b' command to set the policy and suppress this warning.\n'} -[2.407625] (disparity_expansion) StderrLine: {'line': b'\n'} -[2.407715] (disparity_expansion) StderrLine: {'line': b' CMake variable PCL_ROOT is set to:\n'} -[2.407830] (disparity_expansion) StderrLine: {'line': b'\n'} -[2.407918] (disparity_expansion) StderrLine: {'line': b' /usr\n'} -[2.408006] (disparity_expansion) StderrLine: {'line': b'\n'} -[2.408095] (disparity_expansion) StderrLine: {'line': b' For compatibility, CMake is ignoring the variable.\n'} -[2.408183] (disparity_expansion) StderrLine: {'line': b'This warning is for project developers. Use -Wno-dev to suppress it.\n'} -[2.408283] (disparity_expansion) StderrLine: {'line': b'\x1b[0m\n'} -[2.425136] (disparity_expansion) StdoutLine: {'line': b'-- Configuring done\n'} -[2.447425] (disparity_expansion) StdoutLine: {'line': b'-- Generating done\n'} -[2.449570] (disparity_expansion) StdoutLine: {'line': b'-- Build files have been written to: /root/AirStack/build/disparity_expansion\n'} -[2.499253] (disparity_expansion) StdoutLine: {'line': b'[ 50%] \x1b[32mBuilding CXX object CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o\x1b[0m\n'} -[2.503277] (-) TimerEvent: {} -[2.603494] (-) TimerEvent: {} -[2.703769] (-) TimerEvent: {} -[2.804040] (-) TimerEvent: {} -[2.826462] (disparity_expansion) StderrLine: {'line': b'In file included from \x1b[01m\x1b[K/root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_conv.cpp:42\x1b[m\x1b[K:\n'} -[2.826613] (disparity_expansion) StderrLine: {'line': b'\x1b[01m\x1b[K/opt/ros/humble/include/pcl_ros/point_cloud.hpp:45:10:\x1b[m\x1b[K \x1b[01;31m\x1b[Kfatal error: \x1b[m\x1b[Kros/ros.h: No such file or directory\n'} -[2.826706] (disparity_expansion) StderrLine: {'line': b' 45 | #include \x1b[01;31m\x1b[K\x1b[m\x1b[K\n'} -[2.826793] (disparity_expansion) StderrLine: {'line': b' | \x1b[01;31m\x1b[K^~~~~~~~~~~\x1b[m\x1b[K\n'} -[2.826878] (disparity_expansion) StderrLine: {'line': b'compilation terminated.\n'} -[2.835802] (disparity_expansion) StderrLine: {'line': b'gmake[2]: *** [CMakeFiles/disparity_conv.dir/build.make:76: CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o] Error 1\n'} -[2.836130] (disparity_expansion) StderrLine: {'line': b'gmake[1]: *** [CMakeFiles/Makefile2:137: CMakeFiles/disparity_conv.dir/all] Error 2\n'} -[2.836309] (disparity_expansion) StderrLine: {'line': b'gmake: *** [Makefile:101: all] Error 2\n'} -[2.838924] (disparity_expansion) CommandEnded: {'returncode': 2} -[2.839265] (disparity_expansion) JobEnded: {'identifier': 'disparity_expansion', 'rc': 2} -[2.849326] (-) EventReactorShutdown: {} diff --git a/log/build_2024-07-25_13-07-04/logger_all.log b/log/build_2024-07-25_13-07-04/logger_all.log deleted file mode 100644 index 2d34c455f..000000000 --- a/log/build_2024-07-25_13-07-04/logger_all.log +++ /dev/null @@ -1,2595 +0,0 @@ -[0.077s] DEBUG:colcon:Command line arguments: ['/usr/bin/colcon', 'build', '--packages-select', 'disparity_expansion'] -[0.077s] DEBUG:colcon:Parsed command line arguments: Namespace(log_base=None, log_level=None, verb_name='build', build_base='build', install_base='install', merge_install=False, symlink_install=False, test_result_base=None, continue_on_error=False, executor='parallel', parallel_workers=12, event_handlers=None, ignore_user_meta=False, metas=['./colcon.meta'], base_paths=['.'], packages_ignore=None, packages_ignore_regex=None, paths=None, packages_up_to=None, packages_up_to_regex=None, packages_above=None, packages_above_and_dependencies=None, packages_above_depth=None, packages_select_by_dep=None, packages_skip_by_dep=None, packages_skip_up_to=None, packages_select_build_failed=False, packages_skip_build_finished=False, packages_select_test_failures=False, packages_skip_test_passed=False, packages_select=['disparity_expansion'], packages_skip=None, packages_select_regex=None, packages_skip_regex=None, packages_start=None, packages_end=None, allow_overriding=[], cmake_args=None, cmake_target=None, cmake_target_skip_unavailable=False, cmake_clean_cache=False, cmake_clean_first=False, cmake_force_configure=False, ament_cmake_args=None, catkin_cmake_args=None, catkin_skip_building_tests=False, mixin_files=None, mixin=None, verb_parser=, verb_extension=, main=>, mixin_verb=('build',)) -[0.196s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) check parameters -[0.196s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) check parameters -[0.197s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) check parameters -[0.197s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) check parameters -[0.197s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) discover -[0.197s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) discover -[0.197s] INFO:colcon.colcon_core.package_discovery:Crawling recursively for packages in '/root/AirStack' -[0.197s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ignore', 'ignore_ament_install'] -[0.197s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore' -[0.197s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore_ament_install' -[0.197s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_pkg'] -[0.197s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_pkg' -[0.197s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_meta'] -[0.197s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_meta' -[0.197s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ros'] -[0.197s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ros' -[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['cmake', 'python'] -[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'cmake' -[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'python' -[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['python_setup_py'] -[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'python_setup_py' -[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extensions ['ignore', 'ignore_ament_install'] -[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'ignore' -[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(build) ignored -[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extensions ['ignore', 'ignore_ament_install'] -[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'ignore' -[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'ignore_ament_install' -[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extensions ['colcon_pkg'] -[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'colcon_pkg' -[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extensions ['colcon_meta'] -[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'colcon_meta' -[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extensions ['ros'] -[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'ros' -[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extensions ['cmake', 'python'] -[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'cmake' -[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'python' -[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extensions ['python_setup_py'] -[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'python_setup_py' -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extensions ['ignore', 'ignore_ament_install'] -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'ignore' -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'ignore_ament_install' -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extensions ['colcon_pkg'] -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'colcon_pkg' -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extensions ['colcon_meta'] -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'colcon_meta' -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extensions ['ros'] -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'ros' -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extensions ['cmake', 'python'] -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'cmake' -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'python' -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extensions ['python_setup_py'] -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'python_setup_py' -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extensions ['ignore', 'ignore_ament_install'] -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'ignore' -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'ignore_ament_install' -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extensions ['colcon_pkg'] -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'colcon_pkg' -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extensions ['colcon_meta'] -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'colcon_meta' -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extensions ['ros'] -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'ros' -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extensions ['cmake', 'python'] -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'cmake' -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'python' -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extensions ['python_setup_py'] -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'python_setup_py' -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extensions ['ignore', 'ignore_ament_install'] -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'ignore' -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'ignore_ament_install' -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extensions ['colcon_pkg'] -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'colcon_pkg' -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extensions ['colcon_meta'] -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'colcon_meta' -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extensions ['ros'] -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'ros' -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extensions ['cmake', 'python'] -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'cmake' -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'python' -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extensions ['python_setup_py'] -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'python_setup_py' -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extensions ['ignore', 'ignore_ament_install'] -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'ignore' -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'ignore_ament_install' -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extensions ['colcon_pkg'] -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'colcon_pkg' -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extensions ['colcon_meta'] -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'colcon_meta' -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extensions ['ros'] -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'ros' -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extensions ['cmake', 'python'] -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'cmake' -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'python' -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extensions ['python_setup_py'] -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'python_setup_py' -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extensions ['ignore', 'ignore_ament_install'] -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'ignore' -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'ignore_ament_install' -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extensions ['colcon_pkg'] -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'colcon_pkg' -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extensions ['colcon_meta'] -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'colcon_meta' -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extensions ['ros'] -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'ros' -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extensions ['cmake', 'python'] -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'cmake' -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'python' -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extensions ['python_setup_py'] -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'python_setup_py' -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extensions ['ignore', 'ignore_ament_install'] -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'ignore' -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'ignore_ament_install' -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extensions ['colcon_pkg'] -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'colcon_pkg' -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extensions ['colcon_meta'] -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'colcon_meta' -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extensions ['ros'] -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'ros' -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extensions ['cmake', 'python'] -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'cmake' -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'python' -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extensions ['python_setup_py'] -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'python_setup_py' -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extensions ['ignore', 'ignore_ament_install'] -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'ignore' -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'ignore_ament_install' -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extensions ['colcon_pkg'] -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'colcon_pkg' -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extensions ['colcon_meta'] -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'colcon_meta' -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extensions ['ros'] -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'ros' -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extensions ['cmake', 'python'] -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'cmake' -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'python' -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extensions ['python_setup_py'] -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'python_setup_py' -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extensions ['ignore', 'ignore_ament_install'] -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'ignore' -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'ignore_ament_install' -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extensions ['colcon_pkg'] -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'colcon_pkg' -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extensions ['colcon_meta'] -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'colcon_meta' -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extensions ['ros'] -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'ros' -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extensions ['cmake', 'python'] -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'cmake' -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'python' -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extensions ['python_setup_py'] -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'python_setup_py' -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extensions ['ignore', 'ignore_ament_install'] -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'ignore' -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(install) ignored -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extensions ['ignore', 'ignore_ament_install'] -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'ignore' -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'ignore_ament_install' -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extensions ['colcon_pkg'] -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'colcon_pkg' -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extensions ['colcon_meta'] -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'colcon_meta' -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extensions ['ros'] -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'ros' -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extensions ['cmake', 'python'] -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'cmake' -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'python' -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extensions ['python_setup_py'] -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'python_setup_py' -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(log) by extensions ['ignore', 'ignore_ament_install'] -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(log) by extension 'ignore' -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(log) ignored -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extensions ['ignore', 'ignore_ament_install'] -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'ignore' -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'ignore_ament_install' -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extensions ['colcon_pkg'] -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'colcon_pkg' -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extensions ['colcon_meta'] -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'colcon_meta' -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extensions ['ros'] -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'ros' -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extensions ['cmake', 'python'] -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'cmake' -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'python' -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extensions ['python_setup_py'] -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'python_setup_py' -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/build) by extensions ['ignore', 'ignore_ament_install'] -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/build) by extension 'ignore' -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/build) ignored -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/install) by extensions ['ignore', 'ignore_ament_install'] -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/install) by extension 'ignore' -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/install) ignored -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/log) by extensions ['ignore', 'ignore_ament_install'] -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/log) by extension 'ignore' -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/log) ignored -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extensions ['ignore', 'ignore_ament_install'] -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'ignore' -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'ignore_ament_install' -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extensions ['colcon_pkg'] -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'colcon_pkg' -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extensions ['colcon_meta'] -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'colcon_meta' -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extensions ['ros'] -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'ros' -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extensions ['cmake', 'python'] -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'cmake' -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'python' -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extensions ['python_setup_py'] -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'python_setup_py' -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extensions ['ignore', 'ignore_ament_install'] -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'ignore' -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'ignore_ament_install' -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extensions ['colcon_pkg'] -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'colcon_pkg' -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extensions ['colcon_meta'] -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'colcon_meta' -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extensions ['ros'] -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'ros' -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extensions ['cmake', 'python'] -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'cmake' -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'python' -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extensions ['python_setup_py'] -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'python_setup_py' -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extensions ['ignore', 'ignore_ament_install'] -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'ignore' -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'ignore_ament_install' -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extensions ['colcon_pkg'] -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'colcon_pkg' -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extensions ['colcon_meta'] -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'colcon_meta' -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extensions ['ros'] -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'ros' -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extensions ['cmake', 'python'] -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'cmake' -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'python' -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extensions ['python_setup_py'] -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'python_setup_py' -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extensions ['ignore', 'ignore_ament_install'] -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'ignore' -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'ignore_ament_install' -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extensions ['colcon_pkg'] -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'colcon_pkg' -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extensions ['colcon_meta'] -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'colcon_meta' -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extensions ['ros'] -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'ros' -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extensions ['cmake', 'python'] -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'cmake' -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'python' -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extensions ['python_setup_py'] -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'python_setup_py' -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extensions ['ignore', 'ignore_ament_install'] -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'ignore' -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'ignore_ament_install' -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extensions ['colcon_pkg'] -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'colcon_pkg' -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extensions ['colcon_meta'] -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'colcon_meta' -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extensions ['ros'] -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'ros' -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extensions ['cmake', 'python'] -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'cmake' -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'python' -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extensions ['python_setup_py'] -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'python_setup_py' -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extensions ['ignore', 'ignore_ament_install'] -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extension 'ignore' -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extension 'ignore_ament_install' -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extensions ['colcon_pkg'] -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extension 'colcon_pkg' -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extensions ['colcon_meta'] -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extension 'colcon_meta' -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extensions ['ros'] -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extension 'ros' -[0.215s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/controls_bringup' with type 'ros.ament_cmake' and name 'controls_bringup' -[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extensions ['ignore', 'ignore_ament_install'] -[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'ignore' -[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'ignore_ament_install' -[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extensions ['colcon_pkg'] -[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'colcon_pkg' -[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extensions ['colcon_meta'] -[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'colcon_meta' -[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extensions ['ros'] -[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'ros' -[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extensions ['cmake', 'python'] -[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'cmake' -[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'python' -[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extensions ['python_setup_py'] -[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'python_setup_py' -[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extensions ['ignore', 'ignore_ament_install'] -[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extension 'ignore' -[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extension 'ignore_ament_install' -[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extensions ['colcon_pkg'] -[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extension 'colcon_pkg' -[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extensions ['colcon_meta'] -[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extension 'colcon_meta' -[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extensions ['ros'] -[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extension 'ros' -[0.217s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm' with type 'ros.ament_cmake' and name 'mav_comm' -[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extensions ['ignore', 'ignore_ament_install'] -[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extension 'ignore' -[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extension 'ignore_ament_install' -[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extensions ['colcon_pkg'] -[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extension 'colcon_pkg' -[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extensions ['colcon_meta'] -[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extension 'colcon_meta' -[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extensions ['ros'] -[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extension 'ros' -[0.218s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs' with type 'ros.ament_cmake' and name 'mav_msgs' -[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extensions ['ignore', 'ignore_ament_install'] -[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extension 'ignore' -[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extension 'ignore_ament_install' -[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extensions ['colcon_pkg'] -[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extension 'colcon_pkg' -[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extensions ['colcon_meta'] -[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extension 'colcon_meta' -[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extensions ['ros'] -[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extension 'ros' -[0.219s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs' with type 'ros.ament_cmake' and name 'mav_planning_msgs' -[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extensions ['ignore', 'ignore_ament_install'] -[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extension 'ignore' -[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extension 'ignore_ament_install' -[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extensions ['colcon_pkg'] -[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extension 'colcon_pkg' -[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extensions ['colcon_meta'] -[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extension 'colcon_meta' -[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extensions ['ros'] -[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extension 'ros' -[0.220s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs' with type 'ros.ament_cmake' and name 'mav_state_machine_msgs' -[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extensions ['ignore', 'ignore_ament_install'] -[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extension 'ignore' -[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extension 'ignore_ament_install' -[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extensions ['colcon_pkg'] -[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extension 'colcon_pkg' -[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extensions ['colcon_meta'] -[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extension 'colcon_meta' -[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extensions ['ros'] -[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extension 'ros' -[0.220s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs' with type 'ros.ament_cmake' and name 'mav_system_msgs' -[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extensions ['ignore', 'ignore_ament_install'] -[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extension 'ignore' -[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extension 'ignore_ament_install' -[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extensions ['colcon_pkg'] -[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extension 'colcon_pkg' -[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extensions ['colcon_meta'] -[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extension 'colcon_meta' -[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extensions ['ros'] -[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extension 'ros' -[0.221s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/mavros_interface' with type 'ros.ament_cmake' and name 'mavros_interface' -[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extensions ['ignore', 'ignore_ament_install'] -[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extension 'ignore' -[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extension 'ignore_ament_install' -[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extensions ['colcon_pkg'] -[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extension 'colcon_pkg' -[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extensions ['colcon_meta'] -[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extension 'colcon_meta' -[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extensions ['ros'] -[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extension 'ros' -[0.222s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/px4_msgs' with type 'ros.ament_cmake' and name 'px4_msgs' -[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extensions ['ignore', 'ignore_ament_install'] -[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extension 'ignore' -[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extension 'ignore_ament_install' -[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extensions ['colcon_pkg'] -[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extension 'colcon_pkg' -[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extensions ['colcon_meta'] -[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extension 'colcon_meta' -[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extensions ['ros'] -[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extension 'ros' -[0.223s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/px4_ros_com' with type 'ros.ament_cmake' and name 'px4_ros_com' -[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extensions ['ignore', 'ignore_ament_install'] -[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extension 'ignore' -[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extension 'ignore_ament_install' -[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extensions ['colcon_pkg'] -[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extension 'colcon_pkg' -[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extensions ['colcon_meta'] -[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extension 'colcon_meta' -[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extensions ['ros'] -[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extension 'ros' -[0.224s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/robot_interface' with type 'ros.ament_cmake' and name 'robot_interface' -[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extensions ['ignore', 'ignore_ament_install'] -[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'ignore' -[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'ignore_ament_install' -[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extensions ['colcon_pkg'] -[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'colcon_pkg' -[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extensions ['colcon_meta'] -[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'colcon_meta' -[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extensions ['ros'] -[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'ros' -[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extensions ['cmake', 'python'] -[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'cmake' -[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'python' -[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extensions ['python_setup_py'] -[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'python_setup_py' -[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extensions ['ignore', 'ignore_ament_install'] -[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'ignore' -[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'ignore_ament_install' -[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extensions ['colcon_pkg'] -[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'colcon_pkg' -[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extensions ['colcon_meta'] -[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'colcon_meta' -[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extensions ['ros'] -[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'ros' -[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extensions ['cmake', 'python'] -[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'cmake' -[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'python' -[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extensions ['python_setup_py'] -[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'python_setup_py' -[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extensions ['ignore', 'ignore_ament_install'] -[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'ignore' -[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'ignore_ament_install' -[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extensions ['colcon_pkg'] -[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'colcon_pkg' -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extensions ['colcon_meta'] -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'colcon_meta' -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extensions ['ros'] -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'ros' -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extensions ['cmake', 'python'] -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'cmake' -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'python' -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extensions ['python_setup_py'] -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'python_setup_py' -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extensions ['ignore', 'ignore_ament_install'] -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'ignore' -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'ignore_ament_install' -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extensions ['colcon_pkg'] -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'colcon_pkg' -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extensions ['colcon_meta'] -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'colcon_meta' -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extensions ['ros'] -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'ros' -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extensions ['cmake', 'python'] -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'cmake' -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'python' -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extensions ['python_setup_py'] -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'python_setup_py' -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation) by extensions ['ignore', 'ignore_ament_install'] -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation) by extension 'ignore' -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation) ignored -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/core_local_planner) by extensions ['ignore', 'ignore_ament_install'] -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/core_local_planner) by extension 'ignore' -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/core_local_planner) ignored -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extensions ['ignore', 'ignore_ament_install'] -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extension 'ignore' -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extension 'ignore_ament_install' -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extensions ['colcon_pkg'] -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extension 'colcon_pkg' -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extensions ['colcon_meta'] -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extension 'colcon_meta' -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extensions ['ros'] -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extension 'ros' -[0.228s] DEBUG:colcon.colcon_core.package_identification:Failed to parse potential ROS package manifest in'ros_ws/src/robot/autonomy/planning/local/disparity_expansion': Error(s) in package 'ros_ws/src/robot/autonomy/planning/local/disparity_expansion/package.xml': -Error(s): -- The manifest of package "disparity_expansion" (with format version 1) must not contain the following tags: exec_depend -- Either update to a newer format or replace tags with tags. -[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extensions ['cmake', 'python'] -[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extension 'cmake' -[0.229s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extension 'python' -[0.229s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/planning/local/disparity_expansion' with type 'cmake' and name 'disparity_expansion' -[0.229s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp) by extensions ['ignore', 'ignore_ament_install'] -[0.229s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp) by extension 'ignore' -[0.229s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp) ignored -[0.229s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extensions ['ignore', 'ignore_ament_install'] -[0.229s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'ignore' -[0.229s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'ignore_ament_install' -[0.229s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extensions ['colcon_pkg'] -[0.229s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'colcon_pkg' -[0.229s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extensions ['colcon_meta'] -[0.229s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'colcon_meta' -[0.229s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extensions ['ros'] -[0.229s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'ros' -[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extensions ['cmake', 'python'] -[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'cmake' -[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'python' -[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extensions ['python_setup_py'] -[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'python_setup_py' -[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extensions ['ignore', 'ignore_ament_install'] -[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'ignore' -[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'ignore_ament_install' -[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extensions ['colcon_pkg'] -[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'colcon_pkg' -[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extensions ['colcon_meta'] -[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'colcon_meta' -[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extensions ['ros'] -[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'ros' -[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extensions ['cmake', 'python'] -[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'cmake' -[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'python' -[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extensions ['python_setup_py'] -[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'python_setup_py' -[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extensions ['ignore', 'ignore_ament_install'] -[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extension 'ignore' -[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extension 'ignore_ament_install' -[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extensions ['colcon_pkg'] -[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extension 'colcon_pkg' -[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extensions ['colcon_meta'] -[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extension 'colcon_meta' -[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extensions ['ros'] -[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extension 'ros' -[0.231s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping' with type 'ros.cmake' and name 'vdb_mapping' -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extensions ['ignore', 'ignore_ament_install'] -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'ignore' -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'ignore_ament_install' -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extensions ['colcon_pkg'] -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'colcon_pkg' -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extensions ['colcon_meta'] -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'colcon_meta' -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extensions ['ros'] -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'ros' -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extensions ['cmake', 'python'] -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'cmake' -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'python' -[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extensions ['python_setup_py'] -[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'python_setup_py' -[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extensions ['ignore', 'ignore_ament_install'] -[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extension 'ignore' -[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extension 'ignore_ament_install' -[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extensions ['colcon_pkg'] -[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extension 'colcon_pkg' -[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extensions ['colcon_meta'] -[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extension 'colcon_meta' -[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extensions ['ros'] -[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extension 'ros' -[0.232s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces' with type 'ros.ament_cmake' and name 'vdb_mapping_interfaces' -[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extensions ['ignore', 'ignore_ament_install'] -[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extension 'ignore' -[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extension 'ignore_ament_install' -[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extensions ['colcon_pkg'] -[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extension 'colcon_pkg' -[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extensions ['colcon_meta'] -[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extension 'colcon_meta' -[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extensions ['ros'] -[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extension 'ros' -[0.234s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2' with type 'ros.ament_cmake' and name 'vdb_mapping_ros2' -[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extensions ['ignore', 'ignore_ament_install'] -[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'ignore' -[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'ignore_ament_install' -[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extensions ['colcon_pkg'] -[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'colcon_pkg' -[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extensions ['colcon_meta'] -[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'colcon_meta' -[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extensions ['ros'] -[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'ros' -[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extensions ['cmake', 'python'] -[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'cmake' -[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'python' -[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extensions ['python_setup_py'] -[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'python_setup_py' -[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extensions ['ignore', 'ignore_ament_install'] -[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extension 'ignore' -[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extension 'ignore_ament_install' -[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extensions ['colcon_pkg'] -[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extension 'colcon_pkg' -[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extensions ['colcon_meta'] -[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extension 'colcon_meta' -[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extensions ['ros'] -[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extension 'ros' -[0.235s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/robot_bringup' with type 'ros.ament_cmake' and name 'robot_bringup' -[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extensions ['ignore', 'ignore_ament_install'] -[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'ignore' -[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'ignore_ament_install' -[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extensions ['colcon_pkg'] -[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'colcon_pkg' -[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extensions ['colcon_meta'] -[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'colcon_meta' -[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extensions ['ros'] -[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'ros' -[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extensions ['cmake', 'python'] -[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'cmake' -[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'python' -[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extensions ['python_setup_py'] -[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'python_setup_py' -[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extensions ['ignore', 'ignore_ament_install'] -[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'ignore' -[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'ignore_ament_install' -[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extensions ['colcon_pkg'] -[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'colcon_pkg' -[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extensions ['colcon_meta'] -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'colcon_meta' -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extensions ['ros'] -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'ros' -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extensions ['cmake', 'python'] -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'cmake' -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'python' -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extensions ['python_setup_py'] -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'python_setup_py' -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extensions ['ignore', 'ignore_ament_install'] -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'ignore' -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'ignore_ament_install' -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extensions ['colcon_pkg'] -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'colcon_pkg' -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extensions ['colcon_meta'] -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'colcon_meta' -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extensions ['ros'] -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'ros' -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extensions ['cmake', 'python'] -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'cmake' -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'python' -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extensions ['python_setup_py'] -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'python_setup_py' -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extensions ['ignore', 'ignore_ament_install'] -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'ignore' -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'ignore_ament_install' -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extensions ['colcon_pkg'] -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'colcon_pkg' -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extensions ['colcon_meta'] -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'colcon_meta' -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extensions ['ros'] -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'ros' -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extensions ['cmake', 'python'] -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'cmake' -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'python' -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extensions ['python_setup_py'] -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'python_setup_py' -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extensions ['ignore', 'ignore_ament_install'] -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'ignore' -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'ignore_ament_install' -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extensions ['colcon_pkg'] -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'colcon_pkg' -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extensions ['colcon_meta'] -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'colcon_meta' -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extensions ['ros'] -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'ros' -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extensions ['cmake', 'python'] -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'cmake' -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'python' -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extensions ['python_setup_py'] -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'python_setup_py' -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extensions ['ignore', 'ignore_ament_install'] -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'ignore' -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'ignore_ament_install' -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extensions ['colcon_pkg'] -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'colcon_pkg' -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extensions ['colcon_meta'] -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'colcon_meta' -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extensions ['ros'] -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'ros' -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extensions ['cmake', 'python'] -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'cmake' -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'python' -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extensions ['python_setup_py'] -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'python_setup_py' -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extensions ['ignore', 'ignore_ament_install'] -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'ignore' -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'ignore_ament_install' -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extensions ['colcon_pkg'] -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'colcon_pkg' -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extensions ['colcon_meta'] -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'colcon_meta' -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extensions ['ros'] -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'ros' -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extensions ['cmake', 'python'] -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'cmake' -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'python' -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extensions ['python_setup_py'] -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'python_setup_py' -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extensions ['ignore', 'ignore_ament_install'] -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'ignore' -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'ignore_ament_install' -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extensions ['colcon_pkg'] -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'colcon_pkg' -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extensions ['colcon_meta'] -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'colcon_meta' -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extensions ['ros'] -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'ros' -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extensions ['cmake', 'python'] -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'cmake' -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'python' -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extensions ['python_setup_py'] -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'python_setup_py' -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extensions ['ignore', 'ignore_ament_install'] -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'ignore' -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'ignore_ament_install' -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extensions ['colcon_pkg'] -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'colcon_pkg' -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extensions ['colcon_meta'] -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'colcon_meta' -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extensions ['ros'] -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'ros' -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extensions ['cmake', 'python'] -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'cmake' -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'python' -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extensions ['python_setup_py'] -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'python_setup_py' -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extensions ['ignore', 'ignore_ament_install'] -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'ignore' -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'ignore_ament_install' -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extensions ['colcon_pkg'] -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'colcon_pkg' -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extensions ['colcon_meta'] -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'colcon_meta' -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extensions ['ros'] -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'ros' -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extensions ['cmake', 'python'] -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'cmake' -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'python' -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extensions ['python_setup_py'] -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'python_setup_py' -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extensions ['ignore', 'ignore_ament_install'] -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'ignore' -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'ignore_ament_install' -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extensions ['colcon_pkg'] -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'colcon_pkg' -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extensions ['colcon_meta'] -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'colcon_meta' -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extensions ['ros'] -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'ros' -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extensions ['cmake', 'python'] -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'cmake' -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'python' -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extensions ['python_setup_py'] -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'python_setup_py' -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extensions ['ignore', 'ignore_ament_install'] -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'ignore' -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'ignore_ament_install' -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extensions ['colcon_pkg'] -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'colcon_pkg' -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extensions ['colcon_meta'] -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'colcon_meta' -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extensions ['ros'] -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'ros' -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extensions ['cmake', 'python'] -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'cmake' -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'python' -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extensions ['python_setup_py'] -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'python_setup_py' -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extensions ['ignore', 'ignore_ament_install'] -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'ignore' -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'ignore_ament_install' -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extensions ['colcon_pkg'] -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'colcon_pkg' -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extensions ['colcon_meta'] -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'colcon_meta' -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extensions ['ros'] -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'ros' -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extensions ['cmake', 'python'] -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'cmake' -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'python' -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extensions ['python_setup_py'] -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'python_setup_py' -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extensions ['ignore', 'ignore_ament_install'] -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'ignore' -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'ignore_ament_install' -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extensions ['colcon_pkg'] -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'colcon_pkg' -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extensions ['colcon_meta'] -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'colcon_meta' -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extensions ['ros'] -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'ros' -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extensions ['cmake', 'python'] -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'cmake' -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'python' -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extensions ['python_setup_py'] -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'python_setup_py' -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extensions ['ignore', 'ignore_ament_install'] -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'ignore' -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'ignore_ament_install' -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extensions ['colcon_pkg'] -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'colcon_pkg' -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extensions ['colcon_meta'] -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'colcon_meta' -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extensions ['ros'] -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'ros' -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extensions ['cmake', 'python'] -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'cmake' -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'python' -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extensions ['python_setup_py'] -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'python_setup_py' -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extensions ['ignore', 'ignore_ament_install'] -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'ignore' -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'ignore_ament_install' -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extensions ['colcon_pkg'] -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'colcon_pkg' -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extensions ['colcon_meta'] -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'colcon_meta' -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extensions ['ros'] -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'ros' -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extensions ['cmake', 'python'] -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'cmake' -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'python' -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extensions ['python_setup_py'] -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'python_setup_py' -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extensions ['ignore', 'ignore_ament_install'] -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'ignore' -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'ignore_ament_install' -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extensions ['colcon_pkg'] -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'colcon_pkg' -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extensions ['colcon_meta'] -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'colcon_meta' -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extensions ['ros'] -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'ros' -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extensions ['cmake', 'python'] -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'cmake' -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'python' -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extensions ['python_setup_py'] -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'python_setup_py' -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extensions ['ignore', 'ignore_ament_install'] -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'ignore' -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'ignore_ament_install' -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extensions ['colcon_pkg'] -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'colcon_pkg' -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extensions ['colcon_meta'] -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'colcon_meta' -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extensions ['ros'] -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'ros' -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extensions ['cmake', 'python'] -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'cmake' -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'python' -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extensions ['python_setup_py'] -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'python_setup_py' -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extensions ['ignore', 'ignore_ament_install'] -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'ignore' -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'ignore_ament_install' -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extensions ['colcon_pkg'] -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'colcon_pkg' -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extensions ['colcon_meta'] -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'colcon_meta' -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extensions ['ros'] -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'ros' -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extensions ['cmake', 'python'] -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'cmake' -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'python' -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extensions ['python_setup_py'] -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'python_setup_py' -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extensions ['ignore', 'ignore_ament_install'] -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'ignore' -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'ignore_ament_install' -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extensions ['colcon_pkg'] -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'colcon_pkg' -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extensions ['colcon_meta'] -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'colcon_meta' -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extensions ['ros'] -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'ros' -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extensions ['cmake', 'python'] -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'cmake' -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'python' -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extensions ['python_setup_py'] -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'python_setup_py' -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extensions ['ignore', 'ignore_ament_install'] -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'ignore' -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'ignore_ament_install' -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extensions ['colcon_pkg'] -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'colcon_pkg' -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extensions ['colcon_meta'] -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'colcon_meta' -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extensions ['ros'] -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'ros' -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extensions ['cmake', 'python'] -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'cmake' -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'python' -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extensions ['python_setup_py'] -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'python_setup_py' -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extensions ['ignore', 'ignore_ament_install'] -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'ignore' -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'ignore_ament_install' -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extensions ['colcon_pkg'] -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'colcon_pkg' -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extensions ['colcon_meta'] -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'colcon_meta' -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extensions ['ros'] -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'ros' -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extensions ['cmake', 'python'] -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'cmake' -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'python' -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extensions ['python_setup_py'] -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'python_setup_py' -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extensions ['ignore', 'ignore_ament_install'] -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'ignore' -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'ignore_ament_install' -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extensions ['colcon_pkg'] -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'colcon_pkg' -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extensions ['colcon_meta'] -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'colcon_meta' -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extensions ['ros'] -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'ros' -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extensions ['cmake', 'python'] -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'cmake' -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'python' -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extensions ['python_setup_py'] -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'python_setup_py' -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extensions ['ignore', 'ignore_ament_install'] -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'ignore' -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'ignore_ament_install' -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extensions ['colcon_pkg'] -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'colcon_pkg' -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extensions ['colcon_meta'] -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'colcon_meta' -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extensions ['ros'] -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'ros' -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extensions ['cmake', 'python'] -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'cmake' -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'python' -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extensions ['python_setup_py'] -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'python_setup_py' -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extensions ['ignore', 'ignore_ament_install'] -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'ignore' -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'ignore_ament_install' -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extensions ['colcon_pkg'] -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'colcon_pkg' -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extensions ['colcon_meta'] -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'colcon_meta' -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extensions ['ros'] -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'ros' -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extensions ['cmake', 'python'] -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'cmake' -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'python' -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extensions ['python_setup_py'] -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'python_setup_py' -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extensions ['ignore', 'ignore_ament_install'] -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'ignore' -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'ignore_ament_install' -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extensions ['colcon_pkg'] -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'colcon_pkg' -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extensions ['colcon_meta'] -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'colcon_meta' -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extensions ['ros'] -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'ros' -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extensions ['cmake', 'python'] -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'cmake' -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'python' -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extensions ['python_setup_py'] -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'python_setup_py' -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extensions ['ignore', 'ignore_ament_install'] -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'ignore' -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'ignore_ament_install' -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extensions ['colcon_pkg'] -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'colcon_pkg' -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extensions ['colcon_meta'] -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'colcon_meta' -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extensions ['ros'] -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'ros' -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extensions ['cmake', 'python'] -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'cmake' -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'python' -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extensions ['python_setup_py'] -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'python_setup_py' -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extensions ['ignore', 'ignore_ament_install'] -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'ignore' -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'ignore_ament_install' -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extensions ['colcon_pkg'] -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'colcon_pkg' -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extensions ['colcon_meta'] -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'colcon_meta' -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extensions ['ros'] -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'ros' -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extensions ['cmake', 'python'] -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'cmake' -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'python' -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extensions ['python_setup_py'] -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'python_setup_py' -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extensions ['ignore', 'ignore_ament_install'] -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'ignore' -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'ignore_ament_install' -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extensions ['colcon_pkg'] -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'colcon_pkg' -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extensions ['colcon_meta'] -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'colcon_meta' -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extensions ['ros'] -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'ros' -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extensions ['cmake', 'python'] -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'cmake' -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'python' -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extensions ['python_setup_py'] -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'python_setup_py' -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extensions ['ignore', 'ignore_ament_install'] -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'ignore' -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'ignore_ament_install' -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extensions ['colcon_pkg'] -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'colcon_pkg' -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extensions ['colcon_meta'] -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'colcon_meta' -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extensions ['ros'] -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'ros' -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extensions ['cmake', 'python'] -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'cmake' -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'python' -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extensions ['python_setup_py'] -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'python_setup_py' -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extensions ['ignore', 'ignore_ament_install'] -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'ignore' -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'ignore_ament_install' -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extensions ['colcon_pkg'] -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'colcon_pkg' -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extensions ['colcon_meta'] -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'colcon_meta' -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extensions ['ros'] -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'ros' -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extensions ['cmake', 'python'] -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'cmake' -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'python' -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extensions ['python_setup_py'] -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'python_setup_py' -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extensions ['ignore', 'ignore_ament_install'] -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'ignore' -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'ignore_ament_install' -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extensions ['colcon_pkg'] -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'colcon_pkg' -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extensions ['colcon_meta'] -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'colcon_meta' -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extensions ['ros'] -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'ros' -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extensions ['cmake', 'python'] -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'cmake' -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'python' -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extensions ['python_setup_py'] -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'python_setup_py' -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extensions ['ignore', 'ignore_ament_install'] -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'ignore' -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'ignore_ament_install' -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extensions ['colcon_pkg'] -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'colcon_pkg' -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extensions ['colcon_meta'] -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'colcon_meta' -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extensions ['ros'] -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'ros' -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extensions ['cmake', 'python'] -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'cmake' -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'python' -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extensions ['python_setup_py'] -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'python_setup_py' -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extensions ['ignore', 'ignore_ament_install'] -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'ignore' -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'ignore_ament_install' -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extensions ['colcon_pkg'] -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'colcon_pkg' -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extensions ['colcon_meta'] -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'colcon_meta' -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extensions ['ros'] -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'ros' -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extensions ['cmake', 'python'] -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'cmake' -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'python' -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extensions ['python_setup_py'] -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'python_setup_py' -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extensions ['ignore', 'ignore_ament_install'] -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'ignore' -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'ignore_ament_install' -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extensions ['colcon_pkg'] -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'colcon_pkg' -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extensions ['colcon_meta'] -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'colcon_meta' -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extensions ['ros'] -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'ros' -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extensions ['cmake', 'python'] -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'cmake' -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'python' -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extensions ['python_setup_py'] -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'python_setup_py' -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extensions ['ignore', 'ignore_ament_install'] -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'ignore' -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'ignore_ament_install' -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extensions ['colcon_pkg'] -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'colcon_pkg' -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extensions ['colcon_meta'] -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'colcon_meta' -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extensions ['ros'] -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'ros' -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extensions ['cmake', 'python'] -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'cmake' -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'python' -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extensions ['python_setup_py'] -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'python_setup_py' -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extensions ['ignore', 'ignore_ament_install'] -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'ignore' -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'ignore_ament_install' -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extensions ['colcon_pkg'] -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'colcon_pkg' -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extensions ['colcon_meta'] -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'colcon_meta' -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extensions ['ros'] -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'ros' -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extensions ['cmake', 'python'] -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'cmake' -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'python' -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extensions ['python_setup_py'] -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'python_setup_py' -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extensions ['ignore', 'ignore_ament_install'] -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'ignore' -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'ignore_ament_install' -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extensions ['colcon_pkg'] -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'colcon_pkg' -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extensions ['colcon_meta'] -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'colcon_meta' -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extensions ['ros'] -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'ros' -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extensions ['cmake', 'python'] -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'cmake' -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'python' -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extensions ['python_setup_py'] -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'python_setup_py' -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extensions ['ignore', 'ignore_ament_install'] -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'ignore' -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'ignore_ament_install' -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extensions ['colcon_pkg'] -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'colcon_pkg' -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extensions ['colcon_meta'] -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'colcon_meta' -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extensions ['ros'] -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'ros' -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extensions ['cmake', 'python'] -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'cmake' -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'python' -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extensions ['python_setup_py'] -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'python_setup_py' -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extensions ['ignore', 'ignore_ament_install'] -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'ignore' -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'ignore_ament_install' -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extensions ['colcon_pkg'] -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'colcon_pkg' -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extensions ['colcon_meta'] -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'colcon_meta' -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extensions ['ros'] -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'ros' -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extensions ['cmake', 'python'] -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'cmake' -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'python' -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extensions ['python_setup_py'] -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'python_setup_py' -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extensions ['ignore', 'ignore_ament_install'] -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'ignore' -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'ignore_ament_install' -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extensions ['colcon_pkg'] -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'colcon_pkg' -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extensions ['colcon_meta'] -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'colcon_meta' -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extensions ['ros'] -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'ros' -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extensions ['cmake', 'python'] -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'cmake' -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'python' -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extensions ['python_setup_py'] -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'python_setup_py' -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extensions ['ignore', 'ignore_ament_install'] -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'ignore' -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'ignore_ament_install' -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extensions ['colcon_pkg'] -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'colcon_pkg' -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extensions ['colcon_meta'] -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'colcon_meta' -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extensions ['ros'] -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'ros' -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extensions ['cmake', 'python'] -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'cmake' -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'python' -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extensions ['python_setup_py'] -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'python_setup_py' -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extensions ['ignore', 'ignore_ament_install'] -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'ignore' -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'ignore_ament_install' -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extensions ['colcon_pkg'] -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'colcon_pkg' -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extensions ['colcon_meta'] -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'colcon_meta' -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extensions ['ros'] -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'ros' -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extensions ['cmake', 'python'] -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'cmake' -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'python' -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extensions ['python_setup_py'] -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'python_setup_py' -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extensions ['ignore', 'ignore_ament_install'] -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'ignore' -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'ignore_ament_install' -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extensions ['colcon_pkg'] -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'colcon_pkg' -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extensions ['colcon_meta'] -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'colcon_meta' -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extensions ['ros'] -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'ros' -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extensions ['cmake', 'python'] -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'cmake' -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'python' -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extensions ['python_setup_py'] -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'python_setup_py' -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extensions ['ignore', 'ignore_ament_install'] -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'ignore' -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'ignore_ament_install' -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extensions ['colcon_pkg'] -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'colcon_pkg' -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extensions ['colcon_meta'] -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'colcon_meta' -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extensions ['ros'] -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'ros' -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extensions ['cmake', 'python'] -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'cmake' -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'python' -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extensions ['python_setup_py'] -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'python_setup_py' -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extensions ['ignore', 'ignore_ament_install'] -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'ignore' -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'ignore_ament_install' -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extensions ['colcon_pkg'] -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'colcon_pkg' -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extensions ['colcon_meta'] -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'colcon_meta' -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extensions ['ros'] -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'ros' -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extensions ['cmake', 'python'] -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'cmake' -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'python' -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extensions ['python_setup_py'] -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'python_setup_py' -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extensions ['ignore', 'ignore_ament_install'] -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'ignore' -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'ignore_ament_install' -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extensions ['colcon_pkg'] -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'colcon_pkg' -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extensions ['colcon_meta'] -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'colcon_meta' -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extensions ['ros'] -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'ros' -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extensions ['cmake', 'python'] -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'cmake' -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'python' -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extensions ['python_setup_py'] -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'python_setup_py' -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extensions ['ignore', 'ignore_ament_install'] -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'ignore' -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'ignore_ament_install' -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extensions ['colcon_pkg'] -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'colcon_pkg' -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extensions ['colcon_meta'] -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'colcon_meta' -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extensions ['ros'] -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'ros' -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extensions ['cmake', 'python'] -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'cmake' -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'python' -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extensions ['python_setup_py'] -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'python_setup_py' -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extensions ['ignore', 'ignore_ament_install'] -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'ignore' -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'ignore_ament_install' -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extensions ['colcon_pkg'] -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'colcon_pkg' -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extensions ['colcon_meta'] -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'colcon_meta' -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extensions ['ros'] -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'ros' -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extensions ['cmake', 'python'] -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'cmake' -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'python' -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extensions ['python_setup_py'] -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'python_setup_py' -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extensions ['ignore', 'ignore_ament_install'] -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'ignore' -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'ignore_ament_install' -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extensions ['colcon_pkg'] -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'colcon_pkg' -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extensions ['colcon_meta'] -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'colcon_meta' -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extensions ['ros'] -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'ros' -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extensions ['cmake', 'python'] -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'cmake' -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'python' -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extensions ['python_setup_py'] -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'python_setup_py' -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extensions ['ignore', 'ignore_ament_install'] -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'ignore' -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'ignore_ament_install' -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extensions ['colcon_pkg'] -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'colcon_pkg' -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extensions ['colcon_meta'] -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'colcon_meta' -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extensions ['ros'] -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'ros' -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extensions ['cmake', 'python'] -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'cmake' -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'python' -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extensions ['python_setup_py'] -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'python_setup_py' -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extensions ['ignore', 'ignore_ament_install'] -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'ignore' -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'ignore_ament_install' -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extensions ['colcon_pkg'] -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'colcon_pkg' -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extensions ['colcon_meta'] -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'colcon_meta' -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extensions ['ros'] -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'ros' -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extensions ['cmake', 'python'] -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'cmake' -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'python' -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extensions ['python_setup_py'] -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'python_setup_py' -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extensions ['ignore', 'ignore_ament_install'] -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'ignore' -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'ignore_ament_install' -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extensions ['colcon_pkg'] -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'colcon_pkg' -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extensions ['colcon_meta'] -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'colcon_meta' -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extensions ['ros'] -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'ros' -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extensions ['cmake', 'python'] -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'cmake' -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'python' -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extensions ['python_setup_py'] -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'python_setup_py' -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extensions ['ignore', 'ignore_ament_install'] -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'ignore' -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'ignore_ament_install' -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extensions ['colcon_pkg'] -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'colcon_pkg' -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extensions ['colcon_meta'] -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'colcon_meta' -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extensions ['ros'] -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'ros' -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extensions ['cmake', 'python'] -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'cmake' -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'python' -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extensions ['python_setup_py'] -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'python_setup_py' -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extensions ['ignore', 'ignore_ament_install'] -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'ignore' -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'ignore_ament_install' -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extensions ['colcon_pkg'] -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'colcon_pkg' -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extensions ['colcon_meta'] -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'colcon_meta' -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extensions ['ros'] -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'ros' -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extensions ['cmake', 'python'] -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'cmake' -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'python' -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extensions ['python_setup_py'] -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'python_setup_py' -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extensions ['ignore', 'ignore_ament_install'] -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'ignore' -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'ignore_ament_install' -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extensions ['colcon_pkg'] -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'colcon_pkg' -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extensions ['colcon_meta'] -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'colcon_meta' -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extensions ['ros'] -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'ros' -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extensions ['cmake', 'python'] -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'cmake' -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'python' -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extensions ['python_setup_py'] -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'python_setup_py' -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extensions ['ignore', 'ignore_ament_install'] -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'ignore' -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'ignore_ament_install' -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extensions ['colcon_pkg'] -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'colcon_pkg' -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extensions ['colcon_meta'] -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'colcon_meta' -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extensions ['ros'] -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'ros' -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extensions ['cmake', 'python'] -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'cmake' -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'python' -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extensions ['python_setup_py'] -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'python_setup_py' -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extensions ['ignore', 'ignore_ament_install'] -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'ignore' -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'ignore_ament_install' -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extensions ['colcon_pkg'] -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'colcon_pkg' -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extensions ['colcon_meta'] -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'colcon_meta' -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extensions ['ros'] -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'ros' -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extensions ['cmake', 'python'] -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'cmake' -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'python' -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extensions ['python_setup_py'] -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'python_setup_py' -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extensions ['ignore', 'ignore_ament_install'] -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'ignore' -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'ignore_ament_install' -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extensions ['colcon_pkg'] -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'colcon_pkg' -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extensions ['colcon_meta'] -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'colcon_meta' -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extensions ['ros'] -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'ros' -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extensions ['cmake', 'python'] -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'cmake' -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'python' -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extensions ['python_setup_py'] -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'python_setup_py' -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extensions ['ignore', 'ignore_ament_install'] -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'ignore' -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'ignore_ament_install' -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extensions ['colcon_pkg'] -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'colcon_pkg' -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extensions ['colcon_meta'] -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'colcon_meta' -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extensions ['ros'] -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'ros' -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extensions ['cmake', 'python'] -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'cmake' -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'python' -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extensions ['python_setup_py'] -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'python_setup_py' -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extensions ['ignore', 'ignore_ament_install'] -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'ignore' -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'ignore_ament_install' -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extensions ['colcon_pkg'] -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'colcon_pkg' -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extensions ['colcon_meta'] -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'colcon_meta' -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extensions ['ros'] -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'ros' -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extensions ['cmake', 'python'] -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'cmake' -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'python' -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extensions ['python_setup_py'] -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'python_setup_py' -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extensions ['ignore', 'ignore_ament_install'] -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'ignore' -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'ignore_ament_install' -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extensions ['colcon_pkg'] -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'colcon_pkg' -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extensions ['colcon_meta'] -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'colcon_meta' -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extensions ['ros'] -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'ros' -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extensions ['cmake', 'python'] -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'cmake' -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'python' -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extensions ['python_setup_py'] -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'python_setup_py' -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extensions ['ignore', 'ignore_ament_install'] -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'ignore' -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'ignore_ament_install' -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extensions ['colcon_pkg'] -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'colcon_pkg' -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extensions ['colcon_meta'] -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'colcon_meta' -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extensions ['ros'] -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'ros' -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extensions ['cmake', 'python'] -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'cmake' -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'python' -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extensions ['python_setup_py'] -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'python_setup_py' -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extensions ['ignore', 'ignore_ament_install'] -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'ignore' -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'ignore_ament_install' -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extensions ['colcon_pkg'] -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'colcon_pkg' -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extensions ['colcon_meta'] -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'colcon_meta' -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extensions ['ros'] -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'ros' -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extensions ['cmake', 'python'] -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'cmake' -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'python' -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extensions ['python_setup_py'] -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'python_setup_py' -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extensions ['ignore', 'ignore_ament_install'] -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'ignore' -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'ignore_ament_install' -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extensions ['colcon_pkg'] -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'colcon_pkg' -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extensions ['colcon_meta'] -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'colcon_meta' -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extensions ['ros'] -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'ros' -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extensions ['cmake', 'python'] -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'cmake' -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'python' -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extensions ['python_setup_py'] -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'python_setup_py' -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extensions ['ignore', 'ignore_ament_install'] -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'ignore' -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'ignore_ament_install' -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extensions ['colcon_pkg'] -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'colcon_pkg' -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extensions ['colcon_meta'] -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'colcon_meta' -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extensions ['ros'] -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'ros' -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extensions ['cmake', 'python'] -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'cmake' -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'python' -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extensions ['python_setup_py'] -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'python_setup_py' -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extensions ['ignore', 'ignore_ament_install'] -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'ignore' -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'ignore_ament_install' -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extensions ['colcon_pkg'] -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'colcon_pkg' -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extensions ['colcon_meta'] -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'colcon_meta' -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extensions ['ros'] -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'ros' -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extensions ['cmake', 'python'] -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'cmake' -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'python' -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extensions ['python_setup_py'] -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'python_setup_py' -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extensions ['ignore', 'ignore_ament_install'] -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'ignore' -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'ignore_ament_install' -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extensions ['colcon_pkg'] -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'colcon_pkg' -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extensions ['colcon_meta'] -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'colcon_meta' -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extensions ['ros'] -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'ros' -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extensions ['cmake', 'python'] -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'cmake' -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'python' -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extensions ['python_setup_py'] -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'python_setup_py' -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extensions ['ignore', 'ignore_ament_install'] -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'ignore' -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'ignore_ament_install' -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extensions ['colcon_pkg'] -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'colcon_pkg' -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extensions ['colcon_meta'] -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'colcon_meta' -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extensions ['ros'] -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'ros' -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extensions ['cmake', 'python'] -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'cmake' -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'python' -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extensions ['python_setup_py'] -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'python_setup_py' -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extensions ['ignore', 'ignore_ament_install'] -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'ignore' -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'ignore_ament_install' -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extensions ['colcon_pkg'] -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'colcon_pkg' -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extensions ['colcon_meta'] -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'colcon_meta' -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extensions ['ros'] -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'ros' -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extensions ['cmake', 'python'] -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'cmake' -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'python' -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extensions ['python_setup_py'] -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'python_setup_py' -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extensions ['ignore', 'ignore_ament_install'] -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'ignore' -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'ignore_ament_install' -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extensions ['colcon_pkg'] -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'colcon_pkg' -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extensions ['colcon_meta'] -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'colcon_meta' -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extensions ['ros'] -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'ros' -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extensions ['cmake', 'python'] -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'cmake' -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'python' -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extensions ['python_setup_py'] -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'python_setup_py' -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extensions ['ignore', 'ignore_ament_install'] -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'ignore' -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'ignore_ament_install' -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extensions ['colcon_pkg'] -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'colcon_pkg' -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extensions ['colcon_meta'] -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'colcon_meta' -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extensions ['ros'] -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'ros' -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extensions ['cmake', 'python'] -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'cmake' -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'python' -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extensions ['python_setup_py'] -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'python_setup_py' -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extensions ['ignore', 'ignore_ament_install'] -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'ignore' -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'ignore_ament_install' -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extensions ['colcon_pkg'] -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'colcon_pkg' -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extensions ['colcon_meta'] -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'colcon_meta' -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extensions ['ros'] -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'ros' -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extensions ['cmake', 'python'] -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'cmake' -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'python' -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extensions ['python_setup_py'] -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'python_setup_py' -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extensions ['ignore', 'ignore_ament_install'] -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'ignore' -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'ignore_ament_install' -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extensions ['colcon_pkg'] -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'colcon_pkg' -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extensions ['colcon_meta'] -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'colcon_meta' -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extensions ['ros'] -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'ros' -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extensions ['cmake', 'python'] -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'cmake' -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'python' -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extensions ['python_setup_py'] -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'python_setup_py' -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extensions ['ignore', 'ignore_ament_install'] -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'ignore' -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'ignore_ament_install' -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extensions ['colcon_pkg'] -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'colcon_pkg' -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extensions ['colcon_meta'] -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'colcon_meta' -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extensions ['ros'] -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'ros' -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extensions ['cmake', 'python'] -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'cmake' -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'python' -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extensions ['python_setup_py'] -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'python_setup_py' -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extensions ['ignore', 'ignore_ament_install'] -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'ignore' -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'ignore_ament_install' -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extensions ['colcon_pkg'] -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'colcon_pkg' -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extensions ['colcon_meta'] -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'colcon_meta' -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extensions ['ros'] -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'ros' -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extensions ['cmake', 'python'] -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'cmake' -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'python' -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extensions ['python_setup_py'] -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'python_setup_py' -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extensions ['ignore', 'ignore_ament_install'] -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'ignore' -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'ignore_ament_install' -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extensions ['colcon_pkg'] -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'colcon_pkg' -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extensions ['colcon_meta'] -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'colcon_meta' -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extensions ['ros'] -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'ros' -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extensions ['cmake', 'python'] -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'cmake' -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'python' -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extensions ['python_setup_py'] -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'python_setup_py' -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extensions ['ignore', 'ignore_ament_install'] -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'ignore' -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'ignore_ament_install' -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extensions ['colcon_pkg'] -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'colcon_pkg' -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extensions ['colcon_meta'] -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'colcon_meta' -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extensions ['ros'] -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'ros' -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extensions ['cmake', 'python'] -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'cmake' -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'python' -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extensions ['python_setup_py'] -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'python_setup_py' -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extensions ['ignore', 'ignore_ament_install'] -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'ignore' -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'ignore_ament_install' -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extensions ['colcon_pkg'] -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'colcon_pkg' -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extensions ['colcon_meta'] -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'colcon_meta' -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extensions ['ros'] -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'ros' -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extensions ['cmake', 'python'] -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'cmake' -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'python' -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extensions ['python_setup_py'] -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'python_setup_py' -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extensions ['ignore', 'ignore_ament_install'] -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'ignore' -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'ignore_ament_install' -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extensions ['colcon_pkg'] -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'colcon_pkg' -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extensions ['colcon_meta'] -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'colcon_meta' -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extensions ['ros'] -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'ros' -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extensions ['cmake', 'python'] -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'cmake' -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'python' -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extensions ['python_setup_py'] -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'python_setup_py' -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extensions ['ignore', 'ignore_ament_install'] -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'ignore' -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'ignore_ament_install' -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extensions ['colcon_pkg'] -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'colcon_pkg' -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extensions ['colcon_meta'] -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'colcon_meta' -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extensions ['ros'] -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'ros' -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extensions ['cmake', 'python'] -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'cmake' -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'python' -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extensions ['python_setup_py'] -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'python_setup_py' -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extensions ['ignore', 'ignore_ament_install'] -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'ignore' -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'ignore_ament_install' -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extensions ['colcon_pkg'] -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'colcon_pkg' -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extensions ['colcon_meta'] -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'colcon_meta' -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extensions ['ros'] -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'ros' -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extensions ['cmake', 'python'] -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'cmake' -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'python' -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extensions ['python_setup_py'] -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'python_setup_py' -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extensions ['ignore', 'ignore_ament_install'] -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'ignore' -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'ignore_ament_install' -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extensions ['colcon_pkg'] -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'colcon_pkg' -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extensions ['colcon_meta'] -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'colcon_meta' -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extensions ['ros'] -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'ros' -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extensions ['cmake', 'python'] -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'cmake' -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'python' -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extensions ['python_setup_py'] -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'python_setup_py' -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extensions ['ignore', 'ignore_ament_install'] -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'ignore' -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'ignore_ament_install' -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extensions ['colcon_pkg'] -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'colcon_pkg' -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extensions ['colcon_meta'] -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'colcon_meta' -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extensions ['ros'] -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'ros' -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extensions ['cmake', 'python'] -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'cmake' -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'python' -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extensions ['python_setup_py'] -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'python_setup_py' -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extensions ['ignore', 'ignore_ament_install'] -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'ignore' -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'ignore_ament_install' -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extensions ['colcon_pkg'] -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'colcon_pkg' -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extensions ['colcon_meta'] -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'colcon_meta' -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extensions ['ros'] -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'ros' -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extensions ['cmake', 'python'] -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'cmake' -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'python' -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extensions ['python_setup_py'] -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'python_setup_py' -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extensions ['ignore', 'ignore_ament_install'] -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'ignore' -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'ignore_ament_install' -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extensions ['colcon_pkg'] -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'colcon_pkg' -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extensions ['colcon_meta'] -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'colcon_meta' -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extensions ['ros'] -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'ros' -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extensions ['cmake', 'python'] -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'cmake' -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'python' -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extensions ['python_setup_py'] -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'python_setup_py' -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extensions ['ignore', 'ignore_ament_install'] -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'ignore' -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'ignore_ament_install' -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extensions ['colcon_pkg'] -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'colcon_pkg' -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extensions ['colcon_meta'] -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'colcon_meta' -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extensions ['ros'] -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'ros' -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extensions ['cmake', 'python'] -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'cmake' -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'python' -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extensions ['python_setup_py'] -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'python_setup_py' -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extensions ['ignore', 'ignore_ament_install'] -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'ignore' -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'ignore_ament_install' -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extensions ['colcon_pkg'] -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'colcon_pkg' -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extensions ['colcon_meta'] -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'colcon_meta' -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extensions ['ros'] -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'ros' -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extensions ['cmake', 'python'] -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'cmake' -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'python' -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extensions ['python_setup_py'] -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'python_setup_py' -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extensions ['ignore', 'ignore_ament_install'] -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'ignore' -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'ignore_ament_install' -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extensions ['colcon_pkg'] -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'colcon_pkg' -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extensions ['colcon_meta'] -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'colcon_meta' -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extensions ['ros'] -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'ros' -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extensions ['cmake', 'python'] -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'cmake' -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'python' -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extensions ['python_setup_py'] -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'python_setup_py' -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extensions ['ignore', 'ignore_ament_install'] -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'ignore' -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'ignore_ament_install' -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extensions ['colcon_pkg'] -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'colcon_pkg' -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extensions ['colcon_meta'] -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'colcon_meta' -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extensions ['ros'] -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'ros' -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extensions ['cmake', 'python'] -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'cmake' -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'python' -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extensions ['python_setup_py'] -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'python_setup_py' -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extensions ['ignore', 'ignore_ament_install'] -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'ignore' -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'ignore_ament_install' -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extensions ['colcon_pkg'] -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'colcon_pkg' -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extensions ['colcon_meta'] -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'colcon_meta' -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extensions ['ros'] -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'ros' -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extensions ['cmake', 'python'] -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'cmake' -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'python' -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extensions ['python_setup_py'] -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'python_setup_py' -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extensions ['ignore', 'ignore_ament_install'] -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'ignore' -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'ignore_ament_install' -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extensions ['colcon_pkg'] -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'colcon_pkg' -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extensions ['colcon_meta'] -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'colcon_meta' -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extensions ['ros'] -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'ros' -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extensions ['cmake', 'python'] -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'cmake' -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'python' -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extensions ['python_setup_py'] -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'python_setup_py' -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extensions ['ignore', 'ignore_ament_install'] -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'ignore' -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'ignore_ament_install' -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extensions ['colcon_pkg'] -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'colcon_pkg' -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extensions ['colcon_meta'] -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'colcon_meta' -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extensions ['ros'] -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'ros' -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extensions ['cmake', 'python'] -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'cmake' -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'python' -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extensions ['python_setup_py'] -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'python_setup_py' -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extensions ['ignore', 'ignore_ament_install'] -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'ignore' -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'ignore_ament_install' -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extensions ['colcon_pkg'] -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'colcon_pkg' -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extensions ['colcon_meta'] -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'colcon_meta' -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extensions ['ros'] -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'ros' -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extensions ['cmake', 'python'] -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'cmake' -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'python' -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extensions ['python_setup_py'] -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'python_setup_py' -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extensions ['ignore', 'ignore_ament_install'] -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'ignore' -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'ignore_ament_install' -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extensions ['colcon_pkg'] -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'colcon_pkg' -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extensions ['colcon_meta'] -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'colcon_meta' -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extensions ['ros'] -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'ros' -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extensions ['cmake', 'python'] -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'cmake' -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'python' -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extensions ['python_setup_py'] -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'python_setup_py' -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extensions ['ignore', 'ignore_ament_install'] -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'ignore' -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'ignore_ament_install' -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extensions ['colcon_pkg'] -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'colcon_pkg' -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extensions ['colcon_meta'] -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'colcon_meta' -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extensions ['ros'] -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'ros' -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extensions ['cmake', 'python'] -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'cmake' -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'python' -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extensions ['python_setup_py'] -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'python_setup_py' -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extensions ['ignore', 'ignore_ament_install'] -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'ignore' -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'ignore_ament_install' -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extensions ['colcon_pkg'] -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'colcon_pkg' -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extensions ['colcon_meta'] -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'colcon_meta' -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extensions ['ros'] -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'ros' -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extensions ['cmake', 'python'] -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'cmake' -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'python' -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extensions ['python_setup_py'] -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'python_setup_py' -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extensions ['ignore', 'ignore_ament_install'] -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'ignore' -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'ignore_ament_install' -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extensions ['colcon_pkg'] -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'colcon_pkg' -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extensions ['colcon_meta'] -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'colcon_meta' -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extensions ['ros'] -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'ros' -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extensions ['cmake', 'python'] -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'cmake' -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'python' -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extensions ['python_setup_py'] -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'python_setup_py' -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extensions ['ignore', 'ignore_ament_install'] -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'ignore' -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'ignore_ament_install' -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extensions ['colcon_pkg'] -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'colcon_pkg' -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extensions ['colcon_meta'] -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'colcon_meta' -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extensions ['ros'] -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'ros' -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extensions ['cmake', 'python'] -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'cmake' -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'python' -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extensions ['python_setup_py'] -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'python_setup_py' -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extensions ['ignore', 'ignore_ament_install'] -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'ignore' -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'ignore_ament_install' -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extensions ['colcon_pkg'] -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'colcon_pkg' -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extensions ['colcon_meta'] -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'colcon_meta' -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extensions ['ros'] -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'ros' -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extensions ['cmake', 'python'] -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'cmake' -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'python' -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extensions ['python_setup_py'] -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'python_setup_py' -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extensions ['ignore', 'ignore_ament_install'] -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'ignore' -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'ignore_ament_install' -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extensions ['colcon_pkg'] -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'colcon_pkg' -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extensions ['colcon_meta'] -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'colcon_meta' -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extensions ['ros'] -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'ros' -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extensions ['cmake', 'python'] -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'cmake' -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'python' -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extensions ['python_setup_py'] -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'python_setup_py' -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extensions ['ignore', 'ignore_ament_install'] -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'ignore' -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'ignore_ament_install' -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extensions ['colcon_pkg'] -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'colcon_pkg' -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extensions ['colcon_meta'] -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'colcon_meta' -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extensions ['ros'] -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'ros' -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extensions ['cmake', 'python'] -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'cmake' -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'python' -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extensions ['python_setup_py'] -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'python_setup_py' -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extensions ['ignore', 'ignore_ament_install'] -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'ignore' -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'ignore_ament_install' -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extensions ['colcon_pkg'] -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'colcon_pkg' -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extensions ['colcon_meta'] -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'colcon_meta' -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extensions ['ros'] -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'ros' -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extensions ['cmake', 'python'] -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'cmake' -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'python' -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extensions ['python_setup_py'] -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'python_setup_py' -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extensions ['ignore', 'ignore_ament_install'] -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'ignore' -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'ignore_ament_install' -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extensions ['colcon_pkg'] -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'colcon_pkg' -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extensions ['colcon_meta'] -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'colcon_meta' -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extensions ['ros'] -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'ros' -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extensions ['cmake', 'python'] -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'cmake' -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'python' -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extensions ['python_setup_py'] -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'python_setup_py' -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extensions ['ignore', 'ignore_ament_install'] -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'ignore' -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'ignore_ament_install' -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extensions ['colcon_pkg'] -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'colcon_pkg' -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extensions ['colcon_meta'] -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'colcon_meta' -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extensions ['ros'] -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'ros' -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extensions ['cmake', 'python'] -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'cmake' -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'python' -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extensions ['python_setup_py'] -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'python_setup_py' -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extensions ['ignore', 'ignore_ament_install'] -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'ignore' -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'ignore_ament_install' -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extensions ['colcon_pkg'] -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'colcon_pkg' -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extensions ['colcon_meta'] -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'colcon_meta' -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extensions ['ros'] -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'ros' -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extensions ['cmake', 'python'] -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'cmake' -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'python' -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extensions ['python_setup_py'] -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'python_setup_py' -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extensions ['ignore', 'ignore_ament_install'] -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'ignore' -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'ignore_ament_install' -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extensions ['colcon_pkg'] -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'colcon_pkg' -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extensions ['colcon_meta'] -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'colcon_meta' -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extensions ['ros'] -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'ros' -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extensions ['cmake', 'python'] -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'cmake' -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'python' -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extensions ['python_setup_py'] -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'python_setup_py' -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extensions ['ignore', 'ignore_ament_install'] -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'ignore' -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'ignore_ament_install' -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extensions ['colcon_pkg'] -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'colcon_pkg' -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extensions ['colcon_meta'] -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'colcon_meta' -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extensions ['ros'] -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'ros' -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extensions ['cmake', 'python'] -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'cmake' -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'python' -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extensions ['python_setup_py'] -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'python_setup_py' -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extensions ['ignore', 'ignore_ament_install'] -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'ignore' -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'ignore_ament_install' -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extensions ['colcon_pkg'] -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'colcon_pkg' -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extensions ['colcon_meta'] -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'colcon_meta' -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extensions ['ros'] -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'ros' -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extensions ['cmake', 'python'] -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'cmake' -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'python' -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extensions ['python_setup_py'] -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'python_setup_py' -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extensions ['ignore', 'ignore_ament_install'] -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'ignore' -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'ignore_ament_install' -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extensions ['colcon_pkg'] -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'colcon_pkg' -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extensions ['colcon_meta'] -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'colcon_meta' -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extensions ['ros'] -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'ros' -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extensions ['cmake', 'python'] -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'cmake' -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'python' -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extensions ['python_setup_py'] -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'python_setup_py' -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extensions ['ignore', 'ignore_ament_install'] -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'ignore' -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'ignore_ament_install' -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extensions ['colcon_pkg'] -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'colcon_pkg' -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extensions ['colcon_meta'] -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'colcon_meta' -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extensions ['ros'] -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'ros' -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extensions ['cmake', 'python'] -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'cmake' -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'python' -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extensions ['python_setup_py'] -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'python_setup_py' -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extensions ['ignore', 'ignore_ament_install'] -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'ignore' -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'ignore_ament_install' -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extensions ['colcon_pkg'] -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'colcon_pkg' -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extensions ['colcon_meta'] -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'colcon_meta' -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extensions ['ros'] -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'ros' -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extensions ['cmake', 'python'] -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'cmake' -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'python' -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extensions ['python_setup_py'] -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'python_setup_py' -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extensions ['ignore', 'ignore_ament_install'] -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'ignore' -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'ignore_ament_install' -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extensions ['colcon_pkg'] -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'colcon_pkg' -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extensions ['colcon_meta'] -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'colcon_meta' -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extensions ['ros'] -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'ros' -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extensions ['cmake', 'python'] -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'cmake' -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'python' -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extensions ['python_setup_py'] -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'python_setup_py' -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extensions ['ignore', 'ignore_ament_install'] -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'ignore' -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'ignore_ament_install' -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extensions ['colcon_pkg'] -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'colcon_pkg' -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extensions ['colcon_meta'] -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'colcon_meta' -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extensions ['ros'] -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'ros' -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extensions ['cmake', 'python'] -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'cmake' -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'python' -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extensions ['python_setup_py'] -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'python_setup_py' -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extensions ['ignore', 'ignore_ament_install'] -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'ignore' -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'ignore_ament_install' -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extensions ['colcon_pkg'] -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'colcon_pkg' -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extensions ['colcon_meta'] -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'colcon_meta' -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extensions ['ros'] -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'ros' -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extensions ['cmake', 'python'] -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'cmake' -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'python' -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extensions ['python_setup_py'] -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'python_setup_py' -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extensions ['ignore', 'ignore_ament_install'] -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'ignore' -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'ignore_ament_install' -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extensions ['colcon_pkg'] -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'colcon_pkg' -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extensions ['colcon_meta'] -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'colcon_meta' -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extensions ['ros'] -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'ros' -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extensions ['cmake', 'python'] -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'cmake' -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'python' -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extensions ['python_setup_py'] -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'python_setup_py' -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extensions ['ignore', 'ignore_ament_install'] -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'ignore' -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'ignore_ament_install' -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extensions ['colcon_pkg'] -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'colcon_pkg' -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extensions ['colcon_meta'] -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'colcon_meta' -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extensions ['ros'] -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'ros' -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extensions ['cmake', 'python'] -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'cmake' -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'python' -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extensions ['python_setup_py'] -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'python_setup_py' -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extensions ['ignore', 'ignore_ament_install'] -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'ignore' -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'ignore_ament_install' -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extensions ['colcon_pkg'] -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'colcon_pkg' -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extensions ['colcon_meta'] -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'colcon_meta' -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extensions ['ros'] -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'ros' -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extensions ['cmake', 'python'] -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'cmake' -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'python' -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extensions ['python_setup_py'] -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'python_setup_py' -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extensions ['ignore', 'ignore_ament_install'] -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'ignore' -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'ignore_ament_install' -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extensions ['colcon_pkg'] -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'colcon_pkg' -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extensions ['colcon_meta'] -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'colcon_meta' -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extensions ['ros'] -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'ros' -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extensions ['cmake', 'python'] -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'cmake' -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'python' -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extensions ['python_setup_py'] -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'python_setup_py' -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extensions ['ignore', 'ignore_ament_install'] -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'ignore' -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'ignore_ament_install' -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extensions ['colcon_pkg'] -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'colcon_pkg' -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extensions ['colcon_meta'] -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'colcon_meta' -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extensions ['ros'] -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'ros' -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extensions ['cmake', 'python'] -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'cmake' -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'python' -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extensions ['python_setup_py'] -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'python_setup_py' -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extensions ['ignore', 'ignore_ament_install'] -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'ignore' -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'ignore_ament_install' -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extensions ['colcon_pkg'] -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'colcon_pkg' -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extensions ['colcon_meta'] -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'colcon_meta' -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extensions ['ros'] -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'ros' -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extensions ['cmake', 'python'] -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'cmake' -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'python' -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extensions ['python_setup_py'] -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'python_setup_py' -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extensions ['ignore', 'ignore_ament_install'] -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'ignore' -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'ignore_ament_install' -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extensions ['colcon_pkg'] -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'colcon_pkg' -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extensions ['colcon_meta'] -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'colcon_meta' -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extensions ['ros'] -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'ros' -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extensions ['cmake', 'python'] -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'cmake' -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'python' -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extensions ['python_setup_py'] -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'python_setup_py' -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extensions ['ignore', 'ignore_ament_install'] -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'ignore' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'ignore_ament_install' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extensions ['colcon_pkg'] -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'colcon_pkg' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extensions ['colcon_meta'] -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'colcon_meta' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extensions ['ros'] -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'ros' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extensions ['cmake', 'python'] -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'cmake' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'python' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extensions ['python_setup_py'] -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'python_setup_py' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extensions ['ignore', 'ignore_ament_install'] -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'ignore' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'ignore_ament_install' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extensions ['colcon_pkg'] -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'colcon_pkg' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extensions ['colcon_meta'] -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'colcon_meta' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extensions ['ros'] -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'ros' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extensions ['cmake', 'python'] -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'cmake' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'python' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extensions ['python_setup_py'] -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'python_setup_py' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extensions ['ignore', 'ignore_ament_install'] -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'ignore' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'ignore_ament_install' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extensions ['colcon_pkg'] -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'colcon_pkg' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extensions ['colcon_meta'] -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'colcon_meta' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extensions ['ros'] -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'ros' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extensions ['cmake', 'python'] -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'cmake' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'python' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extensions ['python_setup_py'] -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'python_setup_py' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extensions ['ignore', 'ignore_ament_install'] -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'ignore' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'ignore_ament_install' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extensions ['colcon_pkg'] -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'colcon_pkg' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extensions ['colcon_meta'] -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'colcon_meta' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extensions ['ros'] -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'ros' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extensions ['cmake', 'python'] -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'cmake' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'python' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extensions ['python_setup_py'] -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'python_setup_py' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extensions ['ignore', 'ignore_ament_install'] -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'ignore' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'ignore_ament_install' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extensions ['colcon_pkg'] -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'colcon_pkg' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extensions ['colcon_meta'] -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'colcon_meta' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extensions ['ros'] -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'ros' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extensions ['cmake', 'python'] -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'cmake' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'python' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extensions ['python_setup_py'] -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'python_setup_py' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extensions ['ignore', 'ignore_ament_install'] -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'ignore' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'ignore_ament_install' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extensions ['colcon_pkg'] -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'colcon_pkg' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extensions ['colcon_meta'] -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'colcon_meta' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extensions ['ros'] -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'ros' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extensions ['cmake', 'python'] -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'cmake' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'python' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extensions ['python_setup_py'] -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'python_setup_py' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extensions ['ignore', 'ignore_ament_install'] -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'ignore' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'ignore_ament_install' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extensions ['colcon_pkg'] -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'colcon_pkg' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extensions ['colcon_meta'] -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'colcon_meta' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extensions ['ros'] -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'ros' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extensions ['cmake', 'python'] -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'cmake' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'python' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extensions ['python_setup_py'] -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'python_setup_py' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extensions ['ignore', 'ignore_ament_install'] -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'ignore' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'ignore_ament_install' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extensions ['colcon_pkg'] -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'colcon_pkg' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extensions ['colcon_meta'] -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'colcon_meta' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extensions ['ros'] -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'ros' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extensions ['cmake', 'python'] -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'cmake' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'python' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extensions ['python_setup_py'] -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'python_setup_py' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extensions ['ignore', 'ignore_ament_install'] -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'ignore' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'ignore_ament_install' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extensions ['colcon_pkg'] -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'colcon_pkg' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extensions ['colcon_meta'] -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'colcon_meta' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extensions ['ros'] -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'ros' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extensions ['cmake', 'python'] -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'cmake' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'python' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extensions ['python_setup_py'] -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'python_setup_py' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extensions ['ignore', 'ignore_ament_install'] -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'ignore' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'ignore_ament_install' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extensions ['colcon_pkg'] -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'colcon_pkg' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extensions ['colcon_meta'] -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'colcon_meta' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extensions ['ros'] -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'ros' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extensions ['cmake', 'python'] -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'cmake' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'python' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extensions ['python_setup_py'] -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'python_setup_py' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extensions ['ignore', 'ignore_ament_install'] -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'ignore' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'ignore_ament_install' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extensions ['colcon_pkg'] -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'colcon_pkg' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extensions ['colcon_meta'] -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'colcon_meta' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extensions ['ros'] -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'ros' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extensions ['cmake', 'python'] -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'cmake' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'python' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extensions ['python_setup_py'] -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'python_setup_py' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extensions ['ignore', 'ignore_ament_install'] -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'ignore' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'ignore_ament_install' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extensions ['colcon_pkg'] -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'colcon_pkg' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extensions ['colcon_meta'] -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'colcon_meta' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extensions ['ros'] -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'ros' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extensions ['cmake', 'python'] -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'cmake' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'python' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extensions ['python_setup_py'] -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'python_setup_py' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extensions ['ignore', 'ignore_ament_install'] -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'ignore' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'ignore_ament_install' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extensions ['colcon_pkg'] -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'colcon_pkg' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extensions ['colcon_meta'] -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'colcon_meta' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extensions ['ros'] -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'ros' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extensions ['cmake', 'python'] -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'cmake' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'python' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extensions ['python_setup_py'] -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'python_setup_py' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extensions ['ignore', 'ignore_ament_install'] -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'ignore' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'ignore_ament_install' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extensions ['colcon_pkg'] -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'colcon_pkg' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extensions ['colcon_meta'] -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'colcon_meta' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extensions ['ros'] -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'ros' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extensions ['cmake', 'python'] -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'cmake' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'python' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extensions ['python_setup_py'] -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'python_setup_py' -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extensions ['ignore', 'ignore_ament_install'] -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'ignore' -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'ignore_ament_install' -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extensions ['colcon_pkg'] -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'colcon_pkg' -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extensions ['colcon_meta'] -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'colcon_meta' -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extensions ['ros'] -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'ros' -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extensions ['cmake', 'python'] -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'cmake' -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'python' -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extensions ['python_setup_py'] -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'python_setup_py' -[0.495s] DEBUG:colcon.colcon_core.package_identification:Package 'simulation/dronekit-python' with type 'python' and name 'dronekit' -[0.495s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extensions ['ignore', 'ignore_ament_install'] -[0.495s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'ignore' -[0.495s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'ignore_ament_install' -[0.495s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extensions ['colcon_pkg'] -[0.495s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'colcon_pkg' -[0.495s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extensions ['colcon_meta'] -[0.495s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'colcon_meta' -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extensions ['ros'] -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'ros' -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extensions ['cmake', 'python'] -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'cmake' -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'python' -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extensions ['python_setup_py'] -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'python_setup_py' -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extensions ['ignore', 'ignore_ament_install'] -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'ignore' -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'ignore_ament_install' -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extensions ['colcon_pkg'] -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'colcon_pkg' -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extensions ['colcon_meta'] -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'colcon_meta' -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extensions ['ros'] -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'ros' -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extensions ['cmake', 'python'] -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'cmake' -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'python' -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extensions ['python_setup_py'] -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'python_setup_py' -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extensions ['ignore', 'ignore_ament_install'] -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'ignore' -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'ignore_ament_install' -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extensions ['colcon_pkg'] -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'colcon_pkg' -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extensions ['colcon_meta'] -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'colcon_meta' -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extensions ['ros'] -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'ros' -[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extensions ['cmake', 'python'] -[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'cmake' -[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'python' -[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extensions ['python_setup_py'] -[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'python_setup_py' -[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extensions ['ignore', 'ignore_ament_install'] -[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'ignore' -[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'ignore_ament_install' -[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extensions ['colcon_pkg'] -[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'colcon_pkg' -[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extensions ['colcon_meta'] -[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'colcon_meta' -[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extensions ['ros'] -[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'ros' -[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extensions ['cmake', 'python'] -[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'cmake' -[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'python' -[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extensions ['python_setup_py'] -[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'python_setup_py' -[0.497s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) using defaults -[0.497s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) discover -[0.497s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) using defaults -[0.497s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) discover -[0.497s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) using defaults -[0.521s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'controls_bringup' in 'ros_ws/src/robot/autonomy/controls/controls_bringup' -[0.521s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'dronekit' in 'simulation/dronekit-python' -[0.522s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mav_msgs' in 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs' -[0.522s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mav_state_machine_msgs' in 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs' -[0.522s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mav_system_msgs' in 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs' -[0.522s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'px4_msgs' in 'ros_ws/src/robot/autonomy/controls/px4_msgs' -[0.522s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'robot_bringup' in 'ros_ws/src/robot/robot_bringup' -[0.522s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'vdb_mapping' in 'ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping' -[0.522s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'vdb_mapping_interfaces' in 'ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces' -[0.522s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mav_planning_msgs' in 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs' -[0.522s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'px4_ros_com' in 'ros_ws/src/robot/autonomy/controls/px4_ros_com' -[0.522s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'robot_interface' in 'ros_ws/src/robot/autonomy/controls/robot_interface' -[0.522s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'vdb_mapping_ros2' in 'ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2' -[0.522s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mav_comm' in 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm' -[0.522s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mavros_interface' in 'ros_ws/src/robot/autonomy/controls/mavros_interface' -[0.522s] Level 1:colcon.colcon_core.package_discovery:discover_packages(prefix_path) check parameters -[0.522s] Level 1:colcon.colcon_core.package_discovery:discover_packages(prefix_path) discover -[0.524s] DEBUG:colcon.colcon_installed_package_information.package_discovery:Found 14 installed packages in /root/AirStack/ros_ws/install -[0.525s] DEBUG:colcon.colcon_installed_package_information.package_discovery:Found 277 installed packages in /opt/ros/humble -[0.526s] Level 1:colcon.colcon_core.package_discovery:discover_packages(prefix_path) using defaults -[0.554s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'cmake_args' from command line to 'None' -[0.554s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'cmake_target' from command line to 'None' -[0.554s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'cmake_target_skip_unavailable' from command line to 'False' -[0.554s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'cmake_clean_cache' from command line to 'False' -[0.554s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'cmake_clean_first' from command line to 'False' -[0.554s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'cmake_force_configure' from command line to 'False' -[0.555s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'ament_cmake_args' from command line to 'None' -[0.555s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'catkin_cmake_args' from command line to 'None' -[0.555s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'catkin_skip_building_tests' from command line to 'False' -[0.555s] DEBUG:colcon.colcon_core.verb:Building package 'disparity_expansion' with the following arguments: {'ament_cmake_args': None, 'build_base': '/root/AirStack/build/disparity_expansion', 'catkin_cmake_args': None, 'catkin_skip_building_tests': False, 'cmake_args': None, 'cmake_clean_cache': False, 'cmake_clean_first': False, 'cmake_force_configure': False, 'cmake_target': None, 'cmake_target_skip_unavailable': False, 'install_base': '/root/AirStack/install/disparity_expansion', 'merge_install': False, 'path': '/root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion', 'symlink_install': False, 'test_result_base': None} -[0.555s] INFO:colcon.colcon_core.executor:Executing jobs using 'parallel' executor -[0.555s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete -[0.556s] INFO:colcon.colcon_cmake.task.cmake.build:Building CMake package in '/root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion' -[0.558s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_core.shell.bat': Not used on non-Windows systems -[0.558s] INFO:colcon.colcon_core.shell:Skip shell extension 'powershell' for command environment: Not usable outside of PowerShell -[0.558s] DEBUG:colcon.colcon_core.shell:Skip shell extension 'dsv' for command environment -[0.570s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoking command in '/root/AirStack/build/disparity_expansion': /usr/bin/cmake --build /root/AirStack/build/disparity_expansion -- -j12 -l12 -[3.395s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoked command in '/root/AirStack/build/disparity_expansion' returned '2': /usr/bin/cmake --build /root/AirStack/build/disparity_expansion -- -j12 -l12 -[3.404s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:closing loop -[3.405s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:loop closed -[3.405s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete finished with '2' -[3.405s] DEBUG:colcon.colcon_core.event_reactor:joining thread -[3.411s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.notify_send': Could not find 'notify-send' -[3.411s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.terminal_notifier': Not used on non-Darwin systems -[3.411s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.win32': Not used on non-Windows systems -[3.411s] INFO:colcon.colcon_notification.desktop_notification:Sending desktop notification using 'notify2' -[3.415s] DEBUG:colcon.colcon_notification.desktop_notification.notify2:Failed to initialize notify2: org.freedesktop.DBus.Error.Spawn.ExecFailed: /usr/bin/dbus-launch terminated abnormally without any error message -[3.415s] DEBUG:colcon.colcon_core.event_reactor:joined thread -[3.416s] INFO:colcon.colcon_core.shell:Creating prefix script '/root/AirStack/install/local_setup.ps1' -[3.417s] INFO:colcon.colcon_core.shell:Creating prefix util module '/root/AirStack/install/_local_setup_util_ps1.py' -[3.419s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/root/AirStack/install/setup.ps1' -[3.421s] INFO:colcon.colcon_core.shell:Creating prefix script '/root/AirStack/install/local_setup.sh' -[3.422s] INFO:colcon.colcon_core.shell:Creating prefix util module '/root/AirStack/install/_local_setup_util_sh.py' -[3.423s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/root/AirStack/install/setup.sh' -[3.424s] INFO:colcon.colcon_core.shell:Creating prefix script '/root/AirStack/install/local_setup.bash' -[3.425s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/root/AirStack/install/setup.bash' -[3.426s] INFO:colcon.colcon_core.shell:Creating prefix script '/root/AirStack/install/local_setup.zsh' -[3.426s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/root/AirStack/install/setup.zsh' diff --git a/log/build_2024-07-25_13-14-27/disparity_expansion/command.log b/log/build_2024-07-25_13-14-27/disparity_expansion/command.log deleted file mode 100644 index c661a790e..000000000 --- a/log/build_2024-07-25_13-14-27/disparity_expansion/command.log +++ /dev/null @@ -1,2 +0,0 @@ -Invoking command in '/root/AirStack/build/disparity_expansion': /usr/bin/cmake --build /root/AirStack/build/disparity_expansion -- -j12 -l12 -Invoked command in '/root/AirStack/build/disparity_expansion' returned '2': /usr/bin/cmake --build /root/AirStack/build/disparity_expansion -- -j12 -l12 diff --git a/log/build_2024-07-25_13-14-27/disparity_expansion/stderr.log b/log/build_2024-07-25_13-14-27/disparity_expansion/stderr.log deleted file mode 100644 index cc8ee250e..000000000 --- a/log/build_2024-07-25_13-14-27/disparity_expansion/stderr.log +++ /dev/null @@ -1,8 +0,0 @@ -In file included from /root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_conv.cpp:42: -/opt/ros/humble/include/pcl_ros/point_cloud.hpp:45:10: fatal error: ros/ros.h: No such file or directory - 45 | #include  - | ^~~~~~~~~~~ -compilation terminated. -gmake[2]: *** [CMakeFiles/disparity_conv.dir/build.make:76: CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o] Error 1 -gmake[1]: *** [CMakeFiles/Makefile2:137: CMakeFiles/disparity_conv.dir/all] Error 2 -gmake: *** [Makefile:101: all] Error 2 diff --git a/log/build_2024-07-25_13-14-27/disparity_expansion/stdout.log b/log/build_2024-07-25_13-14-27/disparity_expansion/stdout.log deleted file mode 100644 index 286b52e2e..000000000 --- a/log/build_2024-07-25_13-14-27/disparity_expansion/stdout.log +++ /dev/null @@ -1 +0,0 @@ -[ 50%] Building CXX object CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o diff --git a/log/build_2024-07-25_13-14-27/disparity_expansion/stdout_stderr.log b/log/build_2024-07-25_13-14-27/disparity_expansion/stdout_stderr.log deleted file mode 100644 index 09b7e19b4..000000000 --- a/log/build_2024-07-25_13-14-27/disparity_expansion/stdout_stderr.log +++ /dev/null @@ -1,9 +0,0 @@ -[ 50%] Building CXX object CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o -In file included from /root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_conv.cpp:42: -/opt/ros/humble/include/pcl_ros/point_cloud.hpp:45:10: fatal error: ros/ros.h: No such file or directory - 45 | #include  - | ^~~~~~~~~~~ -compilation terminated. -gmake[2]: *** [CMakeFiles/disparity_conv.dir/build.make:76: CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o] Error 1 -gmake[1]: *** [CMakeFiles/Makefile2:137: CMakeFiles/disparity_conv.dir/all] Error 2 -gmake: *** [Makefile:101: all] Error 2 diff --git a/log/build_2024-07-25_13-14-27/disparity_expansion/streams.log b/log/build_2024-07-25_13-14-27/disparity_expansion/streams.log deleted file mode 100644 index e996f4465..000000000 --- a/log/build_2024-07-25_13-14-27/disparity_expansion/streams.log +++ /dev/null @@ -1,11 +0,0 @@ -[0.011s] Invoking command in '/root/AirStack/build/disparity_expansion': /usr/bin/cmake --build /root/AirStack/build/disparity_expansion -- -j12 -l12 -[0.073s] [ 50%] Building CXX object CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o -[0.406s] In file included from /root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_conv.cpp:42: -[0.406s] /opt/ros/humble/include/pcl_ros/point_cloud.hpp:45:10: fatal error: ros/ros.h: No such file or directory -[0.406s] 45 | #include  -[0.406s] | ^~~~~~~~~~~ -[0.406s] compilation terminated. -[0.415s] gmake[2]: *** [CMakeFiles/disparity_conv.dir/build.make:76: CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o] Error 1 -[0.416s] gmake[1]: *** [CMakeFiles/Makefile2:137: CMakeFiles/disparity_conv.dir/all] Error 2 -[0.416s] gmake: *** [Makefile:101: all] Error 2 -[0.420s] Invoked command in '/root/AirStack/build/disparity_expansion' returned '2': /usr/bin/cmake --build /root/AirStack/build/disparity_expansion -- -j12 -l12 diff --git a/log/build_2024-07-25_13-14-27/events.log b/log/build_2024-07-25_13-14-27/events.log deleted file mode 100644 index faae0b6f8..000000000 --- a/log/build_2024-07-25_13-14-27/events.log +++ /dev/null @@ -1,37 +0,0 @@ -[0.000000] (-) TimerEvent: {} -[0.000278] (-) JobUnselected: {'identifier': 'controls_bringup'} -[0.000319] (-) JobUnselected: {'identifier': 'dronekit'} -[0.000351] (-) JobUnselected: {'identifier': 'mav_comm'} -[0.000393] (-) JobUnselected: {'identifier': 'mav_msgs'} -[0.000479] (-) JobUnselected: {'identifier': 'mav_planning_msgs'} -[0.000509] (-) JobUnselected: {'identifier': 'mav_state_machine_msgs'} -[0.000538] (-) JobUnselected: {'identifier': 'mav_system_msgs'} -[0.000563] (-) JobUnselected: {'identifier': 'mavros_interface'} -[0.000587] (-) JobUnselected: {'identifier': 'px4_msgs'} -[0.000638] (-) JobUnselected: {'identifier': 'px4_ros_com'} -[0.000720] (-) JobUnselected: {'identifier': 'robot_bringup'} -[0.000748] (-) JobUnselected: {'identifier': 'robot_interface'} -[0.000786] (-) JobUnselected: {'identifier': 'vdb_mapping'} -[0.000863] (-) JobUnselected: {'identifier': 'vdb_mapping_interfaces'} -[0.000888] (-) JobUnselected: {'identifier': 'vdb_mapping_ros2'} -[0.000917] (disparity_expansion) JobQueued: {'identifier': 'disparity_expansion', 'dependencies': OrderedDict()} -[0.000945] (disparity_expansion) JobStarted: {'identifier': 'disparity_expansion'} -[0.009157] (disparity_expansion) JobProgress: {'identifier': 'disparity_expansion', 'progress': 'cmake'} -[0.010372] (disparity_expansion) JobProgress: {'identifier': 'disparity_expansion', 'progress': 'build'} -[0.011511] (disparity_expansion) Command: {'cmd': ['/usr/bin/cmake', '--build', '/root/AirStack/build/disparity_expansion', '--', '-j12', '-l12'], 'cwd': '/root/AirStack/build/disparity_expansion', 'env': OrderedDict([('LESSOPEN', '| /usr/bin/lesspipe %s'), ('HOSTNAME', 'wildfire-desktop'), ('ISAACSIM_PATH', '/isaac-sim'), ('SHLVL', '1'), ('LD_LIBRARY_PATH', '/root/AirStack/ros_ws/install/vdb_mapping_interfaces/lib:/root/AirStack/ros_ws/install/vdb_mapping/lib:/root/AirStack/ros_ws/install/mavros_interface/lib:/root/AirStack/ros_ws/install/robot_interface/lib:/root/AirStack/ros_ws/install/px4_ros_com/lib:/root/AirStack/ros_ws/install/px4_msgs/lib:/root/AirStack/ros_ws/install/mav_system_msgs/lib:/root/AirStack/ros_ws/install/mav_state_machine_msgs/lib:/root/AirStack/ros_ws/install/mav_planning_msgs/lib:/root/AirStack/ros_ws/install/mav_msgs/lib:/opt/ros/humble/opt/rviz_ogre_vendor/lib:/opt/ros/humble/lib/x86_64-linux-gnu:/opt/ros/humble/lib'), ('HOME', '/root'), ('MIN_DRIVER_VERSION', '525.60.11'), ('ROS_PYTHON_VERSION', '3'), ('LC_CTYPE', 'C.UTF-8'), ('COLCON_PREFIX_PATH', '/root/AirStack/ros_ws/install'), ('ROS_DISTRO', 'humble'), ('_', '/usr/bin/colcon'), ('ROS_VERSION', '2'), ('PKG_CONFIG_PATH', '/root/AirStack/ros_ws/install/vdb_mapping/lib/x86_64-linux-gnu/pkgconfig:/root/AirStack/ros_ws/install/vdb_mapping/lib/pkgconfig'), ('NVIDIA_DRIVER_CAPABILITIES', 'all'), ('TERM', 'xterm'), ('ROS_LOCALHOST_ONLY', '0'), ('PATH', '/opt/ros/humble/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'), ('VK_DRIVER_FILES', '/etc/vulkan/icd.d/nvidia_icd.json'), ('DISPLAY', ':1'), ('LS_COLORS', 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:'), ('AMENT_PREFIX_PATH', '/root/AirStack/ros_ws/install/vdb_mapping_ros2:/root/AirStack/ros_ws/install/vdb_mapping_interfaces:/root/AirStack/ros_ws/install/mavros_interface:/root/AirStack/ros_ws/install/robot_interface:/root/AirStack/ros_ws/install/robot_bringup:/root/AirStack/ros_ws/install/px4_ros_com:/root/AirStack/ros_ws/install/px4_msgs:/root/AirStack/ros_ws/install/mav_comm:/root/AirStack/ros_ws/install/mav_system_msgs:/root/AirStack/ros_ws/install/mav_state_machine_msgs:/root/AirStack/ros_ws/install/mav_planning_msgs:/root/AirStack/ros_ws/install/mav_msgs:/root/AirStack/ros_ws/install/controls_bringup:/opt/ros/humble'), ('OMNI_PASS', 'admin'), ('LESSCLOSE', '/usr/bin/lesspipe %s %s'), ('ACCEPT_EULA', 'Y'), ('CMAKE_MODULE_PATH', '/root/AirStack/ros_ws/install/vdb_mapping/lib/cmake/vdb_mapping'), ('OMNI_SERVER', 'http://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/4.0'), ('PWD', '/root/AirStack/build/disparity_expansion'), ('OMNI_USER', 'admin'), ('PYTHONPATH', '/root/AirStack/ros_ws/install/vdb_mapping_interfaces/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/px4_ros_com/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/px4_msgs/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/mav_planning_msgs/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/mav_msgs/local/lib/python3.10/dist-packages:/opt/ros/humble/lib/python3.10/site-packages:/opt/ros/humble/local/lib/python3.10/dist-packages'), ('NVIDIA_VISIBLE_DEVICES', 'all'), ('TZ', 'America/New_York'), ('COLCON', '1'), ('CMAKE_PREFIX_PATH', '/root/AirStack/ros_ws/install/vdb_mapping_ros2:/root/AirStack/ros_ws/install/vdb_mapping_interfaces:/root/AirStack/ros_ws/install/vdb_mapping:/root/AirStack/ros_ws/install/mavros_interface:/root/AirStack/ros_ws/install/robot_interface:/root/AirStack/ros_ws/install/robot_bringup:/root/AirStack/ros_ws/install/px4_ros_com:/root/AirStack/ros_ws/install/px4_msgs:/root/AirStack/ros_ws/install/mav_comm:/root/AirStack/ros_ws/install/mav_system_msgs:/root/AirStack/ros_ws/install/mav_state_machine_msgs:/root/AirStack/ros_ws/install/mav_planning_msgs:/root/AirStack/ros_ws/install/mav_msgs:/root/AirStack/ros_ws/install/controls_bringup')]), 'shell': False} -[0.073649] (disparity_expansion) StdoutLine: {'line': b'[ 50%] \x1b[32mBuilding CXX object CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o\x1b[0m\n'} -[0.099508] (-) TimerEvent: {} -[0.199723] (-) TimerEvent: {} -[0.299922] (-) TimerEvent: {} -[0.400128] (-) TimerEvent: {} -[0.406745] (disparity_expansion) StderrLine: {'line': b'In file included from \x1b[01m\x1b[K/root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_conv.cpp:42\x1b[m\x1b[K:\n'} -[0.406916] (disparity_expansion) StderrLine: {'line': b'\x1b[01m\x1b[K/opt/ros/humble/include/pcl_ros/point_cloud.hpp:45:10:\x1b[m\x1b[K \x1b[01;31m\x1b[Kfatal error: \x1b[m\x1b[Kros/ros.h: No such file or directory\n'} -[0.407012] (disparity_expansion) StderrLine: {'line': b' 45 | #include \x1b[01;31m\x1b[K\x1b[m\x1b[K\n'} -[0.407096] (disparity_expansion) StderrLine: {'line': b' | \x1b[01;31m\x1b[K^~~~~~~~~~~\x1b[m\x1b[K\n'} -[0.407177] (disparity_expansion) StderrLine: {'line': b'compilation terminated.\n'} -[0.416269] (disparity_expansion) StderrLine: {'line': b'gmake[2]: *** [CMakeFiles/disparity_conv.dir/build.make:76: CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o] Error 1\n'} -[0.416761] (disparity_expansion) StderrLine: {'line': b'gmake[1]: *** [CMakeFiles/Makefile2:137: CMakeFiles/disparity_conv.dir/all] Error 2\n'} -[0.416946] (disparity_expansion) StderrLine: {'line': b'gmake: *** [Makefile:101: all] Error 2\n'} -[0.420716] (disparity_expansion) CommandEnded: {'returncode': 2} -[0.421050] (disparity_expansion) JobEnded: {'identifier': 'disparity_expansion', 'rc': 2} -[0.431200] (-) EventReactorShutdown: {} diff --git a/log/build_2024-07-25_13-14-27/logger_all.log b/log/build_2024-07-25_13-14-27/logger_all.log deleted file mode 100644 index 649231c5a..000000000 --- a/log/build_2024-07-25_13-14-27/logger_all.log +++ /dev/null @@ -1,2595 +0,0 @@ -[0.077s] DEBUG:colcon:Command line arguments: ['/usr/bin/colcon', 'build', '--packages-select', 'disparity_expansion'] -[0.077s] DEBUG:colcon:Parsed command line arguments: Namespace(log_base=None, log_level=None, verb_name='build', build_base='build', install_base='install', merge_install=False, symlink_install=False, test_result_base=None, continue_on_error=False, executor='parallel', parallel_workers=12, event_handlers=None, ignore_user_meta=False, metas=['./colcon.meta'], base_paths=['.'], packages_ignore=None, packages_ignore_regex=None, paths=None, packages_up_to=None, packages_up_to_regex=None, packages_above=None, packages_above_and_dependencies=None, packages_above_depth=None, packages_select_by_dep=None, packages_skip_by_dep=None, packages_skip_up_to=None, packages_select_build_failed=False, packages_skip_build_finished=False, packages_select_test_failures=False, packages_skip_test_passed=False, packages_select=['disparity_expansion'], packages_skip=None, packages_select_regex=None, packages_skip_regex=None, packages_start=None, packages_end=None, allow_overriding=[], cmake_args=None, cmake_target=None, cmake_target_skip_unavailable=False, cmake_clean_cache=False, cmake_clean_first=False, cmake_force_configure=False, ament_cmake_args=None, catkin_cmake_args=None, catkin_skip_building_tests=False, mixin_files=None, mixin=None, verb_parser=, verb_extension=, main=>, mixin_verb=('build',)) -[0.197s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) check parameters -[0.197s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) check parameters -[0.197s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) check parameters -[0.197s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) check parameters -[0.197s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) discover -[0.197s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) discover -[0.197s] INFO:colcon.colcon_core.package_discovery:Crawling recursively for packages in '/root/AirStack' -[0.197s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ignore', 'ignore_ament_install'] -[0.197s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore' -[0.197s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore_ament_install' -[0.197s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_pkg'] -[0.198s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_pkg' -[0.198s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_meta'] -[0.198s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_meta' -[0.198s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ros'] -[0.198s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ros' -[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['cmake', 'python'] -[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'cmake' -[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'python' -[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['python_setup_py'] -[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'python_setup_py' -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extensions ['ignore', 'ignore_ament_install'] -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'ignore' -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(build) ignored -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extensions ['ignore', 'ignore_ament_install'] -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'ignore' -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'ignore_ament_install' -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extensions ['colcon_pkg'] -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'colcon_pkg' -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extensions ['colcon_meta'] -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'colcon_meta' -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extensions ['ros'] -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'ros' -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extensions ['cmake', 'python'] -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'cmake' -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'python' -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extensions ['python_setup_py'] -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'python_setup_py' -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extensions ['ignore', 'ignore_ament_install'] -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'ignore' -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'ignore_ament_install' -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extensions ['colcon_pkg'] -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'colcon_pkg' -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extensions ['colcon_meta'] -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'colcon_meta' -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extensions ['ros'] -[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'ros' -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extensions ['cmake', 'python'] -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'cmake' -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'python' -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extensions ['python_setup_py'] -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'python_setup_py' -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extensions ['ignore', 'ignore_ament_install'] -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'ignore' -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'ignore_ament_install' -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extensions ['colcon_pkg'] -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'colcon_pkg' -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extensions ['colcon_meta'] -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'colcon_meta' -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extensions ['ros'] -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'ros' -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extensions ['cmake', 'python'] -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'cmake' -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'python' -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extensions ['python_setup_py'] -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'python_setup_py' -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extensions ['ignore', 'ignore_ament_install'] -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'ignore' -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'ignore_ament_install' -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extensions ['colcon_pkg'] -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'colcon_pkg' -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extensions ['colcon_meta'] -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'colcon_meta' -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extensions ['ros'] -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'ros' -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extensions ['cmake', 'python'] -[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'cmake' -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'python' -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extensions ['python_setup_py'] -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'python_setup_py' -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extensions ['ignore', 'ignore_ament_install'] -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'ignore' -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'ignore_ament_install' -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extensions ['colcon_pkg'] -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'colcon_pkg' -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extensions ['colcon_meta'] -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'colcon_meta' -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extensions ['ros'] -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'ros' -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extensions ['cmake', 'python'] -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'cmake' -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'python' -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extensions ['python_setup_py'] -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'python_setup_py' -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extensions ['ignore', 'ignore_ament_install'] -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'ignore' -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'ignore_ament_install' -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extensions ['colcon_pkg'] -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'colcon_pkg' -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extensions ['colcon_meta'] -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'colcon_meta' -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extensions ['ros'] -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'ros' -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extensions ['cmake', 'python'] -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'cmake' -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'python' -[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extensions ['python_setup_py'] -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'python_setup_py' -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extensions ['ignore', 'ignore_ament_install'] -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'ignore' -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'ignore_ament_install' -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extensions ['colcon_pkg'] -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'colcon_pkg' -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extensions ['colcon_meta'] -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'colcon_meta' -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extensions ['ros'] -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'ros' -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extensions ['cmake', 'python'] -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'cmake' -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'python' -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extensions ['python_setup_py'] -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'python_setup_py' -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extensions ['ignore', 'ignore_ament_install'] -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'ignore' -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'ignore_ament_install' -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extensions ['colcon_pkg'] -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'colcon_pkg' -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extensions ['colcon_meta'] -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'colcon_meta' -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extensions ['ros'] -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'ros' -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extensions ['cmake', 'python'] -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'cmake' -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'python' -[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extensions ['python_setup_py'] -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'python_setup_py' -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extensions ['ignore', 'ignore_ament_install'] -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'ignore' -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'ignore_ament_install' -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extensions ['colcon_pkg'] -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'colcon_pkg' -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extensions ['colcon_meta'] -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'colcon_meta' -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extensions ['ros'] -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'ros' -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extensions ['cmake', 'python'] -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'cmake' -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'python' -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extensions ['python_setup_py'] -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'python_setup_py' -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extensions ['ignore', 'ignore_ament_install'] -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'ignore' -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(install) ignored -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extensions ['ignore', 'ignore_ament_install'] -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'ignore' -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'ignore_ament_install' -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extensions ['colcon_pkg'] -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'colcon_pkg' -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extensions ['colcon_meta'] -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'colcon_meta' -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extensions ['ros'] -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'ros' -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extensions ['cmake', 'python'] -[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'cmake' -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'python' -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extensions ['python_setup_py'] -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'python_setup_py' -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(log) by extensions ['ignore', 'ignore_ament_install'] -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(log) by extension 'ignore' -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(log) ignored -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extensions ['ignore', 'ignore_ament_install'] -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'ignore' -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'ignore_ament_install' -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extensions ['colcon_pkg'] -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'colcon_pkg' -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extensions ['colcon_meta'] -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'colcon_meta' -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extensions ['ros'] -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'ros' -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extensions ['cmake', 'python'] -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'cmake' -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'python' -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extensions ['python_setup_py'] -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'python_setup_py' -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/build) by extensions ['ignore', 'ignore_ament_install'] -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/build) by extension 'ignore' -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/build) ignored -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/install) by extensions ['ignore', 'ignore_ament_install'] -[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/install) by extension 'ignore' -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/install) ignored -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/log) by extensions ['ignore', 'ignore_ament_install'] -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/log) by extension 'ignore' -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/log) ignored -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extensions ['ignore', 'ignore_ament_install'] -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'ignore' -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'ignore_ament_install' -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extensions ['colcon_pkg'] -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'colcon_pkg' -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extensions ['colcon_meta'] -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'colcon_meta' -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extensions ['ros'] -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'ros' -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extensions ['cmake', 'python'] -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'cmake' -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'python' -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extensions ['python_setup_py'] -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'python_setup_py' -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extensions ['ignore', 'ignore_ament_install'] -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'ignore' -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'ignore_ament_install' -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extensions ['colcon_pkg'] -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'colcon_pkg' -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extensions ['colcon_meta'] -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'colcon_meta' -[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extensions ['ros'] -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'ros' -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extensions ['cmake', 'python'] -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'cmake' -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'python' -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extensions ['python_setup_py'] -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'python_setup_py' -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extensions ['ignore', 'ignore_ament_install'] -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'ignore' -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'ignore_ament_install' -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extensions ['colcon_pkg'] -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'colcon_pkg' -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extensions ['colcon_meta'] -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'colcon_meta' -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extensions ['ros'] -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'ros' -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extensions ['cmake', 'python'] -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'cmake' -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'python' -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extensions ['python_setup_py'] -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'python_setup_py' -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extensions ['ignore', 'ignore_ament_install'] -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'ignore' -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'ignore_ament_install' -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extensions ['colcon_pkg'] -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'colcon_pkg' -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extensions ['colcon_meta'] -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'colcon_meta' -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extensions ['ros'] -[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'ros' -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extensions ['cmake', 'python'] -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'cmake' -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'python' -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extensions ['python_setup_py'] -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'python_setup_py' -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extensions ['ignore', 'ignore_ament_install'] -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'ignore' -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'ignore_ament_install' -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extensions ['colcon_pkg'] -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'colcon_pkg' -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extensions ['colcon_meta'] -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'colcon_meta' -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extensions ['ros'] -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'ros' -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extensions ['cmake', 'python'] -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'cmake' -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'python' -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extensions ['python_setup_py'] -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'python_setup_py' -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extensions ['ignore', 'ignore_ament_install'] -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extension 'ignore' -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extension 'ignore_ament_install' -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extensions ['colcon_pkg'] -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extension 'colcon_pkg' -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extensions ['colcon_meta'] -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extension 'colcon_meta' -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extensions ['ros'] -[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extension 'ros' -[0.216s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/controls_bringup' with type 'ros.ament_cmake' and name 'controls_bringup' -[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extensions ['ignore', 'ignore_ament_install'] -[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'ignore' -[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'ignore_ament_install' -[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extensions ['colcon_pkg'] -[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'colcon_pkg' -[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extensions ['colcon_meta'] -[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'colcon_meta' -[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extensions ['ros'] -[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'ros' -[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extensions ['cmake', 'python'] -[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'cmake' -[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'python' -[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extensions ['python_setup_py'] -[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'python_setup_py' -[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extensions ['ignore', 'ignore_ament_install'] -[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extension 'ignore' -[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extension 'ignore_ament_install' -[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extensions ['colcon_pkg'] -[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extension 'colcon_pkg' -[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extensions ['colcon_meta'] -[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extension 'colcon_meta' -[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extensions ['ros'] -[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extension 'ros' -[0.217s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm' with type 'ros.ament_cmake' and name 'mav_comm' -[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extensions ['ignore', 'ignore_ament_install'] -[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extension 'ignore' -[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extension 'ignore_ament_install' -[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extensions ['colcon_pkg'] -[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extension 'colcon_pkg' -[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extensions ['colcon_meta'] -[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extension 'colcon_meta' -[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extensions ['ros'] -[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extension 'ros' -[0.218s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs' with type 'ros.ament_cmake' and name 'mav_msgs' -[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extensions ['ignore', 'ignore_ament_install'] -[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extension 'ignore' -[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extension 'ignore_ament_install' -[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extensions ['colcon_pkg'] -[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extension 'colcon_pkg' -[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extensions ['colcon_meta'] -[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extension 'colcon_meta' -[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extensions ['ros'] -[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extension 'ros' -[0.220s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs' with type 'ros.ament_cmake' and name 'mav_planning_msgs' -[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extensions ['ignore', 'ignore_ament_install'] -[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extension 'ignore' -[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extension 'ignore_ament_install' -[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extensions ['colcon_pkg'] -[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extension 'colcon_pkg' -[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extensions ['colcon_meta'] -[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extension 'colcon_meta' -[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extensions ['ros'] -[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extension 'ros' -[0.220s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs' with type 'ros.ament_cmake' and name 'mav_state_machine_msgs' -[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extensions ['ignore', 'ignore_ament_install'] -[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extension 'ignore' -[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extension 'ignore_ament_install' -[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extensions ['colcon_pkg'] -[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extension 'colcon_pkg' -[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extensions ['colcon_meta'] -[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extension 'colcon_meta' -[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extensions ['ros'] -[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extension 'ros' -[0.221s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs' with type 'ros.ament_cmake' and name 'mav_system_msgs' -[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extensions ['ignore', 'ignore_ament_install'] -[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extension 'ignore' -[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extension 'ignore_ament_install' -[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extensions ['colcon_pkg'] -[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extension 'colcon_pkg' -[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extensions ['colcon_meta'] -[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extension 'colcon_meta' -[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extensions ['ros'] -[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extension 'ros' -[0.222s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/mavros_interface' with type 'ros.ament_cmake' and name 'mavros_interface' -[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extensions ['ignore', 'ignore_ament_install'] -[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extension 'ignore' -[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extension 'ignore_ament_install' -[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extensions ['colcon_pkg'] -[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extension 'colcon_pkg' -[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extensions ['colcon_meta'] -[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extension 'colcon_meta' -[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extensions ['ros'] -[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extension 'ros' -[0.223s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/px4_msgs' with type 'ros.ament_cmake' and name 'px4_msgs' -[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extensions ['ignore', 'ignore_ament_install'] -[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extension 'ignore' -[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extension 'ignore_ament_install' -[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extensions ['colcon_pkg'] -[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extension 'colcon_pkg' -[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extensions ['colcon_meta'] -[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extension 'colcon_meta' -[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extensions ['ros'] -[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extension 'ros' -[0.224s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/px4_ros_com' with type 'ros.ament_cmake' and name 'px4_ros_com' -[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extensions ['ignore', 'ignore_ament_install'] -[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extension 'ignore' -[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extension 'ignore_ament_install' -[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extensions ['colcon_pkg'] -[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extension 'colcon_pkg' -[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extensions ['colcon_meta'] -[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extension 'colcon_meta' -[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extensions ['ros'] -[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extension 'ros' -[0.225s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/robot_interface' with type 'ros.ament_cmake' and name 'robot_interface' -[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extensions ['ignore', 'ignore_ament_install'] -[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'ignore' -[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'ignore_ament_install' -[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extensions ['colcon_pkg'] -[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'colcon_pkg' -[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extensions ['colcon_meta'] -[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'colcon_meta' -[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extensions ['ros'] -[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'ros' -[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extensions ['cmake', 'python'] -[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'cmake' -[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'python' -[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extensions ['python_setup_py'] -[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'python_setup_py' -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extensions ['ignore', 'ignore_ament_install'] -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'ignore' -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'ignore_ament_install' -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extensions ['colcon_pkg'] -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'colcon_pkg' -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extensions ['colcon_meta'] -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'colcon_meta' -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extensions ['ros'] -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'ros' -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extensions ['cmake', 'python'] -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'cmake' -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'python' -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extensions ['python_setup_py'] -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'python_setup_py' -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extensions ['ignore', 'ignore_ament_install'] -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'ignore' -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'ignore_ament_install' -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extensions ['colcon_pkg'] -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'colcon_pkg' -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extensions ['colcon_meta'] -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'colcon_meta' -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extensions ['ros'] -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'ros' -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extensions ['cmake', 'python'] -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'cmake' -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'python' -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extensions ['python_setup_py'] -[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'python_setup_py' -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extensions ['ignore', 'ignore_ament_install'] -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'ignore' -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'ignore_ament_install' -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extensions ['colcon_pkg'] -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'colcon_pkg' -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extensions ['colcon_meta'] -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'colcon_meta' -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extensions ['ros'] -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'ros' -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extensions ['cmake', 'python'] -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'cmake' -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'python' -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extensions ['python_setup_py'] -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'python_setup_py' -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation) by extensions ['ignore', 'ignore_ament_install'] -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation) by extension 'ignore' -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation) ignored -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/core_local_planner) by extensions ['ignore', 'ignore_ament_install'] -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/core_local_planner) by extension 'ignore' -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/core_local_planner) ignored -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extensions ['ignore', 'ignore_ament_install'] -[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extension 'ignore' -[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extension 'ignore_ament_install' -[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extensions ['colcon_pkg'] -[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extension 'colcon_pkg' -[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extensions ['colcon_meta'] -[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extension 'colcon_meta' -[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extensions ['ros'] -[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extension 'ros' -[0.228s] DEBUG:colcon.colcon_core.package_identification:Failed to parse potential ROS package manifest in'ros_ws/src/robot/autonomy/planning/local/disparity_expansion': Error(s) in package 'ros_ws/src/robot/autonomy/planning/local/disparity_expansion/package.xml': -Error(s): -- The manifest of package "disparity_expansion" (with format version 1) must not contain the following tags: exec_depend -- Either update to a newer format or replace tags with tags. -[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extensions ['cmake', 'python'] -[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extension 'cmake' -[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extension 'python' -[0.230s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/planning/local/disparity_expansion' with type 'cmake' and name 'disparity_expansion' -[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp) by extensions ['ignore', 'ignore_ament_install'] -[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp) by extension 'ignore' -[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp) ignored -[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extensions ['ignore', 'ignore_ament_install'] -[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'ignore' -[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'ignore_ament_install' -[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extensions ['colcon_pkg'] -[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'colcon_pkg' -[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extensions ['colcon_meta'] -[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'colcon_meta' -[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extensions ['ros'] -[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'ros' -[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extensions ['cmake', 'python'] -[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'cmake' -[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'python' -[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extensions ['python_setup_py'] -[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'python_setup_py' -[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extensions ['ignore', 'ignore_ament_install'] -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'ignore' -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'ignore_ament_install' -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extensions ['colcon_pkg'] -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'colcon_pkg' -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extensions ['colcon_meta'] -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'colcon_meta' -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extensions ['ros'] -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'ros' -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extensions ['cmake', 'python'] -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'cmake' -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'python' -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extensions ['python_setup_py'] -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'python_setup_py' -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extensions ['ignore', 'ignore_ament_install'] -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extension 'ignore' -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extension 'ignore_ament_install' -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extensions ['colcon_pkg'] -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extension 'colcon_pkg' -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extensions ['colcon_meta'] -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extension 'colcon_meta' -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extensions ['ros'] -[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extension 'ros' -[0.232s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping' with type 'ros.cmake' and name 'vdb_mapping' -[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extensions ['ignore', 'ignore_ament_install'] -[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'ignore' -[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'ignore_ament_install' -[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extensions ['colcon_pkg'] -[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'colcon_pkg' -[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extensions ['colcon_meta'] -[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'colcon_meta' -[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extensions ['ros'] -[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'ros' -[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extensions ['cmake', 'python'] -[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'cmake' -[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'python' -[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extensions ['python_setup_py'] -[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'python_setup_py' -[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extensions ['ignore', 'ignore_ament_install'] -[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extension 'ignore' -[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extension 'ignore_ament_install' -[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extensions ['colcon_pkg'] -[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extension 'colcon_pkg' -[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extensions ['colcon_meta'] -[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extension 'colcon_meta' -[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extensions ['ros'] -[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extension 'ros' -[0.233s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces' with type 'ros.ament_cmake' and name 'vdb_mapping_interfaces' -[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extensions ['ignore', 'ignore_ament_install'] -[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extension 'ignore' -[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extension 'ignore_ament_install' -[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extensions ['colcon_pkg'] -[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extension 'colcon_pkg' -[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extensions ['colcon_meta'] -[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extension 'colcon_meta' -[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extensions ['ros'] -[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extension 'ros' -[0.234s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2' with type 'ros.ament_cmake' and name 'vdb_mapping_ros2' -[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extensions ['ignore', 'ignore_ament_install'] -[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'ignore' -[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'ignore_ament_install' -[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extensions ['colcon_pkg'] -[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'colcon_pkg' -[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extensions ['colcon_meta'] -[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'colcon_meta' -[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extensions ['ros'] -[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'ros' -[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extensions ['cmake', 'python'] -[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'cmake' -[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'python' -[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extensions ['python_setup_py'] -[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'python_setup_py' -[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extensions ['ignore', 'ignore_ament_install'] -[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extension 'ignore' -[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extension 'ignore_ament_install' -[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extensions ['colcon_pkg'] -[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extension 'colcon_pkg' -[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extensions ['colcon_meta'] -[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extension 'colcon_meta' -[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extensions ['ros'] -[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extension 'ros' -[0.236s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/robot_bringup' with type 'ros.ament_cmake' and name 'robot_bringup' -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extensions ['ignore', 'ignore_ament_install'] -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'ignore' -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'ignore_ament_install' -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extensions ['colcon_pkg'] -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'colcon_pkg' -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extensions ['colcon_meta'] -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'colcon_meta' -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extensions ['ros'] -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'ros' -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extensions ['cmake', 'python'] -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'cmake' -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'python' -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extensions ['python_setup_py'] -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'python_setup_py' -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extensions ['ignore', 'ignore_ament_install'] -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'ignore' -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'ignore_ament_install' -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extensions ['colcon_pkg'] -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'colcon_pkg' -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extensions ['colcon_meta'] -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'colcon_meta' -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extensions ['ros'] -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'ros' -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extensions ['cmake', 'python'] -[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'cmake' -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'python' -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extensions ['python_setup_py'] -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'python_setup_py' -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extensions ['ignore', 'ignore_ament_install'] -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'ignore' -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'ignore_ament_install' -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extensions ['colcon_pkg'] -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'colcon_pkg' -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extensions ['colcon_meta'] -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'colcon_meta' -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extensions ['ros'] -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'ros' -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extensions ['cmake', 'python'] -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'cmake' -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'python' -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extensions ['python_setup_py'] -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'python_setup_py' -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extensions ['ignore', 'ignore_ament_install'] -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'ignore' -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'ignore_ament_install' -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extensions ['colcon_pkg'] -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'colcon_pkg' -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extensions ['colcon_meta'] -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'colcon_meta' -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extensions ['ros'] -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'ros' -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extensions ['cmake', 'python'] -[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'cmake' -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'python' -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extensions ['python_setup_py'] -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'python_setup_py' -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extensions ['ignore', 'ignore_ament_install'] -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'ignore' -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'ignore_ament_install' -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extensions ['colcon_pkg'] -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'colcon_pkg' -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extensions ['colcon_meta'] -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'colcon_meta' -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extensions ['ros'] -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'ros' -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extensions ['cmake', 'python'] -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'cmake' -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'python' -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extensions ['python_setup_py'] -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'python_setup_py' -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extensions ['ignore', 'ignore_ament_install'] -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'ignore' -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'ignore_ament_install' -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extensions ['colcon_pkg'] -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'colcon_pkg' -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extensions ['colcon_meta'] -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'colcon_meta' -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extensions ['ros'] -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'ros' -[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extensions ['cmake', 'python'] -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'cmake' -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'python' -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extensions ['python_setup_py'] -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'python_setup_py' -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extensions ['ignore', 'ignore_ament_install'] -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'ignore' -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'ignore_ament_install' -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extensions ['colcon_pkg'] -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'colcon_pkg' -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extensions ['colcon_meta'] -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'colcon_meta' -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extensions ['ros'] -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'ros' -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extensions ['cmake', 'python'] -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'cmake' -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'python' -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extensions ['python_setup_py'] -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'python_setup_py' -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extensions ['ignore', 'ignore_ament_install'] -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'ignore' -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'ignore_ament_install' -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extensions ['colcon_pkg'] -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'colcon_pkg' -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extensions ['colcon_meta'] -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'colcon_meta' -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extensions ['ros'] -[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'ros' -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extensions ['cmake', 'python'] -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'cmake' -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'python' -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extensions ['python_setup_py'] -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'python_setup_py' -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extensions ['ignore', 'ignore_ament_install'] -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'ignore' -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'ignore_ament_install' -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extensions ['colcon_pkg'] -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'colcon_pkg' -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extensions ['colcon_meta'] -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'colcon_meta' -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extensions ['ros'] -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'ros' -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extensions ['cmake', 'python'] -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'cmake' -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'python' -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extensions ['python_setup_py'] -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'python_setup_py' -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extensions ['ignore', 'ignore_ament_install'] -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'ignore' -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'ignore_ament_install' -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extensions ['colcon_pkg'] -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'colcon_pkg' -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extensions ['colcon_meta'] -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'colcon_meta' -[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extensions ['ros'] -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'ros' -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extensions ['cmake', 'python'] -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'cmake' -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'python' -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extensions ['python_setup_py'] -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'python_setup_py' -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extensions ['ignore', 'ignore_ament_install'] -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'ignore' -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'ignore_ament_install' -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extensions ['colcon_pkg'] -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'colcon_pkg' -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extensions ['colcon_meta'] -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'colcon_meta' -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extensions ['ros'] -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'ros' -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extensions ['cmake', 'python'] -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'cmake' -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'python' -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extensions ['python_setup_py'] -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'python_setup_py' -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extensions ['ignore', 'ignore_ament_install'] -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'ignore' -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'ignore_ament_install' -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extensions ['colcon_pkg'] -[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'colcon_pkg' -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extensions ['colcon_meta'] -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'colcon_meta' -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extensions ['ros'] -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'ros' -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extensions ['cmake', 'python'] -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'cmake' -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'python' -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extensions ['python_setup_py'] -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'python_setup_py' -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extensions ['ignore', 'ignore_ament_install'] -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'ignore' -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'ignore_ament_install' -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extensions ['colcon_pkg'] -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'colcon_pkg' -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extensions ['colcon_meta'] -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'colcon_meta' -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extensions ['ros'] -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'ros' -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extensions ['cmake', 'python'] -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'cmake' -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'python' -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extensions ['python_setup_py'] -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'python_setup_py' -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extensions ['ignore', 'ignore_ament_install'] -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'ignore' -[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'ignore_ament_install' -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extensions ['colcon_pkg'] -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'colcon_pkg' -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extensions ['colcon_meta'] -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'colcon_meta' -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extensions ['ros'] -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'ros' -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extensions ['cmake', 'python'] -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'cmake' -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'python' -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extensions ['python_setup_py'] -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'python_setup_py' -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extensions ['ignore', 'ignore_ament_install'] -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'ignore' -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'ignore_ament_install' -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extensions ['colcon_pkg'] -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'colcon_pkg' -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extensions ['colcon_meta'] -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'colcon_meta' -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extensions ['ros'] -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'ros' -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extensions ['cmake', 'python'] -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'cmake' -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'python' -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extensions ['python_setup_py'] -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'python_setup_py' -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extensions ['ignore', 'ignore_ament_install'] -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'ignore' -[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'ignore_ament_install' -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extensions ['colcon_pkg'] -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'colcon_pkg' -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extensions ['colcon_meta'] -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'colcon_meta' -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extensions ['ros'] -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'ros' -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extensions ['cmake', 'python'] -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'cmake' -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'python' -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extensions ['python_setup_py'] -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'python_setup_py' -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extensions ['ignore', 'ignore_ament_install'] -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'ignore' -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'ignore_ament_install' -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extensions ['colcon_pkg'] -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'colcon_pkg' -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extensions ['colcon_meta'] -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'colcon_meta' -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extensions ['ros'] -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'ros' -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extensions ['cmake', 'python'] -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'cmake' -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'python' -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extensions ['python_setup_py'] -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'python_setup_py' -[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extensions ['ignore', 'ignore_ament_install'] -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'ignore' -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'ignore_ament_install' -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extensions ['colcon_pkg'] -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'colcon_pkg' -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extensions ['colcon_meta'] -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'colcon_meta' -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extensions ['ros'] -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'ros' -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extensions ['cmake', 'python'] -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'cmake' -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'python' -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extensions ['python_setup_py'] -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'python_setup_py' -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extensions ['ignore', 'ignore_ament_install'] -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'ignore' -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'ignore_ament_install' -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extensions ['colcon_pkg'] -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'colcon_pkg' -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extensions ['colcon_meta'] -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'colcon_meta' -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extensions ['ros'] -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'ros' -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extensions ['cmake', 'python'] -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'cmake' -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'python' -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extensions ['python_setup_py'] -[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'python_setup_py' -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extensions ['ignore', 'ignore_ament_install'] -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'ignore' -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'ignore_ament_install' -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extensions ['colcon_pkg'] -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'colcon_pkg' -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extensions ['colcon_meta'] -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'colcon_meta' -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extensions ['ros'] -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'ros' -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extensions ['cmake', 'python'] -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'cmake' -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'python' -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extensions ['python_setup_py'] -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'python_setup_py' -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extensions ['ignore', 'ignore_ament_install'] -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'ignore' -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'ignore_ament_install' -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extensions ['colcon_pkg'] -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'colcon_pkg' -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extensions ['colcon_meta'] -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'colcon_meta' -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extensions ['ros'] -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'ros' -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extensions ['cmake', 'python'] -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'cmake' -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'python' -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extensions ['python_setup_py'] -[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'python_setup_py' -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extensions ['ignore', 'ignore_ament_install'] -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'ignore' -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'ignore_ament_install' -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extensions ['colcon_pkg'] -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'colcon_pkg' -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extensions ['colcon_meta'] -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'colcon_meta' -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extensions ['ros'] -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'ros' -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extensions ['cmake', 'python'] -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'cmake' -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'python' -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extensions ['python_setup_py'] -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'python_setup_py' -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extensions ['ignore', 'ignore_ament_install'] -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'ignore' -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'ignore_ament_install' -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extensions ['colcon_pkg'] -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'colcon_pkg' -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extensions ['colcon_meta'] -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'colcon_meta' -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extensions ['ros'] -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'ros' -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extensions ['cmake', 'python'] -[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'cmake' -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'python' -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extensions ['python_setup_py'] -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'python_setup_py' -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extensions ['ignore', 'ignore_ament_install'] -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'ignore' -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'ignore_ament_install' -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extensions ['colcon_pkg'] -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'colcon_pkg' -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extensions ['colcon_meta'] -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'colcon_meta' -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extensions ['ros'] -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'ros' -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extensions ['cmake', 'python'] -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'cmake' -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'python' -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extensions ['python_setup_py'] -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'python_setup_py' -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extensions ['ignore', 'ignore_ament_install'] -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'ignore' -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'ignore_ament_install' -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extensions ['colcon_pkg'] -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'colcon_pkg' -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extensions ['colcon_meta'] -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'colcon_meta' -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extensions ['ros'] -[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'ros' -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extensions ['cmake', 'python'] -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'cmake' -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'python' -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extensions ['python_setup_py'] -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'python_setup_py' -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extensions ['ignore', 'ignore_ament_install'] -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'ignore' -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'ignore_ament_install' -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extensions ['colcon_pkg'] -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'colcon_pkg' -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extensions ['colcon_meta'] -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'colcon_meta' -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extensions ['ros'] -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'ros' -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extensions ['cmake', 'python'] -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'cmake' -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'python' -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extensions ['python_setup_py'] -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'python_setup_py' -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extensions ['ignore', 'ignore_ament_install'] -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'ignore' -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'ignore_ament_install' -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extensions ['colcon_pkg'] -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'colcon_pkg' -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extensions ['colcon_meta'] -[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'colcon_meta' -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extensions ['ros'] -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'ros' -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extensions ['cmake', 'python'] -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'cmake' -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'python' -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extensions ['python_setup_py'] -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'python_setup_py' -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extensions ['ignore', 'ignore_ament_install'] -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'ignore' -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'ignore_ament_install' -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extensions ['colcon_pkg'] -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'colcon_pkg' -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extensions ['colcon_meta'] -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'colcon_meta' -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extensions ['ros'] -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'ros' -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extensions ['cmake', 'python'] -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'cmake' -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'python' -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extensions ['python_setup_py'] -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'python_setup_py' -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extensions ['ignore', 'ignore_ament_install'] -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'ignore' -[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'ignore_ament_install' -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extensions ['colcon_pkg'] -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'colcon_pkg' -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extensions ['colcon_meta'] -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'colcon_meta' -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extensions ['ros'] -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'ros' -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extensions ['cmake', 'python'] -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'cmake' -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'python' -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extensions ['python_setup_py'] -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'python_setup_py' -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extensions ['ignore', 'ignore_ament_install'] -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'ignore' -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'ignore_ament_install' -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extensions ['colcon_pkg'] -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'colcon_pkg' -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extensions ['colcon_meta'] -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'colcon_meta' -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extensions ['ros'] -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'ros' -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extensions ['cmake', 'python'] -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'cmake' -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'python' -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extensions ['python_setup_py'] -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'python_setup_py' -[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extensions ['ignore', 'ignore_ament_install'] -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'ignore' -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'ignore_ament_install' -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extensions ['colcon_pkg'] -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'colcon_pkg' -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extensions ['colcon_meta'] -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'colcon_meta' -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extensions ['ros'] -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'ros' -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extensions ['cmake', 'python'] -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'cmake' -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'python' -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extensions ['python_setup_py'] -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'python_setup_py' -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extensions ['ignore', 'ignore_ament_install'] -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'ignore' -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'ignore_ament_install' -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extensions ['colcon_pkg'] -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'colcon_pkg' -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extensions ['colcon_meta'] -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'colcon_meta' -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extensions ['ros'] -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'ros' -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extensions ['cmake', 'python'] -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'cmake' -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'python' -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extensions ['python_setup_py'] -[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'python_setup_py' -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extensions ['ignore', 'ignore_ament_install'] -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'ignore' -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'ignore_ament_install' -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extensions ['colcon_pkg'] -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'colcon_pkg' -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extensions ['colcon_meta'] -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'colcon_meta' -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extensions ['ros'] -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'ros' -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extensions ['cmake', 'python'] -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'cmake' -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'python' -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extensions ['python_setup_py'] -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'python_setup_py' -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extensions ['ignore', 'ignore_ament_install'] -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'ignore' -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'ignore_ament_install' -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extensions ['colcon_pkg'] -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'colcon_pkg' -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extensions ['colcon_meta'] -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'colcon_meta' -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extensions ['ros'] -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'ros' -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extensions ['cmake', 'python'] -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'cmake' -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'python' -[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extensions ['python_setup_py'] -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'python_setup_py' -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extensions ['ignore', 'ignore_ament_install'] -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'ignore' -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'ignore_ament_install' -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extensions ['colcon_pkg'] -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'colcon_pkg' -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extensions ['colcon_meta'] -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'colcon_meta' -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extensions ['ros'] -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'ros' -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extensions ['cmake', 'python'] -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'cmake' -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'python' -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extensions ['python_setup_py'] -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'python_setup_py' -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extensions ['ignore', 'ignore_ament_install'] -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'ignore' -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'ignore_ament_install' -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extensions ['colcon_pkg'] -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'colcon_pkg' -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extensions ['colcon_meta'] -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'colcon_meta' -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extensions ['ros'] -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'ros' -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extensions ['cmake', 'python'] -[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'cmake' -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'python' -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extensions ['python_setup_py'] -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'python_setup_py' -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extensions ['ignore', 'ignore_ament_install'] -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'ignore' -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'ignore_ament_install' -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extensions ['colcon_pkg'] -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'colcon_pkg' -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extensions ['colcon_meta'] -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'colcon_meta' -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extensions ['ros'] -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'ros' -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extensions ['cmake', 'python'] -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'cmake' -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'python' -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extensions ['python_setup_py'] -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'python_setup_py' -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extensions ['ignore', 'ignore_ament_install'] -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'ignore' -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'ignore_ament_install' -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extensions ['colcon_pkg'] -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'colcon_pkg' -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extensions ['colcon_meta'] -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'colcon_meta' -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extensions ['ros'] -[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'ros' -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extensions ['cmake', 'python'] -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'cmake' -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'python' -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extensions ['python_setup_py'] -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'python_setup_py' -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extensions ['ignore', 'ignore_ament_install'] -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'ignore' -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'ignore_ament_install' -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extensions ['colcon_pkg'] -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'colcon_pkg' -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extensions ['colcon_meta'] -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'colcon_meta' -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extensions ['ros'] -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'ros' -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extensions ['cmake', 'python'] -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'cmake' -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'python' -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extensions ['python_setup_py'] -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'python_setup_py' -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extensions ['ignore', 'ignore_ament_install'] -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'ignore' -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'ignore_ament_install' -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extensions ['colcon_pkg'] -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'colcon_pkg' -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extensions ['colcon_meta'] -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'colcon_meta' -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extensions ['ros'] -[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'ros' -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extensions ['cmake', 'python'] -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'cmake' -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'python' -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extensions ['python_setup_py'] -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'python_setup_py' -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extensions ['ignore', 'ignore_ament_install'] -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'ignore' -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'ignore_ament_install' -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extensions ['colcon_pkg'] -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'colcon_pkg' -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extensions ['colcon_meta'] -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'colcon_meta' -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extensions ['ros'] -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'ros' -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extensions ['cmake', 'python'] -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'cmake' -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'python' -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extensions ['python_setup_py'] -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'python_setup_py' -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extensions ['ignore', 'ignore_ament_install'] -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'ignore' -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'ignore_ament_install' -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extensions ['colcon_pkg'] -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'colcon_pkg' -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extensions ['colcon_meta'] -[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'colcon_meta' -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extensions ['ros'] -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'ros' -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extensions ['cmake', 'python'] -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'cmake' -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'python' -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extensions ['python_setup_py'] -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'python_setup_py' -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extensions ['ignore', 'ignore_ament_install'] -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'ignore' -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'ignore_ament_install' -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extensions ['colcon_pkg'] -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'colcon_pkg' -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extensions ['colcon_meta'] -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'colcon_meta' -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extensions ['ros'] -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'ros' -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extensions ['cmake', 'python'] -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'cmake' -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'python' -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extensions ['python_setup_py'] -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'python_setup_py' -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extensions ['ignore', 'ignore_ament_install'] -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'ignore' -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'ignore_ament_install' -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extensions ['colcon_pkg'] -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'colcon_pkg' -[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extensions ['colcon_meta'] -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'colcon_meta' -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extensions ['ros'] -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'ros' -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extensions ['cmake', 'python'] -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'cmake' -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'python' -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extensions ['python_setup_py'] -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'python_setup_py' -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extensions ['ignore', 'ignore_ament_install'] -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'ignore' -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'ignore_ament_install' -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extensions ['colcon_pkg'] -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'colcon_pkg' -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extensions ['colcon_meta'] -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'colcon_meta' -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extensions ['ros'] -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'ros' -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extensions ['cmake', 'python'] -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'cmake' -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'python' -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extensions ['python_setup_py'] -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'python_setup_py' -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extensions ['ignore', 'ignore_ament_install'] -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'ignore' -[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'ignore_ament_install' -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extensions ['colcon_pkg'] -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'colcon_pkg' -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extensions ['colcon_meta'] -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'colcon_meta' -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extensions ['ros'] -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'ros' -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extensions ['cmake', 'python'] -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'cmake' -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'python' -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extensions ['python_setup_py'] -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'python_setup_py' -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extensions ['ignore', 'ignore_ament_install'] -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'ignore' -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'ignore_ament_install' -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extensions ['colcon_pkg'] -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'colcon_pkg' -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extensions ['colcon_meta'] -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'colcon_meta' -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extensions ['ros'] -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'ros' -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extensions ['cmake', 'python'] -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'cmake' -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'python' -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extensions ['python_setup_py'] -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'python_setup_py' -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extensions ['ignore', 'ignore_ament_install'] -[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'ignore' -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'ignore_ament_install' -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extensions ['colcon_pkg'] -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'colcon_pkg' -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extensions ['colcon_meta'] -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'colcon_meta' -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extensions ['ros'] -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'ros' -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extensions ['cmake', 'python'] -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'cmake' -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'python' -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extensions ['python_setup_py'] -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'python_setup_py' -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extensions ['ignore', 'ignore_ament_install'] -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'ignore' -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'ignore_ament_install' -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extensions ['colcon_pkg'] -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'colcon_pkg' -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extensions ['colcon_meta'] -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'colcon_meta' -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extensions ['ros'] -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'ros' -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extensions ['cmake', 'python'] -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'cmake' -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'python' -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extensions ['python_setup_py'] -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'python_setup_py' -[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extensions ['ignore', 'ignore_ament_install'] -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'ignore' -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'ignore_ament_install' -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extensions ['colcon_pkg'] -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'colcon_pkg' -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extensions ['colcon_meta'] -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'colcon_meta' -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extensions ['ros'] -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'ros' -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extensions ['cmake', 'python'] -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'cmake' -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'python' -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extensions ['python_setup_py'] -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'python_setup_py' -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extensions ['ignore', 'ignore_ament_install'] -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'ignore' -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'ignore_ament_install' -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extensions ['colcon_pkg'] -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'colcon_pkg' -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extensions ['colcon_meta'] -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'colcon_meta' -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extensions ['ros'] -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'ros' -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extensions ['cmake', 'python'] -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'cmake' -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'python' -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extensions ['python_setup_py'] -[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'python_setup_py' -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extensions ['ignore', 'ignore_ament_install'] -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'ignore' -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'ignore_ament_install' -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extensions ['colcon_pkg'] -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'colcon_pkg' -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extensions ['colcon_meta'] -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'colcon_meta' -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extensions ['ros'] -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'ros' -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extensions ['cmake', 'python'] -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'cmake' -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'python' -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extensions ['python_setup_py'] -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'python_setup_py' -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extensions ['ignore', 'ignore_ament_install'] -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'ignore' -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'ignore_ament_install' -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extensions ['colcon_pkg'] -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'colcon_pkg' -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extensions ['colcon_meta'] -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'colcon_meta' -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extensions ['ros'] -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'ros' -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extensions ['cmake', 'python'] -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'cmake' -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'python' -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extensions ['python_setup_py'] -[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'python_setup_py' -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extensions ['ignore', 'ignore_ament_install'] -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'ignore' -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'ignore_ament_install' -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extensions ['colcon_pkg'] -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'colcon_pkg' -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extensions ['colcon_meta'] -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'colcon_meta' -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extensions ['ros'] -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'ros' -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extensions ['cmake', 'python'] -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'cmake' -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'python' -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extensions ['python_setup_py'] -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'python_setup_py' -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extensions ['ignore', 'ignore_ament_install'] -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'ignore' -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'ignore_ament_install' -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extensions ['colcon_pkg'] -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'colcon_pkg' -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extensions ['colcon_meta'] -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'colcon_meta' -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extensions ['ros'] -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'ros' -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extensions ['cmake', 'python'] -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'cmake' -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'python' -[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extensions ['python_setup_py'] -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'python_setup_py' -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extensions ['ignore', 'ignore_ament_install'] -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'ignore' -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'ignore_ament_install' -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extensions ['colcon_pkg'] -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'colcon_pkg' -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extensions ['colcon_meta'] -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'colcon_meta' -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extensions ['ros'] -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'ros' -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extensions ['cmake', 'python'] -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'cmake' -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'python' -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extensions ['python_setup_py'] -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'python_setup_py' -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extensions ['ignore', 'ignore_ament_install'] -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'ignore' -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'ignore_ament_install' -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extensions ['colcon_pkg'] -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'colcon_pkg' -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extensions ['colcon_meta'] -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'colcon_meta' -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extensions ['ros'] -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'ros' -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extensions ['cmake', 'python'] -[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'cmake' -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'python' -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extensions ['python_setup_py'] -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'python_setup_py' -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extensions ['ignore', 'ignore_ament_install'] -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'ignore' -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'ignore_ament_install' -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extensions ['colcon_pkg'] -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'colcon_pkg' -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extensions ['colcon_meta'] -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'colcon_meta' -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extensions ['ros'] -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'ros' -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extensions ['cmake', 'python'] -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'cmake' -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'python' -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extensions ['python_setup_py'] -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'python_setup_py' -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extensions ['ignore', 'ignore_ament_install'] -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'ignore' -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'ignore_ament_install' -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extensions ['colcon_pkg'] -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'colcon_pkg' -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extensions ['colcon_meta'] -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'colcon_meta' -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extensions ['ros'] -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'ros' -[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extensions ['cmake', 'python'] -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'cmake' -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'python' -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extensions ['python_setup_py'] -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'python_setup_py' -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extensions ['ignore', 'ignore_ament_install'] -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'ignore' -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'ignore_ament_install' -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extensions ['colcon_pkg'] -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'colcon_pkg' -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extensions ['colcon_meta'] -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'colcon_meta' -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extensions ['ros'] -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'ros' -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extensions ['cmake', 'python'] -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'cmake' -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'python' -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extensions ['python_setup_py'] -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'python_setup_py' -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extensions ['ignore', 'ignore_ament_install'] -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'ignore' -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'ignore_ament_install' -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extensions ['colcon_pkg'] -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'colcon_pkg' -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extensions ['colcon_meta'] -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'colcon_meta' -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extensions ['ros'] -[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'ros' -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extensions ['cmake', 'python'] -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'cmake' -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'python' -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extensions ['python_setup_py'] -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'python_setup_py' -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extensions ['ignore', 'ignore_ament_install'] -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'ignore' -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'ignore_ament_install' -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extensions ['colcon_pkg'] -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'colcon_pkg' -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extensions ['colcon_meta'] -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'colcon_meta' -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extensions ['ros'] -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'ros' -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extensions ['cmake', 'python'] -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'cmake' -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'python' -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extensions ['python_setup_py'] -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'python_setup_py' -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extensions ['ignore', 'ignore_ament_install'] -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'ignore' -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'ignore_ament_install' -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extensions ['colcon_pkg'] -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'colcon_pkg' -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extensions ['colcon_meta'] -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'colcon_meta' -[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extensions ['ros'] -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'ros' -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extensions ['cmake', 'python'] -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'cmake' -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'python' -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extensions ['python_setup_py'] -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'python_setup_py' -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extensions ['ignore', 'ignore_ament_install'] -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'ignore' -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'ignore_ament_install' -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extensions ['colcon_pkg'] -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'colcon_pkg' -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extensions ['colcon_meta'] -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'colcon_meta' -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extensions ['ros'] -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'ros' -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extensions ['cmake', 'python'] -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'cmake' -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'python' -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extensions ['python_setup_py'] -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'python_setup_py' -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extensions ['ignore', 'ignore_ament_install'] -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'ignore' -[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'ignore_ament_install' -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extensions ['colcon_pkg'] -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'colcon_pkg' -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extensions ['colcon_meta'] -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'colcon_meta' -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extensions ['ros'] -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'ros' -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extensions ['cmake', 'python'] -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'cmake' -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'python' -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extensions ['python_setup_py'] -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'python_setup_py' -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extensions ['ignore', 'ignore_ament_install'] -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'ignore' -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'ignore_ament_install' -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extensions ['colcon_pkg'] -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'colcon_pkg' -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extensions ['colcon_meta'] -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'colcon_meta' -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extensions ['ros'] -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'ros' -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extensions ['cmake', 'python'] -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'cmake' -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'python' -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extensions ['python_setup_py'] -[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'python_setup_py' -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extensions ['ignore', 'ignore_ament_install'] -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'ignore' -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'ignore_ament_install' -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extensions ['colcon_pkg'] -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'colcon_pkg' -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extensions ['colcon_meta'] -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'colcon_meta' -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extensions ['ros'] -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'ros' -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extensions ['cmake', 'python'] -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'cmake' -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'python' -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extensions ['python_setup_py'] -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'python_setup_py' -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extensions ['ignore', 'ignore_ament_install'] -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'ignore' -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'ignore_ament_install' -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extensions ['colcon_pkg'] -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'colcon_pkg' -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extensions ['colcon_meta'] -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'colcon_meta' -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extensions ['ros'] -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'ros' -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extensions ['cmake', 'python'] -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'cmake' -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'python' -[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extensions ['python_setup_py'] -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'python_setup_py' -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extensions ['ignore', 'ignore_ament_install'] -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'ignore' -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'ignore_ament_install' -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extensions ['colcon_pkg'] -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'colcon_pkg' -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extensions ['colcon_meta'] -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'colcon_meta' -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extensions ['ros'] -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'ros' -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extensions ['cmake', 'python'] -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'cmake' -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'python' -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extensions ['python_setup_py'] -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'python_setup_py' -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extensions ['ignore', 'ignore_ament_install'] -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'ignore' -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'ignore_ament_install' -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extensions ['colcon_pkg'] -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'colcon_pkg' -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extensions ['colcon_meta'] -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'colcon_meta' -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extensions ['ros'] -[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'ros' -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extensions ['cmake', 'python'] -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'cmake' -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'python' -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extensions ['python_setup_py'] -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'python_setup_py' -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extensions ['ignore', 'ignore_ament_install'] -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'ignore' -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'ignore_ament_install' -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extensions ['colcon_pkg'] -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'colcon_pkg' -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extensions ['colcon_meta'] -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'colcon_meta' -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extensions ['ros'] -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'ros' -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extensions ['cmake', 'python'] -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'cmake' -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'python' -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extensions ['python_setup_py'] -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'python_setup_py' -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extensions ['ignore', 'ignore_ament_install'] -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'ignore' -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'ignore_ament_install' -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extensions ['colcon_pkg'] -[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'colcon_pkg' -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extensions ['colcon_meta'] -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'colcon_meta' -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extensions ['ros'] -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'ros' -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extensions ['cmake', 'python'] -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'cmake' -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'python' -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extensions ['python_setup_py'] -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'python_setup_py' -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extensions ['ignore', 'ignore_ament_install'] -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'ignore' -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'ignore_ament_install' -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extensions ['colcon_pkg'] -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'colcon_pkg' -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extensions ['colcon_meta'] -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'colcon_meta' -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extensions ['ros'] -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'ros' -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extensions ['cmake', 'python'] -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'cmake' -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'python' -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extensions ['python_setup_py'] -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'python_setup_py' -[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extensions ['ignore', 'ignore_ament_install'] -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'ignore' -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'ignore_ament_install' -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extensions ['colcon_pkg'] -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'colcon_pkg' -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extensions ['colcon_meta'] -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'colcon_meta' -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extensions ['ros'] -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'ros' -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extensions ['cmake', 'python'] -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'cmake' -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'python' -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extensions ['python_setup_py'] -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'python_setup_py' -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extensions ['ignore', 'ignore_ament_install'] -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'ignore' -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'ignore_ament_install' -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extensions ['colcon_pkg'] -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'colcon_pkg' -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extensions ['colcon_meta'] -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'colcon_meta' -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extensions ['ros'] -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'ros' -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extensions ['cmake', 'python'] -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'cmake' -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'python' -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extensions ['python_setup_py'] -[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'python_setup_py' -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extensions ['ignore', 'ignore_ament_install'] -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'ignore' -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'ignore_ament_install' -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extensions ['colcon_pkg'] -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'colcon_pkg' -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extensions ['colcon_meta'] -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'colcon_meta' -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extensions ['ros'] -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'ros' -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extensions ['cmake', 'python'] -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'cmake' -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'python' -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extensions ['python_setup_py'] -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'python_setup_py' -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extensions ['ignore', 'ignore_ament_install'] -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'ignore' -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'ignore_ament_install' -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extensions ['colcon_pkg'] -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'colcon_pkg' -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extensions ['colcon_meta'] -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'colcon_meta' -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extensions ['ros'] -[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'ros' -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extensions ['cmake', 'python'] -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'cmake' -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'python' -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extensions ['python_setup_py'] -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'python_setup_py' -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extensions ['ignore', 'ignore_ament_install'] -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'ignore' -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'ignore_ament_install' -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extensions ['colcon_pkg'] -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'colcon_pkg' -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extensions ['colcon_meta'] -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'colcon_meta' -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extensions ['ros'] -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'ros' -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extensions ['cmake', 'python'] -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'cmake' -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'python' -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extensions ['python_setup_py'] -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'python_setup_py' -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extensions ['ignore', 'ignore_ament_install'] -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'ignore' -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'ignore_ament_install' -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extensions ['colcon_pkg'] -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'colcon_pkg' -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extensions ['colcon_meta'] -[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'colcon_meta' -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extensions ['ros'] -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'ros' -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extensions ['cmake', 'python'] -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'cmake' -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'python' -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extensions ['python_setup_py'] -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'python_setup_py' -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extensions ['ignore', 'ignore_ament_install'] -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'ignore' -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'ignore_ament_install' -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extensions ['colcon_pkg'] -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'colcon_pkg' -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extensions ['colcon_meta'] -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'colcon_meta' -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extensions ['ros'] -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'ros' -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extensions ['cmake', 'python'] -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'cmake' -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'python' -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extensions ['python_setup_py'] -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'python_setup_py' -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extensions ['ignore', 'ignore_ament_install'] -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'ignore' -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'ignore_ament_install' -[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extensions ['colcon_pkg'] -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'colcon_pkg' -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extensions ['colcon_meta'] -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'colcon_meta' -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extensions ['ros'] -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'ros' -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extensions ['cmake', 'python'] -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'cmake' -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'python' -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extensions ['python_setup_py'] -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'python_setup_py' -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extensions ['ignore', 'ignore_ament_install'] -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'ignore' -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'ignore_ament_install' -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extensions ['colcon_pkg'] -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'colcon_pkg' -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extensions ['colcon_meta'] -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'colcon_meta' -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extensions ['ros'] -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'ros' -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extensions ['cmake', 'python'] -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'cmake' -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'python' -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extensions ['python_setup_py'] -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'python_setup_py' -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extensions ['ignore', 'ignore_ament_install'] -[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'ignore' -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'ignore_ament_install' -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extensions ['colcon_pkg'] -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'colcon_pkg' -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extensions ['colcon_meta'] -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'colcon_meta' -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extensions ['ros'] -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'ros' -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extensions ['cmake', 'python'] -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'cmake' -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'python' -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extensions ['python_setup_py'] -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'python_setup_py' -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extensions ['ignore', 'ignore_ament_install'] -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'ignore' -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'ignore_ament_install' -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extensions ['colcon_pkg'] -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'colcon_pkg' -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extensions ['colcon_meta'] -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'colcon_meta' -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extensions ['ros'] -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'ros' -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extensions ['cmake', 'python'] -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'cmake' -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'python' -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extensions ['python_setup_py'] -[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'python_setup_py' -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extensions ['ignore', 'ignore_ament_install'] -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'ignore' -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'ignore_ament_install' -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extensions ['colcon_pkg'] -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'colcon_pkg' -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extensions ['colcon_meta'] -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'colcon_meta' -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extensions ['ros'] -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'ros' -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extensions ['cmake', 'python'] -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'cmake' -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'python' -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extensions ['python_setup_py'] -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'python_setup_py' -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extensions ['ignore', 'ignore_ament_install'] -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'ignore' -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'ignore_ament_install' -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extensions ['colcon_pkg'] -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'colcon_pkg' -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extensions ['colcon_meta'] -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'colcon_meta' -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extensions ['ros'] -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'ros' -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extensions ['cmake', 'python'] -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'cmake' -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'python' -[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extensions ['python_setup_py'] -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'python_setup_py' -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extensions ['ignore', 'ignore_ament_install'] -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'ignore' -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'ignore_ament_install' -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extensions ['colcon_pkg'] -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'colcon_pkg' -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extensions ['colcon_meta'] -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'colcon_meta' -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extensions ['ros'] -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'ros' -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extensions ['cmake', 'python'] -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'cmake' -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'python' -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extensions ['python_setup_py'] -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'python_setup_py' -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extensions ['ignore', 'ignore_ament_install'] -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'ignore' -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'ignore_ament_install' -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extensions ['colcon_pkg'] -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'colcon_pkg' -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extensions ['colcon_meta'] -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'colcon_meta' -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extensions ['ros'] -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'ros' -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extensions ['cmake', 'python'] -[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'cmake' -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'python' -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extensions ['python_setup_py'] -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'python_setup_py' -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extensions ['ignore', 'ignore_ament_install'] -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'ignore' -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'ignore_ament_install' -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extensions ['colcon_pkg'] -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'colcon_pkg' -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extensions ['colcon_meta'] -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'colcon_meta' -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extensions ['ros'] -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'ros' -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extensions ['cmake', 'python'] -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'cmake' -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'python' -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extensions ['python_setup_py'] -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'python_setup_py' -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extensions ['ignore', 'ignore_ament_install'] -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'ignore' -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'ignore_ament_install' -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extensions ['colcon_pkg'] -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'colcon_pkg' -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extensions ['colcon_meta'] -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'colcon_meta' -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extensions ['ros'] -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'ros' -[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extensions ['cmake', 'python'] -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'cmake' -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'python' -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extensions ['python_setup_py'] -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'python_setup_py' -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extensions ['ignore', 'ignore_ament_install'] -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'ignore' -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'ignore_ament_install' -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extensions ['colcon_pkg'] -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'colcon_pkg' -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extensions ['colcon_meta'] -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'colcon_meta' -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extensions ['ros'] -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'ros' -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extensions ['cmake', 'python'] -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'cmake' -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'python' -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extensions ['python_setup_py'] -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'python_setup_py' -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extensions ['ignore', 'ignore_ament_install'] -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'ignore' -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'ignore_ament_install' -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extensions ['colcon_pkg'] -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'colcon_pkg' -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extensions ['colcon_meta'] -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'colcon_meta' -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extensions ['ros'] -[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'ros' -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extensions ['cmake', 'python'] -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'cmake' -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'python' -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extensions ['python_setup_py'] -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'python_setup_py' -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extensions ['ignore', 'ignore_ament_install'] -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'ignore' -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'ignore_ament_install' -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extensions ['colcon_pkg'] -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'colcon_pkg' -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extensions ['colcon_meta'] -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'colcon_meta' -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extensions ['ros'] -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'ros' -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extensions ['cmake', 'python'] -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'cmake' -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'python' -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extensions ['python_setup_py'] -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'python_setup_py' -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extensions ['ignore', 'ignore_ament_install'] -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'ignore' -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'ignore_ament_install' -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extensions ['colcon_pkg'] -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'colcon_pkg' -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extensions ['colcon_meta'] -[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'colcon_meta' -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extensions ['ros'] -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'ros' -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extensions ['cmake', 'python'] -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'cmake' -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'python' -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extensions ['python_setup_py'] -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'python_setup_py' -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extensions ['ignore', 'ignore_ament_install'] -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'ignore' -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'ignore_ament_install' -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extensions ['colcon_pkg'] -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'colcon_pkg' -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extensions ['colcon_meta'] -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'colcon_meta' -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extensions ['ros'] -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'ros' -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extensions ['cmake', 'python'] -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'cmake' -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'python' -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extensions ['python_setup_py'] -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'python_setup_py' -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extensions ['ignore', 'ignore_ament_install'] -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'ignore' -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'ignore_ament_install' -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extensions ['colcon_pkg'] -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'colcon_pkg' -[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extensions ['colcon_meta'] -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'colcon_meta' -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extensions ['ros'] -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'ros' -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extensions ['cmake', 'python'] -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'cmake' -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'python' -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extensions ['python_setup_py'] -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'python_setup_py' -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extensions ['ignore', 'ignore_ament_install'] -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'ignore' -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'ignore_ament_install' -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extensions ['colcon_pkg'] -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'colcon_pkg' -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extensions ['colcon_meta'] -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'colcon_meta' -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extensions ['ros'] -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'ros' -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extensions ['cmake', 'python'] -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'cmake' -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'python' -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extensions ['python_setup_py'] -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'python_setup_py' -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extensions ['ignore', 'ignore_ament_install'] -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'ignore' -[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'ignore_ament_install' -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extensions ['colcon_pkg'] -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'colcon_pkg' -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extensions ['colcon_meta'] -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'colcon_meta' -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extensions ['ros'] -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'ros' -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extensions ['cmake', 'python'] -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'cmake' -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'python' -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extensions ['python_setup_py'] -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'python_setup_py' -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extensions ['ignore', 'ignore_ament_install'] -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'ignore' -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'ignore_ament_install' -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extensions ['colcon_pkg'] -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'colcon_pkg' -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extensions ['colcon_meta'] -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'colcon_meta' -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extensions ['ros'] -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'ros' -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extensions ['cmake', 'python'] -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'cmake' -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'python' -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extensions ['python_setup_py'] -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'python_setup_py' -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extensions ['ignore', 'ignore_ament_install'] -[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'ignore' -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'ignore_ament_install' -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extensions ['colcon_pkg'] -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'colcon_pkg' -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extensions ['colcon_meta'] -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'colcon_meta' -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extensions ['ros'] -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'ros' -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extensions ['cmake', 'python'] -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'cmake' -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'python' -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extensions ['python_setup_py'] -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'python_setup_py' -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extensions ['ignore', 'ignore_ament_install'] -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'ignore' -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'ignore_ament_install' -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extensions ['colcon_pkg'] -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'colcon_pkg' -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extensions ['colcon_meta'] -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'colcon_meta' -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extensions ['ros'] -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'ros' -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extensions ['cmake', 'python'] -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'cmake' -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'python' -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extensions ['python_setup_py'] -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'python_setup_py' -[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extensions ['ignore', 'ignore_ament_install'] -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'ignore' -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'ignore_ament_install' -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extensions ['colcon_pkg'] -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'colcon_pkg' -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extensions ['colcon_meta'] -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'colcon_meta' -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extensions ['ros'] -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'ros' -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extensions ['cmake', 'python'] -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'cmake' -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'python' -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extensions ['python_setup_py'] -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'python_setup_py' -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extensions ['ignore', 'ignore_ament_install'] -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'ignore' -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'ignore_ament_install' -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extensions ['colcon_pkg'] -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'colcon_pkg' -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extensions ['colcon_meta'] -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'colcon_meta' -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extensions ['ros'] -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'ros' -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extensions ['cmake', 'python'] -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'cmake' -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'python' -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extensions ['python_setup_py'] -[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'python_setup_py' -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extensions ['ignore', 'ignore_ament_install'] -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'ignore' -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'ignore_ament_install' -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extensions ['colcon_pkg'] -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'colcon_pkg' -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extensions ['colcon_meta'] -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'colcon_meta' -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extensions ['ros'] -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'ros' -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extensions ['cmake', 'python'] -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'cmake' -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'python' -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extensions ['python_setup_py'] -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'python_setup_py' -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extensions ['ignore', 'ignore_ament_install'] -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'ignore' -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'ignore_ament_install' -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extensions ['colcon_pkg'] -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'colcon_pkg' -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extensions ['colcon_meta'] -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'colcon_meta' -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extensions ['ros'] -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'ros' -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extensions ['cmake', 'python'] -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'cmake' -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'python' -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extensions ['python_setup_py'] -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'python_setup_py' -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extensions ['ignore', 'ignore_ament_install'] -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'ignore' -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'ignore_ament_install' -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extensions ['colcon_pkg'] -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'colcon_pkg' -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extensions ['colcon_meta'] -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'colcon_meta' -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extensions ['ros'] -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'ros' -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extensions ['cmake', 'python'] -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'cmake' -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'python' -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extensions ['python_setup_py'] -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'python_setup_py' -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extensions ['ignore', 'ignore_ament_install'] -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'ignore' -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'ignore_ament_install' -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extensions ['colcon_pkg'] -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'colcon_pkg' -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extensions ['colcon_meta'] -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'colcon_meta' -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extensions ['ros'] -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'ros' -[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extensions ['cmake', 'python'] -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'cmake' -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'python' -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extensions ['python_setup_py'] -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'python_setup_py' -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extensions ['ignore', 'ignore_ament_install'] -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'ignore' -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'ignore_ament_install' -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extensions ['colcon_pkg'] -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'colcon_pkg' -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extensions ['colcon_meta'] -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'colcon_meta' -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extensions ['ros'] -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'ros' -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extensions ['cmake', 'python'] -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'cmake' -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'python' -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extensions ['python_setup_py'] -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'python_setup_py' -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extensions ['ignore', 'ignore_ament_install'] -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'ignore' -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'ignore_ament_install' -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extensions ['colcon_pkg'] -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'colcon_pkg' -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extensions ['colcon_meta'] -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'colcon_meta' -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extensions ['ros'] -[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'ros' -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extensions ['cmake', 'python'] -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'cmake' -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'python' -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extensions ['python_setup_py'] -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'python_setup_py' -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extensions ['ignore', 'ignore_ament_install'] -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'ignore' -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'ignore_ament_install' -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extensions ['colcon_pkg'] -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'colcon_pkg' -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extensions ['colcon_meta'] -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'colcon_meta' -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extensions ['ros'] -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'ros' -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extensions ['cmake', 'python'] -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'cmake' -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'python' -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extensions ['python_setup_py'] -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'python_setup_py' -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extensions ['ignore', 'ignore_ament_install'] -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'ignore' -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'ignore_ament_install' -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extensions ['colcon_pkg'] -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'colcon_pkg' -[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extensions ['colcon_meta'] -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'colcon_meta' -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extensions ['ros'] -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'ros' -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extensions ['cmake', 'python'] -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'cmake' -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'python' -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extensions ['python_setup_py'] -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'python_setup_py' -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extensions ['ignore', 'ignore_ament_install'] -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'ignore' -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'ignore_ament_install' -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extensions ['colcon_pkg'] -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'colcon_pkg' -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extensions ['colcon_meta'] -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'colcon_meta' -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extensions ['ros'] -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'ros' -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extensions ['cmake', 'python'] -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'cmake' -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'python' -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extensions ['python_setup_py'] -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'python_setup_py' -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extensions ['ignore', 'ignore_ament_install'] -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'ignore' -[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'ignore_ament_install' -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extensions ['colcon_pkg'] -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'colcon_pkg' -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extensions ['colcon_meta'] -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'colcon_meta' -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extensions ['ros'] -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'ros' -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extensions ['cmake', 'python'] -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'cmake' -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'python' -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extensions ['python_setup_py'] -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'python_setup_py' -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extensions ['ignore', 'ignore_ament_install'] -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'ignore' -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'ignore_ament_install' -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extensions ['colcon_pkg'] -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'colcon_pkg' -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extensions ['colcon_meta'] -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'colcon_meta' -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extensions ['ros'] -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'ros' -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extensions ['cmake', 'python'] -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'cmake' -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'python' -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extensions ['python_setup_py'] -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'python_setup_py' -[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extensions ['ignore', 'ignore_ament_install'] -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'ignore' -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'ignore_ament_install' -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extensions ['colcon_pkg'] -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'colcon_pkg' -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extensions ['colcon_meta'] -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'colcon_meta' -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extensions ['ros'] -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'ros' -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extensions ['cmake', 'python'] -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'cmake' -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'python' -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extensions ['python_setup_py'] -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'python_setup_py' -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extensions ['ignore', 'ignore_ament_install'] -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'ignore' -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'ignore_ament_install' -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extensions ['colcon_pkg'] -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'colcon_pkg' -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extensions ['colcon_meta'] -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'colcon_meta' -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extensions ['ros'] -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'ros' -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extensions ['cmake', 'python'] -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'cmake' -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'python' -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extensions ['python_setup_py'] -[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'python_setup_py' -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extensions ['ignore', 'ignore_ament_install'] -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'ignore' -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'ignore_ament_install' -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extensions ['colcon_pkg'] -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'colcon_pkg' -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extensions ['colcon_meta'] -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'colcon_meta' -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extensions ['ros'] -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'ros' -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extensions ['cmake', 'python'] -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'cmake' -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'python' -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extensions ['python_setup_py'] -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'python_setup_py' -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extensions ['ignore', 'ignore_ament_install'] -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'ignore' -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'ignore_ament_install' -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extensions ['colcon_pkg'] -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'colcon_pkg' -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extensions ['colcon_meta'] -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'colcon_meta' -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extensions ['ros'] -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'ros' -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extensions ['cmake', 'python'] -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'cmake' -[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'python' -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extensions ['python_setup_py'] -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'python_setup_py' -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extensions ['ignore', 'ignore_ament_install'] -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'ignore' -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'ignore_ament_install' -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extensions ['colcon_pkg'] -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'colcon_pkg' -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extensions ['colcon_meta'] -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'colcon_meta' -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extensions ['ros'] -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'ros' -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extensions ['cmake', 'python'] -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'cmake' -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'python' -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extensions ['python_setup_py'] -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'python_setup_py' -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extensions ['ignore', 'ignore_ament_install'] -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'ignore' -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'ignore_ament_install' -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extensions ['colcon_pkg'] -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'colcon_pkg' -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extensions ['colcon_meta'] -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'colcon_meta' -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extensions ['ros'] -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'ros' -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extensions ['cmake', 'python'] -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'cmake' -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'python' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extensions ['python_setup_py'] -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'python_setup_py' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extensions ['ignore', 'ignore_ament_install'] -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'ignore' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'ignore_ament_install' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extensions ['colcon_pkg'] -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'colcon_pkg' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extensions ['colcon_meta'] -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'colcon_meta' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extensions ['ros'] -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'ros' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extensions ['cmake', 'python'] -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'cmake' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'python' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extensions ['python_setup_py'] -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'python_setup_py' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extensions ['ignore', 'ignore_ament_install'] -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'ignore' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'ignore_ament_install' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extensions ['colcon_pkg'] -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'colcon_pkg' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extensions ['colcon_meta'] -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'colcon_meta' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extensions ['ros'] -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'ros' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extensions ['cmake', 'python'] -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'cmake' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'python' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extensions ['python_setup_py'] -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'python_setup_py' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extensions ['ignore', 'ignore_ament_install'] -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'ignore' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'ignore_ament_install' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extensions ['colcon_pkg'] -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'colcon_pkg' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extensions ['colcon_meta'] -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'colcon_meta' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extensions ['ros'] -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'ros' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extensions ['cmake', 'python'] -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'cmake' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'python' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extensions ['python_setup_py'] -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'python_setup_py' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extensions ['ignore', 'ignore_ament_install'] -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'ignore' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'ignore_ament_install' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extensions ['colcon_pkg'] -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'colcon_pkg' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extensions ['colcon_meta'] -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'colcon_meta' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extensions ['ros'] -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'ros' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extensions ['cmake', 'python'] -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'cmake' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'python' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extensions ['python_setup_py'] -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'python_setup_py' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extensions ['ignore', 'ignore_ament_install'] -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'ignore' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'ignore_ament_install' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extensions ['colcon_pkg'] -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'colcon_pkg' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extensions ['colcon_meta'] -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'colcon_meta' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extensions ['ros'] -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'ros' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extensions ['cmake', 'python'] -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'cmake' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'python' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extensions ['python_setup_py'] -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'python_setup_py' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extensions ['ignore', 'ignore_ament_install'] -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'ignore' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'ignore_ament_install' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extensions ['colcon_pkg'] -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'colcon_pkg' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extensions ['colcon_meta'] -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'colcon_meta' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extensions ['ros'] -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'ros' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extensions ['cmake', 'python'] -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'cmake' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'python' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extensions ['python_setup_py'] -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'python_setup_py' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extensions ['ignore', 'ignore_ament_install'] -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'ignore' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'ignore_ament_install' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extensions ['colcon_pkg'] -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'colcon_pkg' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extensions ['colcon_meta'] -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'colcon_meta' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extensions ['ros'] -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'ros' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extensions ['cmake', 'python'] -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'cmake' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'python' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extensions ['python_setup_py'] -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'python_setup_py' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extensions ['ignore', 'ignore_ament_install'] -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'ignore' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'ignore_ament_install' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extensions ['colcon_pkg'] -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'colcon_pkg' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extensions ['colcon_meta'] -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'colcon_meta' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extensions ['ros'] -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'ros' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extensions ['cmake', 'python'] -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'cmake' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'python' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extensions ['python_setup_py'] -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'python_setup_py' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extensions ['ignore', 'ignore_ament_install'] -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'ignore' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'ignore_ament_install' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extensions ['colcon_pkg'] -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'colcon_pkg' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extensions ['colcon_meta'] -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'colcon_meta' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extensions ['ros'] -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'ros' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extensions ['cmake', 'python'] -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'cmake' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'python' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extensions ['python_setup_py'] -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'python_setup_py' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extensions ['ignore', 'ignore_ament_install'] -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'ignore' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'ignore_ament_install' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extensions ['colcon_pkg'] -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'colcon_pkg' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extensions ['colcon_meta'] -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'colcon_meta' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extensions ['ros'] -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'ros' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extensions ['cmake', 'python'] -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'cmake' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'python' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extensions ['python_setup_py'] -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'python_setup_py' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extensions ['ignore', 'ignore_ament_install'] -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'ignore' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'ignore_ament_install' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extensions ['colcon_pkg'] -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'colcon_pkg' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extensions ['colcon_meta'] -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'colcon_meta' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extensions ['ros'] -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'ros' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extensions ['cmake', 'python'] -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'cmake' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'python' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extensions ['python_setup_py'] -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'python_setup_py' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extensions ['ignore', 'ignore_ament_install'] -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'ignore' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'ignore_ament_install' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extensions ['colcon_pkg'] -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'colcon_pkg' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extensions ['colcon_meta'] -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'colcon_meta' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extensions ['ros'] -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'ros' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extensions ['cmake', 'python'] -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'cmake' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'python' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extensions ['python_setup_py'] -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'python_setup_py' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extensions ['ignore', 'ignore_ament_install'] -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'ignore' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'ignore_ament_install' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extensions ['colcon_pkg'] -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'colcon_pkg' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extensions ['colcon_meta'] -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'colcon_meta' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extensions ['ros'] -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'ros' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extensions ['cmake', 'python'] -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'cmake' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'python' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extensions ['python_setup_py'] -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'python_setup_py' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extensions ['ignore', 'ignore_ament_install'] -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'ignore' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'ignore_ament_install' -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extensions ['colcon_pkg'] -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'colcon_pkg' -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extensions ['colcon_meta'] -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'colcon_meta' -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extensions ['ros'] -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'ros' -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extensions ['cmake', 'python'] -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'cmake' -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'python' -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extensions ['python_setup_py'] -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'python_setup_py' -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extensions ['ignore', 'ignore_ament_install'] -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'ignore' -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'ignore_ament_install' -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extensions ['colcon_pkg'] -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'colcon_pkg' -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extensions ['colcon_meta'] -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'colcon_meta' -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extensions ['ros'] -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'ros' -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extensions ['cmake', 'python'] -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'cmake' -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'python' -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extensions ['python_setup_py'] -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'python_setup_py' -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extensions ['ignore', 'ignore_ament_install'] -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'ignore' -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'ignore_ament_install' -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extensions ['colcon_pkg'] -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'colcon_pkg' -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extensions ['colcon_meta'] -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'colcon_meta' -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extensions ['ros'] -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'ros' -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extensions ['cmake', 'python'] -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'cmake' -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'python' -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extensions ['python_setup_py'] -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'python_setup_py' -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extensions ['ignore', 'ignore_ament_install'] -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'ignore' -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'ignore_ament_install' -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extensions ['colcon_pkg'] -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'colcon_pkg' -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extensions ['colcon_meta'] -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'colcon_meta' -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extensions ['ros'] -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'ros' -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extensions ['cmake', 'python'] -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'cmake' -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'python' -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extensions ['python_setup_py'] -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'python_setup_py' -[0.495s] DEBUG:colcon.colcon_core.package_identification:Package 'simulation/dronekit-python' with type 'python' and name 'dronekit' -[0.495s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extensions ['ignore', 'ignore_ament_install'] -[0.495s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'ignore' -[0.495s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'ignore_ament_install' -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extensions ['colcon_pkg'] -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'colcon_pkg' -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extensions ['colcon_meta'] -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'colcon_meta' -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extensions ['ros'] -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'ros' -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extensions ['cmake', 'python'] -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'cmake' -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'python' -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extensions ['python_setup_py'] -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'python_setup_py' -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extensions ['ignore', 'ignore_ament_install'] -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'ignore' -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'ignore_ament_install' -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extensions ['colcon_pkg'] -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'colcon_pkg' -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extensions ['colcon_meta'] -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'colcon_meta' -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extensions ['ros'] -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'ros' -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extensions ['cmake', 'python'] -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'cmake' -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'python' -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extensions ['python_setup_py'] -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'python_setup_py' -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extensions ['ignore', 'ignore_ament_install'] -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'ignore' -[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'ignore_ament_install' -[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extensions ['colcon_pkg'] -[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'colcon_pkg' -[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extensions ['colcon_meta'] -[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'colcon_meta' -[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extensions ['ros'] -[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'ros' -[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extensions ['cmake', 'python'] -[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'cmake' -[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'python' -[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extensions ['python_setup_py'] -[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'python_setup_py' -[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extensions ['ignore', 'ignore_ament_install'] -[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'ignore' -[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'ignore_ament_install' -[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extensions ['colcon_pkg'] -[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'colcon_pkg' -[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extensions ['colcon_meta'] -[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'colcon_meta' -[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extensions ['ros'] -[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'ros' -[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extensions ['cmake', 'python'] -[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'cmake' -[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'python' -[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extensions ['python_setup_py'] -[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'python_setup_py' -[0.497s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) using defaults -[0.497s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) discover -[0.497s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) using defaults -[0.497s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) discover -[0.497s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) using defaults -[0.520s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'controls_bringup' in 'ros_ws/src/robot/autonomy/controls/controls_bringup' -[0.520s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'dronekit' in 'simulation/dronekit-python' -[0.520s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mav_msgs' in 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs' -[0.520s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mav_state_machine_msgs' in 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs' -[0.520s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mav_system_msgs' in 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs' -[0.520s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'px4_msgs' in 'ros_ws/src/robot/autonomy/controls/px4_msgs' -[0.520s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'robot_bringup' in 'ros_ws/src/robot/robot_bringup' -[0.520s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'vdb_mapping' in 'ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping' -[0.520s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'vdb_mapping_interfaces' in 'ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces' -[0.520s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mav_planning_msgs' in 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs' -[0.520s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'px4_ros_com' in 'ros_ws/src/robot/autonomy/controls/px4_ros_com' -[0.520s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'robot_interface' in 'ros_ws/src/robot/autonomy/controls/robot_interface' -[0.520s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'vdb_mapping_ros2' in 'ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2' -[0.521s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mav_comm' in 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm' -[0.521s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mavros_interface' in 'ros_ws/src/robot/autonomy/controls/mavros_interface' -[0.521s] Level 1:colcon.colcon_core.package_discovery:discover_packages(prefix_path) check parameters -[0.521s] Level 1:colcon.colcon_core.package_discovery:discover_packages(prefix_path) discover -[0.523s] DEBUG:colcon.colcon_installed_package_information.package_discovery:Found 14 installed packages in /root/AirStack/ros_ws/install -[0.524s] DEBUG:colcon.colcon_installed_package_information.package_discovery:Found 277 installed packages in /opt/ros/humble -[0.525s] Level 1:colcon.colcon_core.package_discovery:discover_packages(prefix_path) using defaults -[0.553s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'cmake_args' from command line to 'None' -[0.553s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'cmake_target' from command line to 'None' -[0.553s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'cmake_target_skip_unavailable' from command line to 'False' -[0.553s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'cmake_clean_cache' from command line to 'False' -[0.553s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'cmake_clean_first' from command line to 'False' -[0.553s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'cmake_force_configure' from command line to 'False' -[0.553s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'ament_cmake_args' from command line to 'None' -[0.553s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'catkin_cmake_args' from command line to 'None' -[0.553s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'catkin_skip_building_tests' from command line to 'False' -[0.554s] DEBUG:colcon.colcon_core.verb:Building package 'disparity_expansion' with the following arguments: {'ament_cmake_args': None, 'build_base': '/root/AirStack/build/disparity_expansion', 'catkin_cmake_args': None, 'catkin_skip_building_tests': False, 'cmake_args': None, 'cmake_clean_cache': False, 'cmake_clean_first': False, 'cmake_force_configure': False, 'cmake_target': None, 'cmake_target_skip_unavailable': False, 'install_base': '/root/AirStack/install/disparity_expansion', 'merge_install': False, 'path': '/root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion', 'symlink_install': False, 'test_result_base': None} -[0.554s] INFO:colcon.colcon_core.executor:Executing jobs using 'parallel' executor -[0.554s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete -[0.554s] INFO:colcon.colcon_cmake.task.cmake.build:Building CMake package in '/root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion' -[0.557s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_core.shell.bat': Not used on non-Windows systems -[0.557s] INFO:colcon.colcon_core.shell:Skip shell extension 'powershell' for command environment: Not usable outside of PowerShell -[0.557s] DEBUG:colcon.colcon_core.shell:Skip shell extension 'dsv' for command environment -[0.567s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoking command in '/root/AirStack/build/disparity_expansion': /usr/bin/cmake --build /root/AirStack/build/disparity_expansion -- -j12 -l12 -[0.976s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoked command in '/root/AirStack/build/disparity_expansion' returned '2': /usr/bin/cmake --build /root/AirStack/build/disparity_expansion -- -j12 -l12 -[0.985s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:closing loop -[0.986s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:loop closed -[0.986s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete finished with '2' -[0.986s] DEBUG:colcon.colcon_core.event_reactor:joining thread -[0.993s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.notify_send': Could not find 'notify-send' -[0.993s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.terminal_notifier': Not used on non-Darwin systems -[0.993s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.win32': Not used on non-Windows systems -[0.993s] INFO:colcon.colcon_notification.desktop_notification:Sending desktop notification using 'notify2' -[0.997s] DEBUG:colcon.colcon_notification.desktop_notification.notify2:Failed to initialize notify2: org.freedesktop.DBus.Error.Spawn.ExecFailed: /usr/bin/dbus-launch terminated abnormally without any error message -[0.997s] DEBUG:colcon.colcon_core.event_reactor:joined thread -[0.998s] INFO:colcon.colcon_core.shell:Creating prefix script '/root/AirStack/install/local_setup.ps1' -[0.999s] INFO:colcon.colcon_core.shell:Creating prefix util module '/root/AirStack/install/_local_setup_util_ps1.py' -[1.001s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/root/AirStack/install/setup.ps1' -[1.004s] INFO:colcon.colcon_core.shell:Creating prefix script '/root/AirStack/install/local_setup.sh' -[1.004s] INFO:colcon.colcon_core.shell:Creating prefix util module '/root/AirStack/install/_local_setup_util_sh.py' -[1.005s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/root/AirStack/install/setup.sh' -[1.007s] INFO:colcon.colcon_core.shell:Creating prefix script '/root/AirStack/install/local_setup.bash' -[1.007s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/root/AirStack/install/setup.bash' -[1.008s] INFO:colcon.colcon_core.shell:Creating prefix script '/root/AirStack/install/local_setup.zsh' -[1.008s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/root/AirStack/install/setup.zsh' diff --git a/log/build_2024-07-31_12-58-12/disparity_expansion/command.log b/log/build_2024-07-31_12-58-12/disparity_expansion/command.log deleted file mode 100644 index 20957526d..000000000 --- a/log/build_2024-07-31_12-58-12/disparity_expansion/command.log +++ /dev/null @@ -1,6 +0,0 @@ -Invoking command in '/root/AirStack/build/disparity_expansion': /usr/bin/cmake /root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion -DCATKIN_INSTALL_INTO_PREFIX_ROOT=0 -DCMAKE_INSTALL_PREFIX=/root/AirStack/install/disparity_expansion -Invoked command in '/root/AirStack/build/disparity_expansion' returned '0': /usr/bin/cmake /root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion -DCATKIN_INSTALL_INTO_PREFIX_ROOT=0 -DCMAKE_INSTALL_PREFIX=/root/AirStack/install/disparity_expansion -Invoking command in '/root/AirStack/build/disparity_expansion': /usr/bin/cmake --build /root/AirStack/build/disparity_expansion -- -j12 -l12 -Invoked command in '/root/AirStack/build/disparity_expansion' returned '0': /usr/bin/cmake --build /root/AirStack/build/disparity_expansion -- -j12 -l12 -Invoking command in '/root/AirStack/build/disparity_expansion': /usr/bin/cmake --install /root/AirStack/build/disparity_expansion -Invoked command in '/root/AirStack/build/disparity_expansion' returned '0': /usr/bin/cmake --install /root/AirStack/build/disparity_expansion diff --git a/log/build_2024-07-31_12-58-12/disparity_expansion/stderr.log b/log/build_2024-07-31_12-58-12/disparity_expansion/stderr.log deleted file mode 100644 index 5b7c74a8d..000000000 --- a/log/build_2024-07-31_12-58-12/disparity_expansion/stderr.log +++ /dev/null @@ -1,18 +0,0 @@ -CMake Warning (dev) at CMakeLists.txt:33 (find_package): - Policy CMP0074 is not set: find_package uses _ROOT variables. - Run "cmake --help-policy CMP0074" for policy details. Use the cmake_policy - command to set the policy and suppress this warning. - - CMake variable PCL_ROOT is set to: - - /usr - - For compatibility, CMake is ignoring the variable. -This warning is for project developers. Use -Wno-dev to suppress it. - -CMake Warning: - Manually-specified variables were not used by the project: - - CATKIN_INSTALL_INTO_PREFIX_ROOT - - diff --git a/log/build_2024-07-31_12-58-12/disparity_expansion/stdout.log b/log/build_2024-07-31_12-58-12/disparity_expansion/stdout.log deleted file mode 100644 index 427208012..000000000 --- a/log/build_2024-07-31_12-58-12/disparity_expansion/stdout.log +++ /dev/null @@ -1,44 +0,0 @@ --- Found ament_cmake: 1.3.9 (/opt/ros/humble/share/ament_cmake/cmake) --- Found rclcpp: 16.0.9 (/opt/ros/humble/share/rclcpp/cmake) --- Found rosidl_generator_c: 3.1.5 (/opt/ros/humble/share/rosidl_generator_c/cmake) --- Found rosidl_adapter: 3.1.5 (/opt/ros/humble/share/rosidl_adapter/cmake) --- Found rosidl_generator_cpp: 3.1.5 (/opt/ros/humble/share/rosidl_generator_cpp/cmake) --- Using all available rosidl_typesupport_c: rosidl_typesupport_fastrtps_c;rosidl_typesupport_introspection_c --- Using all available rosidl_typesupport_cpp: rosidl_typesupport_fastrtps_cpp;rosidl_typesupport_introspection_cpp --- Found rmw_implementation_cmake: 6.1.2 (/opt/ros/humble/share/rmw_implementation_cmake/cmake) --- Found rmw_fastrtps_cpp: 6.2.6 (/opt/ros/humble/share/rmw_fastrtps_cpp/cmake) --- Using RMW implementation 'rmw_fastrtps_cpp' as default --- Found cv_bridge: 3.2.1 (/opt/ros/humble/share/cv_bridge/cmake) --- Found image_geometry: 3.2.1 (/opt/ros/humble/share/image_geometry/cmake) --- Found image_transport: 3.1.9 (/opt/ros/humble/share/image_transport/cmake) --- Found tf2: 0.25.7 (/opt/ros/humble/share/tf2/cmake) --- Found pcl_ros: 2.6.1 (/root/AirStack/ros_ws/install/pcl_ros/share/pcl_ros/cmake) --- Found eigen3_cmake_module: 0.1.1 (/opt/ros/humble/share/eigen3_cmake_module/cmake) --- Ensuring Eigen3 include directory is part of orocos-kdl CMake target --- Eigen found (include: /usr/include/eigen3, version: 3.4.0) --- FLANN found (include: /usr/include, lib: /usr/lib/x86_64-linux-gnu/libflann_cpp.so) --- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) --- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb) --- Eigen found (include: /usr/include/eigen3, version: 3.4.0) --- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) --- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb) --- Found Qhull version 8.0.2 --- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) --- Found stereo_msgs: 4.2.4 (/opt/ros/humble/share/stereo_msgs/cmake) --- Found visualization_msgs: 4.2.4 (/opt/ros/humble/share/visualization_msgs/cmake) --- PCL_INCLUDE_DIRS: /usr/include/pcl-1.12 --- Configuring done --- Generating done --- Build files have been written to: /root/AirStack/build/disparity_expansion -[ 16%] Building CXX object CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o -[ 33%] Building CXX object CMakeFiles/disparity_expansion.dir/src/disparity_expansion.cpp.o -[ 50%] Building CXX object CMakeFiles/disparity_pcd.dir/src/disparity_pcd.cpp.o -[ 66%] Linking CXX executable disparity_conv -[ 66%] Built target disparity_conv -[ 83%] Linking CXX executable disparity_expansion -[ 83%] Built target disparity_expansion -[100%] Linking CXX executable disparity_pcd -[100%] Built target disparity_pcd --- Install configuration: "Release" --- Installing: /root/AirStack/install/disparity_expansion/bin/disparity_expansion --- Set runtime path of "/root/AirStack/install/disparity_expansion/bin/disparity_expansion" to "" diff --git a/log/build_2024-07-31_12-58-12/disparity_expansion/stdout_stderr.log b/log/build_2024-07-31_12-58-12/disparity_expansion/stdout_stderr.log deleted file mode 100644 index d7fc5e3f2..000000000 --- a/log/build_2024-07-31_12-58-12/disparity_expansion/stdout_stderr.log +++ /dev/null @@ -1,62 +0,0 @@ --- Found ament_cmake: 1.3.9 (/opt/ros/humble/share/ament_cmake/cmake) --- Found rclcpp: 16.0.9 (/opt/ros/humble/share/rclcpp/cmake) --- Found rosidl_generator_c: 3.1.5 (/opt/ros/humble/share/rosidl_generator_c/cmake) --- Found rosidl_adapter: 3.1.5 (/opt/ros/humble/share/rosidl_adapter/cmake) --- Found rosidl_generator_cpp: 3.1.5 (/opt/ros/humble/share/rosidl_generator_cpp/cmake) --- Using all available rosidl_typesupport_c: rosidl_typesupport_fastrtps_c;rosidl_typesupport_introspection_c --- Using all available rosidl_typesupport_cpp: rosidl_typesupport_fastrtps_cpp;rosidl_typesupport_introspection_cpp --- Found rmw_implementation_cmake: 6.1.2 (/opt/ros/humble/share/rmw_implementation_cmake/cmake) --- Found rmw_fastrtps_cpp: 6.2.6 (/opt/ros/humble/share/rmw_fastrtps_cpp/cmake) --- Using RMW implementation 'rmw_fastrtps_cpp' as default --- Found cv_bridge: 3.2.1 (/opt/ros/humble/share/cv_bridge/cmake) --- Found image_geometry: 3.2.1 (/opt/ros/humble/share/image_geometry/cmake) --- Found image_transport: 3.1.9 (/opt/ros/humble/share/image_transport/cmake) --- Found tf2: 0.25.7 (/opt/ros/humble/share/tf2/cmake) --- Found pcl_ros: 2.6.1 (/root/AirStack/ros_ws/install/pcl_ros/share/pcl_ros/cmake) --- Found eigen3_cmake_module: 0.1.1 (/opt/ros/humble/share/eigen3_cmake_module/cmake) --- Ensuring Eigen3 include directory is part of orocos-kdl CMake target --- Eigen found (include: /usr/include/eigen3, version: 3.4.0) --- FLANN found (include: /usr/include, lib: /usr/lib/x86_64-linux-gnu/libflann_cpp.so) --- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) --- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb) --- Eigen found (include: /usr/include/eigen3, version: 3.4.0) --- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) --- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb) --- Found Qhull version 8.0.2 --- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) --- Found stereo_msgs: 4.2.4 (/opt/ros/humble/share/stereo_msgs/cmake) --- Found visualization_msgs: 4.2.4 (/opt/ros/humble/share/visualization_msgs/cmake) -CMake Warning (dev) at CMakeLists.txt:33 (find_package): - Policy CMP0074 is not set: find_package uses _ROOT variables. - Run "cmake --help-policy CMP0074" for policy details. Use the cmake_policy - command to set the policy and suppress this warning. - - CMake variable PCL_ROOT is set to: - - /usr - - For compatibility, CMake is ignoring the variable. -This warning is for project developers. Use -Wno-dev to suppress it. - --- PCL_INCLUDE_DIRS: /usr/include/pcl-1.12 --- Configuring done --- Generating done -CMake Warning: - Manually-specified variables were not used by the project: - - CATKIN_INSTALL_INTO_PREFIX_ROOT - - --- Build files have been written to: /root/AirStack/build/disparity_expansion -[ 16%] Building CXX object CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o -[ 33%] Building CXX object CMakeFiles/disparity_expansion.dir/src/disparity_expansion.cpp.o -[ 50%] Building CXX object CMakeFiles/disparity_pcd.dir/src/disparity_pcd.cpp.o -[ 66%] Linking CXX executable disparity_conv -[ 66%] Built target disparity_conv -[ 83%] Linking CXX executable disparity_expansion -[ 83%] Built target disparity_expansion -[100%] Linking CXX executable disparity_pcd -[100%] Built target disparity_pcd --- Install configuration: "Release" --- Installing: /root/AirStack/install/disparity_expansion/bin/disparity_expansion --- Set runtime path of "/root/AirStack/install/disparity_expansion/bin/disparity_expansion" to "" diff --git a/log/build_2024-07-31_12-58-12/disparity_expansion/streams.log b/log/build_2024-07-31_12-58-12/disparity_expansion/streams.log deleted file mode 100644 index 410c71bff..000000000 --- a/log/build_2024-07-31_12-58-12/disparity_expansion/streams.log +++ /dev/null @@ -1,68 +0,0 @@ -[0.013s] Invoking command in '/root/AirStack/build/disparity_expansion': /usr/bin/cmake /root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion -DCATKIN_INSTALL_INTO_PREFIX_ROOT=0 -DCMAKE_INSTALL_PREFIX=/root/AirStack/install/disparity_expansion -[0.031s] -- Found ament_cmake: 1.3.9 (/opt/ros/humble/share/ament_cmake/cmake) -[0.155s] -- Found rclcpp: 16.0.9 (/opt/ros/humble/share/rclcpp/cmake) -[0.181s] -- Found rosidl_generator_c: 3.1.5 (/opt/ros/humble/share/rosidl_generator_c/cmake) -[0.184s] -- Found rosidl_adapter: 3.1.5 (/opt/ros/humble/share/rosidl_adapter/cmake) -[0.189s] -- Found rosidl_generator_cpp: 3.1.5 (/opt/ros/humble/share/rosidl_generator_cpp/cmake) -[0.198s] -- Using all available rosidl_typesupport_c: rosidl_typesupport_fastrtps_c;rosidl_typesupport_introspection_c -[0.212s] -- Using all available rosidl_typesupport_cpp: rosidl_typesupport_fastrtps_cpp;rosidl_typesupport_introspection_cpp -[0.262s] -- Found rmw_implementation_cmake: 6.1.2 (/opt/ros/humble/share/rmw_implementation_cmake/cmake) -[0.263s] -- Found rmw_fastrtps_cpp: 6.2.6 (/opt/ros/humble/share/rmw_fastrtps_cpp/cmake) -[0.442s] -- Using RMW implementation 'rmw_fastrtps_cpp' as default -[0.577s] -- Found cv_bridge: 3.2.1 (/opt/ros/humble/share/cv_bridge/cmake) -[0.697s] -- Found image_geometry: 3.2.1 (/opt/ros/humble/share/image_geometry/cmake) -[0.709s] -- Found image_transport: 3.1.9 (/opt/ros/humble/share/image_transport/cmake) -[0.757s] -- Found tf2: 0.25.7 (/opt/ros/humble/share/tf2/cmake) -[0.766s] -- Found pcl_ros: 2.6.1 (/root/AirStack/ros_ws/install/pcl_ros/share/pcl_ros/cmake) -[1.286s] -- Found eigen3_cmake_module: 0.1.1 (/opt/ros/humble/share/eigen3_cmake_module/cmake) -[1.287s] -- Ensuring Eigen3 include directory is part of orocos-kdl CMake target -[1.322s] -- Eigen found (include: /usr/include/eigen3, version: 3.4.0) -[1.377s] -- FLANN found (include: /usr/include, lib: /usr/lib/x86_64-linux-gnu/libflann_cpp.so) -[1.817s] -- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) -[1.828s] -- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb) -[1.998s] -- Eigen found (include: /usr/include/eigen3, version: 3.4.0) -[2.009s] -- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) -[2.020s] -- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb) -[2.185s] -- Found Qhull version 8.0.2 -[2.353s] -- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) -[2.528s] -- Found stereo_msgs: 4.2.4 (/opt/ros/humble/share/stereo_msgs/cmake) -[2.606s] -- Found visualization_msgs: 4.2.4 (/opt/ros/humble/share/visualization_msgs/cmake) -[2.714s] CMake Warning (dev) at CMakeLists.txt:33 (find_package): -[2.714s] Policy CMP0074 is not set: find_package uses _ROOT variables. -[2.714s] Run "cmake --help-policy CMP0074" for policy details. Use the cmake_policy -[2.714s] command to set the policy and suppress this warning. -[2.714s] -[2.714s] CMake variable PCL_ROOT is set to: -[2.714s] -[2.714s] /usr -[2.715s] -[2.715s] For compatibility, CMake is ignoring the variable. -[2.715s] This warning is for project developers. Use -Wno-dev to suppress it. -[2.715s]  -[2.725s] -- PCL_INCLUDE_DIRS: /usr/include/pcl-1.12 -[2.870s] -- Configuring done -[2.929s] -- Generating done -[2.931s] CMake Warning: -[2.932s] Manually-specified variables were not used by the project: -[2.932s] -[2.932s] CATKIN_INSTALL_INTO_PREFIX_ROOT -[2.932s] -[2.932s]  -[2.932s] -- Build files have been written to: /root/AirStack/build/disparity_expansion -[2.944s] Invoked command in '/root/AirStack/build/disparity_expansion' returned '0': /usr/bin/cmake /root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion -DCATKIN_INSTALL_INTO_PREFIX_ROOT=0 -DCMAKE_INSTALL_PREFIX=/root/AirStack/install/disparity_expansion -[2.947s] Invoking command in '/root/AirStack/build/disparity_expansion': /usr/bin/cmake --build /root/AirStack/build/disparity_expansion -- -j12 -l12 -[3.022s] [ 16%] Building CXX object CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o -[3.026s] [ 33%] Building CXX object CMakeFiles/disparity_expansion.dir/src/disparity_expansion.cpp.o -[3.027s] [ 50%] Building CXX object CMakeFiles/disparity_pcd.dir/src/disparity_pcd.cpp.o -[15.594s] [ 66%] Linking CXX executable disparity_conv -[16.175s] [ 66%] Built target disparity_conv -[16.934s] [ 83%] Linking CXX executable disparity_expansion -[17.334s] [ 83%] Built target disparity_expansion -[18.068s] [100%] Linking CXX executable disparity_pcd -[18.465s] [100%] Built target disparity_pcd -[18.478s] Invoked command in '/root/AirStack/build/disparity_expansion' returned '0': /usr/bin/cmake --build /root/AirStack/build/disparity_expansion -- -j12 -l12 -[18.586s] Invoking command in '/root/AirStack/build/disparity_expansion': /usr/bin/cmake --install /root/AirStack/build/disparity_expansion -[18.597s] -- Install configuration: "Release" -[18.597s] -- Installing: /root/AirStack/install/disparity_expansion/bin/disparity_expansion -[18.600s] -- Set runtime path of "/root/AirStack/install/disparity_expansion/bin/disparity_expansion" to "" -[18.602s] Invoked command in '/root/AirStack/build/disparity_expansion' returned '0': /usr/bin/cmake --install /root/AirStack/build/disparity_expansion diff --git a/log/build_2024-07-31_12-58-12/events.log b/log/build_2024-07-31_12-58-12/events.log deleted file mode 100644 index fa7052f6b..000000000 --- a/log/build_2024-07-31_12-58-12/events.log +++ /dev/null @@ -1,280 +0,0 @@ -[0.000000] (-) TimerEvent: {} -[0.000161] (-) JobUnselected: {'identifier': 'controls_bringup'} -[0.000251] (-) JobUnselected: {'identifier': 'dronekit'} -[0.000279] (-) JobUnselected: {'identifier': 'mav_comm'} -[0.000303] (-) JobUnselected: {'identifier': 'mav_msgs'} -[0.000325] (-) JobUnselected: {'identifier': 'mav_planning_msgs'} -[0.000351] (-) JobUnselected: {'identifier': 'mav_state_machine_msgs'} -[0.000375] (-) JobUnselected: {'identifier': 'mav_system_msgs'} -[0.000399] (-) JobUnselected: {'identifier': 'mavros_interface'} -[0.000426] (-) JobUnselected: {'identifier': 'pcl_conversions'} -[0.000465] (-) JobUnselected: {'identifier': 'pcl_ros'} -[0.000489] (-) JobUnselected: {'identifier': 'perception_pcl'} -[0.000511] (-) JobUnselected: {'identifier': 'px4_msgs'} -[0.000536] (-) JobUnselected: {'identifier': 'px4_ros_com'} -[0.000561] (-) JobUnselected: {'identifier': 'robot_bringup'} -[0.000586] (-) JobUnselected: {'identifier': 'robot_interface'} -[0.000674] (-) JobUnselected: {'identifier': 'vdb_mapping'} -[0.000701] (-) JobUnselected: {'identifier': 'vdb_mapping_interfaces'} -[0.000726] (-) JobUnselected: {'identifier': 'vdb_mapping_ros2'} -[0.000753] (disparity_expansion) JobQueued: {'identifier': 'disparity_expansion', 'dependencies': OrderedDict([('pcl_conversions', '/root/AirStack/install/pcl_conversions')])} -[0.000804] (disparity_expansion) JobStarted: {'identifier': 'disparity_expansion'} -[0.011065] (disparity_expansion) JobProgress: {'identifier': 'disparity_expansion', 'progress': 'cmake'} -[0.012783] (disparity_expansion) Command: {'cmd': ['/usr/bin/cmake', '/root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion', '-DCATKIN_INSTALL_INTO_PREFIX_ROOT=0', '-DCMAKE_INSTALL_PREFIX=/root/AirStack/install/disparity_expansion'], 'cwd': '/root/AirStack/build/disparity_expansion', 'env': OrderedDict([('LESSOPEN', '| /usr/bin/lesspipe %s'), ('HOSTNAME', 'wildfire-desktop'), ('ISAACSIM_PATH', '/isaac-sim'), ('SHLVL', '1'), ('LD_LIBRARY_PATH', '/root/AirStack/ros_ws/install/vdb_mapping_interfaces/lib:/root/AirStack/ros_ws/install/vdb_mapping/lib:/root/AirStack/ros_ws/install/mavros_interface/lib:/root/AirStack/ros_ws/install/robot_interface/lib:/root/AirStack/ros_ws/install/px4_ros_com/lib:/root/AirStack/ros_ws/install/px4_msgs/lib:/root/AirStack/ros_ws/install/pcl_ros/lib:/root/AirStack/ros_ws/install/mav_system_msgs/lib:/root/AirStack/ros_ws/install/mav_state_machine_msgs/lib:/root/AirStack/ros_ws/install/mav_planning_msgs/lib:/root/AirStack/ros_ws/install/mav_msgs/lib:/opt/ros/humble/opt/rviz_ogre_vendor/lib:/opt/ros/humble/lib/x86_64-linux-gnu:/opt/ros/humble/lib'), ('HOME', '/root'), ('MIN_DRIVER_VERSION', '525.60.11'), ('ROS_PYTHON_VERSION', '3'), ('LC_CTYPE', 'C.UTF-8'), ('COLCON_PREFIX_PATH', '/root/AirStack/ros_ws/install'), ('ROS_DISTRO', 'humble'), ('_', '/usr/bin/colcon'), ('ROS_VERSION', '2'), ('PKG_CONFIG_PATH', '/root/AirStack/ros_ws/install/vdb_mapping/lib/x86_64-linux-gnu/pkgconfig:/root/AirStack/ros_ws/install/vdb_mapping/lib/pkgconfig'), ('NVIDIA_DRIVER_CAPABILITIES', 'all'), ('TERM', 'xterm'), ('ROS_LOCALHOST_ONLY', '0'), ('PATH', '/opt/ros/humble/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'), ('VK_DRIVER_FILES', '/etc/vulkan/icd.d/nvidia_icd.json'), ('DISPLAY', ':1'), ('LS_COLORS', 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:'), ('AMENT_PREFIX_PATH', '/root/AirStack/ros_ws/install/vdb_mapping_ros2:/root/AirStack/ros_ws/install/vdb_mapping_interfaces:/root/AirStack/ros_ws/install/mavros_interface:/root/AirStack/ros_ws/install/robot_interface:/root/AirStack/ros_ws/install/robot_bringup:/root/AirStack/ros_ws/install/px4_ros_com:/root/AirStack/ros_ws/install/px4_msgs:/root/AirStack/ros_ws/install/perception_pcl:/root/AirStack/ros_ws/install/pcl_ros:/root/AirStack/ros_ws/install/pcl_conversions:/root/AirStack/ros_ws/install/mav_comm:/root/AirStack/ros_ws/install/mav_system_msgs:/root/AirStack/ros_ws/install/mav_state_machine_msgs:/root/AirStack/ros_ws/install/mav_planning_msgs:/root/AirStack/ros_ws/install/mav_msgs:/root/AirStack/ros_ws/install/controls_bringup:/opt/ros/humble'), ('OMNI_PASS', 'admin'), ('LESSCLOSE', '/usr/bin/lesspipe %s %s'), ('ACCEPT_EULA', 'Y'), ('CMAKE_MODULE_PATH', '/root/AirStack/ros_ws/install/vdb_mapping/lib/cmake/vdb_mapping'), ('OMNI_SERVER', 'http://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/4.0'), ('PWD', '/root/AirStack/build/disparity_expansion'), ('OMNI_USER', 'admin'), ('PYTHONPATH', '/root/AirStack/ros_ws/install/vdb_mapping_interfaces/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/px4_ros_com/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/px4_msgs/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/mav_planning_msgs/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/mav_msgs/local/lib/python3.10/dist-packages:/opt/ros/humble/lib/python3.10/site-packages:/opt/ros/humble/local/lib/python3.10/dist-packages'), ('NVIDIA_VISIBLE_DEVICES', 'all'), ('TZ', 'America/New_York'), ('COLCON', '1'), ('CMAKE_PREFIX_PATH', '/root/AirStack/ros_ws/install/vdb_mapping_ros2:/root/AirStack/ros_ws/install/vdb_mapping_interfaces:/root/AirStack/ros_ws/install/vdb_mapping:/root/AirStack/ros_ws/install/mavros_interface:/root/AirStack/ros_ws/install/robot_interface:/root/AirStack/ros_ws/install/robot_bringup:/root/AirStack/ros_ws/install/px4_ros_com:/root/AirStack/ros_ws/install/px4_msgs:/root/AirStack/ros_ws/install/perception_pcl:/root/AirStack/ros_ws/install/pcl_ros:/root/AirStack/ros_ws/install/pcl_conversions:/root/AirStack/ros_ws/install/mav_comm:/root/AirStack/ros_ws/install/mav_system_msgs:/root/AirStack/ros_ws/install/mav_state_machine_msgs:/root/AirStack/ros_ws/install/mav_planning_msgs:/root/AirStack/ros_ws/install/mav_msgs:/root/AirStack/ros_ws/install/controls_bringup')]), 'shell': False} -[0.032120] (disparity_expansion) StdoutLine: {'line': b'-- Found ament_cmake: 1.3.9 (/opt/ros/humble/share/ament_cmake/cmake)\n'} -[0.099391] (-) TimerEvent: {} -[0.155954] (disparity_expansion) StdoutLine: {'line': b'-- Found rclcpp: 16.0.9 (/opt/ros/humble/share/rclcpp/cmake)\n'} -[0.182164] (disparity_expansion) StdoutLine: {'line': b'-- Found rosidl_generator_c: 3.1.5 (/opt/ros/humble/share/rosidl_generator_c/cmake)\n'} -[0.184444] (disparity_expansion) StdoutLine: {'line': b'-- Found rosidl_adapter: 3.1.5 (/opt/ros/humble/share/rosidl_adapter/cmake)\n'} -[0.189299] (disparity_expansion) StdoutLine: {'line': b'-- Found rosidl_generator_cpp: 3.1.5 (/opt/ros/humble/share/rosidl_generator_cpp/cmake)\n'} -[0.199193] (disparity_expansion) StdoutLine: {'line': b'-- Using all available rosidl_typesupport_c: rosidl_typesupport_fastrtps_c;rosidl_typesupport_introspection_c\n'} -[0.199457] (-) TimerEvent: {} -[0.213002] (disparity_expansion) StdoutLine: {'line': b'-- Using all available rosidl_typesupport_cpp: rosidl_typesupport_fastrtps_cpp;rosidl_typesupport_introspection_cpp\n'} -[0.262717] (disparity_expansion) StdoutLine: {'line': b'-- Found rmw_implementation_cmake: 6.1.2 (/opt/ros/humble/share/rmw_implementation_cmake/cmake)\n'} -[0.263876] (disparity_expansion) StdoutLine: {'line': b'-- Found rmw_fastrtps_cpp: 6.2.6 (/opt/ros/humble/share/rmw_fastrtps_cpp/cmake)\n'} -[0.299739] (-) TimerEvent: {} -[0.399935] (-) TimerEvent: {} -[0.443001] (disparity_expansion) StdoutLine: {'line': b"-- Using RMW implementation 'rmw_fastrtps_cpp' as default\n"} -[0.500009] (-) TimerEvent: {} -[0.577429] (disparity_expansion) StdoutLine: {'line': b'-- Found cv_bridge: 3.2.1 (/opt/ros/humble/share/cv_bridge/cmake)\n'} -[0.600081] (-) TimerEvent: {} -[0.697769] (disparity_expansion) StdoutLine: {'line': b'-- Found image_geometry: 3.2.1 (/opt/ros/humble/share/image_geometry/cmake)\n'} -[0.700518] (-) TimerEvent: {} -[0.709755] (disparity_expansion) StdoutLine: {'line': b'-- Found image_transport: 3.1.9 (/opt/ros/humble/share/image_transport/cmake)\n'} -[0.757697] (disparity_expansion) StdoutLine: {'line': b'-- Found tf2: 0.25.7 (/opt/ros/humble/share/tf2/cmake)\n'} -[0.766602] (disparity_expansion) StdoutLine: {'line': b'-- Found pcl_ros: 2.6.1 (/root/AirStack/ros_ws/install/pcl_ros/share/pcl_ros/cmake)\n'} -[0.800623] (-) TimerEvent: {} -[0.901097] (-) TimerEvent: {} -[1.001342] (-) TimerEvent: {} -[1.101711] (-) TimerEvent: {} -[1.201925] (-) TimerEvent: {} -[1.286346] (disparity_expansion) StdoutLine: {'line': b'-- Found eigen3_cmake_module: 0.1.1 (/opt/ros/humble/share/eigen3_cmake_module/cmake)\n'} -[1.287358] (disparity_expansion) StdoutLine: {'line': b'-- Ensuring Eigen3 include directory is part of orocos-kdl CMake target\n'} -[1.302030] (-) TimerEvent: {} -[1.322727] (disparity_expansion) StdoutLine: {'line': b'-- Eigen found (include: /usr/include/eigen3, version: 3.4.0)\n'} -[1.377387] (disparity_expansion) StdoutLine: {'line': b'-- FLANN found (include: /usr/include, lib: /usr/lib/x86_64-linux-gnu/libflann_cpp.so)\n'} -[1.402113] (-) TimerEvent: {} -[1.502336] (-) TimerEvent: {} -[1.602563] (-) TimerEvent: {} -[1.702832] (-) TimerEvent: {} -[1.803091] (-) TimerEvent: {} -[1.817963] (disparity_expansion) StdoutLine: {'line': b'-- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb)\n'} -[1.828250] (disparity_expansion) StdoutLine: {'line': b'-- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb)\n'} -[1.903183] (-) TimerEvent: {} -[1.998485] (disparity_expansion) StdoutLine: {'line': b'-- Eigen found (include: /usr/include/eigen3, version: 3.4.0)\n'} -[2.003276] (-) TimerEvent: {} -[2.009436] (disparity_expansion) StdoutLine: {'line': b'-- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb)\n'} -[2.020444] (disparity_expansion) StdoutLine: {'line': b'-- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb)\n'} -[2.103366] (-) TimerEvent: {} -[2.186171] (disparity_expansion) StdoutLine: {'line': b'-- Found Qhull version 8.0.2\n'} -[2.203453] (-) TimerEvent: {} -[2.303706] (-) TimerEvent: {} -[2.353701] (disparity_expansion) StdoutLine: {'line': b'-- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb)\n'} -[2.403781] (-) TimerEvent: {} -[2.504008] (-) TimerEvent: {} -[2.528919] (disparity_expansion) StdoutLine: {'line': b'-- Found stereo_msgs: 4.2.4 (/opt/ros/humble/share/stereo_msgs/cmake)\n'} -[2.604108] (-) TimerEvent: {} -[2.606261] (disparity_expansion) StdoutLine: {'line': b'-- Found visualization_msgs: 4.2.4 (/opt/ros/humble/share/visualization_msgs/cmake)\n'} -[2.704188] (-) TimerEvent: {} -[2.714376] (disparity_expansion) StderrLine: {'line': b'\x1b[33mCMake Warning (dev) at CMakeLists.txt:33 (find_package):\n'} -[2.714574] (disparity_expansion) StderrLine: {'line': b' Policy CMP0074 is not set: find_package uses _ROOT variables.\n'} -[2.714695] (disparity_expansion) StderrLine: {'line': b' Run "cmake --help-policy CMP0074" for policy details. Use the cmake_policy\n'} -[2.714798] (disparity_expansion) StderrLine: {'line': b' command to set the policy and suppress this warning.\n'} -[2.714896] (disparity_expansion) StderrLine: {'line': b'\n'} -[2.714994] (disparity_expansion) StderrLine: {'line': b' CMake variable PCL_ROOT is set to:\n'} -[2.715094] (disparity_expansion) StderrLine: {'line': b'\n'} -[2.715191] (disparity_expansion) StderrLine: {'line': b' /usr\n'} -[2.715286] (disparity_expansion) StderrLine: {'line': b'\n'} -[2.715383] (disparity_expansion) StderrLine: {'line': b' For compatibility, CMake is ignoring the variable.\n'} -[2.715482] (disparity_expansion) StderrLine: {'line': b'This warning is for project developers. Use -Wno-dev to suppress it.\n'} -[2.715579] (disparity_expansion) StderrLine: {'line': b'\x1b[0m\n'} -[2.725898] (disparity_expansion) StdoutLine: {'line': b'-- PCL_INCLUDE_DIRS: /usr/include/pcl-1.12\n'} -[2.804260] (-) TimerEvent: {} -[2.871077] (disparity_expansion) StdoutLine: {'line': b'-- Configuring done\n'} -[2.904368] (-) TimerEvent: {} -[2.929713] (disparity_expansion) StdoutLine: {'line': b'-- Generating done\n'} -[2.932176] (disparity_expansion) StderrLine: {'line': b'\x1b[33mCMake Warning:\n'} -[2.932308] (disparity_expansion) StderrLine: {'line': b' Manually-specified variables were not used by the project:\n'} -[2.932402] (disparity_expansion) StderrLine: {'line': b'\n'} -[2.932488] (disparity_expansion) StderrLine: {'line': b' CATKIN_INSTALL_INTO_PREFIX_ROOT\n'} -[2.932573] (disparity_expansion) StderrLine: {'line': b'\n'} -[2.932656] (disparity_expansion) StderrLine: {'line': b'\x1b[0m\n'} -[2.932884] (disparity_expansion) StdoutLine: {'line': b'-- Build files have been written to: /root/AirStack/build/disparity_expansion\n'} -[2.944829] (disparity_expansion) CommandEnded: {'returncode': 0} -[2.945629] (disparity_expansion) JobProgress: {'identifier': 'disparity_expansion', 'progress': 'build'} -[2.946953] (disparity_expansion) Command: {'cmd': ['/usr/bin/cmake', '--build', '/root/AirStack/build/disparity_expansion', '--', '-j12', '-l12'], 'cwd': '/root/AirStack/build/disparity_expansion', 'env': OrderedDict([('LESSOPEN', '| /usr/bin/lesspipe %s'), ('HOSTNAME', 'wildfire-desktop'), ('ISAACSIM_PATH', '/isaac-sim'), ('SHLVL', '1'), ('LD_LIBRARY_PATH', '/root/AirStack/ros_ws/install/vdb_mapping_interfaces/lib:/root/AirStack/ros_ws/install/vdb_mapping/lib:/root/AirStack/ros_ws/install/mavros_interface/lib:/root/AirStack/ros_ws/install/robot_interface/lib:/root/AirStack/ros_ws/install/px4_ros_com/lib:/root/AirStack/ros_ws/install/px4_msgs/lib:/root/AirStack/ros_ws/install/pcl_ros/lib:/root/AirStack/ros_ws/install/mav_system_msgs/lib:/root/AirStack/ros_ws/install/mav_state_machine_msgs/lib:/root/AirStack/ros_ws/install/mav_planning_msgs/lib:/root/AirStack/ros_ws/install/mav_msgs/lib:/opt/ros/humble/opt/rviz_ogre_vendor/lib:/opt/ros/humble/lib/x86_64-linux-gnu:/opt/ros/humble/lib'), ('HOME', '/root'), ('MIN_DRIVER_VERSION', '525.60.11'), ('ROS_PYTHON_VERSION', '3'), ('LC_CTYPE', 'C.UTF-8'), ('COLCON_PREFIX_PATH', '/root/AirStack/ros_ws/install'), ('ROS_DISTRO', 'humble'), ('_', '/usr/bin/colcon'), ('ROS_VERSION', '2'), ('PKG_CONFIG_PATH', '/root/AirStack/ros_ws/install/vdb_mapping/lib/x86_64-linux-gnu/pkgconfig:/root/AirStack/ros_ws/install/vdb_mapping/lib/pkgconfig'), ('NVIDIA_DRIVER_CAPABILITIES', 'all'), ('TERM', 'xterm'), ('ROS_LOCALHOST_ONLY', '0'), ('PATH', '/opt/ros/humble/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'), ('VK_DRIVER_FILES', '/etc/vulkan/icd.d/nvidia_icd.json'), ('DISPLAY', ':1'), ('LS_COLORS', 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:'), ('AMENT_PREFIX_PATH', '/root/AirStack/ros_ws/install/vdb_mapping_ros2:/root/AirStack/ros_ws/install/vdb_mapping_interfaces:/root/AirStack/ros_ws/install/mavros_interface:/root/AirStack/ros_ws/install/robot_interface:/root/AirStack/ros_ws/install/robot_bringup:/root/AirStack/ros_ws/install/px4_ros_com:/root/AirStack/ros_ws/install/px4_msgs:/root/AirStack/ros_ws/install/perception_pcl:/root/AirStack/ros_ws/install/pcl_ros:/root/AirStack/ros_ws/install/pcl_conversions:/root/AirStack/ros_ws/install/mav_comm:/root/AirStack/ros_ws/install/mav_system_msgs:/root/AirStack/ros_ws/install/mav_state_machine_msgs:/root/AirStack/ros_ws/install/mav_planning_msgs:/root/AirStack/ros_ws/install/mav_msgs:/root/AirStack/ros_ws/install/controls_bringup:/opt/ros/humble'), ('OMNI_PASS', 'admin'), ('LESSCLOSE', '/usr/bin/lesspipe %s %s'), ('ACCEPT_EULA', 'Y'), ('CMAKE_MODULE_PATH', '/root/AirStack/ros_ws/install/vdb_mapping/lib/cmake/vdb_mapping'), ('OMNI_SERVER', 'http://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/4.0'), ('PWD', '/root/AirStack/build/disparity_expansion'), ('OMNI_USER', 'admin'), ('PYTHONPATH', '/root/AirStack/ros_ws/install/vdb_mapping_interfaces/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/px4_ros_com/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/px4_msgs/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/mav_planning_msgs/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/mav_msgs/local/lib/python3.10/dist-packages:/opt/ros/humble/lib/python3.10/site-packages:/opt/ros/humble/local/lib/python3.10/dist-packages'), ('NVIDIA_VISIBLE_DEVICES', 'all'), ('TZ', 'America/New_York'), ('COLCON', '1'), ('CMAKE_PREFIX_PATH', '/root/AirStack/ros_ws/install/vdb_mapping_ros2:/root/AirStack/ros_ws/install/vdb_mapping_interfaces:/root/AirStack/ros_ws/install/vdb_mapping:/root/AirStack/ros_ws/install/mavros_interface:/root/AirStack/ros_ws/install/robot_interface:/root/AirStack/ros_ws/install/robot_bringup:/root/AirStack/ros_ws/install/px4_ros_com:/root/AirStack/ros_ws/install/px4_msgs:/root/AirStack/ros_ws/install/perception_pcl:/root/AirStack/ros_ws/install/pcl_ros:/root/AirStack/ros_ws/install/pcl_conversions:/root/AirStack/ros_ws/install/mav_comm:/root/AirStack/ros_ws/install/mav_system_msgs:/root/AirStack/ros_ws/install/mav_state_machine_msgs:/root/AirStack/ros_ws/install/mav_planning_msgs:/root/AirStack/ros_ws/install/mav_msgs:/root/AirStack/ros_ws/install/controls_bringup')]), 'shell': False} -[3.004468] (-) TimerEvent: {} -[3.022578] (disparity_expansion) StdoutLine: {'line': b'[ 16%] \x1b[32mBuilding CXX object CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o\x1b[0m\n'} -[3.026808] (disparity_expansion) StdoutLine: {'line': b'[ 33%] \x1b[32mBuilding CXX object CMakeFiles/disparity_expansion.dir/src/disparity_expansion.cpp.o\x1b[0m\n'} -[3.027904] (disparity_expansion) StdoutLine: {'line': b'[ 50%] \x1b[32mBuilding CXX object CMakeFiles/disparity_pcd.dir/src/disparity_pcd.cpp.o\x1b[0m\n'} -[3.104573] (-) TimerEvent: {} -[3.204844] (-) TimerEvent: {} -[3.305089] (-) TimerEvent: {} -[3.405392] (-) TimerEvent: {} -[3.505687] (-) TimerEvent: {} -[3.605979] (-) TimerEvent: {} -[3.706257] (-) TimerEvent: {} -[3.806551] (-) TimerEvent: {} -[3.906821] (-) TimerEvent: {} -[4.007103] (-) TimerEvent: {} -[4.107396] (-) TimerEvent: {} -[4.207681] (-) TimerEvent: {} -[4.307978] (-) TimerEvent: {} -[4.408296] (-) TimerEvent: {} -[4.508611] (-) TimerEvent: {} -[4.608914] (-) TimerEvent: {} -[4.709201] (-) TimerEvent: {} -[4.809478] (-) TimerEvent: {} -[4.909755] (-) TimerEvent: {} -[5.010033] (-) TimerEvent: {} -[5.110317] (-) TimerEvent: {} -[5.210586] (-) TimerEvent: {} -[5.310868] (-) TimerEvent: {} -[5.411140] (-) TimerEvent: {} -[5.511428] (-) TimerEvent: {} -[5.611708] (-) TimerEvent: {} -[5.712001] (-) TimerEvent: {} -[5.812292] (-) TimerEvent: {} -[5.912575] (-) TimerEvent: {} -[6.012865] (-) TimerEvent: {} -[6.113139] (-) TimerEvent: {} -[6.213382] (-) TimerEvent: {} -[6.313666] (-) TimerEvent: {} -[6.413945] (-) TimerEvent: {} -[6.514230] (-) TimerEvent: {} -[6.614510] (-) TimerEvent: {} -[6.714788] (-) TimerEvent: {} -[6.815076] (-) TimerEvent: {} -[6.915367] (-) TimerEvent: {} -[7.015654] (-) TimerEvent: {} -[7.115936] (-) TimerEvent: {} -[7.216205] (-) TimerEvent: {} -[7.316483] (-) TimerEvent: {} -[7.416776] (-) TimerEvent: {} -[7.517056] (-) TimerEvent: {} -[7.617344] (-) TimerEvent: {} -[7.717620] (-) TimerEvent: {} -[7.817896] (-) TimerEvent: {} -[7.918181] (-) TimerEvent: {} -[8.018471] (-) TimerEvent: {} -[8.118747] (-) TimerEvent: {} -[8.219022] (-) TimerEvent: {} -[8.319301] (-) TimerEvent: {} -[8.419564] (-) TimerEvent: {} -[8.519836] (-) TimerEvent: {} -[8.620090] (-) TimerEvent: {} -[8.720376] (-) TimerEvent: {} -[8.820686] (-) TimerEvent: {} -[8.920987] (-) TimerEvent: {} -[9.021291] (-) TimerEvent: {} -[9.121596] (-) TimerEvent: {} -[9.221887] (-) TimerEvent: {} -[9.322194] (-) TimerEvent: {} -[9.422500] (-) TimerEvent: {} -[9.522814] (-) TimerEvent: {} -[9.623111] (-) TimerEvent: {} -[9.723399] (-) TimerEvent: {} -[9.823703] (-) TimerEvent: {} -[9.924009] (-) TimerEvent: {} -[10.024301] (-) TimerEvent: {} -[10.124591] (-) TimerEvent: {} -[10.224871] (-) TimerEvent: {} -[10.325158] (-) TimerEvent: {} -[10.425444] (-) TimerEvent: {} -[10.525712] (-) TimerEvent: {} -[10.625981] (-) TimerEvent: {} -[10.726246] (-) TimerEvent: {} -[10.826535] (-) TimerEvent: {} -[10.926842] (-) TimerEvent: {} -[11.027139] (-) TimerEvent: {} -[11.127407] (-) TimerEvent: {} -[11.227674] (-) TimerEvent: {} -[11.327975] (-) TimerEvent: {} -[11.428274] (-) TimerEvent: {} -[11.528570] (-) TimerEvent: {} -[11.628857] (-) TimerEvent: {} -[11.729128] (-) TimerEvent: {} -[11.829398] (-) TimerEvent: {} -[11.929667] (-) TimerEvent: {} -[12.029951] (-) TimerEvent: {} -[12.130265] (-) TimerEvent: {} -[12.230522] (-) TimerEvent: {} -[12.330785] (-) TimerEvent: {} -[12.431052] (-) TimerEvent: {} -[12.531328] (-) TimerEvent: {} -[12.631596] (-) TimerEvent: {} -[12.731853] (-) TimerEvent: {} -[12.832112] (-) TimerEvent: {} -[12.932371] (-) TimerEvent: {} -[13.032634] (-) TimerEvent: {} -[13.132897] (-) TimerEvent: {} -[13.233156] (-) TimerEvent: {} -[13.333413] (-) TimerEvent: {} -[13.433686] (-) TimerEvent: {} -[13.533955] (-) TimerEvent: {} -[13.634216] (-) TimerEvent: {} -[13.734474] (-) TimerEvent: {} -[13.834735] (-) TimerEvent: {} -[13.934998] (-) TimerEvent: {} -[14.035260] (-) TimerEvent: {} -[14.135525] (-) TimerEvent: {} -[14.235788] (-) TimerEvent: {} -[14.336058] (-) TimerEvent: {} -[14.436326] (-) TimerEvent: {} -[14.536587] (-) TimerEvent: {} -[14.636855] (-) TimerEvent: {} -[14.737120] (-) TimerEvent: {} -[14.837392] (-) TimerEvent: {} -[14.937659] (-) TimerEvent: {} -[15.037915] (-) TimerEvent: {} -[15.138179] (-) TimerEvent: {} -[15.238439] (-) TimerEvent: {} -[15.338700] (-) TimerEvent: {} -[15.438967] (-) TimerEvent: {} -[15.539240] (-) TimerEvent: {} -[15.594905] (disparity_expansion) StdoutLine: {'line': b'[ 66%] \x1b[32m\x1b[1mLinking CXX executable disparity_conv\x1b[0m\n'} -[15.639350] (-) TimerEvent: {} -[15.739652] (-) TimerEvent: {} -[15.839949] (-) TimerEvent: {} -[15.940243] (-) TimerEvent: {} -[16.040515] (-) TimerEvent: {} -[16.140788] (-) TimerEvent: {} -[16.175579] (disparity_expansion) StdoutLine: {'line': b'[ 66%] Built target disparity_conv\n'} -[16.240883] (-) TimerEvent: {} -[16.341165] (-) TimerEvent: {} -[16.441446] (-) TimerEvent: {} -[16.541701] (-) TimerEvent: {} -[16.641953] (-) TimerEvent: {} -[16.742208] (-) TimerEvent: {} -[16.842466] (-) TimerEvent: {} -[16.934654] (disparity_expansion) StdoutLine: {'line': b'[ 83%] \x1b[32m\x1b[1mLinking CXX executable disparity_expansion\x1b[0m\n'} -[16.942538] (-) TimerEvent: {} -[17.042781] (-) TimerEvent: {} -[17.143056] (-) TimerEvent: {} -[17.243325] (-) TimerEvent: {} -[17.334456] (disparity_expansion) StdoutLine: {'line': b'[ 83%] Built target disparity_expansion\n'} -[17.343395] (-) TimerEvent: {} -[17.443613] (-) TimerEvent: {} -[17.543805] (-) TimerEvent: {} -[17.643995] (-) TimerEvent: {} -[17.744185] (-) TimerEvent: {} -[17.844375] (-) TimerEvent: {} -[17.944557] (-) TimerEvent: {} -[18.044744] (-) TimerEvent: {} -[18.068522] (disparity_expansion) StdoutLine: {'line': b'[100%] \x1b[32m\x1b[1mLinking CXX executable disparity_pcd\x1b[0m\n'} -[18.144854] (-) TimerEvent: {} -[18.245145] (-) TimerEvent: {} -[18.345452] (-) TimerEvent: {} -[18.445757] (-) TimerEvent: {} -[18.465738] (disparity_expansion) StdoutLine: {'line': b'[100%] Built target disparity_pcd\n'} -[18.478758] (disparity_expansion) CommandEnded: {'returncode': 0} -[18.545831] (-) TimerEvent: {} -[18.572983] (disparity_expansion) JobProgress: {'identifier': 'disparity_expansion', 'progress': 'install'} -[18.586029] (disparity_expansion) Command: {'cmd': ['/usr/bin/cmake', '--install', '/root/AirStack/build/disparity_expansion'], 'cwd': '/root/AirStack/build/disparity_expansion', 'env': OrderedDict([('LESSOPEN', '| /usr/bin/lesspipe %s'), ('HOSTNAME', 'wildfire-desktop'), ('ISAACSIM_PATH', '/isaac-sim'), ('SHLVL', '1'), ('LD_LIBRARY_PATH', '/root/AirStack/ros_ws/install/vdb_mapping_interfaces/lib:/root/AirStack/ros_ws/install/vdb_mapping/lib:/root/AirStack/ros_ws/install/mavros_interface/lib:/root/AirStack/ros_ws/install/robot_interface/lib:/root/AirStack/ros_ws/install/px4_ros_com/lib:/root/AirStack/ros_ws/install/px4_msgs/lib:/root/AirStack/ros_ws/install/pcl_ros/lib:/root/AirStack/ros_ws/install/mav_system_msgs/lib:/root/AirStack/ros_ws/install/mav_state_machine_msgs/lib:/root/AirStack/ros_ws/install/mav_planning_msgs/lib:/root/AirStack/ros_ws/install/mav_msgs/lib:/opt/ros/humble/opt/rviz_ogre_vendor/lib:/opt/ros/humble/lib/x86_64-linux-gnu:/opt/ros/humble/lib'), ('HOME', '/root'), ('MIN_DRIVER_VERSION', '525.60.11'), ('ROS_PYTHON_VERSION', '3'), ('LC_CTYPE', 'C.UTF-8'), ('COLCON_PREFIX_PATH', '/root/AirStack/ros_ws/install'), ('ROS_DISTRO', 'humble'), ('_', '/usr/bin/colcon'), ('ROS_VERSION', '2'), ('PKG_CONFIG_PATH', '/root/AirStack/ros_ws/install/vdb_mapping/lib/x86_64-linux-gnu/pkgconfig:/root/AirStack/ros_ws/install/vdb_mapping/lib/pkgconfig'), ('NVIDIA_DRIVER_CAPABILITIES', 'all'), ('TERM', 'xterm'), ('ROS_LOCALHOST_ONLY', '0'), ('PATH', '/opt/ros/humble/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'), ('VK_DRIVER_FILES', '/etc/vulkan/icd.d/nvidia_icd.json'), ('DISPLAY', ':1'), ('LS_COLORS', 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:'), ('AMENT_PREFIX_PATH', '/root/AirStack/ros_ws/install/vdb_mapping_ros2:/root/AirStack/ros_ws/install/vdb_mapping_interfaces:/root/AirStack/ros_ws/install/mavros_interface:/root/AirStack/ros_ws/install/robot_interface:/root/AirStack/ros_ws/install/robot_bringup:/root/AirStack/ros_ws/install/px4_ros_com:/root/AirStack/ros_ws/install/px4_msgs:/root/AirStack/ros_ws/install/perception_pcl:/root/AirStack/ros_ws/install/pcl_ros:/root/AirStack/ros_ws/install/pcl_conversions:/root/AirStack/ros_ws/install/mav_comm:/root/AirStack/ros_ws/install/mav_system_msgs:/root/AirStack/ros_ws/install/mav_state_machine_msgs:/root/AirStack/ros_ws/install/mav_planning_msgs:/root/AirStack/ros_ws/install/mav_msgs:/root/AirStack/ros_ws/install/controls_bringup:/opt/ros/humble'), ('OMNI_PASS', 'admin'), ('LESSCLOSE', '/usr/bin/lesspipe %s %s'), ('ACCEPT_EULA', 'Y'), ('CMAKE_MODULE_PATH', '/root/AirStack/ros_ws/install/vdb_mapping/lib/cmake/vdb_mapping'), ('OMNI_SERVER', 'http://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/4.0'), ('PWD', '/root/AirStack/build/disparity_expansion'), ('OMNI_USER', 'admin'), ('PYTHONPATH', '/root/AirStack/ros_ws/install/vdb_mapping_interfaces/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/px4_ros_com/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/px4_msgs/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/mav_planning_msgs/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/mav_msgs/local/lib/python3.10/dist-packages:/opt/ros/humble/lib/python3.10/site-packages:/opt/ros/humble/local/lib/python3.10/dist-packages'), ('NVIDIA_VISIBLE_DEVICES', 'all'), ('TZ', 'America/New_York'), ('COLCON', '1'), ('CMAKE_PREFIX_PATH', '/root/AirStack/ros_ws/install/vdb_mapping_ros2:/root/AirStack/ros_ws/install/vdb_mapping_interfaces:/root/AirStack/ros_ws/install/vdb_mapping:/root/AirStack/ros_ws/install/mavros_interface:/root/AirStack/ros_ws/install/robot_interface:/root/AirStack/ros_ws/install/robot_bringup:/root/AirStack/ros_ws/install/px4_ros_com:/root/AirStack/ros_ws/install/px4_msgs:/root/AirStack/ros_ws/install/perception_pcl:/root/AirStack/ros_ws/install/pcl_ros:/root/AirStack/ros_ws/install/pcl_conversions:/root/AirStack/ros_ws/install/mav_comm:/root/AirStack/ros_ws/install/mav_system_msgs:/root/AirStack/ros_ws/install/mav_state_machine_msgs:/root/AirStack/ros_ws/install/mav_planning_msgs:/root/AirStack/ros_ws/install/mav_msgs:/root/AirStack/ros_ws/install/controls_bringup')]), 'shell': False} -[18.597696] (disparity_expansion) StdoutLine: {'line': b'-- Install configuration: "Release"\n'} -[18.597901] (disparity_expansion) StdoutLine: {'line': b'-- Installing: /root/AirStack/install/disparity_expansion/bin/disparity_expansion\n'} -[18.600446] (disparity_expansion) StdoutLine: {'line': b'-- Set runtime path of "/root/AirStack/install/disparity_expansion/bin/disparity_expansion" to ""\n'} -[18.602592] (disparity_expansion) CommandEnded: {'returncode': 0} -[18.645913] (-) TimerEvent: {} -[18.673273] (disparity_expansion) JobEnded: {'identifier': 'disparity_expansion', 'rc': 0} -[18.674102] (-) EventReactorShutdown: {} diff --git a/log/build_2024-07-31_12-58-12/logger_all.log b/log/build_2024-07-31_12-58-12/logger_all.log deleted file mode 100644 index bf2f97cb4..000000000 --- a/log/build_2024-07-31_12-58-12/logger_all.log +++ /dev/null @@ -1,2688 +0,0 @@ -[0.161s] DEBUG:colcon:Command line arguments: ['/usr/bin/colcon', 'build', '--packages-select', 'disparity_expansion'] -[0.161s] DEBUG:colcon:Parsed command line arguments: Namespace(log_base=None, log_level=None, verb_name='build', build_base='build', install_base='install', merge_install=False, symlink_install=False, test_result_base=None, continue_on_error=False, executor='parallel', parallel_workers=12, event_handlers=None, ignore_user_meta=False, metas=['./colcon.meta'], base_paths=['.'], packages_ignore=None, packages_ignore_regex=None, paths=None, packages_up_to=None, packages_up_to_regex=None, packages_above=None, packages_above_and_dependencies=None, packages_above_depth=None, packages_select_by_dep=None, packages_skip_by_dep=None, packages_skip_up_to=None, packages_select_build_failed=False, packages_skip_build_finished=False, packages_select_test_failures=False, packages_skip_test_passed=False, packages_select=['disparity_expansion'], packages_skip=None, packages_select_regex=None, packages_skip_regex=None, packages_start=None, packages_end=None, allow_overriding=[], cmake_args=None, cmake_target=None, cmake_target_skip_unavailable=False, cmake_clean_cache=False, cmake_clean_first=False, cmake_force_configure=False, ament_cmake_args=None, catkin_cmake_args=None, catkin_skip_building_tests=False, mixin_files=None, mixin=None, verb_parser=, verb_extension=, main=>, mixin_verb=('build',)) -[0.290s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) check parameters -[0.291s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) check parameters -[0.291s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) check parameters -[0.291s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) check parameters -[0.291s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) discover -[0.291s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) discover -[0.291s] INFO:colcon.colcon_core.package_discovery:Crawling recursively for packages in '/root/AirStack' -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ignore', 'ignore_ament_install'] -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore' -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore_ament_install' -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_pkg'] -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_pkg' -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_meta'] -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_meta' -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ros'] -[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ros' -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['cmake', 'python'] -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'cmake' -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'python' -[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['python_setup_py'] -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'python_setup_py' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extensions ['ignore', 'ignore_ament_install'] -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'ignore' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(build) ignored -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extensions ['ignore', 'ignore_ament_install'] -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'ignore' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'ignore_ament_install' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extensions ['colcon_pkg'] -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'colcon_pkg' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extensions ['colcon_meta'] -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'colcon_meta' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extensions ['ros'] -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'ros' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extensions ['cmake', 'python'] -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'cmake' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'python' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extensions ['python_setup_py'] -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'python_setup_py' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extensions ['ignore', 'ignore_ament_install'] -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'ignore' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'ignore_ament_install' -[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extensions ['colcon_pkg'] -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'colcon_pkg' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extensions ['colcon_meta'] -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'colcon_meta' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extensions ['ros'] -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'ros' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extensions ['cmake', 'python'] -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'cmake' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'python' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extensions ['python_setup_py'] -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'python_setup_py' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extensions ['ignore', 'ignore_ament_install'] -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'ignore' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'ignore_ament_install' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extensions ['colcon_pkg'] -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'colcon_pkg' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extensions ['colcon_meta'] -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'colcon_meta' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extensions ['ros'] -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'ros' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extensions ['cmake', 'python'] -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'cmake' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'python' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extensions ['python_setup_py'] -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'python_setup_py' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extensions ['ignore', 'ignore_ament_install'] -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'ignore' -[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'ignore_ament_install' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extensions ['colcon_pkg'] -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'colcon_pkg' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extensions ['colcon_meta'] -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'colcon_meta' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extensions ['ros'] -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'ros' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extensions ['cmake', 'python'] -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'cmake' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'python' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extensions ['python_setup_py'] -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'python_setup_py' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extensions ['ignore', 'ignore_ament_install'] -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'ignore' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'ignore_ament_install' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extensions ['colcon_pkg'] -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'colcon_pkg' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extensions ['colcon_meta'] -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'colcon_meta' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extensions ['ros'] -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'ros' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extensions ['cmake', 'python'] -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'cmake' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'python' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extensions ['python_setup_py'] -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'python_setup_py' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extensions ['ignore', 'ignore_ament_install'] -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'ignore' -[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'ignore_ament_install' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extensions ['colcon_pkg'] -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'colcon_pkg' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extensions ['colcon_meta'] -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'colcon_meta' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extensions ['ros'] -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'ros' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extensions ['cmake', 'python'] -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'cmake' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'python' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extensions ['python_setup_py'] -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'python_setup_py' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extensions ['ignore', 'ignore_ament_install'] -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'ignore' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'ignore_ament_install' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extensions ['colcon_pkg'] -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'colcon_pkg' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extensions ['colcon_meta'] -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'colcon_meta' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extensions ['ros'] -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'ros' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extensions ['cmake', 'python'] -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'cmake' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'python' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extensions ['python_setup_py'] -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'python_setup_py' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extensions ['ignore', 'ignore_ament_install'] -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'ignore' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'ignore_ament_install' -[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extensions ['colcon_pkg'] -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'colcon_pkg' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extensions ['colcon_meta'] -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'colcon_meta' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extensions ['ros'] -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'ros' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extensions ['cmake', 'python'] -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'cmake' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'python' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extensions ['python_setup_py'] -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'python_setup_py' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extensions ['ignore', 'ignore_ament_install'] -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'ignore' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'ignore_ament_install' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extensions ['colcon_pkg'] -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'colcon_pkg' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extensions ['colcon_meta'] -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'colcon_meta' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extensions ['ros'] -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'ros' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extensions ['cmake', 'python'] -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'cmake' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'python' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extensions ['python_setup_py'] -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'python_setup_py' -[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extensions ['ignore', 'ignore_ament_install'] -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'ignore' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(install) ignored -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extensions ['ignore', 'ignore_ament_install'] -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'ignore' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'ignore_ament_install' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extensions ['colcon_pkg'] -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'colcon_pkg' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extensions ['colcon_meta'] -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'colcon_meta' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extensions ['ros'] -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'ros' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extensions ['cmake', 'python'] -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'cmake' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'python' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extensions ['python_setup_py'] -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'python_setup_py' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(log) by extensions ['ignore', 'ignore_ament_install'] -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(log) by extension 'ignore' -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(log) ignored -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extensions ['ignore', 'ignore_ament_install'] -[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'ignore' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'ignore_ament_install' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extensions ['colcon_pkg'] -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'colcon_pkg' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extensions ['colcon_meta'] -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'colcon_meta' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extensions ['ros'] -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'ros' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extensions ['cmake', 'python'] -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'cmake' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'python' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extensions ['python_setup_py'] -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'python_setup_py' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/build) by extensions ['ignore', 'ignore_ament_install'] -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/build) by extension 'ignore' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/build) ignored -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/install) by extensions ['ignore', 'ignore_ament_install'] -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/install) by extension 'ignore' -[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/install) ignored -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/log) by extensions ['ignore', 'ignore_ament_install'] -[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/log) by extension 'ignore' -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/log) ignored -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extensions ['ignore', 'ignore_ament_install'] -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'ignore' -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'ignore_ament_install' -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extensions ['colcon_pkg'] -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'colcon_pkg' -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extensions ['colcon_meta'] -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'colcon_meta' -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extensions ['ros'] -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'ros' -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extensions ['cmake', 'python'] -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'cmake' -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'python' -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extensions ['python_setup_py'] -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'python_setup_py' -[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/build) by extensions ['ignore', 'ignore_ament_install'] -[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/build) by extension 'ignore' -[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/build) ignored -[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extensions ['ignore', 'ignore_ament_install'] -[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'ignore' -[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'ignore_ament_install' -[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extensions ['colcon_pkg'] -[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'colcon_pkg' -[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extensions ['colcon_meta'] -[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'colcon_meta' -[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extensions ['ros'] -[0.310s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'ros' -[0.310s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extensions ['cmake', 'python'] -[0.310s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'cmake' -[0.310s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'python' -[0.310s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extensions ['python_setup_py'] -[0.310s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'python_setup_py' -[0.310s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/install) by extensions ['ignore', 'ignore_ament_install'] -[0.310s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/install) by extension 'ignore' -[0.310s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/install) ignored -[0.311s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/log) by extensions ['ignore', 'ignore_ament_install'] -[0.311s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/log) by extension 'ignore' -[0.311s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/log) ignored -[0.311s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl) by extensions ['ignore', 'ignore_ament_install'] -[0.311s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl) by extension 'ignore' -[0.311s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl) by extension 'ignore_ament_install' -[0.311s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl) by extensions ['colcon_pkg'] -[0.311s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl) by extension 'colcon_pkg' -[0.311s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl) by extensions ['colcon_meta'] -[0.311s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl) by extension 'colcon_meta' -[0.311s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl) by extensions ['ros'] -[0.311s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl) by extension 'ros' -[0.311s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl) by extensions ['cmake', 'python'] -[0.311s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl) by extension 'cmake' -[0.311s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl) by extension 'python' -[0.311s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl) by extensions ['python_setup_py'] -[0.311s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl) by extension 'python_setup_py' -[0.311s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/pcl_conversions) by extensions ['ignore', 'ignore_ament_install'] -[0.311s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/pcl_conversions) by extension 'ignore' -[0.311s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/pcl_conversions) by extension 'ignore_ament_install' -[0.311s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/pcl_conversions) by extensions ['colcon_pkg'] -[0.311s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/pcl_conversions) by extension 'colcon_pkg' -[0.311s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/pcl_conversions) by extensions ['colcon_meta'] -[0.311s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/pcl_conversions) by extension 'colcon_meta' -[0.311s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/pcl_conversions) by extensions ['ros'] -[0.312s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/pcl_conversions) by extension 'ros' -[0.314s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/perception_pcl/pcl_conversions' with type 'ros.ament_cmake' and name 'pcl_conversions' -[0.314s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/pcl_ros) by extensions ['ignore', 'ignore_ament_install'] -[0.314s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/pcl_ros) by extension 'ignore' -[0.314s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/pcl_ros) by extension 'ignore_ament_install' -[0.314s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/pcl_ros) by extensions ['colcon_pkg'] -[0.314s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/pcl_ros) by extension 'colcon_pkg' -[0.314s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/pcl_ros) by extensions ['colcon_meta'] -[0.314s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/pcl_ros) by extension 'colcon_meta' -[0.314s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/pcl_ros) by extensions ['ros'] -[0.314s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/pcl_ros) by extension 'ros' -[0.315s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/perception_pcl/pcl_ros' with type 'ros.ament_cmake' and name 'pcl_ros' -[0.315s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/perception_pcl) by extensions ['ignore', 'ignore_ament_install'] -[0.315s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/perception_pcl) by extension 'ignore' -[0.315s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/perception_pcl) by extension 'ignore_ament_install' -[0.315s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/perception_pcl) by extensions ['colcon_pkg'] -[0.315s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/perception_pcl) by extension 'colcon_pkg' -[0.316s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/perception_pcl) by extensions ['colcon_meta'] -[0.316s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/perception_pcl) by extension 'colcon_meta' -[0.316s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/perception_pcl) by extensions ['ros'] -[0.316s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/perception_pcl) by extension 'ros' -[0.316s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/perception_pcl/perception_pcl' with type 'ros.ament_cmake' and name 'perception_pcl' -[0.316s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extensions ['ignore', 'ignore_ament_install'] -[0.316s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'ignore' -[0.316s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'ignore_ament_install' -[0.316s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extensions ['colcon_pkg'] -[0.316s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'colcon_pkg' -[0.316s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extensions ['colcon_meta'] -[0.316s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'colcon_meta' -[0.316s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extensions ['ros'] -[0.316s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'ros' -[0.316s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extensions ['cmake', 'python'] -[0.316s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'cmake' -[0.316s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'python' -[0.316s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extensions ['python_setup_py'] -[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'python_setup_py' -[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extensions ['ignore', 'ignore_ament_install'] -[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'ignore' -[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'ignore_ament_install' -[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extensions ['colcon_pkg'] -[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'colcon_pkg' -[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extensions ['colcon_meta'] -[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'colcon_meta' -[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extensions ['ros'] -[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'ros' -[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extensions ['cmake', 'python'] -[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'cmake' -[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'python' -[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extensions ['python_setup_py'] -[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'python_setup_py' -[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extensions ['ignore', 'ignore_ament_install'] -[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'ignore' -[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'ignore_ament_install' -[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extensions ['colcon_pkg'] -[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'colcon_pkg' -[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extensions ['colcon_meta'] -[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'colcon_meta' -[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extensions ['ros'] -[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'ros' -[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extensions ['cmake', 'python'] -[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'cmake' -[0.318s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'python' -[0.318s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extensions ['python_setup_py'] -[0.318s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'python_setup_py' -[0.318s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extensions ['ignore', 'ignore_ament_install'] -[0.318s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extension 'ignore' -[0.318s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extension 'ignore_ament_install' -[0.318s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extensions ['colcon_pkg'] -[0.318s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extension 'colcon_pkg' -[0.318s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extensions ['colcon_meta'] -[0.318s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extension 'colcon_meta' -[0.319s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extensions ['ros'] -[0.319s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extension 'ros' -[0.319s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/controls_bringup' with type 'ros.ament_cmake' and name 'controls_bringup' -[0.319s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extensions ['ignore', 'ignore_ament_install'] -[0.319s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'ignore' -[0.319s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'ignore_ament_install' -[0.319s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extensions ['colcon_pkg'] -[0.319s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'colcon_pkg' -[0.319s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extensions ['colcon_meta'] -[0.319s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'colcon_meta' -[0.319s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extensions ['ros'] -[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'ros' -[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extensions ['cmake', 'python'] -[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'cmake' -[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'python' -[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extensions ['python_setup_py'] -[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'python_setup_py' -[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extensions ['ignore', 'ignore_ament_install'] -[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extension 'ignore' -[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extension 'ignore_ament_install' -[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extensions ['colcon_pkg'] -[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extension 'colcon_pkg' -[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extensions ['colcon_meta'] -[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extension 'colcon_meta' -[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extensions ['ros'] -[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extension 'ros' -[0.321s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm' with type 'ros.ament_cmake' and name 'mav_comm' -[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extensions ['ignore', 'ignore_ament_install'] -[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extension 'ignore' -[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extension 'ignore_ament_install' -[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extensions ['colcon_pkg'] -[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extension 'colcon_pkg' -[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extensions ['colcon_meta'] -[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extension 'colcon_meta' -[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extensions ['ros'] -[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extension 'ros' -[0.322s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs' with type 'ros.ament_cmake' and name 'mav_msgs' -[0.322s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extensions ['ignore', 'ignore_ament_install'] -[0.322s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extension 'ignore' -[0.322s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extension 'ignore_ament_install' -[0.323s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extensions ['colcon_pkg'] -[0.323s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extension 'colcon_pkg' -[0.323s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extensions ['colcon_meta'] -[0.323s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extension 'colcon_meta' -[0.323s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extensions ['ros'] -[0.323s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extension 'ros' -[0.324s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs' with type 'ros.ament_cmake' and name 'mav_planning_msgs' -[0.324s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extensions ['ignore', 'ignore_ament_install'] -[0.324s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extension 'ignore' -[0.324s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extension 'ignore_ament_install' -[0.324s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extensions ['colcon_pkg'] -[0.324s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extension 'colcon_pkg' -[0.324s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extensions ['colcon_meta'] -[0.324s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extension 'colcon_meta' -[0.324s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extensions ['ros'] -[0.324s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extension 'ros' -[0.325s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs' with type 'ros.ament_cmake' and name 'mav_state_machine_msgs' -[0.325s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extensions ['ignore', 'ignore_ament_install'] -[0.325s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extension 'ignore' -[0.325s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extension 'ignore_ament_install' -[0.325s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extensions ['colcon_pkg'] -[0.325s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extension 'colcon_pkg' -[0.325s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extensions ['colcon_meta'] -[0.325s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extension 'colcon_meta' -[0.325s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extensions ['ros'] -[0.325s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extension 'ros' -[0.326s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs' with type 'ros.ament_cmake' and name 'mav_system_msgs' -[0.326s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extensions ['ignore', 'ignore_ament_install'] -[0.326s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extension 'ignore' -[0.326s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extension 'ignore_ament_install' -[0.326s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extensions ['colcon_pkg'] -[0.326s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extension 'colcon_pkg' -[0.326s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extensions ['colcon_meta'] -[0.326s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extension 'colcon_meta' -[0.326s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extensions ['ros'] -[0.326s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extension 'ros' -[0.327s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/mavros_interface' with type 'ros.ament_cmake' and name 'mavros_interface' -[0.327s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extensions ['ignore', 'ignore_ament_install'] -[0.327s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extension 'ignore' -[0.327s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extension 'ignore_ament_install' -[0.327s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extensions ['colcon_pkg'] -[0.327s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extension 'colcon_pkg' -[0.327s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extensions ['colcon_meta'] -[0.327s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extension 'colcon_meta' -[0.327s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extensions ['ros'] -[0.327s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extension 'ros' -[0.328s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/px4_msgs' with type 'ros.ament_cmake' and name 'px4_msgs' -[0.328s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extensions ['ignore', 'ignore_ament_install'] -[0.328s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extension 'ignore' -[0.328s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extension 'ignore_ament_install' -[0.328s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extensions ['colcon_pkg'] -[0.328s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extension 'colcon_pkg' -[0.328s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extensions ['colcon_meta'] -[0.328s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extension 'colcon_meta' -[0.328s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extensions ['ros'] -[0.328s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extension 'ros' -[0.329s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/px4_ros_com' with type 'ros.ament_cmake' and name 'px4_ros_com' -[0.329s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extensions ['ignore', 'ignore_ament_install'] -[0.329s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extension 'ignore' -[0.329s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extension 'ignore_ament_install' -[0.329s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extensions ['colcon_pkg'] -[0.329s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extension 'colcon_pkg' -[0.329s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extensions ['colcon_meta'] -[0.329s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extension 'colcon_meta' -[0.329s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extensions ['ros'] -[0.329s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extension 'ros' -[0.330s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/robot_interface' with type 'ros.ament_cmake' and name 'robot_interface' -[0.330s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extensions ['ignore', 'ignore_ament_install'] -[0.330s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'ignore' -[0.330s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'ignore_ament_install' -[0.330s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extensions ['colcon_pkg'] -[0.330s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'colcon_pkg' -[0.330s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extensions ['colcon_meta'] -[0.330s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'colcon_meta' -[0.330s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extensions ['ros'] -[0.330s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'ros' -[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extensions ['cmake', 'python'] -[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'cmake' -[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'python' -[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extensions ['python_setup_py'] -[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'python_setup_py' -[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extensions ['ignore', 'ignore_ament_install'] -[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'ignore' -[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'ignore_ament_install' -[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extensions ['colcon_pkg'] -[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'colcon_pkg' -[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extensions ['colcon_meta'] -[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'colcon_meta' -[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extensions ['ros'] -[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'ros' -[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extensions ['cmake', 'python'] -[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'cmake' -[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'python' -[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extensions ['python_setup_py'] -[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'python_setup_py' -[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extensions ['ignore', 'ignore_ament_install'] -[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'ignore' -[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'ignore_ament_install' -[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extensions ['colcon_pkg'] -[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'colcon_pkg' -[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extensions ['colcon_meta'] -[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'colcon_meta' -[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extensions ['ros'] -[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'ros' -[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extensions ['cmake', 'python'] -[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'cmake' -[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'python' -[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extensions ['python_setup_py'] -[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'python_setup_py' -[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extensions ['ignore', 'ignore_ament_install'] -[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'ignore' -[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'ignore_ament_install' -[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extensions ['colcon_pkg'] -[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'colcon_pkg' -[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extensions ['colcon_meta'] -[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'colcon_meta' -[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extensions ['ros'] -[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'ros' -[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extensions ['cmake', 'python'] -[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'cmake' -[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'python' -[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extensions ['python_setup_py'] -[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'python_setup_py' -[0.333s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation) by extensions ['ignore', 'ignore_ament_install'] -[0.333s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation) by extension 'ignore' -[0.333s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation) ignored -[0.333s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/core_local_planner) by extensions ['ignore', 'ignore_ament_install'] -[0.333s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/core_local_planner) by extension 'ignore' -[0.333s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/core_local_planner) ignored -[0.333s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extensions ['ignore', 'ignore_ament_install'] -[0.333s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extension 'ignore' -[0.333s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extension 'ignore_ament_install' -[0.333s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extensions ['colcon_pkg'] -[0.333s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extension 'colcon_pkg' -[0.333s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extensions ['colcon_meta'] -[0.333s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extension 'colcon_meta' -[0.333s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extensions ['ros'] -[0.333s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extension 'ros' -[0.334s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/planning/local/disparity_expansion' with type 'ros.catkin' and name 'disparity_expansion' -[0.334s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp) by extensions ['ignore', 'ignore_ament_install'] -[0.334s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp) by extension 'ignore' -[0.334s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp) ignored -[0.334s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extensions ['ignore', 'ignore_ament_install'] -[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'ignore' -[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'ignore_ament_install' -[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extensions ['colcon_pkg'] -[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'colcon_pkg' -[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extensions ['colcon_meta'] -[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'colcon_meta' -[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extensions ['ros'] -[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'ros' -[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extensions ['cmake', 'python'] -[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'cmake' -[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'python' -[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extensions ['python_setup_py'] -[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'python_setup_py' -[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extensions ['ignore', 'ignore_ament_install'] -[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'ignore' -[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'ignore_ament_install' -[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extensions ['colcon_pkg'] -[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'colcon_pkg' -[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extensions ['colcon_meta'] -[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'colcon_meta' -[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extensions ['ros'] -[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'ros' -[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extensions ['cmake', 'python'] -[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'cmake' -[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'python' -[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extensions ['python_setup_py'] -[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'python_setup_py' -[0.336s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extensions ['ignore', 'ignore_ament_install'] -[0.336s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extension 'ignore' -[0.336s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extension 'ignore_ament_install' -[0.336s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extensions ['colcon_pkg'] -[0.336s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extension 'colcon_pkg' -[0.336s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extensions ['colcon_meta'] -[0.336s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extension 'colcon_meta' -[0.336s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extensions ['ros'] -[0.336s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extension 'ros' -[0.337s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping' with type 'ros.cmake' and name 'vdb_mapping' -[0.337s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extensions ['ignore', 'ignore_ament_install'] -[0.337s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'ignore' -[0.337s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'ignore_ament_install' -[0.337s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extensions ['colcon_pkg'] -[0.337s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'colcon_pkg' -[0.337s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extensions ['colcon_meta'] -[0.337s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'colcon_meta' -[0.337s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extensions ['ros'] -[0.337s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'ros' -[0.337s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extensions ['cmake', 'python'] -[0.337s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'cmake' -[0.337s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'python' -[0.337s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extensions ['python_setup_py'] -[0.337s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'python_setup_py' -[0.337s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extensions ['ignore', 'ignore_ament_install'] -[0.337s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extension 'ignore' -[0.337s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extension 'ignore_ament_install' -[0.337s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extensions ['colcon_pkg'] -[0.338s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extension 'colcon_pkg' -[0.338s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extensions ['colcon_meta'] -[0.338s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extension 'colcon_meta' -[0.338s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extensions ['ros'] -[0.338s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extension 'ros' -[0.338s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces' with type 'ros.ament_cmake' and name 'vdb_mapping_interfaces' -[0.338s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extensions ['ignore', 'ignore_ament_install'] -[0.338s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extension 'ignore' -[0.338s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extension 'ignore_ament_install' -[0.338s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extensions ['colcon_pkg'] -[0.338s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extension 'colcon_pkg' -[0.339s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extensions ['colcon_meta'] -[0.339s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extension 'colcon_meta' -[0.339s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extensions ['ros'] -[0.339s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extension 'ros' -[0.340s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2' with type 'ros.ament_cmake' and name 'vdb_mapping_ros2' -[0.340s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extensions ['ignore', 'ignore_ament_install'] -[0.340s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'ignore' -[0.340s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'ignore_ament_install' -[0.340s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extensions ['colcon_pkg'] -[0.340s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'colcon_pkg' -[0.340s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extensions ['colcon_meta'] -[0.340s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'colcon_meta' -[0.340s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extensions ['ros'] -[0.340s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'ros' -[0.340s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extensions ['cmake', 'python'] -[0.340s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'cmake' -[0.340s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'python' -[0.340s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extensions ['python_setup_py'] -[0.340s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'python_setup_py' -[0.340s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extensions ['ignore', 'ignore_ament_install'] -[0.341s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extension 'ignore' -[0.341s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extension 'ignore_ament_install' -[0.341s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extensions ['colcon_pkg'] -[0.341s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extension 'colcon_pkg' -[0.341s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extensions ['colcon_meta'] -[0.341s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extension 'colcon_meta' -[0.341s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extensions ['ros'] -[0.341s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extension 'ros' -[0.341s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/robot_bringup' with type 'ros.ament_cmake' and name 'robot_bringup' -[0.341s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extensions ['ignore', 'ignore_ament_install'] -[0.341s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'ignore' -[0.341s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'ignore_ament_install' -[0.341s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extensions ['colcon_pkg'] -[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'colcon_pkg' -[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extensions ['colcon_meta'] -[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'colcon_meta' -[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extensions ['ros'] -[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'ros' -[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extensions ['cmake', 'python'] -[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'cmake' -[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'python' -[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extensions ['python_setup_py'] -[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'python_setup_py' -[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extensions ['ignore', 'ignore_ament_install'] -[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'ignore' -[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'ignore_ament_install' -[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extensions ['colcon_pkg'] -[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'colcon_pkg' -[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extensions ['colcon_meta'] -[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'colcon_meta' -[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extensions ['ros'] -[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'ros' -[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extensions ['cmake', 'python'] -[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'cmake' -[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'python' -[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extensions ['python_setup_py'] -[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'python_setup_py' -[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extensions ['ignore', 'ignore_ament_install'] -[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'ignore' -[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'ignore_ament_install' -[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extensions ['colcon_pkg'] -[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'colcon_pkg' -[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extensions ['colcon_meta'] -[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'colcon_meta' -[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extensions ['ros'] -[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'ros' -[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extensions ['cmake', 'python'] -[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'cmake' -[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'python' -[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extensions ['python_setup_py'] -[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'python_setup_py' -[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extensions ['ignore', 'ignore_ament_install'] -[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'ignore' -[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'ignore_ament_install' -[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extensions ['colcon_pkg'] -[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'colcon_pkg' -[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extensions ['colcon_meta'] -[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'colcon_meta' -[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extensions ['ros'] -[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'ros' -[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extensions ['cmake', 'python'] -[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'cmake' -[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'python' -[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extensions ['python_setup_py'] -[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'python_setup_py' -[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extensions ['ignore', 'ignore_ament_install'] -[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'ignore' -[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'ignore_ament_install' -[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extensions ['colcon_pkg'] -[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'colcon_pkg' -[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extensions ['colcon_meta'] -[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'colcon_meta' -[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extensions ['ros'] -[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'ros' -[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extensions ['cmake', 'python'] -[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'cmake' -[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'python' -[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extensions ['python_setup_py'] -[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'python_setup_py' -[0.345s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extensions ['ignore', 'ignore_ament_install'] -[0.345s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'ignore' -[0.345s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'ignore_ament_install' -[0.345s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extensions ['colcon_pkg'] -[0.345s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'colcon_pkg' -[0.345s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extensions ['colcon_meta'] -[0.345s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'colcon_meta' -[0.345s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extensions ['ros'] -[0.345s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'ros' -[0.345s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extensions ['cmake', 'python'] -[0.345s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'cmake' -[0.345s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'python' -[0.345s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extensions ['python_setup_py'] -[0.345s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'python_setup_py' -[0.345s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extensions ['ignore', 'ignore_ament_install'] -[0.345s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'ignore' -[0.345s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'ignore_ament_install' -[0.345s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extensions ['colcon_pkg'] -[0.345s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'colcon_pkg' -[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extensions ['colcon_meta'] -[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'colcon_meta' -[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extensions ['ros'] -[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'ros' -[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extensions ['cmake', 'python'] -[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'cmake' -[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'python' -[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extensions ['python_setup_py'] -[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'python_setup_py' -[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extensions ['ignore', 'ignore_ament_install'] -[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'ignore' -[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'ignore_ament_install' -[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extensions ['colcon_pkg'] -[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'colcon_pkg' -[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extensions ['colcon_meta'] -[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'colcon_meta' -[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extensions ['ros'] -[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'ros' -[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extensions ['cmake', 'python'] -[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'cmake' -[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'python' -[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extensions ['python_setup_py'] -[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'python_setup_py' -[0.347s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extensions ['ignore', 'ignore_ament_install'] -[0.347s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'ignore' -[0.347s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'ignore_ament_install' -[0.347s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extensions ['colcon_pkg'] -[0.347s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'colcon_pkg' -[0.347s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extensions ['colcon_meta'] -[0.347s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'colcon_meta' -[0.347s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extensions ['ros'] -[0.347s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'ros' -[0.347s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extensions ['cmake', 'python'] -[0.347s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'cmake' -[0.347s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'python' -[0.347s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extensions ['python_setup_py'] -[0.347s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'python_setup_py' -[0.347s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extensions ['ignore', 'ignore_ament_install'] -[0.347s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'ignore' -[0.347s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'ignore_ament_install' -[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extensions ['colcon_pkg'] -[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'colcon_pkg' -[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extensions ['colcon_meta'] -[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'colcon_meta' -[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extensions ['ros'] -[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'ros' -[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extensions ['cmake', 'python'] -[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'cmake' -[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'python' -[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extensions ['python_setup_py'] -[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'python_setup_py' -[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extensions ['ignore', 'ignore_ament_install'] -[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'ignore' -[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'ignore_ament_install' -[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extensions ['colcon_pkg'] -[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'colcon_pkg' -[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extensions ['colcon_meta'] -[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'colcon_meta' -[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extensions ['ros'] -[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'ros' -[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extensions ['cmake', 'python'] -[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'cmake' -[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'python' -[0.349s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extensions ['python_setup_py'] -[0.349s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'python_setup_py' -[0.349s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extensions ['ignore', 'ignore_ament_install'] -[0.349s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'ignore' -[0.349s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'ignore_ament_install' -[0.349s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extensions ['colcon_pkg'] -[0.349s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'colcon_pkg' -[0.349s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extensions ['colcon_meta'] -[0.349s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'colcon_meta' -[0.349s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extensions ['ros'] -[0.349s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'ros' -[0.349s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extensions ['cmake', 'python'] -[0.349s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'cmake' -[0.349s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'python' -[0.349s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extensions ['python_setup_py'] -[0.349s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'python_setup_py' -[0.349s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extensions ['ignore', 'ignore_ament_install'] -[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'ignore' -[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'ignore_ament_install' -[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extensions ['colcon_pkg'] -[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'colcon_pkg' -[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extensions ['colcon_meta'] -[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'colcon_meta' -[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extensions ['ros'] -[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'ros' -[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extensions ['cmake', 'python'] -[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'cmake' -[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'python' -[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extensions ['python_setup_py'] -[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'python_setup_py' -[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extensions ['ignore', 'ignore_ament_install'] -[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'ignore' -[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'ignore_ament_install' -[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extensions ['colcon_pkg'] -[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'colcon_pkg' -[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extensions ['colcon_meta'] -[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'colcon_meta' -[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extensions ['ros'] -[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'ros' -[0.351s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extensions ['cmake', 'python'] -[0.351s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'cmake' -[0.351s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'python' -[0.351s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extensions ['python_setup_py'] -[0.351s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'python_setup_py' -[0.351s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extensions ['ignore', 'ignore_ament_install'] -[0.351s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'ignore' -[0.351s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'ignore_ament_install' -[0.351s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extensions ['colcon_pkg'] -[0.351s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'colcon_pkg' -[0.351s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extensions ['colcon_meta'] -[0.351s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'colcon_meta' -[0.351s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extensions ['ros'] -[0.351s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'ros' -[0.351s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extensions ['cmake', 'python'] -[0.351s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'cmake' -[0.351s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'python' -[0.351s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extensions ['python_setup_py'] -[0.351s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'python_setup_py' -[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extensions ['ignore', 'ignore_ament_install'] -[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'ignore' -[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'ignore_ament_install' -[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extensions ['colcon_pkg'] -[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'colcon_pkg' -[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extensions ['colcon_meta'] -[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'colcon_meta' -[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extensions ['ros'] -[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'ros' -[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extensions ['cmake', 'python'] -[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'cmake' -[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'python' -[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extensions ['python_setup_py'] -[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'python_setup_py' -[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extensions ['ignore', 'ignore_ament_install'] -[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'ignore' -[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'ignore_ament_install' -[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extensions ['colcon_pkg'] -[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'colcon_pkg' -[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extensions ['colcon_meta'] -[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'colcon_meta' -[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extensions ['ros'] -[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'ros' -[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extensions ['cmake', 'python'] -[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'cmake' -[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'python' -[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extensions ['python_setup_py'] -[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'python_setup_py' -[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extensions ['ignore', 'ignore_ament_install'] -[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'ignore' -[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'ignore_ament_install' -[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extensions ['colcon_pkg'] -[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'colcon_pkg' -[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extensions ['colcon_meta'] -[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'colcon_meta' -[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extensions ['ros'] -[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'ros' -[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extensions ['cmake', 'python'] -[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'cmake' -[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'python' -[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extensions ['python_setup_py'] -[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'python_setup_py' -[0.354s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extensions ['ignore', 'ignore_ament_install'] -[0.354s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'ignore' -[0.354s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'ignore_ament_install' -[0.354s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extensions ['colcon_pkg'] -[0.354s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'colcon_pkg' -[0.354s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extensions ['colcon_meta'] -[0.354s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'colcon_meta' -[0.354s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extensions ['ros'] -[0.354s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'ros' -[0.354s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extensions ['cmake', 'python'] -[0.354s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'cmake' -[0.354s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'python' -[0.354s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extensions ['python_setup_py'] -[0.354s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'python_setup_py' -[0.354s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extensions ['ignore', 'ignore_ament_install'] -[0.354s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'ignore' -[0.354s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'ignore_ament_install' -[0.354s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extensions ['colcon_pkg'] -[0.354s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'colcon_pkg' -[0.354s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extensions ['colcon_meta'] -[0.354s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'colcon_meta' -[0.355s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extensions ['ros'] -[0.355s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'ros' -[0.355s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extensions ['cmake', 'python'] -[0.355s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'cmake' -[0.355s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'python' -[0.355s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extensions ['python_setup_py'] -[0.355s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'python_setup_py' -[0.355s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extensions ['ignore', 'ignore_ament_install'] -[0.355s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'ignore' -[0.355s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'ignore_ament_install' -[0.355s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extensions ['colcon_pkg'] -[0.355s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'colcon_pkg' -[0.355s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extensions ['colcon_meta'] -[0.355s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'colcon_meta' -[0.355s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extensions ['ros'] -[0.355s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'ros' -[0.355s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extensions ['cmake', 'python'] -[0.355s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'cmake' -[0.355s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'python' -[0.355s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extensions ['python_setup_py'] -[0.355s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'python_setup_py' -[0.356s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extensions ['ignore', 'ignore_ament_install'] -[0.356s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'ignore' -[0.356s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'ignore_ament_install' -[0.356s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extensions ['colcon_pkg'] -[0.356s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'colcon_pkg' -[0.356s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extensions ['colcon_meta'] -[0.356s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'colcon_meta' -[0.356s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extensions ['ros'] -[0.356s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'ros' -[0.356s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extensions ['cmake', 'python'] -[0.356s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'cmake' -[0.356s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'python' -[0.356s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extensions ['python_setup_py'] -[0.356s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'python_setup_py' -[0.356s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extensions ['ignore', 'ignore_ament_install'] -[0.356s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'ignore' -[0.356s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'ignore_ament_install' -[0.356s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extensions ['colcon_pkg'] -[0.357s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'colcon_pkg' -[0.357s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extensions ['colcon_meta'] -[0.357s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'colcon_meta' -[0.357s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extensions ['ros'] -[0.357s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'ros' -[0.357s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extensions ['cmake', 'python'] -[0.357s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'cmake' -[0.357s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'python' -[0.357s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extensions ['python_setup_py'] -[0.357s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'python_setup_py' -[0.357s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extensions ['ignore', 'ignore_ament_install'] -[0.357s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'ignore' -[0.357s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'ignore_ament_install' -[0.357s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extensions ['colcon_pkg'] -[0.357s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'colcon_pkg' -[0.357s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extensions ['colcon_meta'] -[0.357s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'colcon_meta' -[0.357s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extensions ['ros'] -[0.357s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'ros' -[0.357s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extensions ['cmake', 'python'] -[0.357s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'cmake' -[0.357s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'python' -[0.357s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extensions ['python_setup_py'] -[0.358s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'python_setup_py' -[0.358s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extensions ['ignore', 'ignore_ament_install'] -[0.358s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'ignore' -[0.358s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'ignore_ament_install' -[0.358s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extensions ['colcon_pkg'] -[0.358s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'colcon_pkg' -[0.358s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extensions ['colcon_meta'] -[0.358s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'colcon_meta' -[0.358s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extensions ['ros'] -[0.358s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'ros' -[0.358s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extensions ['cmake', 'python'] -[0.358s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'cmake' -[0.358s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'python' -[0.358s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extensions ['python_setup_py'] -[0.358s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'python_setup_py' -[0.358s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extensions ['ignore', 'ignore_ament_install'] -[0.358s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'ignore' -[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'ignore_ament_install' -[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extensions ['colcon_pkg'] -[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'colcon_pkg' -[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extensions ['colcon_meta'] -[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'colcon_meta' -[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extensions ['ros'] -[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'ros' -[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extensions ['cmake', 'python'] -[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'cmake' -[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'python' -[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extensions ['python_setup_py'] -[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'python_setup_py' -[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extensions ['ignore', 'ignore_ament_install'] -[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'ignore' -[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'ignore_ament_install' -[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extensions ['colcon_pkg'] -[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'colcon_pkg' -[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extensions ['colcon_meta'] -[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'colcon_meta' -[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extensions ['ros'] -[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'ros' -[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extensions ['cmake', 'python'] -[0.360s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'cmake' -[0.360s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'python' -[0.360s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extensions ['python_setup_py'] -[0.360s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'python_setup_py' -[0.360s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extensions ['ignore', 'ignore_ament_install'] -[0.360s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'ignore' -[0.360s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'ignore_ament_install' -[0.360s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extensions ['colcon_pkg'] -[0.360s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'colcon_pkg' -[0.360s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extensions ['colcon_meta'] -[0.360s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'colcon_meta' -[0.360s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extensions ['ros'] -[0.360s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'ros' -[0.360s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extensions ['cmake', 'python'] -[0.360s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'cmake' -[0.360s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'python' -[0.360s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extensions ['python_setup_py'] -[0.360s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'python_setup_py' -[0.361s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extensions ['ignore', 'ignore_ament_install'] -[0.361s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'ignore' -[0.361s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'ignore_ament_install' -[0.361s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extensions ['colcon_pkg'] -[0.361s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'colcon_pkg' -[0.361s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extensions ['colcon_meta'] -[0.361s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'colcon_meta' -[0.361s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extensions ['ros'] -[0.361s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'ros' -[0.361s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extensions ['cmake', 'python'] -[0.361s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'cmake' -[0.361s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'python' -[0.361s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extensions ['python_setup_py'] -[0.361s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'python_setup_py' -[0.361s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extensions ['ignore', 'ignore_ament_install'] -[0.361s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'ignore' -[0.361s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'ignore_ament_install' -[0.361s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extensions ['colcon_pkg'] -[0.361s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'colcon_pkg' -[0.361s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extensions ['colcon_meta'] -[0.361s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'colcon_meta' -[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extensions ['ros'] -[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'ros' -[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extensions ['cmake', 'python'] -[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'cmake' -[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'python' -[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extensions ['python_setup_py'] -[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'python_setup_py' -[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extensions ['ignore', 'ignore_ament_install'] -[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'ignore' -[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'ignore_ament_install' -[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extensions ['colcon_pkg'] -[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'colcon_pkg' -[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extensions ['colcon_meta'] -[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'colcon_meta' -[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extensions ['ros'] -[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'ros' -[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extensions ['cmake', 'python'] -[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'cmake' -[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'python' -[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extensions ['python_setup_py'] -[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'python_setup_py' -[0.363s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extensions ['ignore', 'ignore_ament_install'] -[0.363s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'ignore' -[0.363s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'ignore_ament_install' -[0.363s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extensions ['colcon_pkg'] -[0.363s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'colcon_pkg' -[0.363s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extensions ['colcon_meta'] -[0.363s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'colcon_meta' -[0.363s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extensions ['ros'] -[0.363s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'ros' -[0.363s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extensions ['cmake', 'python'] -[0.363s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'cmake' -[0.363s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'python' -[0.363s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extensions ['python_setup_py'] -[0.363s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'python_setup_py' -[0.363s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extensions ['ignore', 'ignore_ament_install'] -[0.363s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'ignore' -[0.363s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'ignore_ament_install' -[0.363s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extensions ['colcon_pkg'] -[0.363s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'colcon_pkg' -[0.363s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extensions ['colcon_meta'] -[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'colcon_meta' -[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extensions ['ros'] -[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'ros' -[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extensions ['cmake', 'python'] -[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'cmake' -[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'python' -[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extensions ['python_setup_py'] -[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'python_setup_py' -[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extensions ['ignore', 'ignore_ament_install'] -[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'ignore' -[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'ignore_ament_install' -[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extensions ['colcon_pkg'] -[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'colcon_pkg' -[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extensions ['colcon_meta'] -[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'colcon_meta' -[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extensions ['ros'] -[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'ros' -[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extensions ['cmake', 'python'] -[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'cmake' -[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'python' -[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extensions ['python_setup_py'] -[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'python_setup_py' -[0.365s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extensions ['ignore', 'ignore_ament_install'] -[0.365s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'ignore' -[0.365s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'ignore_ament_install' -[0.365s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extensions ['colcon_pkg'] -[0.365s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'colcon_pkg' -[0.365s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extensions ['colcon_meta'] -[0.365s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'colcon_meta' -[0.365s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extensions ['ros'] -[0.365s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'ros' -[0.365s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extensions ['cmake', 'python'] -[0.365s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'cmake' -[0.365s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'python' -[0.365s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extensions ['python_setup_py'] -[0.365s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'python_setup_py' -[0.365s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extensions ['ignore', 'ignore_ament_install'] -[0.365s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'ignore' -[0.365s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'ignore_ament_install' -[0.365s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extensions ['colcon_pkg'] -[0.365s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'colcon_pkg' -[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extensions ['colcon_meta'] -[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'colcon_meta' -[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extensions ['ros'] -[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'ros' -[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extensions ['cmake', 'python'] -[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'cmake' -[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'python' -[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extensions ['python_setup_py'] -[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'python_setup_py' -[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extensions ['ignore', 'ignore_ament_install'] -[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'ignore' -[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'ignore_ament_install' -[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extensions ['colcon_pkg'] -[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'colcon_pkg' -[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extensions ['colcon_meta'] -[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'colcon_meta' -[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extensions ['ros'] -[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'ros' -[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extensions ['cmake', 'python'] -[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'cmake' -[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'python' -[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extensions ['python_setup_py'] -[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'python_setup_py' -[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extensions ['ignore', 'ignore_ament_install'] -[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'ignore' -[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'ignore_ament_install' -[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extensions ['colcon_pkg'] -[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'colcon_pkg' -[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extensions ['colcon_meta'] -[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'colcon_meta' -[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extensions ['ros'] -[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'ros' -[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extensions ['cmake', 'python'] -[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'cmake' -[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'python' -[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extensions ['python_setup_py'] -[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'python_setup_py' -[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extensions ['ignore', 'ignore_ament_install'] -[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'ignore' -[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'ignore_ament_install' -[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extensions ['colcon_pkg'] -[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'colcon_pkg' -[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extensions ['colcon_meta'] -[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'colcon_meta' -[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extensions ['ros'] -[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'ros' -[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extensions ['cmake', 'python'] -[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'cmake' -[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'python' -[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extensions ['python_setup_py'] -[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'python_setup_py' -[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extensions ['ignore', 'ignore_ament_install'] -[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'ignore' -[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'ignore_ament_install' -[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extensions ['colcon_pkg'] -[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'colcon_pkg' -[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extensions ['colcon_meta'] -[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'colcon_meta' -[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extensions ['ros'] -[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'ros' -[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extensions ['cmake', 'python'] -[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'cmake' -[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'python' -[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extensions ['python_setup_py'] -[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'python_setup_py' -[0.369s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extensions ['ignore', 'ignore_ament_install'] -[0.369s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'ignore' -[0.369s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'ignore_ament_install' -[0.369s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extensions ['colcon_pkg'] -[0.369s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'colcon_pkg' -[0.369s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extensions ['colcon_meta'] -[0.369s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'colcon_meta' -[0.369s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extensions ['ros'] -[0.369s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'ros' -[0.369s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extensions ['cmake', 'python'] -[0.369s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'cmake' -[0.369s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'python' -[0.369s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extensions ['python_setup_py'] -[0.369s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'python_setup_py' -[0.369s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extensions ['ignore', 'ignore_ament_install'] -[0.369s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'ignore' -[0.369s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'ignore_ament_install' -[0.370s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extensions ['colcon_pkg'] -[0.370s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'colcon_pkg' -[0.370s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extensions ['colcon_meta'] -[0.370s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'colcon_meta' -[0.370s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extensions ['ros'] -[0.370s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'ros' -[0.370s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extensions ['cmake', 'python'] -[0.370s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'cmake' -[0.370s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'python' -[0.370s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extensions ['python_setup_py'] -[0.370s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'python_setup_py' -[0.370s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extensions ['ignore', 'ignore_ament_install'] -[0.370s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'ignore' -[0.370s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'ignore_ament_install' -[0.370s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extensions ['colcon_pkg'] -[0.370s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'colcon_pkg' -[0.370s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extensions ['colcon_meta'] -[0.370s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'colcon_meta' -[0.370s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extensions ['ros'] -[0.370s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'ros' -[0.370s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extensions ['cmake', 'python'] -[0.370s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'cmake' -[0.370s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'python' -[0.370s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extensions ['python_setup_py'] -[0.370s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'python_setup_py' -[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extensions ['ignore', 'ignore_ament_install'] -[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'ignore' -[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'ignore_ament_install' -[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extensions ['colcon_pkg'] -[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'colcon_pkg' -[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extensions ['colcon_meta'] -[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'colcon_meta' -[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extensions ['ros'] -[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'ros' -[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extensions ['cmake', 'python'] -[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'cmake' -[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'python' -[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extensions ['python_setup_py'] -[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'python_setup_py' -[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extensions ['ignore', 'ignore_ament_install'] -[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'ignore' -[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'ignore_ament_install' -[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extensions ['colcon_pkg'] -[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'colcon_pkg' -[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extensions ['colcon_meta'] -[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'colcon_meta' -[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extensions ['ros'] -[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'ros' -[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extensions ['cmake', 'python'] -[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'cmake' -[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'python' -[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extensions ['python_setup_py'] -[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'python_setup_py' -[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extensions ['ignore', 'ignore_ament_install'] -[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'ignore' -[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'ignore_ament_install' -[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extensions ['colcon_pkg'] -[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'colcon_pkg' -[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extensions ['colcon_meta'] -[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'colcon_meta' -[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extensions ['ros'] -[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'ros' -[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extensions ['cmake', 'python'] -[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'cmake' -[0.373s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'python' -[0.373s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extensions ['python_setup_py'] -[0.373s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'python_setup_py' -[0.373s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extensions ['ignore', 'ignore_ament_install'] -[0.373s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'ignore' -[0.373s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'ignore_ament_install' -[0.373s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extensions ['colcon_pkg'] -[0.373s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'colcon_pkg' -[0.373s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extensions ['colcon_meta'] -[0.373s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'colcon_meta' -[0.373s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extensions ['ros'] -[0.373s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'ros' -[0.373s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extensions ['cmake', 'python'] -[0.373s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'cmake' -[0.373s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'python' -[0.373s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extensions ['python_setup_py'] -[0.373s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'python_setup_py' -[0.373s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extensions ['ignore', 'ignore_ament_install'] -[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'ignore' -[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'ignore_ament_install' -[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extensions ['colcon_pkg'] -[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'colcon_pkg' -[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extensions ['colcon_meta'] -[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'colcon_meta' -[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extensions ['ros'] -[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'ros' -[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extensions ['cmake', 'python'] -[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'cmake' -[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'python' -[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extensions ['python_setup_py'] -[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'python_setup_py' -[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extensions ['ignore', 'ignore_ament_install'] -[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'ignore' -[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'ignore_ament_install' -[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extensions ['colcon_pkg'] -[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'colcon_pkg' -[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extensions ['colcon_meta'] -[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'colcon_meta' -[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extensions ['ros'] -[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'ros' -[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extensions ['cmake', 'python'] -[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'cmake' -[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'python' -[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extensions ['python_setup_py'] -[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'python_setup_py' -[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extensions ['ignore', 'ignore_ament_install'] -[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'ignore' -[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'ignore_ament_install' -[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extensions ['colcon_pkg'] -[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'colcon_pkg' -[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extensions ['colcon_meta'] -[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'colcon_meta' -[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extensions ['ros'] -[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'ros' -[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extensions ['cmake', 'python'] -[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'cmake' -[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'python' -[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extensions ['python_setup_py'] -[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'python_setup_py' -[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extensions ['ignore', 'ignore_ament_install'] -[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'ignore' -[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'ignore_ament_install' -[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extensions ['colcon_pkg'] -[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'colcon_pkg' -[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extensions ['colcon_meta'] -[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'colcon_meta' -[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extensions ['ros'] -[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'ros' -[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extensions ['cmake', 'python'] -[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'cmake' -[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'python' -[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extensions ['python_setup_py'] -[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'python_setup_py' -[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extensions ['ignore', 'ignore_ament_install'] -[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'ignore' -[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'ignore_ament_install' -[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extensions ['colcon_pkg'] -[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'colcon_pkg' -[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extensions ['colcon_meta'] -[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'colcon_meta' -[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extensions ['ros'] -[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'ros' -[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extensions ['cmake', 'python'] -[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'cmake' -[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'python' -[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extensions ['python_setup_py'] -[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'python_setup_py' -[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extensions ['ignore', 'ignore_ament_install'] -[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'ignore' -[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'ignore_ament_install' -[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extensions ['colcon_pkg'] -[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'colcon_pkg' -[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extensions ['colcon_meta'] -[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'colcon_meta' -[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extensions ['ros'] -[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'ros' -[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extensions ['cmake', 'python'] -[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'cmake' -[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'python' -[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extensions ['python_setup_py'] -[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'python_setup_py' -[0.378s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extensions ['ignore', 'ignore_ament_install'] -[0.378s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'ignore' -[0.378s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'ignore_ament_install' -[0.378s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extensions ['colcon_pkg'] -[0.378s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'colcon_pkg' -[0.378s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extensions ['colcon_meta'] -[0.378s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'colcon_meta' -[0.378s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extensions ['ros'] -[0.378s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'ros' -[0.378s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extensions ['cmake', 'python'] -[0.378s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'cmake' -[0.378s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'python' -[0.378s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extensions ['python_setup_py'] -[0.378s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'python_setup_py' -[0.378s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extensions ['ignore', 'ignore_ament_install'] -[0.378s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'ignore' -[0.378s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'ignore_ament_install' -[0.378s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extensions ['colcon_pkg'] -[0.378s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'colcon_pkg' -[0.378s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extensions ['colcon_meta'] -[0.378s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'colcon_meta' -[0.378s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extensions ['ros'] -[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'ros' -[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extensions ['cmake', 'python'] -[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'cmake' -[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'python' -[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extensions ['python_setup_py'] -[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'python_setup_py' -[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extensions ['ignore', 'ignore_ament_install'] -[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'ignore' -[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'ignore_ament_install' -[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extensions ['colcon_pkg'] -[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'colcon_pkg' -[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extensions ['colcon_meta'] -[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'colcon_meta' -[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extensions ['ros'] -[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'ros' -[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extensions ['cmake', 'python'] -[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'cmake' -[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'python' -[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extensions ['python_setup_py'] -[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'python_setup_py' -[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extensions ['ignore', 'ignore_ament_install'] -[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'ignore' -[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'ignore_ament_install' -[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extensions ['colcon_pkg'] -[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'colcon_pkg' -[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extensions ['colcon_meta'] -[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'colcon_meta' -[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extensions ['ros'] -[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'ros' -[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extensions ['cmake', 'python'] -[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'cmake' -[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'python' -[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extensions ['python_setup_py'] -[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'python_setup_py' -[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extensions ['ignore', 'ignore_ament_install'] -[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'ignore' -[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'ignore_ament_install' -[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extensions ['colcon_pkg'] -[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'colcon_pkg' -[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extensions ['colcon_meta'] -[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'colcon_meta' -[0.381s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extensions ['ros'] -[0.381s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'ros' -[0.381s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extensions ['cmake', 'python'] -[0.381s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'cmake' -[0.381s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'python' -[0.381s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extensions ['python_setup_py'] -[0.381s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'python_setup_py' -[0.381s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extensions ['ignore', 'ignore_ament_install'] -[0.381s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'ignore' -[0.381s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'ignore_ament_install' -[0.381s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extensions ['colcon_pkg'] -[0.381s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'colcon_pkg' -[0.381s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extensions ['colcon_meta'] -[0.381s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'colcon_meta' -[0.381s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extensions ['ros'] -[0.381s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'ros' -[0.381s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extensions ['cmake', 'python'] -[0.381s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'cmake' -[0.381s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'python' -[0.381s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extensions ['python_setup_py'] -[0.381s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'python_setup_py' -[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extensions ['ignore', 'ignore_ament_install'] -[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'ignore' -[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'ignore_ament_install' -[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extensions ['colcon_pkg'] -[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'colcon_pkg' -[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extensions ['colcon_meta'] -[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'colcon_meta' -[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extensions ['ros'] -[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'ros' -[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extensions ['cmake', 'python'] -[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'cmake' -[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'python' -[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extensions ['python_setup_py'] -[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'python_setup_py' -[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extensions ['ignore', 'ignore_ament_install'] -[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'ignore' -[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'ignore_ament_install' -[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extensions ['colcon_pkg'] -[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'colcon_pkg' -[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extensions ['colcon_meta'] -[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'colcon_meta' -[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extensions ['ros'] -[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'ros' -[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extensions ['cmake', 'python'] -[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'cmake' -[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'python' -[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extensions ['python_setup_py'] -[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'python_setup_py' -[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extensions ['ignore', 'ignore_ament_install'] -[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'ignore' -[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'ignore_ament_install' -[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extensions ['colcon_pkg'] -[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'colcon_pkg' -[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extensions ['colcon_meta'] -[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'colcon_meta' -[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extensions ['ros'] -[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'ros' -[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extensions ['cmake', 'python'] -[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'cmake' -[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'python' -[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extensions ['python_setup_py'] -[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'python_setup_py' -[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extensions ['ignore', 'ignore_ament_install'] -[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'ignore' -[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'ignore_ament_install' -[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extensions ['colcon_pkg'] -[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'colcon_pkg' -[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extensions ['colcon_meta'] -[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'colcon_meta' -[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extensions ['ros'] -[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'ros' -[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extensions ['cmake', 'python'] -[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'cmake' -[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'python' -[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extensions ['python_setup_py'] -[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'python_setup_py' -[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extensions ['ignore', 'ignore_ament_install'] -[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'ignore' -[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'ignore_ament_install' -[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extensions ['colcon_pkg'] -[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'colcon_pkg' -[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extensions ['colcon_meta'] -[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'colcon_meta' -[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extensions ['ros'] -[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'ros' -[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extensions ['cmake', 'python'] -[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'cmake' -[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'python' -[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extensions ['python_setup_py'] -[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'python_setup_py' -[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extensions ['ignore', 'ignore_ament_install'] -[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'ignore' -[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'ignore_ament_install' -[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extensions ['colcon_pkg'] -[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'colcon_pkg' -[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extensions ['colcon_meta'] -[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'colcon_meta' -[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extensions ['ros'] -[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'ros' -[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extensions ['cmake', 'python'] -[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'cmake' -[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'python' -[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extensions ['python_setup_py'] -[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'python_setup_py' -[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extensions ['ignore', 'ignore_ament_install'] -[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'ignore' -[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'ignore_ament_install' -[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extensions ['colcon_pkg'] -[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'colcon_pkg' -[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extensions ['colcon_meta'] -[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'colcon_meta' -[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extensions ['ros'] -[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'ros' -[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extensions ['cmake', 'python'] -[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'cmake' -[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'python' -[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extensions ['python_setup_py'] -[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'python_setup_py' -[0.387s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extensions ['ignore', 'ignore_ament_install'] -[0.387s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'ignore' -[0.387s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'ignore_ament_install' -[0.387s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extensions ['colcon_pkg'] -[0.387s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'colcon_pkg' -[0.387s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extensions ['colcon_meta'] -[0.387s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'colcon_meta' -[0.387s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extensions ['ros'] -[0.387s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'ros' -[0.387s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extensions ['cmake', 'python'] -[0.387s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'cmake' -[0.387s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'python' -[0.387s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extensions ['python_setup_py'] -[0.387s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'python_setup_py' -[0.387s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extensions ['ignore', 'ignore_ament_install'] -[0.387s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'ignore' -[0.387s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'ignore_ament_install' -[0.387s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extensions ['colcon_pkg'] -[0.387s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'colcon_pkg' -[0.387s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extensions ['colcon_meta'] -[0.387s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'colcon_meta' -[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extensions ['ros'] -[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'ros' -[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extensions ['cmake', 'python'] -[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'cmake' -[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'python' -[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extensions ['python_setup_py'] -[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'python_setup_py' -[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extensions ['ignore', 'ignore_ament_install'] -[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'ignore' -[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'ignore_ament_install' -[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extensions ['colcon_pkg'] -[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'colcon_pkg' -[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extensions ['colcon_meta'] -[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'colcon_meta' -[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extensions ['ros'] -[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'ros' -[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extensions ['cmake', 'python'] -[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'cmake' -[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'python' -[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extensions ['python_setup_py'] -[0.389s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'python_setup_py' -[0.389s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extensions ['ignore', 'ignore_ament_install'] -[0.389s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'ignore' -[0.389s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'ignore_ament_install' -[0.389s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extensions ['colcon_pkg'] -[0.389s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'colcon_pkg' -[0.389s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extensions ['colcon_meta'] -[0.389s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'colcon_meta' -[0.389s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extensions ['ros'] -[0.389s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'ros' -[0.389s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extensions ['cmake', 'python'] -[0.389s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'cmake' -[0.389s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'python' -[0.389s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extensions ['python_setup_py'] -[0.389s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'python_setup_py' -[0.389s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extensions ['ignore', 'ignore_ament_install'] -[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'ignore' -[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'ignore_ament_install' -[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extensions ['colcon_pkg'] -[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'colcon_pkg' -[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extensions ['colcon_meta'] -[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'colcon_meta' -[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extensions ['ros'] -[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'ros' -[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extensions ['cmake', 'python'] -[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'cmake' -[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'python' -[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extensions ['python_setup_py'] -[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'python_setup_py' -[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extensions ['ignore', 'ignore_ament_install'] -[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'ignore' -[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'ignore_ament_install' -[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extensions ['colcon_pkg'] -[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'colcon_pkg' -[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extensions ['colcon_meta'] -[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'colcon_meta' -[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extensions ['ros'] -[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'ros' -[0.391s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extensions ['cmake', 'python'] -[0.391s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'cmake' -[0.391s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'python' -[0.391s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extensions ['python_setup_py'] -[0.391s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'python_setup_py' -[0.391s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extensions ['ignore', 'ignore_ament_install'] -[0.391s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'ignore' -[0.391s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'ignore_ament_install' -[0.391s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extensions ['colcon_pkg'] -[0.391s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'colcon_pkg' -[0.391s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extensions ['colcon_meta'] -[0.391s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'colcon_meta' -[0.391s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extensions ['ros'] -[0.391s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'ros' -[0.391s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extensions ['cmake', 'python'] -[0.391s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'cmake' -[0.391s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'python' -[0.391s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extensions ['python_setup_py'] -[0.391s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'python_setup_py' -[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extensions ['ignore', 'ignore_ament_install'] -[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'ignore' -[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'ignore_ament_install' -[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extensions ['colcon_pkg'] -[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'colcon_pkg' -[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extensions ['colcon_meta'] -[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'colcon_meta' -[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extensions ['ros'] -[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'ros' -[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extensions ['cmake', 'python'] -[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'cmake' -[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'python' -[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extensions ['python_setup_py'] -[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'python_setup_py' -[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extensions ['ignore', 'ignore_ament_install'] -[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'ignore' -[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'ignore_ament_install' -[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extensions ['colcon_pkg'] -[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'colcon_pkg' -[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extensions ['colcon_meta'] -[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'colcon_meta' -[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extensions ['ros'] -[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'ros' -[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extensions ['cmake', 'python'] -[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'cmake' -[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'python' -[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extensions ['python_setup_py'] -[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'python_setup_py' -[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extensions ['ignore', 'ignore_ament_install'] -[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'ignore' -[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'ignore_ament_install' -[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extensions ['colcon_pkg'] -[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'colcon_pkg' -[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extensions ['colcon_meta'] -[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'colcon_meta' -[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extensions ['ros'] -[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'ros' -[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extensions ['cmake', 'python'] -[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'cmake' -[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'python' -[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extensions ['python_setup_py'] -[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'python_setup_py' -[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extensions ['ignore', 'ignore_ament_install'] -[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'ignore' -[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'ignore_ament_install' -[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extensions ['colcon_pkg'] -[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'colcon_pkg' -[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extensions ['colcon_meta'] -[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'colcon_meta' -[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extensions ['ros'] -[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'ros' -[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extensions ['cmake', 'python'] -[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'cmake' -[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'python' -[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extensions ['python_setup_py'] -[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'python_setup_py' -[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extensions ['ignore', 'ignore_ament_install'] -[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'ignore' -[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'ignore_ament_install' -[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extensions ['colcon_pkg'] -[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'colcon_pkg' -[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extensions ['colcon_meta'] -[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'colcon_meta' -[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extensions ['ros'] -[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'ros' -[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extensions ['cmake', 'python'] -[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'cmake' -[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'python' -[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extensions ['python_setup_py'] -[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'python_setup_py' -[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extensions ['ignore', 'ignore_ament_install'] -[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'ignore' -[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'ignore_ament_install' -[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extensions ['colcon_pkg'] -[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'colcon_pkg' -[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extensions ['colcon_meta'] -[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'colcon_meta' -[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extensions ['ros'] -[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'ros' -[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extensions ['cmake', 'python'] -[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'cmake' -[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'python' -[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extensions ['python_setup_py'] -[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'python_setup_py' -[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extensions ['ignore', 'ignore_ament_install'] -[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'ignore' -[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'ignore_ament_install' -[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extensions ['colcon_pkg'] -[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'colcon_pkg' -[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extensions ['colcon_meta'] -[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'colcon_meta' -[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extensions ['ros'] -[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'ros' -[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extensions ['cmake', 'python'] -[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'cmake' -[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'python' -[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extensions ['python_setup_py'] -[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'python_setup_py' -[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extensions ['ignore', 'ignore_ament_install'] -[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'ignore' -[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'ignore_ament_install' -[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extensions ['colcon_pkg'] -[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'colcon_pkg' -[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extensions ['colcon_meta'] -[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'colcon_meta' -[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extensions ['ros'] -[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'ros' -[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extensions ['cmake', 'python'] -[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'cmake' -[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'python' -[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extensions ['python_setup_py'] -[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'python_setup_py' -[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extensions ['ignore', 'ignore_ament_install'] -[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'ignore' -[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'ignore_ament_install' -[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extensions ['colcon_pkg'] -[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'colcon_pkg' -[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extensions ['colcon_meta'] -[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'colcon_meta' -[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extensions ['ros'] -[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'ros' -[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extensions ['cmake', 'python'] -[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'cmake' -[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'python' -[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extensions ['python_setup_py'] -[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'python_setup_py' -[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extensions ['ignore', 'ignore_ament_install'] -[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'ignore' -[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'ignore_ament_install' -[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extensions ['colcon_pkg'] -[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'colcon_pkg' -[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extensions ['colcon_meta'] -[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'colcon_meta' -[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extensions ['ros'] -[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'ros' -[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extensions ['cmake', 'python'] -[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'cmake' -[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'python' -[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extensions ['python_setup_py'] -[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'python_setup_py' -[0.399s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extensions ['ignore', 'ignore_ament_install'] -[0.399s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'ignore' -[0.399s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'ignore_ament_install' -[0.399s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extensions ['colcon_pkg'] -[0.399s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'colcon_pkg' -[0.399s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extensions ['colcon_meta'] -[0.399s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'colcon_meta' -[0.399s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extensions ['ros'] -[0.399s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'ros' -[0.399s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extensions ['cmake', 'python'] -[0.399s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'cmake' -[0.399s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'python' -[0.399s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extensions ['python_setup_py'] -[0.399s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'python_setup_py' -[0.399s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extensions ['ignore', 'ignore_ament_install'] -[0.399s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'ignore' -[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'ignore_ament_install' -[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extensions ['colcon_pkg'] -[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'colcon_pkg' -[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extensions ['colcon_meta'] -[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'colcon_meta' -[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extensions ['ros'] -[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'ros' -[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extensions ['cmake', 'python'] -[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'cmake' -[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'python' -[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extensions ['python_setup_py'] -[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'python_setup_py' -[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extensions ['ignore', 'ignore_ament_install'] -[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'ignore' -[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'ignore_ament_install' -[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extensions ['colcon_pkg'] -[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'colcon_pkg' -[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extensions ['colcon_meta'] -[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'colcon_meta' -[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extensions ['ros'] -[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'ros' -[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extensions ['cmake', 'python'] -[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'cmake' -[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'python' -[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extensions ['python_setup_py'] -[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'python_setup_py' -[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extensions ['ignore', 'ignore_ament_install'] -[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'ignore' -[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'ignore_ament_install' -[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extensions ['colcon_pkg'] -[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'colcon_pkg' -[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extensions ['colcon_meta'] -[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'colcon_meta' -[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extensions ['ros'] -[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'ros' -[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extensions ['cmake', 'python'] -[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'cmake' -[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'python' -[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extensions ['python_setup_py'] -[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'python_setup_py' -[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extensions ['ignore', 'ignore_ament_install'] -[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'ignore' -[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'ignore_ament_install' -[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extensions ['colcon_pkg'] -[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'colcon_pkg' -[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extensions ['colcon_meta'] -[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'colcon_meta' -[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extensions ['ros'] -[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'ros' -[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extensions ['cmake', 'python'] -[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'cmake' -[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'python' -[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extensions ['python_setup_py'] -[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'python_setup_py' -[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extensions ['ignore', 'ignore_ament_install'] -[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'ignore' -[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'ignore_ament_install' -[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extensions ['colcon_pkg'] -[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'colcon_pkg' -[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extensions ['colcon_meta'] -[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'colcon_meta' -[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extensions ['ros'] -[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'ros' -[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extensions ['cmake', 'python'] -[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'cmake' -[0.403s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'python' -[0.403s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extensions ['python_setup_py'] -[0.403s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'python_setup_py' -[0.403s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extensions ['ignore', 'ignore_ament_install'] -[0.403s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'ignore' -[0.403s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'ignore_ament_install' -[0.403s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extensions ['colcon_pkg'] -[0.403s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'colcon_pkg' -[0.403s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extensions ['colcon_meta'] -[0.403s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'colcon_meta' -[0.403s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extensions ['ros'] -[0.403s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'ros' -[0.403s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extensions ['cmake', 'python'] -[0.403s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'cmake' -[0.403s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'python' -[0.403s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extensions ['python_setup_py'] -[0.403s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'python_setup_py' -[0.404s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extensions ['ignore', 'ignore_ament_install'] -[0.404s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'ignore' -[0.404s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'ignore_ament_install' -[0.404s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extensions ['colcon_pkg'] -[0.404s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'colcon_pkg' -[0.404s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extensions ['colcon_meta'] -[0.404s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'colcon_meta' -[0.404s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extensions ['ros'] -[0.404s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'ros' -[0.404s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extensions ['cmake', 'python'] -[0.404s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'cmake' -[0.404s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'python' -[0.404s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extensions ['python_setup_py'] -[0.404s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'python_setup_py' -[0.404s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extensions ['ignore', 'ignore_ament_install'] -[0.404s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'ignore' -[0.404s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'ignore_ament_install' -[0.404s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extensions ['colcon_pkg'] -[0.404s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'colcon_pkg' -[0.404s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extensions ['colcon_meta'] -[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'colcon_meta' -[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extensions ['ros'] -[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'ros' -[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extensions ['cmake', 'python'] -[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'cmake' -[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'python' -[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extensions ['python_setup_py'] -[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'python_setup_py' -[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extensions ['ignore', 'ignore_ament_install'] -[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'ignore' -[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'ignore_ament_install' -[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extensions ['colcon_pkg'] -[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'colcon_pkg' -[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extensions ['colcon_meta'] -[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'colcon_meta' -[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extensions ['ros'] -[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'ros' -[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extensions ['cmake', 'python'] -[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'cmake' -[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'python' -[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extensions ['python_setup_py'] -[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'python_setup_py' -[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extensions ['ignore', 'ignore_ament_install'] -[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'ignore' -[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'ignore_ament_install' -[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extensions ['colcon_pkg'] -[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'colcon_pkg' -[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extensions ['colcon_meta'] -[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'colcon_meta' -[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extensions ['ros'] -[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'ros' -[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extensions ['cmake', 'python'] -[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'cmake' -[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'python' -[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extensions ['python_setup_py'] -[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'python_setup_py' -[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extensions ['ignore', 'ignore_ament_install'] -[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'ignore' -[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'ignore_ament_install' -[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extensions ['colcon_pkg'] -[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'colcon_pkg' -[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extensions ['colcon_meta'] -[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'colcon_meta' -[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extensions ['ros'] -[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'ros' -[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extensions ['cmake', 'python'] -[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'cmake' -[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'python' -[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extensions ['python_setup_py'] -[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'python_setup_py' -[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extensions ['ignore', 'ignore_ament_install'] -[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'ignore' -[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'ignore_ament_install' -[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extensions ['colcon_pkg'] -[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'colcon_pkg' -[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extensions ['colcon_meta'] -[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'colcon_meta' -[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extensions ['ros'] -[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'ros' -[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extensions ['cmake', 'python'] -[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'cmake' -[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'python' -[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extensions ['python_setup_py'] -[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'python_setup_py' -[0.408s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extensions ['ignore', 'ignore_ament_install'] -[0.408s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'ignore' -[0.408s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'ignore_ament_install' -[0.408s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extensions ['colcon_pkg'] -[0.408s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'colcon_pkg' -[0.408s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extensions ['colcon_meta'] -[0.408s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'colcon_meta' -[0.408s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extensions ['ros'] -[0.408s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'ros' -[0.408s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extensions ['cmake', 'python'] -[0.408s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'cmake' -[0.408s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'python' -[0.408s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extensions ['python_setup_py'] -[0.408s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'python_setup_py' -[0.408s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extensions ['ignore', 'ignore_ament_install'] -[0.408s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'ignore' -[0.409s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'ignore_ament_install' -[0.409s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extensions ['colcon_pkg'] -[0.409s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'colcon_pkg' -[0.409s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extensions ['colcon_meta'] -[0.409s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'colcon_meta' -[0.409s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extensions ['ros'] -[0.409s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'ros' -[0.409s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extensions ['cmake', 'python'] -[0.409s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'cmake' -[0.409s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'python' -[0.409s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extensions ['python_setup_py'] -[0.409s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'python_setup_py' -[0.409s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extensions ['ignore', 'ignore_ament_install'] -[0.409s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'ignore' -[0.409s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'ignore_ament_install' -[0.409s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extensions ['colcon_pkg'] -[0.409s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'colcon_pkg' -[0.409s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extensions ['colcon_meta'] -[0.409s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'colcon_meta' -[0.409s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extensions ['ros'] -[0.409s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'ros' -[0.409s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extensions ['cmake', 'python'] -[0.409s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'cmake' -[0.410s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'python' -[0.410s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extensions ['python_setup_py'] -[0.410s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'python_setup_py' -[0.410s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extensions ['ignore', 'ignore_ament_install'] -[0.410s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'ignore' -[0.410s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'ignore_ament_install' -[0.410s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extensions ['colcon_pkg'] -[0.410s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'colcon_pkg' -[0.410s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extensions ['colcon_meta'] -[0.410s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'colcon_meta' -[0.410s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extensions ['ros'] -[0.410s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'ros' -[0.410s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extensions ['cmake', 'python'] -[0.410s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'cmake' -[0.410s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'python' -[0.410s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extensions ['python_setup_py'] -[0.410s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'python_setup_py' -[0.410s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extensions ['ignore', 'ignore_ament_install'] -[0.411s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'ignore' -[0.411s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'ignore_ament_install' -[0.411s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extensions ['colcon_pkg'] -[0.411s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'colcon_pkg' -[0.411s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extensions ['colcon_meta'] -[0.411s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'colcon_meta' -[0.411s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extensions ['ros'] -[0.411s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'ros' -[0.411s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extensions ['cmake', 'python'] -[0.411s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'cmake' -[0.411s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'python' -[0.411s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extensions ['python_setup_py'] -[0.411s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'python_setup_py' -[0.411s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extensions ['ignore', 'ignore_ament_install'] -[0.411s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'ignore' -[0.411s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'ignore_ament_install' -[0.411s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extensions ['colcon_pkg'] -[0.411s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'colcon_pkg' -[0.411s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extensions ['colcon_meta'] -[0.411s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'colcon_meta' -[0.411s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extensions ['ros'] -[0.411s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'ros' -[0.411s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extensions ['cmake', 'python'] -[0.411s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'cmake' -[0.412s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'python' -[0.412s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extensions ['python_setup_py'] -[0.412s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'python_setup_py' -[0.412s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extensions ['ignore', 'ignore_ament_install'] -[0.412s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'ignore' -[0.412s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'ignore_ament_install' -[0.412s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extensions ['colcon_pkg'] -[0.412s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'colcon_pkg' -[0.412s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extensions ['colcon_meta'] -[0.412s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'colcon_meta' -[0.412s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extensions ['ros'] -[0.412s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'ros' -[0.412s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extensions ['cmake', 'python'] -[0.412s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'cmake' -[0.412s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'python' -[0.412s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extensions ['python_setup_py'] -[0.412s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'python_setup_py' -[0.413s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extensions ['ignore', 'ignore_ament_install'] -[0.413s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'ignore' -[0.413s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'ignore_ament_install' -[0.413s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extensions ['colcon_pkg'] -[0.413s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'colcon_pkg' -[0.413s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extensions ['colcon_meta'] -[0.413s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'colcon_meta' -[0.413s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extensions ['ros'] -[0.413s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'ros' -[0.413s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extensions ['cmake', 'python'] -[0.413s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'cmake' -[0.413s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'python' -[0.413s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extensions ['python_setup_py'] -[0.413s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'python_setup_py' -[0.413s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extensions ['ignore', 'ignore_ament_install'] -[0.413s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'ignore' -[0.413s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'ignore_ament_install' -[0.413s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extensions ['colcon_pkg'] -[0.413s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'colcon_pkg' -[0.413s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extensions ['colcon_meta'] -[0.413s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'colcon_meta' -[0.414s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extensions ['ros'] -[0.414s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'ros' -[0.414s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extensions ['cmake', 'python'] -[0.414s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'cmake' -[0.414s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'python' -[0.414s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extensions ['python_setup_py'] -[0.414s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'python_setup_py' -[0.414s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extensions ['ignore', 'ignore_ament_install'] -[0.414s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'ignore' -[0.414s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'ignore_ament_install' -[0.414s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extensions ['colcon_pkg'] -[0.414s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'colcon_pkg' -[0.414s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extensions ['colcon_meta'] -[0.414s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'colcon_meta' -[0.414s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extensions ['ros'] -[0.414s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'ros' -[0.414s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extensions ['cmake', 'python'] -[0.414s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'cmake' -[0.414s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'python' -[0.414s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extensions ['python_setup_py'] -[0.414s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'python_setup_py' -[0.415s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extensions ['ignore', 'ignore_ament_install'] -[0.415s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'ignore' -[0.415s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'ignore_ament_install' -[0.415s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extensions ['colcon_pkg'] -[0.415s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'colcon_pkg' -[0.415s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extensions ['colcon_meta'] -[0.415s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'colcon_meta' -[0.415s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extensions ['ros'] -[0.415s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'ros' -[0.415s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extensions ['cmake', 'python'] -[0.415s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'cmake' -[0.415s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'python' -[0.415s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extensions ['python_setup_py'] -[0.415s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'python_setup_py' -[0.415s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extensions ['ignore', 'ignore_ament_install'] -[0.415s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'ignore' -[0.415s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'ignore_ament_install' -[0.415s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extensions ['colcon_pkg'] -[0.415s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'colcon_pkg' -[0.415s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extensions ['colcon_meta'] -[0.416s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'colcon_meta' -[0.416s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extensions ['ros'] -[0.416s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'ros' -[0.416s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extensions ['cmake', 'python'] -[0.416s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'cmake' -[0.416s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'python' -[0.416s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extensions ['python_setup_py'] -[0.416s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'python_setup_py' -[0.416s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extensions ['ignore', 'ignore_ament_install'] -[0.416s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'ignore' -[0.416s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'ignore_ament_install' -[0.416s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extensions ['colcon_pkg'] -[0.416s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'colcon_pkg' -[0.416s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extensions ['colcon_meta'] -[0.416s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'colcon_meta' -[0.416s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extensions ['ros'] -[0.416s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'ros' -[0.416s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extensions ['cmake', 'python'] -[0.416s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'cmake' -[0.416s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'python' -[0.416s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extensions ['python_setup_py'] -[0.416s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'python_setup_py' -[0.417s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extensions ['ignore', 'ignore_ament_install'] -[0.417s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'ignore' -[0.417s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'ignore_ament_install' -[0.417s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extensions ['colcon_pkg'] -[0.417s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'colcon_pkg' -[0.417s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extensions ['colcon_meta'] -[0.417s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'colcon_meta' -[0.417s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extensions ['ros'] -[0.417s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'ros' -[0.417s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extensions ['cmake', 'python'] -[0.417s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'cmake' -[0.417s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'python' -[0.417s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extensions ['python_setup_py'] -[0.417s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'python_setup_py' -[0.417s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extensions ['ignore', 'ignore_ament_install'] -[0.417s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'ignore' -[0.417s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'ignore_ament_install' -[0.418s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extensions ['colcon_pkg'] -[0.418s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'colcon_pkg' -[0.418s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extensions ['colcon_meta'] -[0.418s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'colcon_meta' -[0.418s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extensions ['ros'] -[0.418s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'ros' -[0.418s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extensions ['cmake', 'python'] -[0.418s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'cmake' -[0.418s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'python' -[0.418s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extensions ['python_setup_py'] -[0.418s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'python_setup_py' -[0.418s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extensions ['ignore', 'ignore_ament_install'] -[0.418s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'ignore' -[0.418s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'ignore_ament_install' -[0.418s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extensions ['colcon_pkg'] -[0.418s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'colcon_pkg' -[0.418s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extensions ['colcon_meta'] -[0.418s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'colcon_meta' -[0.418s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extensions ['ros'] -[0.418s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'ros' -[0.418s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extensions ['cmake', 'python'] -[0.418s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'cmake' -[0.418s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'python' -[0.419s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extensions ['python_setup_py'] -[0.419s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'python_setup_py' -[0.419s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extensions ['ignore', 'ignore_ament_install'] -[0.419s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'ignore' -[0.419s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'ignore_ament_install' -[0.419s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extensions ['colcon_pkg'] -[0.419s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'colcon_pkg' -[0.419s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extensions ['colcon_meta'] -[0.419s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'colcon_meta' -[0.419s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extensions ['ros'] -[0.419s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'ros' -[0.419s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extensions ['cmake', 'python'] -[0.419s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'cmake' -[0.419s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'python' -[0.419s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extensions ['python_setup_py'] -[0.419s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'python_setup_py' -[0.419s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extensions ['ignore', 'ignore_ament_install'] -[0.420s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'ignore' -[0.420s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'ignore_ament_install' -[0.420s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extensions ['colcon_pkg'] -[0.420s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'colcon_pkg' -[0.420s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extensions ['colcon_meta'] -[0.420s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'colcon_meta' -[0.420s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extensions ['ros'] -[0.420s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'ros' -[0.420s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extensions ['cmake', 'python'] -[0.420s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'cmake' -[0.420s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'python' -[0.420s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extensions ['python_setup_py'] -[0.420s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'python_setup_py' -[0.420s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extensions ['ignore', 'ignore_ament_install'] -[0.420s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'ignore' -[0.420s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'ignore_ament_install' -[0.420s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extensions ['colcon_pkg'] -[0.420s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'colcon_pkg' -[0.420s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extensions ['colcon_meta'] -[0.420s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'colcon_meta' -[0.420s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extensions ['ros'] -[0.420s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'ros' -[0.421s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extensions ['cmake', 'python'] -[0.421s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'cmake' -[0.421s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'python' -[0.421s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extensions ['python_setup_py'] -[0.421s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'python_setup_py' -[0.421s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extensions ['ignore', 'ignore_ament_install'] -[0.421s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'ignore' -[0.421s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'ignore_ament_install' -[0.421s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extensions ['colcon_pkg'] -[0.421s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'colcon_pkg' -[0.421s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extensions ['colcon_meta'] -[0.421s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'colcon_meta' -[0.421s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extensions ['ros'] -[0.421s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'ros' -[0.421s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extensions ['cmake', 'python'] -[0.421s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'cmake' -[0.421s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'python' -[0.421s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extensions ['python_setup_py'] -[0.421s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'python_setup_py' -[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extensions ['ignore', 'ignore_ament_install'] -[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'ignore' -[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'ignore_ament_install' -[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extensions ['colcon_pkg'] -[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'colcon_pkg' -[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extensions ['colcon_meta'] -[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'colcon_meta' -[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extensions ['ros'] -[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'ros' -[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extensions ['cmake', 'python'] -[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'cmake' -[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'python' -[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extensions ['python_setup_py'] -[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'python_setup_py' -[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extensions ['ignore', 'ignore_ament_install'] -[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'ignore' -[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'ignore_ament_install' -[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extensions ['colcon_pkg'] -[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'colcon_pkg' -[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extensions ['colcon_meta'] -[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'colcon_meta' -[0.423s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extensions ['ros'] -[0.423s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'ros' -[0.423s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extensions ['cmake', 'python'] -[0.423s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'cmake' -[0.423s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'python' -[0.423s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extensions ['python_setup_py'] -[0.423s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'python_setup_py' -[0.423s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extensions ['ignore', 'ignore_ament_install'] -[0.423s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'ignore' -[0.423s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'ignore_ament_install' -[0.423s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extensions ['colcon_pkg'] -[0.423s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'colcon_pkg' -[0.423s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extensions ['colcon_meta'] -[0.423s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'colcon_meta' -[0.423s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extensions ['ros'] -[0.423s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'ros' -[0.423s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extensions ['cmake', 'python'] -[0.423s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'cmake' -[0.423s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'python' -[0.423s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extensions ['python_setup_py'] -[0.423s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'python_setup_py' -[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extensions ['ignore', 'ignore_ament_install'] -[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'ignore' -[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'ignore_ament_install' -[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extensions ['colcon_pkg'] -[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'colcon_pkg' -[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extensions ['colcon_meta'] -[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'colcon_meta' -[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extensions ['ros'] -[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'ros' -[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extensions ['cmake', 'python'] -[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'cmake' -[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'python' -[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extensions ['python_setup_py'] -[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'python_setup_py' -[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extensions ['ignore', 'ignore_ament_install'] -[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'ignore' -[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'ignore_ament_install' -[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extensions ['colcon_pkg'] -[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'colcon_pkg' -[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extensions ['colcon_meta'] -[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'colcon_meta' -[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extensions ['ros'] -[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'ros' -[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extensions ['cmake', 'python'] -[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'cmake' -[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'python' -[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extensions ['python_setup_py'] -[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'python_setup_py' -[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extensions ['ignore', 'ignore_ament_install'] -[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'ignore' -[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'ignore_ament_install' -[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extensions ['colcon_pkg'] -[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'colcon_pkg' -[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extensions ['colcon_meta'] -[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'colcon_meta' -[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extensions ['ros'] -[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'ros' -[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extensions ['cmake', 'python'] -[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'cmake' -[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'python' -[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extensions ['python_setup_py'] -[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'python_setup_py' -[0.426s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extensions ['ignore', 'ignore_ament_install'] -[0.426s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'ignore' -[0.426s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'ignore_ament_install' -[0.426s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extensions ['colcon_pkg'] -[0.426s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'colcon_pkg' -[0.426s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extensions ['colcon_meta'] -[0.426s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'colcon_meta' -[0.426s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extensions ['ros'] -[0.426s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'ros' -[0.426s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extensions ['cmake', 'python'] -[0.426s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'cmake' -[0.426s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'python' -[0.426s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extensions ['python_setup_py'] -[0.426s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'python_setup_py' -[0.426s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extensions ['ignore', 'ignore_ament_install'] -[0.426s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'ignore' -[0.426s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'ignore_ament_install' -[0.426s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extensions ['colcon_pkg'] -[0.426s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'colcon_pkg' -[0.427s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extensions ['colcon_meta'] -[0.427s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'colcon_meta' -[0.427s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extensions ['ros'] -[0.427s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'ros' -[0.427s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extensions ['cmake', 'python'] -[0.427s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'cmake' -[0.427s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'python' -[0.427s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extensions ['python_setup_py'] -[0.427s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'python_setup_py' -[0.427s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extensions ['ignore', 'ignore_ament_install'] -[0.427s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'ignore' -[0.427s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'ignore_ament_install' -[0.427s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extensions ['colcon_pkg'] -[0.427s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'colcon_pkg' -[0.427s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extensions ['colcon_meta'] -[0.427s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'colcon_meta' -[0.427s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extensions ['ros'] -[0.427s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'ros' -[0.427s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extensions ['cmake', 'python'] -[0.427s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'cmake' -[0.427s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'python' -[0.427s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extensions ['python_setup_py'] -[0.427s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'python_setup_py' -[0.428s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extensions ['ignore', 'ignore_ament_install'] -[0.428s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'ignore' -[0.428s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'ignore_ament_install' -[0.428s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extensions ['colcon_pkg'] -[0.428s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'colcon_pkg' -[0.428s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extensions ['colcon_meta'] -[0.428s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'colcon_meta' -[0.428s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extensions ['ros'] -[0.428s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'ros' -[0.428s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extensions ['cmake', 'python'] -[0.428s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'cmake' -[0.428s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'python' -[0.428s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extensions ['python_setup_py'] -[0.428s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'python_setup_py' -[0.428s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extensions ['ignore', 'ignore_ament_install'] -[0.428s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'ignore' -[0.428s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'ignore_ament_install' -[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extensions ['colcon_pkg'] -[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'colcon_pkg' -[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extensions ['colcon_meta'] -[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'colcon_meta' -[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extensions ['ros'] -[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'ros' -[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extensions ['cmake', 'python'] -[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'cmake' -[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'python' -[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extensions ['python_setup_py'] -[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'python_setup_py' -[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extensions ['ignore', 'ignore_ament_install'] -[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'ignore' -[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'ignore_ament_install' -[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extensions ['colcon_pkg'] -[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'colcon_pkg' -[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extensions ['colcon_meta'] -[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'colcon_meta' -[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extensions ['ros'] -[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'ros' -[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extensions ['cmake', 'python'] -[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'cmake' -[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'python' -[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extensions ['python_setup_py'] -[0.430s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'python_setup_py' -[0.430s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extensions ['ignore', 'ignore_ament_install'] -[0.430s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'ignore' -[0.430s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'ignore_ament_install' -[0.430s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extensions ['colcon_pkg'] -[0.430s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'colcon_pkg' -[0.430s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extensions ['colcon_meta'] -[0.430s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'colcon_meta' -[0.430s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extensions ['ros'] -[0.430s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'ros' -[0.430s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extensions ['cmake', 'python'] -[0.430s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'cmake' -[0.430s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'python' -[0.430s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extensions ['python_setup_py'] -[0.430s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'python_setup_py' -[0.430s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extensions ['ignore', 'ignore_ament_install'] -[0.430s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'ignore' -[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'ignore_ament_install' -[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extensions ['colcon_pkg'] -[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'colcon_pkg' -[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extensions ['colcon_meta'] -[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'colcon_meta' -[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extensions ['ros'] -[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'ros' -[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extensions ['cmake', 'python'] -[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'cmake' -[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'python' -[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extensions ['python_setup_py'] -[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'python_setup_py' -[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extensions ['ignore', 'ignore_ament_install'] -[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'ignore' -[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'ignore_ament_install' -[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extensions ['colcon_pkg'] -[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'colcon_pkg' -[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extensions ['colcon_meta'] -[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'colcon_meta' -[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extensions ['ros'] -[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'ros' -[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extensions ['cmake', 'python'] -[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'cmake' -[0.432s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'python' -[0.432s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extensions ['python_setup_py'] -[0.432s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'python_setup_py' -[0.432s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extensions ['ignore', 'ignore_ament_install'] -[0.432s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'ignore' -[0.432s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'ignore_ament_install' -[0.432s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extensions ['colcon_pkg'] -[0.432s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'colcon_pkg' -[0.432s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extensions ['colcon_meta'] -[0.432s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'colcon_meta' -[0.432s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extensions ['ros'] -[0.432s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'ros' -[0.432s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extensions ['cmake', 'python'] -[0.432s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'cmake' -[0.432s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'python' -[0.432s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extensions ['python_setup_py'] -[0.432s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'python_setup_py' -[0.432s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extensions ['ignore', 'ignore_ament_install'] -[0.432s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'ignore' -[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'ignore_ament_install' -[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extensions ['colcon_pkg'] -[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'colcon_pkg' -[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extensions ['colcon_meta'] -[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'colcon_meta' -[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extensions ['ros'] -[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'ros' -[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extensions ['cmake', 'python'] -[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'cmake' -[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'python' -[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extensions ['python_setup_py'] -[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'python_setup_py' -[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extensions ['ignore', 'ignore_ament_install'] -[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'ignore' -[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'ignore_ament_install' -[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extensions ['colcon_pkg'] -[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'colcon_pkg' -[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extensions ['colcon_meta'] -[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'colcon_meta' -[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extensions ['ros'] -[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'ros' -[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extensions ['cmake', 'python'] -[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'cmake' -[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'python' -[0.434s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extensions ['python_setup_py'] -[0.434s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'python_setup_py' -[0.434s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extensions ['ignore', 'ignore_ament_install'] -[0.434s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'ignore' -[0.434s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'ignore_ament_install' -[0.434s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extensions ['colcon_pkg'] -[0.434s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'colcon_pkg' -[0.434s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extensions ['colcon_meta'] -[0.434s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'colcon_meta' -[0.434s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extensions ['ros'] -[0.434s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'ros' -[0.434s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extensions ['cmake', 'python'] -[0.434s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'cmake' -[0.434s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'python' -[0.434s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extensions ['python_setup_py'] -[0.434s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'python_setup_py' -[0.435s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extensions ['ignore', 'ignore_ament_install'] -[0.435s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'ignore' -[0.435s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'ignore_ament_install' -[0.435s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extensions ['colcon_pkg'] -[0.435s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'colcon_pkg' -[0.435s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extensions ['colcon_meta'] -[0.435s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'colcon_meta' -[0.435s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extensions ['ros'] -[0.435s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'ros' -[0.435s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extensions ['cmake', 'python'] -[0.435s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'cmake' -[0.435s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'python' -[0.435s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extensions ['python_setup_py'] -[0.435s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'python_setup_py' -[0.436s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extensions ['ignore', 'ignore_ament_install'] -[0.436s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'ignore' -[0.436s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'ignore_ament_install' -[0.436s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extensions ['colcon_pkg'] -[0.436s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'colcon_pkg' -[0.436s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extensions ['colcon_meta'] -[0.436s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'colcon_meta' -[0.436s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extensions ['ros'] -[0.436s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'ros' -[0.436s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extensions ['cmake', 'python'] -[0.436s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'cmake' -[0.436s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'python' -[0.436s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extensions ['python_setup_py'] -[0.436s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'python_setup_py' -[0.627s] DEBUG:colcon.colcon_core.package_identification:Package 'simulation/dronekit-python' with type 'python' and name 'dronekit' -[0.627s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extensions ['ignore', 'ignore_ament_install'] -[0.627s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'ignore' -[0.628s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'ignore_ament_install' -[0.628s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extensions ['colcon_pkg'] -[0.628s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'colcon_pkg' -[0.628s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extensions ['colcon_meta'] -[0.628s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'colcon_meta' -[0.628s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extensions ['ros'] -[0.628s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'ros' -[0.628s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extensions ['cmake', 'python'] -[0.628s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'cmake' -[0.628s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'python' -[0.628s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extensions ['python_setup_py'] -[0.628s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'python_setup_py' -[0.628s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extensions ['ignore', 'ignore_ament_install'] -[0.628s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'ignore' -[0.628s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'ignore_ament_install' -[0.628s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extensions ['colcon_pkg'] -[0.628s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'colcon_pkg' -[0.628s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extensions ['colcon_meta'] -[0.628s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'colcon_meta' -[0.628s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extensions ['ros'] -[0.628s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'ros' -[0.628s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extensions ['cmake', 'python'] -[0.628s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'cmake' -[0.628s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'python' -[0.628s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extensions ['python_setup_py'] -[0.629s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'python_setup_py' -[0.629s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extensions ['ignore', 'ignore_ament_install'] -[0.629s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'ignore' -[0.629s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'ignore_ament_install' -[0.629s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extensions ['colcon_pkg'] -[0.629s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'colcon_pkg' -[0.629s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extensions ['colcon_meta'] -[0.629s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'colcon_meta' -[0.629s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extensions ['ros'] -[0.629s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'ros' -[0.629s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extensions ['cmake', 'python'] -[0.629s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'cmake' -[0.629s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'python' -[0.629s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extensions ['python_setup_py'] -[0.629s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'python_setup_py' -[0.629s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extensions ['ignore', 'ignore_ament_install'] -[0.629s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'ignore' -[0.629s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'ignore_ament_install' -[0.630s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extensions ['colcon_pkg'] -[0.630s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'colcon_pkg' -[0.630s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extensions ['colcon_meta'] -[0.630s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'colcon_meta' -[0.630s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extensions ['ros'] -[0.630s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'ros' -[0.630s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extensions ['cmake', 'python'] -[0.630s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'cmake' -[0.630s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'python' -[0.630s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extensions ['python_setup_py'] -[0.630s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'python_setup_py' -[0.630s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) using defaults -[0.630s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) discover -[0.630s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) using defaults -[0.630s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) discover -[0.630s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) using defaults -[0.661s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'controls_bringup' in 'ros_ws/src/robot/autonomy/controls/controls_bringup' -[0.661s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'dronekit' in 'simulation/dronekit-python' -[0.661s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mav_msgs' in 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs' -[0.661s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mav_state_machine_msgs' in 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs' -[0.661s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mav_system_msgs' in 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs' -[0.661s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'pcl_conversions' in 'ros_ws/src/perception_pcl/pcl_conversions' -[0.661s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'px4_msgs' in 'ros_ws/src/robot/autonomy/controls/px4_msgs' -[0.661s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'robot_bringup' in 'ros_ws/src/robot/robot_bringup' -[0.662s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'vdb_mapping' in 'ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping' -[0.662s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'vdb_mapping_interfaces' in 'ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces' -[0.662s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mav_planning_msgs' in 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs' -[0.662s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'pcl_ros' in 'ros_ws/src/perception_pcl/pcl_ros' -[0.662s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'px4_ros_com' in 'ros_ws/src/robot/autonomy/controls/px4_ros_com' -[0.662s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'robot_interface' in 'ros_ws/src/robot/autonomy/controls/robot_interface' -[0.662s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'vdb_mapping_ros2' in 'ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2' -[0.662s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mav_comm' in 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm' -[0.662s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mavros_interface' in 'ros_ws/src/robot/autonomy/controls/mavros_interface' -[0.662s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'perception_pcl' in 'ros_ws/src/perception_pcl/perception_pcl' -[0.662s] Level 1:colcon.colcon_core.package_discovery:discover_packages(prefix_path) check parameters -[0.662s] Level 1:colcon.colcon_core.package_discovery:discover_packages(prefix_path) discover -[0.665s] DEBUG:colcon.colcon_installed_package_information.package_discovery:Found 18 installed packages in /root/AirStack/ros_ws/install -[0.667s] DEBUG:colcon.colcon_installed_package_information.package_discovery:Found 276 installed packages in /opt/ros/humble -[0.668s] Level 1:colcon.colcon_core.package_discovery:discover_packages(prefix_path) using defaults -[0.751s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'cmake_args' from command line to 'None' -[0.751s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'cmake_target' from command line to 'None' -[0.751s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'cmake_target_skip_unavailable' from command line to 'False' -[0.751s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'cmake_clean_cache' from command line to 'False' -[0.751s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'cmake_clean_first' from command line to 'False' -[0.751s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'cmake_force_configure' from command line to 'False' -[0.751s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'ament_cmake_args' from command line to 'None' -[0.751s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'catkin_cmake_args' from command line to 'None' -[0.751s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'catkin_skip_building_tests' from command line to 'False' -[0.751s] DEBUG:colcon.colcon_core.verb:Building package 'disparity_expansion' with the following arguments: {'ament_cmake_args': None, 'build_base': '/root/AirStack/build/disparity_expansion', 'catkin_cmake_args': None, 'catkin_skip_building_tests': False, 'cmake_args': None, 'cmake_clean_cache': False, 'cmake_clean_first': False, 'cmake_force_configure': False, 'cmake_target': None, 'cmake_target_skip_unavailable': False, 'install_base': '/root/AirStack/install/disparity_expansion', 'merge_install': False, 'path': '/root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion', 'symlink_install': False, 'test_result_base': None} -[0.751s] INFO:colcon.colcon_core.executor:Executing jobs using 'parallel' executor -[0.752s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete -[0.752s] INFO:colcon.colcon_ros.task.catkin.build:Building ROS package in '/root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion' with build type 'catkin' -[0.752s] INFO:colcon.colcon_cmake.task.cmake.build:Building CMake package in '/root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion' -[0.756s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_core.shell.bat': Not used on non-Windows systems -[0.756s] INFO:colcon.colcon_core.shell:Skip shell extension 'powershell' for command environment: Not usable outside of PowerShell -[0.756s] DEBUG:colcon.colcon_core.shell:Skip shell extension 'dsv' for command environment -[0.758s] WARNING:colcon.colcon_core.shell:The following packages are in the workspace but haven't been built: -- pcl_conversions -They are being used from the following locations instead: -- /root/AirStack/ros_ws/install/pcl_conversions -To suppress this warning ignore these packages in the workspace: ---packages-ignore pcl_conversions -[0.766s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoking command in '/root/AirStack/build/disparity_expansion': /usr/bin/cmake /root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion -DCATKIN_INSTALL_INTO_PREFIX_ROOT=0 -DCMAKE_INSTALL_PREFIX=/root/AirStack/install/disparity_expansion -[3.697s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoked command in '/root/AirStack/build/disparity_expansion' returned '0': /usr/bin/cmake /root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion -DCATKIN_INSTALL_INTO_PREFIX_ROOT=0 -DCMAKE_INSTALL_PREFIX=/root/AirStack/install/disparity_expansion -[3.700s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoking command in '/root/AirStack/build/disparity_expansion': /usr/bin/cmake --build /root/AirStack/build/disparity_expansion -- -j12 -l12 -[19.231s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoked command in '/root/AirStack/build/disparity_expansion' returned '0': /usr/bin/cmake --build /root/AirStack/build/disparity_expansion -- -j12 -l12 -[19.339s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoking command in '/root/AirStack/build/disparity_expansion': /usr/bin/cmake --install /root/AirStack/build/disparity_expansion -[19.355s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoked command in '/root/AirStack/build/disparity_expansion' returned '0': /usr/bin/cmake --install /root/AirStack/build/disparity_expansion -[19.401s] Level 1:colcon.colcon_core.shell:create_environment_hook('disparity_expansion', 'ros_package_path') -[19.402s] INFO:colcon.colcon_core.shell:Creating environment hook '/root/AirStack/install/disparity_expansion/share/disparity_expansion/hook/ros_package_path.ps1' -[19.402s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/root/AirStack/install/disparity_expansion/share/disparity_expansion/hook/ros_package_path.dsv' -[19.403s] INFO:colcon.colcon_core.shell:Creating environment hook '/root/AirStack/install/disparity_expansion/share/disparity_expansion/hook/ros_package_path.sh' -[19.404s] Level 1:colcon.colcon_core.shell:create_environment_hook('disparity_expansion', 'pkg_config_path') -[19.404s] INFO:colcon.colcon_core.shell:Creating environment hook '/root/AirStack/install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path.ps1' -[19.405s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/root/AirStack/install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path.dsv' -[19.405s] INFO:colcon.colcon_core.shell:Creating environment hook '/root/AirStack/install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path.sh' -[19.409s] Level 1:colcon.colcon_core.shell:create_environment_hook('disparity_expansion', 'pkg_config_path_multiarch') -[19.409s] INFO:colcon.colcon_core.shell:Creating environment hook '/root/AirStack/install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path_multiarch.ps1' -[19.410s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/root/AirStack/install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path_multiarch.dsv' -[19.410s] INFO:colcon.colcon_core.shell:Creating environment hook '/root/AirStack/install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path_multiarch.sh' -[19.411s] Level 1:colcon.colcon_core.environment:create_environment_scripts_only(disparity_expansion) -[19.417s] Level 1:colcon.colcon_core.environment:checking '/root/AirStack/install/disparity_expansion' for CMake module files -[19.418s] Level 1:colcon.colcon_core.environment:checking '/root/AirStack/install/disparity_expansion' for CMake config files -[19.418s] Level 1:colcon.colcon_core.environment:checking '/root/AirStack/install/disparity_expansion/bin' -[19.418s] Level 1:colcon.colcon_core.shell:create_environment_hook('disparity_expansion', 'path') -[19.418s] INFO:colcon.colcon_core.shell:Creating environment hook '/root/AirStack/install/disparity_expansion/share/disparity_expansion/hook/path.ps1' -[19.419s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/root/AirStack/install/disparity_expansion/share/disparity_expansion/hook/path.dsv' -[19.419s] INFO:colcon.colcon_core.shell:Creating environment hook '/root/AirStack/install/disparity_expansion/share/disparity_expansion/hook/path.sh' -[19.419s] Level 1:colcon.colcon_core.environment:checking '/root/AirStack/install/disparity_expansion/lib/pkgconfig/disparity_expansion.pc' -[19.419s] Level 1:colcon.colcon_core.environment:checking '/root/AirStack/install/disparity_expansion/lib/python3.10/site-packages' -[19.420s] Level 1:colcon.colcon_core.environment:checking '/root/AirStack/install/disparity_expansion/bin' -[19.420s] Level 1:colcon.colcon_core.shell:create_environment_hook('disparity_expansion', 'pythonscriptspath') -[19.420s] INFO:colcon.colcon_core.shell:Creating environment hook '/root/AirStack/install/disparity_expansion/share/disparity_expansion/hook/pythonscriptspath.ps1' -[19.420s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/root/AirStack/install/disparity_expansion/share/disparity_expansion/hook/pythonscriptspath.dsv' -[19.421s] INFO:colcon.colcon_core.shell:Creating environment hook '/root/AirStack/install/disparity_expansion/share/disparity_expansion/hook/pythonscriptspath.sh' -[19.421s] INFO:colcon.colcon_core.shell:Creating package script '/root/AirStack/install/disparity_expansion/share/disparity_expansion/package.ps1' -[19.422s] INFO:colcon.colcon_core.shell:Creating package descriptor '/root/AirStack/install/disparity_expansion/share/disparity_expansion/package.dsv' -[19.423s] INFO:colcon.colcon_core.shell:Creating package script '/root/AirStack/install/disparity_expansion/share/disparity_expansion/package.sh' -[19.424s] INFO:colcon.colcon_core.shell:Creating package script '/root/AirStack/install/disparity_expansion/share/disparity_expansion/package.bash' -[19.424s] INFO:colcon.colcon_core.shell:Creating package script '/root/AirStack/install/disparity_expansion/share/disparity_expansion/package.zsh' -[19.425s] Level 1:colcon.colcon_core.environment:create_file_with_runtime_dependencies(/root/AirStack/install/disparity_expansion/share/colcon-core/packages/disparity_expansion) -[19.425s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:closing loop -[19.426s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:loop closed -[19.426s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete finished with '0' -[19.426s] DEBUG:colcon.colcon_core.event_reactor:joining thread -[19.434s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.notify_send': Could not find 'notify-send' -[19.434s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.terminal_notifier': Not used on non-Darwin systems -[19.434s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.win32': Not used on non-Windows systems -[19.434s] INFO:colcon.colcon_notification.desktop_notification:Sending desktop notification using 'notify2' -[19.438s] DEBUG:colcon.colcon_notification.desktop_notification.notify2:Failed to initialize notify2: org.freedesktop.DBus.Error.Spawn.ExecFailed: /usr/bin/dbus-launch terminated abnormally without any error message -[19.438s] DEBUG:colcon.colcon_core.event_reactor:joined thread -[19.439s] INFO:colcon.colcon_core.shell:Creating prefix script '/root/AirStack/install/local_setup.ps1' -[19.441s] INFO:colcon.colcon_core.shell:Creating prefix util module '/root/AirStack/install/_local_setup_util_ps1.py' -[19.443s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/root/AirStack/install/setup.ps1' -[19.445s] INFO:colcon.colcon_core.shell:Creating prefix script '/root/AirStack/install/local_setup.sh' -[19.445s] INFO:colcon.colcon_core.shell:Creating prefix util module '/root/AirStack/install/_local_setup_util_sh.py' -[19.446s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/root/AirStack/install/setup.sh' -[19.448s] INFO:colcon.colcon_core.shell:Creating prefix script '/root/AirStack/install/local_setup.bash' -[19.448s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/root/AirStack/install/setup.bash' -[19.450s] INFO:colcon.colcon_core.shell:Creating prefix script '/root/AirStack/install/local_setup.zsh' -[19.450s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/root/AirStack/install/setup.zsh' diff --git a/log/latest b/log/latest deleted file mode 120000 index b57d247c7..000000000 --- a/log/latest +++ /dev/null @@ -1 +0,0 @@ -latest_build \ No newline at end of file diff --git a/log/latest_build b/log/latest_build deleted file mode 120000 index c90a01afe..000000000 --- a/log/latest_build +++ /dev/null @@ -1 +0,0 @@ -build_2024-07-31_12-58-12 \ No newline at end of file diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_map_representation/include/disparity_map_representation/disparity_map_representation.h b/ros_ws/src/robot/autonomy/planning/local/disparity_map_representation/include/disparity_map_representation/disparity_map_representation.h deleted file mode 100644 index b2a5e93db..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_map_representation/include/disparity_map_representation/disparity_map_representation.h +++ /dev/null @@ -1,120 +0,0 @@ -#ifndef _DISPARITY_MAP_REPRESENTATION_ -#define _DISPARITY_MAP_REPRESENTATION_ -/* -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -// #include -#include -#include -#include -//#include -*/ -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -class DisparityMapRepresentation : public MapRepresentation { - private: - nabla::disparity_graph::disparity_graph* disp_graph; - - visualization_msgs::msg::MarkerArray markers; - visualization_msgs::msg::Marker points; - - // tf::TransformListener* listener; - std::shared_ptr listener; - - // ros::Publisher debug_pub; - rclcpp::Publisher::SharedPtr debug_pub; - - int obstacle_check_points; - double obstacle_check_radius; - - public: - DisparityMapRepresentation(); - virtual double distance_to_obstacle(geometry_msgs::msg::PoseStamped pose, - tf2::Vector3 direction); - virtual void publish_debug(); - - // virtual std::vector< std::vector > - // get_values(std::vector trajectories); - virtual std::vector > get_values( - std::vector > trajectories); -}; - -/* -struct ImagePair{ - cv_bridge::CvImagePtr foreground; - cv_bridge::CvImagePtr background; - - tf::StampedTransform target_frame_to_image_tf; -}; - -class DisparityMapRepresentation { -private: - std::string target_frame; - bool got_camera_info; - double fx, fy, cx, cy, baseline; - - nav_msgs::Odometry odom; - bool got_odom; - double distance_threshold, angle_threshold; - int buffer_size; - - std::vector image_pairs; - - cv::Mat* debug_image; - - // subscribers - message_filters::Subscriber* foreground_disparity_sub; - message_filters::Subscriber* background_disparity_sub; - message_filters::TimeSynchronizer* fg_bg_sync; - ros::Subscriber camera_info_sub, odom_sub; - tf::TransformListener* listener; - - // publishers - ros::Publisher debug_pub; - -public: - DisparityMapRepresentation(ros::NodeHandle* nh); - void fg_bg_disparity_callback(const sensor_msgs::ImageConstPtr& foreground, - const sensor_msgs::ImageConstPtr& background); - void camera_info_callback(sensor_msgs::CameraInfo info); - void odom_callback(nav_msgs::Odometry odom); - - void publish_debug(); - - bool should_add_image_pair(); - - bool is_obstacle(geometry_msgs::PoseStamped pose, double threshold); -}; -*/ -#endif From 40f072a7ca02bdf4b4df3d64d238760b690e0323 Mon Sep 17 00:00:00 2001 From: Andrew Jong Date: Tue, 27 Aug 2024 12:23:50 -0400 Subject: [PATCH 38/50] Ignore ROS2tf2 frames pdf --- .gitignore | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 3c7252939..067c81d30 100644 --- a/.gitignore +++ b/.gitignore @@ -47,8 +47,11 @@ qtcreator-* # Emacs .#* -# Catkin custom files -CATKIN_IGNORE +# ROS2 custom files +COLCON_IGNORE +frames_*.gv +frames_*.pdf + nucleus_token.txt From 0373b0417bf2e25df791bdb33d27e52b821d74df Mon Sep 17 00:00:00 2001 From: Andrew Jong Date: Tue, 27 Aug 2024 12:24:17 -0400 Subject: [PATCH 39/50] rosdep init and update before install; allow fail silently --- docker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 3634b3fa7..2a0dab863 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -49,7 +49,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ # Package dependencies # perform ROS dependency installation for our workspace. COPY ros_ws/src /tmp/ros_ws/src -RUN rosdep install --from-paths /tmp/ros_ws/src --ignore-src -r -y && rm -rf /tmp/ros_ws +RUN rosdep init && rosdep update && rosdep install --from-paths /tmp/ros_ws/src --ignore-src -r -y && rm -rf /tmp/ros_ws || echo "Some ROS dependencies installation failed" # Install Gazebo Harmonic RUN apt-get update && apt-get install -y lsb-release gnupg From c6542dec78a76f3902c1eff55712a6e2603a6102 Mon Sep 17 00:00:00 2001 From: Andrew Jong Date: Tue, 27 Aug 2024 12:24:48 -0400 Subject: [PATCH 40/50] Fix docker-compose.yaml to mount user's bash history, NOT commit bash history to github. That'd be a security risk --- docker/extras/bash_history | 118 ------------------------------------- 1 file changed, 118 deletions(-) delete mode 100644 docker/extras/bash_history diff --git a/docker/extras/bash_history b/docker/extras/bash_history deleted file mode 100644 index abee8909d..000000000 --- a/docker/extras/bash_history +++ /dev/null @@ -1,118 +0,0 @@ -ping 8.8.8.8 -cd /extras/ -ls -./QGroundControl.AppImage -apt install libfuse-dev -./QGroundControl.AppImage -modprobe fuse -apt install modprobe -apt install mod -apt install kmod -modprobe fuse -./QGroundControl.AppImage -ls /root/.bash_history -cat /root/.bash_history -cd /extras/ -ls -ls AscentAeroSystemsSITLPackage -cd AirLab-Autonomy-Stack/ -ls -cd simulation/ -ls -cd AscentAeroSystems/ -ls -./launch_ascent_sitl.bash -ls -./launch_ascent_sitl.bash -pip3 install PyYAML mavproxy --user -./launch_ascent_sitl.bash -find / -name *mavproxy* -find / -name *mavproxy.py* -./launch_ascent_sitl.bash -mavproxy.py -apt install emacs -emacs launch_ascent_sitl.bash -emacs launch_ascent_sitl.bash -nw -find / -name *mavproxy.py* -fg -./launch_ascent_sitl.bash -apt install libgstgl-dev -apt install libgstgl-1.0-dev -apt install libgstgl-1-dev -apt install libgstgl-1-0-dev -apt install libgstgl-1-0 -apt install libgstgl-1.0 -apt install libgstreamer-gl1.0-0 -./launch_ascent_sitl.bash -sudo lsof -i -P -n | grep LISTEN -lsof -i -P -n | grep LISTEN -apt install lsof -lsof -i -P -n | grep LISTEN -kill -9 5519 -lsof -i -P -n | grep LISTEN -./launch_ascent_sitl.bash -lsof -i -P -n | grep LISTEN -./launch_ascent_sitl.bash -ls /isaac-sim/exts/omni.isaac.ros2_bridge/humble/lib/ -./launch_ascent_sitl.bash -cat /root/.bash_history -ls /extras/ -ls /root/.local/share/ov/data/ -find -find / -name "isaac-sim-4.0.0" -find / -name "isaac" -ls -cat runapp.sh -cat isaac-sim.sh -find / -name "python.sh" -/isaac-sim/kit/python.sh -m pip install scipy -/isaac-sim/kit/python.sh -m pip install --editable ./dronekit-python -sudo apt-get install python3-dev python3-opencv python3-wxgtk4.0 python3-pip python3-matplotlib python3-lxml python3-pygame -apt-get install python3-dev python3-opencv python3-wxgtk4.0 python3-pip python3-matplotlib python3-lxml python3-pygame -apt update -apt-get install python3-dev python3-opencv python3-wxgtk4.0 python3-pip python3-matplotlib python3-lxml python3-pygame -ls /extras/ -pip3 install PyYAML mavproxy --user -/isaac-sim/kit/python.sh -m pip install --editable dronekit-python -/isaac-sim/kit/python.sh launch_sim.py -cd /extras/AirLab-Autonomy-Stack/simulation/ -/isaac-sim/kit/python.sh launch_sim.py -ls -ls dronekit-python/ -/isaac-sim/kit/python.sh -m pip install --editable ./dronekit-python -/isaac-sim/kit/python.sh launch_sim.py -cat launch_sim.py -find / -name "python.sh" -/isaac-sim/python.sh launch_sim.py -locale -sudo apt update && sudo apt install locales -apt update && apt install locales -locale-gen en_US en_US.UTF-8 -update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 -export LANG=en_US.UTF-8 -locale -apt install software-properties-common -add-apt-repository universe -apt update && apt install curl -y -curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg - -curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg -echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null - -echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | tee /etc/apt/sources.list.d/ros2.list > /dev/null -apt update -apt install ros-humble-desktop -apt install ros-dev-tools -/isaac-sim/python.sh launch_sim.py -/isaac-sim/runapp.sh -export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/isaac-sim/exts/omni.isaac.ros2_bridge/humble/lib -export RMW_IMPLEMENTATION=rmw_fastrtps_cpp -/isaac-sim/runapp.sh -/isaac-sim/python.sh launch_sim.py -cat /root/.bash_history -shopt -s histappend -PROMPT_COMMAND="history -a;$PROMPT_COMMAND" -history -a -cat /root/.bash_history -cat /root/.bash_history | grep apt -cat /root/.bash_history | grep export From 615e417f44de7227a3fecee03483820733337dbb Mon Sep 17 00:00:00 2001 From: Andrew Jong Date: Tue, 27 Aug 2024 12:25:33 -0400 Subject: [PATCH 41/50] Remove old depth_to_disparity_package --- .../depth_to_disparity_package/__init__.py | 0 .../depth_to_disparity.py | 121 ------------------ .../depth_to_disparity_package/package.xml | 18 --- .../resource/depth_to_disparity_package | 0 .../depth_to_disparity_package/setup.cfg | 4 - .../local/depth_to_disparity_package/setup.py | 24 ---- .../test/test_copyright.py | 25 ---- .../test/test_flake8.py | 25 ---- .../test/test_pep257.py | 23 ---- 9 files changed, 240 deletions(-) delete mode 100644 ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/depth_to_disparity_package/__init__.py delete mode 100644 ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/depth_to_disparity_package/depth_to_disparity.py delete mode 100644 ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/package.xml delete mode 100644 ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/resource/depth_to_disparity_package delete mode 100644 ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/setup.cfg delete mode 100644 ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/setup.py delete mode 100644 ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/test/test_copyright.py delete mode 100644 ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/test/test_flake8.py delete mode 100644 ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/test/test_pep257.py diff --git a/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/depth_to_disparity_package/__init__.py b/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/depth_to_disparity_package/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/depth_to_disparity_package/depth_to_disparity.py b/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/depth_to_disparity_package/depth_to_disparity.py deleted file mode 100644 index 82572fb81..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/depth_to_disparity_package/depth_to_disparity.py +++ /dev/null @@ -1,121 +0,0 @@ -import rclpy -from rclpy.node import Node -from sensor_msgs.msg import Image -from stereo_msgs.msg import DisparityImage -from cv_bridge import CvBridge -import cv2 -import numpy as np - - -def visualize_disparity_image(disparity_image): - if disparity_image.size == 0: - raise ValueError("Disparity image is empty.") - cv2.imshow("Disparity Image", disparity_image) - cv2.waitKey(1) - - -def visualize_depth_image(depth_image): - if depth_image.size == 0: - raise ValueError("Depth image is empty.") - depth_image_normalized = cv2.normalize(depth_image, None, 0, 255, cv2.NORM_MINMAX) - depth_image_uint8 = np.uint8(depth_image_normalized) - cv2.imshow("Depth Image", depth_image_uint8) - cv2.waitKey(1) - - -class DepthToDisparityNode(Node): - def __init__(self): - super().__init__("depth_to_disparity_node") - - # Declare and get parameters - self.declare_parameter("baseline", 0.25) # Baseline in meters - self.declare_parameter("focal_length", 554.256251) - - self.baseline = ( - self.get_parameter("baseline").get_parameter_value().double_value - ) - self.focal_length = ( - self.get_parameter("focal_length").get_parameter_value().double_value - ) - - self.get_logger().info(f"Baseline: {self.baseline} meters") - self.get_logger().info(f"Focal length (fx): {self.focal_length} pixels") - - self.bridge = CvBridge() - - self.subscription = self.create_subscription( - Image, "/robot1/perception/depth", self.listener_callback, 10 - ) - self.publisher = self.create_publisher( - DisparityImage, "/disparity/image_raw", 10 - ) - - def listener_callback(self, msg): - try: - # Convert the ROS Image message to OpenCV format - cv_image = self.bridge.imgmsg_to_cv2(msg, desired_encoding="32FC1") - except Exception as e: - self.get_logger().error(f"Failed to convert image: {e}") - return - - if cv_image.size == 0: - self.get_logger().error("Received empty depth image. Raising an error.") - raise ValueError("Depth image is empty.") - - disparity_image = self.depth_to_disparity(cv_image) - - disparity_msg = DisparityImage() - disparity_msg.header = msg.header - disparity_msg.image = self.bridge.cv2_to_imgmsg( - disparity_image, encoding="32FC1" - ) - disparity_msg.f = self.focal_length # Focal length - print(cv_image[:10]) - - visualize_depth_image(cv_image) - visualize_disparity_image(disparity_image) - - self.get_logger().info( - f"Disparity image min: {np.min(disparity_image)}", throttle_duration_sec=1 - ) - # Publish the disparity image - self.publisher.publish(disparity_msg) - - def depth_to_disparity(self, depth_image): - if depth_image.size == 0: - self.get_logger().error( - "Depth image is empty in depth_to_disparity. Raising an error." - ) - raise ValueError("Depth image is empty in depth_to_disparity.") - - depth_image = np.array(depth_image, dtype=np.float32) - - with np.errstate(divide="ignore", invalid="ignore"): - # DISPARITY FORMULA - disparity_image = (self.baseline * self.focal_length) / ( - depth_image - ) # mult by 100 - - # Handle infinite and NaN values in the disparity image - disparity_image[np.isinf(disparity_image)] = 0 - disparity_image[np.isnan(disparity_image)] = 0 - - if disparity_image.size == 0: - self.get_logger().error( - "Disparity image is empty after processing. Raising an error." - ) - raise ValueError("Disparity image is empty after processing.") - - return disparity_image - - -def main(args=None): - rclpy.init(args=args) - node = DepthToDisparityNode() - rclpy.spin(node) - node.destroy_node() - rclpy.shutdown() - - -if __name__ == "__main__": - main() diff --git a/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/package.xml b/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/package.xml deleted file mode 100644 index a55374ce5..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/package.xml +++ /dev/null @@ -1,18 +0,0 @@ - - my_depth_disparity_package - 0.0.0 - My package for depth to disparity conversion. - - Your Name - - Apache 2.0 - - rclpy - sensor_msgs - cv_bridge - opencv-python - - - ament_python - - diff --git a/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/resource/depth_to_disparity_package b/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/resource/depth_to_disparity_package deleted file mode 100644 index e69de29bb..000000000 diff --git a/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/setup.cfg b/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/setup.cfg deleted file mode 100644 index 7d5e56bac..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/setup.cfg +++ /dev/null @@ -1,4 +0,0 @@ -[develop] -script_dir=$base/lib/depth_to_disparity_package -[install] -install_scripts=$base/lib/depth_to_disparity_package diff --git a/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/setup.py b/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/setup.py deleted file mode 100644 index 3a38c6dd3..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/setup.py +++ /dev/null @@ -1,24 +0,0 @@ -from setuptools import setup - -package_name = "depth_to_disparity_package" - -setup( - name=package_name, - version="0.0.0", - packages=[package_name], - data_files=[ - ("share/" + package_name, ["package.xml"]), - ], - install_requires=["setuptools", "opencv-python", "cv_bridge"], - zip_safe=True, - maintainer="Your Name", - maintainer_email="your_email@example.com", - description="A package that converts depth images to disparity images", - license="Apache 2.0", - tests_require=["pytest"], - entry_points={ - "console_scripts": [ - "depth_to_disparity = depth_to_disparity_package.depth_to_disparity:main", - ], - }, -) diff --git a/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/test/test_copyright.py b/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/test/test_copyright.py deleted file mode 100644 index 97a39196e..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/test/test_copyright.py +++ /dev/null @@ -1,25 +0,0 @@ -# Copyright 2015 Open Source Robotics Foundation, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from ament_copyright.main import main -import pytest - - -# Remove the `skip` decorator once the source file(s) have a copyright header -@pytest.mark.skip(reason='No copyright header has been placed in the generated source file.') -@pytest.mark.copyright -@pytest.mark.linter -def test_copyright(): - rc = main(argv=['.', 'test']) - assert rc == 0, 'Found errors' diff --git a/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/test/test_flake8.py b/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/test/test_flake8.py deleted file mode 100644 index 27ee1078f..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/test/test_flake8.py +++ /dev/null @@ -1,25 +0,0 @@ -# Copyright 2017 Open Source Robotics Foundation, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from ament_flake8.main import main_with_errors -import pytest - - -@pytest.mark.flake8 -@pytest.mark.linter -def test_flake8(): - rc, errors = main_with_errors(argv=[]) - assert rc == 0, \ - 'Found %d code style errors / warnings:\n' % len(errors) + \ - '\n'.join(errors) diff --git a/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/test/test_pep257.py b/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/test/test_pep257.py deleted file mode 100644 index b234a3840..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/depth_to_disparity_package/test/test_pep257.py +++ /dev/null @@ -1,23 +0,0 @@ -# Copyright 2015 Open Source Robotics Foundation, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from ament_pep257.main import main -import pytest - - -@pytest.mark.linter -@pytest.mark.pep257 -def test_pep257(): - rc = main(argv=['.', 'test']) - assert rc == 0, 'Found code style errors / warnings' From 0da5b5e829594166f8f67c4c877fd15718687e0e Mon Sep 17 00:00:00 2001 From: Andrew Jong Date: Tue, 27 Aug 2024 12:26:17 -0400 Subject: [PATCH 42/50] Try fix disparity graph, progress --- .../local/disparity_graph/CMakeLists.txt | 11 ---- ...{disparity_graph.h => disparity_graph.hpp} | 34 ------------ .../disparity_graph/src/disparity_graph.cpp | 54 +------------------ 3 files changed, 1 insertion(+), 98 deletions(-) rename ros_ws/src/robot/autonomy/planning/local/disparity_graph/include/disparity_graph/{disparity_graph.h => disparity_graph.hpp} (81%) diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_graph/CMakeLists.txt b/ros_ws/src/robot/autonomy/planning/local/disparity_graph/CMakeLists.txt index b9d05a24a..1e5f27cb9 100644 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_graph/CMakeLists.txt +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_graph/CMakeLists.txt @@ -47,17 +47,7 @@ find_package(tf2_eigen REQUIRED) find_package(Armadillo REQUIRED) ## System dependencies are found with CMake's conventions -# find_package(Boost REQUIRED COMPONENTS system) -#find_package(PkgConfig REQUIRED) -#find_package(octomap REQUIRED) find_package(Eigen3 REQUIRED) -find_package(Boost REQUIRED) -#catkin_package( -# INCLUDE_DIRS include -# LIBRARIES disparity_graph -# CATKIN_DEPENDS roscpp sensor_msgs std_msgs tf image_transport image_geometry -# DEPENDS eigen Boost PCL -#) set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) #DEBUGGGGGGGGGGGEEEEEEEEEEERRRRRRRRRRR @@ -77,7 +67,6 @@ include_directories( ${image_geometry_INCLUDE_DIRS} ${OpenCV_INCLUDE_DIRS} ${PCL_INCLUDE_DIRS} - ${Boost_INCLUDE_DIRS} ${EIGEN3_INCLUDE_DIRS} ${pcl_conversions_INCLUDE_DIRS} ${nav_msgs_INCLUDE_DIRS} diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_graph/include/disparity_graph/disparity_graph.h b/ros_ws/src/robot/autonomy/planning/local/disparity_graph/include/disparity_graph/disparity_graph.hpp similarity index 81% rename from ros_ws/src/robot/autonomy/planning/local/disparity_graph/include/disparity_graph/disparity_graph.h rename to ros_ws/src/robot/autonomy/planning/local/disparity_graph/include/disparity_graph/disparity_graph.hpp index 37880361a..6df2d4b82 100644 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_graph/include/disparity_graph/disparity_graph.h +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_graph/include/disparity_graph/disparity_graph.hpp @@ -14,37 +14,6 @@ * @author: Geetesh Dubey * */ -/* -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include "deque" -#include "image_geometry/pinhole_camera_model.h" -#include "nav_msgs/OccupancyGrid.h" -#include "opencv2/core/core.hpp" -#include "sensor_msgs/Image.h" -#include "sensor_msgs/image_encodings.h" -#include "tf/transform_datatypes.h" -#include "tf/transform_listener.h" -#include "visualization_msgs/MarkerArray.h" -*/ #include #include #include @@ -86,8 +55,6 @@ class disparity_graph : public rclcpp::Node { public: explicit disparity_graph(const rclcpp::NodeOptions &options); struct node { - // sensor_msgs::Image Im_fg; - // sensor_msgs::Image Im_bg; cv_bridge::CvImagePtr Im_fg; cv_bridge::CvImagePtr Im_bg; std_msgs::msg::Header header; @@ -117,7 +84,6 @@ class disparity_graph : public rclcpp::Node { unsigned int width_, height_; // ros::Subscriber cam_info_sub_; rclcpp::Subscription::SharedPtr cam_info_sub_; - // boost::mutex io_mutex; std::mutex io_mutex; message_filters::Subscriber disp_fg_sub_, disp_bg_sub_; typedef message_filters::sync_policies::ExactTime @@ -106,8 +106,6 @@ disparity_graph::disparity_graph(const rclcpp::NodeOptions &options) disp_bg_sub_.subscribe(this, "/ceye/left/expanded_disparity_bg", rclcpp::QoS(5).get_rmw_qos_profile()); - // exact_sync_.reset(new ExactSync(ExactPolicy(5),disp_fg_sub_,disp_bg_sub_) ); - // exact_sync_->registerCallback(boost::bind(&disparity_graph::disp_cb, this, _1, _2)); exact_sync_ = std::make_shared(ExactPolicy(5), disp_fg_sub_, disp_bg_sub_); exact_sync_->registerCallback( std::bind(&disparity_graph::disp_cb, this, std::placeholders::_1, std::placeholders::_2)); @@ -129,20 +127,6 @@ disparity_graph::disparity_graph(const rclcpp::NodeOptions &options) expansion_poly_pub = this->create_publisher( "/expansion/graph_occ_marker", 10); - /* - //Occupancy Map - occ_map.header.frame_id=fixed_frame; - occ_map.info.resolution = 1.0;//0.5; - occ_map.info.width = 2*50/occ_map.info.resolution; - occ_map.info.height = 2*50/occ_map.info.resolution; - occ_map.data.resize(occ_map.info.width*occ_map.info.height,-1); - orig_z = -1.0; - occ_map.info.origin.position.x = -double(occ_map.info.width)/2.0*occ_map.info.resolution; - occ_map.info.origin.position.y = -double(occ_map.info.height)/2.0*occ_map.info.resolution; - occ_map.info.origin.position.z = orig_z; - occ_map.info.origin.orientation = tf::createQuaternionMsgFromYaw(0.0); - occPub_ = priv_nh.advertise("/graph_occ_map",10); - */ } void disparity_graph::pcd_test() { @@ -200,35 +184,6 @@ void disparity_graph::pcd_test() { z_sample = ((z_sample + 0.5) > z_bg) ? z_bg : z_sample; } - // pt_optical_fg.setZ(baseline_*fx_/disp_graph.at(i).Im_fg->image.at(v,u)); - // pt_optical_fg.setX((u - cx_) * pt_optical_fg.getZ()/fx_); - // pt_optical_fg.setY((v - cy_) * pt_optical_fg.getZ()/fy_); - - // pt_optical_bg.setZ(baseline_*fx_/disp_graph.at(i).Im_bg->image.at(v,u)); - // pt_optical_bg.setX((u - cx_) * pt_optical_bg.getZ()/fx_); - // pt_optical_bg.setY((v - cy_) * pt_optical_bg.getZ()/fy_); - - // pt_world_fg = s2w_tf * pt_optical_fg; - // pt_world_bg = s2w_tf * pt_optical_bg; - - // pcl::PointXYZI pt; - ////FG - // pt.x = pt_world_fg.getX(); - // pt.y = pt_world_fg.getY(); - // pt.z = pt_world_fg.getZ(); - // pt.intensity = 200;//i*20+10; - // pcd_checked_states.points.push_back(pt); - // pcd_checked_states.width++; - - // double x1,y1,x2,y2,z1,z2; - // x1 = pt.x;y1=pt.y;z1=pt.z; - ////BG - // pt.x = pt_world_bg.getX(); - // pt.y = pt_world_bg.getY(); - // pt.z = pt_world_bg.getZ(); - // pt.intensity = 100;//i*20+10; - // pcd_checked_states.points.push_back(pt); - // pcd_checked_states.width++; } } } @@ -406,13 +361,6 @@ void disparity_graph::pcd_test3() { int v = 60; for (uint i = 0; i < disp_graph.size(); i++) { float prev_depth = 0.0; - // { - // boost::mutex::scoped_lock lock(io_mutex); - // cv_depth_fg = - // cv_bridge::toCvCopy(disp_graph.at(i).Im_fg,sensor_msgs::image_encodings::TYPE_32FC1); - // cv_depth_bg = - // cv_bridge::toCvCopy(disp_graph.at(i).Im_bg,sensor_msgs::image_encodings::TYPE_32FC1); - // } marker.header = disp_graph.at(i).header; for (int u = (int)width_ - 1; u >= 0; u--) { float depth_value = baseline_ * fx_ / From 73a97e49000dde049b84cba12b51ec1f57d191c9 Mon Sep 17 00:00:00 2001 From: Andrew Jong Date: Tue, 27 Aug 2024 17:26:21 -0400 Subject: [PATCH 43/50] Add correct pcl_ros locally for ubuntu humble --- .gitmodules | 4 ++++ ros_ws/src/third_party/perception_pcl | 1 + 2 files changed, 5 insertions(+) create mode 160000 ros_ws/src/third_party/perception_pcl diff --git a/.gitmodules b/.gitmodules index 4b1aaa263..2ccd22129 100644 --- a/.gitmodules +++ b/.gitmodules @@ -15,3 +15,7 @@ [submodule "ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2"] path = ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2 url = https://github.com/fzi-forschungszentrum-informatik/vdb_mapping_ros2 +[submodule "ros_ws/src/third_party/perception_pcl"] + path = ros_ws/src/third_party/perception_pcl + url = git@github.com:ros-perception/perception_pcl.git + branch = humble diff --git a/ros_ws/src/third_party/perception_pcl b/ros_ws/src/third_party/perception_pcl new file mode 160000 index 000000000..ca66aa21f --- /dev/null +++ b/ros_ws/src/third_party/perception_pcl @@ -0,0 +1 @@ +Subproject commit ca66aa21f28b7e2848870f08faace81554e78437 From a740e4647944f892a47f5284540fc0df5439ea71 Mon Sep 17 00:00:00 2001 From: Andrew Jong Date: Tue, 27 Aug 2024 17:28:08 -0400 Subject: [PATCH 44/50] Set workdir to /root/AirStack --- docker/Dockerfile | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 2a0dab863..7104791d1 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -86,11 +86,4 @@ RUN /isaac-sim/python.sh -m pip install git+https://github.com/dronekit/dronekit RUN pip3 install PyYAML mavproxy tmuxp -#RUN echo 'root:passme24' | chpasswd - -#RUN useradd -G video -ms /bin/bash uav -#RUN usermod -a -G dialout uav -#RUN usermod -a -G sudo uav -#RUN echo 'uav:passme24' | chpasswd -#USER uav -#WORKDIR /home/uav \ No newline at end of file +WORKDIR /root/AirStack From cc9a427a9d09fb41f2eced42e6375e272f26f931 Mon Sep 17 00:00:00 2001 From: Andrew Jong Date: Tue, 27 Aug 2024 17:28:36 -0400 Subject: [PATCH 45/50] Update docker to 0.3.0 --- docker/docker-compose.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/docker-compose.yaml b/docker/docker-compose.yaml index c103022b0..7a398147c 100644 --- a/docker/docker-compose.yaml +++ b/docker/docker-compose.yaml @@ -8,7 +8,7 @@ services: dockerfile: docker/Dockerfile tags: - theairlab.org/airstack-dev:latest - - theairlab.org/airstack-dev:0.2.0-pre + - theairlab.org/airstack-dev:0.3.0 # main dev container airstack_dev: From 4dd1199794443c9e07ae37e593ad7f7f75a906cb Mon Sep 17 00:00:00 2001 From: Andrew Jong Date: Tue, 27 Aug 2024 18:33:17 -0400 Subject: [PATCH 46/50] Remove perception_pcl; it's not ready for ROS2 --- .gitmodules | 4 ---- ros_ws/src/third_party/perception_pcl | 1 - 2 files changed, 5 deletions(-) delete mode 160000 ros_ws/src/third_party/perception_pcl diff --git a/.gitmodules b/.gitmodules index 2ccd22129..4b1aaa263 100644 --- a/.gitmodules +++ b/.gitmodules @@ -15,7 +15,3 @@ [submodule "ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2"] path = ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2 url = https://github.com/fzi-forschungszentrum-informatik/vdb_mapping_ros2 -[submodule "ros_ws/src/third_party/perception_pcl"] - path = ros_ws/src/third_party/perception_pcl - url = git@github.com:ros-perception/perception_pcl.git - branch = humble diff --git a/ros_ws/src/third_party/perception_pcl b/ros_ws/src/third_party/perception_pcl deleted file mode 160000 index ca66aa21f..000000000 --- a/ros_ws/src/third_party/perception_pcl +++ /dev/null @@ -1 +0,0 @@ -Subproject commit ca66aa21f28b7e2848870f08faace81554e78437 From 92f633e892f93beea95883ed5482d9d9b700e4dd Mon Sep 17 00:00:00 2001 From: Andrew Jong Date: Wed, 28 Aug 2024 15:38:12 -0400 Subject: [PATCH 47/50] disparity graph finally compiles remove boost, switch with STD convert tf to tf2 upgrade to ROS2 --- .../local/disparity_expansion/CMakeLists.txt | 2 - .../src/disparity_conv.cpp | 2 - .../src/disparity_expansion_working.cpp | 494 ------------ .../disparity_expansion/src/disparity_pcd.cpp | 1 - .../planning/local/disparity_graph/.gitignore | 5 - .../local/disparity_graph/CMakeLists.txt | 198 ++--- .../planning/local/disparity_graph/LICENSE | 1 - .../disparity_graph/disparity_graph.hpp | 378 ++++++++-- .../disparity_graph/launch/talker.launch | 17 - .../local/disparity_graph/package.xml | 53 +- .../planning/local/disparity_graph/readme.md | 10 - .../disparity_graph/src/disparity_graph.cpp | 705 +----------------- .../COLCON_IGNORE | 0 .../disparity_map_representation.hpp | 49 ++ .../src/disparity_map_representation.cpp | 346 +-------- 15 files changed, 454 insertions(+), 1807 deletions(-) delete mode 100644 ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_expansion_working.cpp delete mode 100644 ros_ws/src/robot/autonomy/planning/local/disparity_graph/.gitignore delete mode 100644 ros_ws/src/robot/autonomy/planning/local/disparity_graph/LICENSE delete mode 100644 ros_ws/src/robot/autonomy/planning/local/disparity_graph/launch/talker.launch delete mode 100644 ros_ws/src/robot/autonomy/planning/local/disparity_graph/readme.md delete mode 100644 ros_ws/src/robot/autonomy/planning/local/disparity_map_representation/COLCON_IGNORE create mode 100644 ros_ws/src/robot/autonomy/planning/local/disparity_map_representation/include/disparity_map_representation/disparity_map_representation.hpp diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/CMakeLists.txt b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/CMakeLists.txt index d1d2f7175..4e499df57 100644 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/CMakeLists.txt +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/CMakeLists.txt @@ -21,7 +21,6 @@ find_package(sensor_msgs REQUIRED) find_package(std_msgs REQUIRED) find_package(tf2 REQUIRED) -# find_package(pcl_ros REQUIRED) find_package(stereo_msgs REQUIRED) find_package(tf2_geometry_msgs REQUIRED) @@ -39,7 +38,6 @@ set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_STANDARD_REQUIRED ON) # # System dependencies are found with CMake's conventions -# find_package(Boost REQUIRED COMPONENTS system) message(STATUS "PCL_INCLUDE_DIRS: ${PCL_INCLUDE_DIRS}") # # Uncomment this if the package has a setup.py. This macro ensures diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_conv.cpp b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_conv.cpp index 3ad069650..218aa7a96 100644 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_conv.cpp +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_conv.cpp @@ -15,7 +15,6 @@ #include #include #include -#include #include #include @@ -43,7 +42,6 @@ #include "sensor_msgs/msg/camera_info.hpp" #include "sensor_msgs/msg/image.hpp" #include "std_msgs/msg/header.hpp" -// #include #include #include #include diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_expansion_working.cpp b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_expansion_working.cpp deleted file mode 100644 index b288630ab..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_expansion_working.cpp +++ /dev/null @@ -1,494 +0,0 @@ -/* -* Copyright (c) 2016 Carnegie Mellon University, Author -* -* For License information please see the LICENSE file in the root directory. -* -*/ - -//Outputs an image in the form of a point cloud in 3d space. -#include "ros/ros.h" -#include "message_filters/subscriber.h" -#include -#include "sensor_msgs/Image.h" -#include "sensor_msgs/CameraInfo.h" -#include "std_msgs/Header.h" -#include -#include "opencv2/core/core.hpp" -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define SCALE 2.0 // num_units/pixel -#define LUT_MAX_DISPARITY 104 // units -#define ROB_RADIUS 1.0 // in meters -//for 2times Robsize = 0.0173 at 40m -//15 = 0.0677 -#define DEPTH_ERROR_COEFF 0.0177 - -typedef pcl::PointCloud PointCloud; - -class DisparityExpansionNode{ -public: - DisparityExpansionNode(ros::NodeHandle& nh); - - ros::Publisher expansion_cloud_pub; - ros::Publisher expanded_disparity_fg_pub; - ros::Publisher expanded_disparity_bg_pub; - ros::Subscriber subs_; - ros::Subscriber cam_info_sub_; - ros::Subscriber disparity_sub_; - -// message_filters::Subscriber disp_sub; -// message_filters::Subscriber depth_sub; -// message_filters::Subscriber image_sub; -// message_filters::Subscriber info_sub; -// typedef message_filters::sync_policies::ApproximateTime MySyncPolicy; -// typedef message_filters::sync_policies::ApproximateTime MySyncPolicy2; -// message_filters::Synchronizer* sync; -// message_filters::Synchronizer* sync2; - image_geometry::PinholeCameraModel model_; - sensor_msgs::Image dimage; - float baseline; - bool LUT_ready; - bool got_cam_info; - - void getCamInfo(const sensor_msgs::CameraInfo::ConstPtr &msg_info); - void stereoDisparityCb(const stereo_msgs::DisparityImage::ConstPtr &msg_disp); - void generateExpansionLUT(); - - struct cell - { - unsigned int idx1; - unsigned int idx2; - }; - cell table_u[LUT_MAX_DISPARITY][640];//[640]; - cell table_v[LUT_MAX_DISPARITY][480];//[512]; - float table_d[LUT_MAX_DISPARITY]; -}; - -void DisparityExpansionNode::generateExpansionLUT() -{ - bool debug = false; - if(debug) - { - ROS_WARN("Expansion LUT Debug disabled creation"); - LUT_ready = true; - } - if(LUT_ready) - { - ROS_ERROR("LUT all ready"); -// sleep(1); - return; - } - float center_x = model_.cx(); - float center_y = model_.cy(); - float constant_x = 1.0 / model_.fx(); - float constant_y = 1.0 / model_.fy(); - ROS_INFO("Fx Fy Cx Cy: %f %f , %f %f",model_.fx(),model_.fy(),model_.cx(),model_.cy()); - double r = ROB_RADIUS;//expansion radius in cm - int u1,u2,v1,v2; - double x,y,z; - double disparity; - - - for(unsigned int disp_idx = 1;disp_idx<= LUT_MAX_DISPARITY ;disp_idx++) - { -// z = depth*0.01;//cm to m - disparity = disp_idx/SCALE;//1 cell = 0.5m, z is in meters - r = ROB_RADIUS;// * exp(DEPTH_ERROR_COEFF*z); - z = baseline * model_.fx() / disparity; - - float disp_new = baseline * model_.fx()/(z - ROB_RADIUS) + 0.5; - table_d[disp_idx] = disp_new ; - ROS_INFO("REAL EXPANDED: %f , %f",disparity,table_d[disp_idx]); - - - for ( int v = ( int ) dimage.height - 1; v >= 0; --v ) - { - y = ( v - center_y ) * z * constant_y; - - double beta = atan2(z,y); - double beta1 = asin(r/sqrt(z*z + y*y)); - - double r1 = z/tan(beta+beta1); - double r2 = z/tan(beta-beta1); - v1 = model_.fy()*r1/z + center_y; - v2 = model_.fy()*r2/z + center_y; - - if((v2-v1)<0) - ROS_ERROR("Something MESSED %d %d %d",v1,v2,disp_idx); - - if(v1 < 0) v1 = 0; - if(v1 > (dimage.height-1)) v1 = dimage.height-1; - - if(v2 < 0) v2 = 0; - if(v2 > (dimage.height-1)) v2 = dimage.height-1; - - table_v[disp_idx][v].idx1 = v1 ; - table_v[disp_idx][v].idx2 = v2 ; -// ROS_ERROR("d v1 v2 %d %d \t %d",z,v1,v2); -// ROS_ERROR("d beta beta1 %f %f \t %f",z,beta*180/M_PI, beta1*180/M_PI); - } - - for ( int u = ( int ) dimage.width - 1; u >= 0; --u ) - { - x = ( u - center_x ) * z * constant_x; - - double alpha = atan2(z,x); - double alpha1 = asin(r/sqrt(z*z + x*x)); - - double r1 = z/tan(alpha+alpha1); - double r2 = z/tan(alpha-alpha1); - u1 = model_.fx()*r1/z + center_x; - u2 = model_.fx()*r2/z + center_x; - - if((u2-u1)<0) - ROS_ERROR("Something MESSED %d %d %d",u1,u2,disp_idx); - - if(u1 < 0) u1 = 0; - if(u1 > (dimage.width-1)) u1 = dimage.width-1; - - if(u2 < 0) u2 = 0; - if(u2 > (dimage.width-1)) u2 = dimage.width-1; - - table_u[disp_idx][u].idx1 = u1 ; - table_u[disp_idx][u].idx2 = u2 ; -// ROS_ERROR("d u1 u2 %d %d \t %d",u1,u2,depth); - - } - } - ROS_WARN("Expansion LUT created"); - for(int i =1;i<=LUT_MAX_DISPARITY;i++) - { - disparity = i/SCALE;//1 cell = 0.5m, z is in meters - r = ROB_RADIUS;// * exp(DEPTH_ERROR_COEFF*z); - z = baseline * model_.fx() / disparity; - - float disp_new = baseline * model_.fx()/(z - ROB_RADIUS) + 0.5; - table_d[i] = disp_new ; - ROS_INFO("expanded disparity: %f %d",table_d[i],table_u[i][1].idx1); - } - LUT_ready = true; -// exit(0); -} - - -void DisparityExpansionNode::getCamInfo(const sensor_msgs::CameraInfo::ConstPtr& msg_info) -{ - model_.fromCameraInfo ( msg_info ); - ROS_INFO_ONCE("Cam Info Recvd Fx Fy Cx Cy: %f %f , %f %f",model_.fx(),model_.fy(),model_.cx(),model_.cy()); - got_cam_info = true; -} - -void DisparityExpansionNode::stereoDisparityCb(const stereo_msgs::DisparityImage::ConstPtr &msg_disp){ - ROS_INFO("Disparity CB"); - - - - - if(!got_cam_info) - return; - dimage = msg_disp->image; - // Update camera model - baseline = msg_disp->T; - - if(!LUT_ready) - generateExpansionLUT(); - - cv_bridge::CvImagePtr fg_msg; - cv_bridge::CvImagePtr bg_msg; - cv_bridge::CvImagePtr free_msg(new cv_bridge::CvImage()); - cv_bridge::CvImagePtr temp_msg; - cv_bridge::CvImagePtr di_msg; - - //DEBUG READ FROM FILE - temp_msg = cv_bridge::toCvCopy(msg_disp->image, sensor_msgs::image_encodings::TYPE_32FC1); - temp_msg->image = temp_msg->image *0; - temp_msg->image(cv::Rect(0 ,0, temp_msg->image.cols/2, temp_msg->image.rows/2)) = baseline * model_.fx()/10.0 ;//TL QUAD - temp_msg->image(cv::Rect(temp_msg->image.cols/2, 0,temp_msg->image.cols/2-1, temp_msg->image.rows/2-1)) = baseline * model_.fx()/15.0 ;//BR QUAD - temp_msg->image(cv::Rect(temp_msg->image.cols/2, temp_msg->image.rows/2,temp_msg->image.cols/2-1, temp_msg->image.rows/2-1)) = baseline * model_.fx()/55.0 ;//BR QUAD -// temp_msg->image(cv::Rect(dimage.width/2, dimage.height/2,dimage.width-1, dimage.height-1)) = baseline * model_.fx()/15.0 ; - -// temp_msg->toImageMsg(dimage);//UNCOMMENT TO DEBUG - - - - -// const sensor_msgs::ImageConstPtr my_ptr = &dimage; - cv::Mat dummy(msg_disp->image.height,msg_disp->image.width,CV_32FC4); - dummy.copyTo(free_msg->image); -// free_msg->image.zeros(msg_disp->image.height,msg_disp->image.width,CV_32FC4); - free_msg->header = dimage.header; - free_msg->encoding = sensor_msgs::image_encodings::TYPE_32FC4; - try - { - fg_msg = cv_bridge::toCvCopy(dimage, sensor_msgs::image_encodings::TYPE_32FC1); - bg_msg = cv_bridge::toCvCopy(dimage, sensor_msgs::image_encodings::TYPE_32FC1); - di_msg = cv_bridge::toCvCopy(dimage, sensor_msgs::image_encodings::TYPE_32FC1); - } - catch (cv_bridge::Exception& e) - { - ROS_ERROR("cv_bridge exception: %s", e.what()); - return; - } - - - -// cv_bridge::CvImage cv_image; -// try{ -// cv_image.image = cv::imread("/home/aeroscout/gd_mav/src/ompl_planner3D/launch/img/DispImage.jpeg",CV_LOAD_IMAGE_GRAYSCALE); -// } -// catch (cv::Exception& e) -// { -// ROS_ERROR("cv_bridge exception: %s", e.what()); -// return; -// } -//// cv_image.encoding = "bgr8"; - -// cv::Mat test; -//// test = fg_msg->image; -//// cv::imshow("OPENCV_WINDOW", cv_image.image); -//// cv::waitKey(3); -// test = cv::imread("/home/aeroscout/gd_mav/src/ompl_planner3D/launch/img/DispImage.jpeg", 0); - - - fg_msg->header = dimage.header; - fg_msg->encoding = dimage.encoding;; - bg_msg->header = dimage.header; - bg_msg->encoding = dimage.encoding; - - bg_msg->image = bg_msg->image + INFINITY; - fg_msg->image = fg_msg->image - INFINITY; - if(1)//make cloud - { - // Use correct principal point from calibration - float center_x = model_.cx(); - float center_y = model_.cy(); - - float constant_x = 1.0 / model_.fx(); - float constant_y = 1.0 / model_.fy(); - - if ( dimage.encoding == sensor_msgs::image_encodings::TYPE_32FC1 ) - { - ROS_INFO_ONCE("IMG TYPE 32FC, GOOD"); - int row_step = dimage.step / sizeof ( float ); - const float* disparity_row = reinterpret_cast ( &dimage.data[0] ); - -// cv::Mat cv_exp_disp_foregnd_mat(dimage.height,dimage.width,CV_32F,cv::Scalar(0)); -// cv::Mat cv_exp_disp_backgnd_mat(dimage.height,dimage.width,CV_32F,cv::Scalar(9999)); - for ( int v = ( int ) dimage.height - 1; (v >= 0) ; v-=10 ) - { - for ( int u = ( int ) dimage.width - 1; u >= 0; u-=10 ) - { - float disparity_value = disparity_row[v * row_step + u] + 0.5; - if(!isnan(double(disparity_value)) && ((int(disparity_value*SCALE)+1) < LUT_MAX_DISPARITY) && ((int(disparity_value*SCALE)+1) > 0))//expand - { - unsigned int u1 = table_u[int(disparity_value*SCALE)+1][u].idx1; - unsigned int u2 = table_u[int(disparity_value*SCALE)+1][u].idx2; - - unsigned int v1 = table_v[int(disparity_value*SCALE)+1][v].idx1; - unsigned int v2 = table_v[int(disparity_value*SCALE)+1][v].idx2; - - if(v1 <0 || u1 <0 || v2 >=dimage.height || u2>=dimage.width || (u2-u1)<0 || (v2-v1)<0) - { - ROS_ERROR("Expansion out of img bounds with disparity: %f",disparity_value); - ROS_ERROR("u1 u2 v1 v2 %d %d \t %d %d",u1,u2,v1,v2); - continue; - } - cv::Rect roi = cv::Rect(u1,v1,(u2-u1),(v2-v1)); - cv::Mat submat = di_msg->image(roi).clone(); - double min, max; - cv::minMaxLoc(di_msg->image(roi), &min, &max); - float disp_new_fg = table_d[int(max*SCALE)]; - float disp_new_bg = table_d[int(min*SCALE)]; - float disp_to_depth = baseline * model_.fx()/max; - disp_new_fg = baseline * model_.fx()/(disp_to_depth - ROB_RADIUS) /*+ 0.5*/; -// disp_to_depth = baseline * model_.fx()/min; - disp_new_bg = baseline * model_.fx()/(disp_to_depth + ROB_RADIUS) /*- 0.5*/; - submat.setTo(disp_new_fg); -// submat = cv::max(fg_msg->image(roi),submat); - cv::Mat tMat(fg_msg->image(roi)); - submat.copyTo(tMat); - tMat = (bg_msg->image(roi)); - submat.setTo(disp_new_bg); - submat.copyTo(tMat); - -// v -= abs(v2-v1)/4; - u -= abs(u2-u1)/2; -// u -= (u-u1)/(max-min)+1; - - /* - for(int i = v1;i<=v2;i++) - for(int j = u1; j<=u2;j++) - { - float old_fg,old_bg; - old_fg = fg_msg->image.at(i,j); - old_bg = bg_msg->image.at(i,j); - float disp_to_depth = baseline * model_.fx()/disparity_value ; - float disp_new_fg = baseline * model_.fx()/(disp_to_depth - ROB_RADIUS) + 0.5; - if((disp_new_fg) > fg_msg->image.at(i,j)) - { - fg_msg->image.at(i,j) = disp_new_fg; - free_msg->image.at(i,j)[0] = disp_new_fg; - } - - float disp_new_bg = baseline * model_.fx()/(disp_to_depth + ROB_RADIUS) - 0.5; - if((disp_new_bg) < bg_msg->image.at(i,j)) - { - bg_msg->image.at(i,j) = disp_new_bg; - free_msg->image.at(i,j)[1] = disp_new_bg; - } - - if(disp_new_fg < old_bg && disparity_value != 0 && old_bg < 500) - { - if(free_msg->image.at(i,j)[2] < old_bg) - free_msg->image.at(i,j)[2] = old_bg-1; - if(free_msg->image.at(i,j)[3] < disp_new_fg) - free_msg->image.at(i,j)[3] = disp_new_fg+1; - } - - if(disp_new_bg > old_fg && disparity_value != 0 && old_bg < 500) - { - if(free_msg->image.at(i,j)[2] < disp_new_bg) - free_msg->image.at(i,j)[2] = disp_new_bg-1; - if(free_msg->image.at(i,j)[3] < old_fg) - free_msg->image.at(i,j)[3] = old_fg+1; - } - } - */ - } - else - ROS_ERROR_THROTTLE(1,"BAD disparity during expansion: %f",disparity_value); - } - } - -// double min, max; -// cv::minMaxLoc(fg_msg->image, &min, &max); -// ROS_INFO("FG minmax: \t%f \t%f",min,max); -// cv::minMaxLoc(bg_msg->image, &min, &max); -// ROS_INFO("BG minmax: \t%f \t%f",min,max); - - expanded_disparity_fg_pub.publish(fg_msg->toImageMsg()); - expanded_disparity_bg_pub.publish(bg_msg->toImageMsg()); - - if(expansion_cloud_pub.getNumSubscribers() > 0 )//create expansion PCD - { - PointCloud::Ptr cloud (new PointCloud); - cloud->header.frame_id = msg_disp->header.frame_id; - cloud->height = 1; - cloud->width =1; - cloud->is_dense = false; - int point_counter=0; - pcl::PointXYZI pt_fg,pt_bg,pt_free1,pt_free2; - for ( int v = ( int ) dimage.height - 1; v >= 0; v-=4 ) - { - for ( int u = ( int ) dimage.width - 1; u >= 0; u-=4 ) - { - - // Fill in XYZ - float depth_value = msg_disp->T * model_.fx() / fg_msg->image.at(v,u);//free_msg->image.at(v,u)[0]; - pt_fg.x = ( u - center_x ) * depth_value * constant_x; - pt_fg.y = ( v - center_y ) * depth_value * constant_y; - pt_fg.z = depth_value; - pt_fg.intensity = 220; - - depth_value = msg_disp->T * model_.fx() / bg_msg->image.at(v,u);//free_msg->image.at(v,u)[1]; - pt_bg.x = ( u - center_x ) * depth_value * constant_x; - pt_bg.y = ( v - center_y ) * depth_value * constant_y; - pt_bg.z = depth_value; - pt_bg.intensity = 120; - - depth_value = msg_disp->T * model_.fx() / free_msg->image.at(v,u)[2]; - pt_free1.x = ( u - center_x ) * depth_value * constant_x; - pt_free1.y = ( v - center_y ) * depth_value * constant_y; - pt_free1.z = depth_value; - pt_free1.intensity = 170; - depth_value = msg_disp->T * model_.fx() / free_msg->image.at(v,u)[3]; - pt_free2.x = ( u - center_x ) * depth_value * constant_x; - pt_free2.y = ( v - center_y ) * depth_value * constant_y; - pt_free2.z = depth_value; - pt_free2.intensity = 170; - - if(fg_msg->image.at(v,u) >= 0.1 && bg_msg->image.at(v,u) >= 0.1 ) - { - point_counter++; - cloud->points.push_back ( pt_fg ); - point_counter++; - cloud->points.push_back ( pt_bg ); - -// point_counter++; -// cloud->points.push_back ( pt_free1 ); -// point_counter++; -// cloud->points.push_back ( pt_free2 ); - - } - } - } - cloud->width = point_counter; - cloud->header.seq = msg_disp->header.seq; - cloud->header.stamp = pcl_conversions::toPCL(msg_disp->header.stamp); - - sensor_msgs::PointCloud2 cloud_PC2; - pcl::toROSMsg(*cloud,cloud_PC2); - expansion_cloud_pub.publish(cloud_PC2); - } - } - } - return; -} - -DisparityExpansionNode::DisparityExpansionNode(ros::NodeHandle& nh){ - //the depth image stream and color image stream have different framerates and therefore are not aligned. So we use a time synchronizer message filter (http://www.ros.org/wiki/message_filters) -// depth_sub.subscribe(nh,"/camera/depth/image", 1); -// image_sub.subscribe(nh, "/camera/rgb/image_rect_color", 1); -// info_sub.subscribe(nh, "/camera/depth/camera_info", 1); - -// disp_sub.subscribe(nh, "/ueye_resized/disparity", 1); -// image_sub.subscribe(nh, "/ueye_resized/left/image_rect_color", 1); -// info_sub.subscribe(nh, "/ueye_resized/left/camera_info", 1); - -// disp_sub.subscribe(nh, "/ceye/disparity", 1); -// image_sub.subscribe(nh, "/ceye/left/image_rect_color", 1); -// info_sub.subscribe(nh, "/ceye/left/camera_info", 1); - -// sync = new message_filters::Synchronizer(2); -// sync->connectInput(depth_sub,image_sub, info_sub); -// sync->registerCallback(boost::bind(&depth_proc::callback,this, _1, _2,_3)); - -// sync2 = new message_filters::Synchronizer(2); -// sync2->connectInput(disp_sub,image_sub, info_sub); -// sync2->registerCallback(boost::bind(&DisparityExpansionNode::stereoDisparityCb,this, _1, _2,_3)); - expansion_cloud_pub = nh.advertise("/expansion/cloud_fg", 10); - expanded_disparity_fg_pub = nh.advertise("/ceye/left/expanded_disparity_fg", 10); - expanded_disparity_bg_pub = nh.advertise("/ceye/left/expanded_disparity_bg", 10); - ROS_INFO("into constr"); - LUT_ready = false; - got_cam_info = false; - - -// cam_info_sub_ = nh.subscribe("/ceye/left/camera_info", 1,&DisparityExpansionNode::getCamInfo,this); -// disparity_sub_ = nh.subscribe("/ceye/disparity", 1,&DisparityExpansionNode::stereoDisparityCb,this); - cam_info_sub_ = nh.subscribe("/camera/depth/camera_info", 1,&DisparityExpansionNode::getCamInfo,this); - disparity_sub_ = nh.subscribe("/camera/disparity/image_raw", 1,&DisparityExpansionNode::stereoDisparityCb,this); -} - -int main(int argc, char** argv) -{ - ros::init(argc, argv, "DisparityExpansionNode"); - // cv::initModule_nonfree();//THIS LINE IS IMPORTANT for using surf and sift features of opencv - ros::NodeHandle nh; - DisparityExpansionNode d(nh); - ros::spin(); - return 0; -} - diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_pcd.cpp b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_pcd.cpp index 86de95c87..29d6dbe77 100644 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_pcd.cpp +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_pcd.cpp @@ -40,7 +40,6 @@ #include "sensor_msgs/msg/camera_info.hpp" #include "sensor_msgs/msg/image.hpp" #include "std_msgs/msg/header.hpp" -// #include #include #include #include diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_graph/.gitignore b/ros_ws/src/robot/autonomy/planning/local/disparity_graph/.gitignore deleted file mode 100644 index c0152d14f..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_graph/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -*.pyc -.*~ -.*.swo -.*.swp -core diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_graph/CMakeLists.txt b/ros_ws/src/robot/autonomy/planning/local/disparity_graph/CMakeLists.txt index 1e5f27cb9..85503b6be 100644 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_graph/CMakeLists.txt +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_graph/CMakeLists.txt @@ -1,162 +1,90 @@ cmake_minimum_required(VERSION 3.8) project(disparity_graph) -#find_package(catkin REQUIRED COMPONENTS -# cmake_modules -# ca_common -# cv_bridge - -# geometry_msgs -# image_geometry - -# image_transport - -# nav_msgs - -# roscpp - -# rospy -# sensor_msgs - -# std_msgs - -# tf - -# tf_conversions - -# tictoc_profiler - -# pcl_conversions - -# pcl_ros -#) +if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") + add_compile_options(-Wall -Wextra -Wpedantic) +endif() +# find dependencies find_package(ament_cmake REQUIRED) -find_package(cv_bridge REQUIRED) -find_package(geometry_msgs REQUIRED) -find_package(image_geometry REQUIRED) -find_package(image_transport REQUIRED) -find_package(nav_msgs REQUIRED) -find_package(pcl_conversions REQUIRED) -#find_package(pcl_ros REQUIRED) +find_package(ament_cmake_ros REQUIRED) find_package(rclcpp REQUIRED) +find_package(pcl_ros REQUIRED) find_package(sensor_msgs REQUIRED) find_package(std_msgs REQUIRED) find_package(tf2 REQUIRED) -find_package(tf2_geometry_msgs REQUIRED) -find_package(tf2_geometry_msgs REQUIRED) find_package(tf2_ros REQUIRED) +find_package(geometry_msgs REQUIRED) +find_package(cv_bridge REQUIRED) +find_package(image_geometry REQUIRED) +find_package(nav_msgs REQUIRED) +find_package(image_transport REQUIRED) find_package(visualization_msgs REQUIRED) -# CONFIGURE OPENCV -find_package(OpenCV REQUIRED) -# CONFIGURE PCL +find_package(OpenCV REQUIRED) find_package(PCL REQUIRED) -find_package(tf2_eigen REQUIRED) -#CONFIGURER ARMADILLO -find_package(Armadillo REQUIRED) +add_library(disparity_graph src/disparity_graph.cpp) +target_compile_features(disparity_graph PUBLIC c_std_99 cxx_std_17) # Require C99 and C++17 -## System dependencies are found with CMake's conventions -find_package(Eigen3 REQUIRED) -set(CMAKE_CXX_STANDARD 20) -set(CMAKE_CXX_STANDARD_REQUIRED ON) -#DEBUGGGGGGGGGGGEEEEEEEEEEERRRRRRRRRRR -set(CMAKE_BUILD_TYPE Release) -set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Wall -std=gnu++0x") +target_include_directories(disparity_graph PUBLIC + $ + $) -include_directories( - ${rclcpp_INCLUDE_DIRS} - ${CMAKE_CURRENT_SOURCE_DIR}/include - ${sensor_msgs_INCLUDE_DIRS} - ${std_msgs_INCLUDE_DIRS} - ${tf2_INCLUDE_DIRS} - ${tf2_ros_INCLUDE_DIRS} - ${tf2_eigen_INCLUDE_DIRS} - - ${image_transport_INCLUDE_DIRS} - ${image_geometry_INCLUDE_DIRS} - ${OpenCV_INCLUDE_DIRS} - ${PCL_INCLUDE_DIRS} - ${EIGEN3_INCLUDE_DIRS} - ${pcl_conversions_INCLUDE_DIRS} - ${nav_msgs_INCLUDE_DIRS} - ${tf2_geometry_msgs_INCLUDE_DIRS} - #${disparity_graph_INCLUDE_DIRS} +ament_target_dependencies( + disparity_graph + "rclcpp" + "sensor_msgs" + "std_msgs" + "tf2" + "tf2_ros" + "geometry_msgs" + "cv_bridge" + "image_geometry" + "nav_msgs" + "image_transport" + "OpenCV" + "visualization_msgs" ) -add_library(disparity_graph - src/disparity_graph.cpp) - -target_include_directories(disparity_graph -PUBLIC -$ -$) - -target_link_libraries(disparity_graph - ${catkin_LIBRARIES} - ${OpenCV_LIBS} - ${PCL_LIBRARIES} - ) - +# Causes the visibility macros to use dllexport rather than dllimport, +# which is appropriate when building the dll but not consuming it. +target_compile_definitions(disparity_graph PRIVATE "DISPARITY_GRAPH_BUILDING_LIBRARY") - -ament_target_dependencies(disparity_graph - rclcpp - sensor_msgs - std_msgs - nav_msgs - tf2 - tf2_ros - tf2_eigen - tf2_geometry_msgs - image_transport - image_geometry - visualization_msgs - cv_bridge - image_geometry - pcl_conversions - #disparity_graph - ) -#Install files -# install(DIRECTORY include/${PROJECT_NAME}/ -# DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} -# FILES_MATCHING PATTERN "*.h" -# PATTERN ".svn" EXCLUDE -# ) -ament_export_targets(disparity_graphTargets HAS_LIBRARY_TARGET) -ament_export_dependencies(rclcpp sensor_msgs -std_msgs -nav_msgs -tf2 -tf2_ros -tf2_eigen -tf2_geometry_msgs -image_transport -image_geometry -visualization_msgs -cv_bridge -image_geometry -pcl_conversions) -# install(TARGETS disparity_graph - # ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} - # LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} - # RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} - #) - install( +install( + DIRECTORY include/ + DESTINATION include +) +install( TARGETS disparity_graph - EXPORT disparity_graphTargets - LIBRARY DESTINATION lib + EXPORT export_${PROJECT_NAME} ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib RUNTIME DESTINATION bin - INCLUDES DESTINATION include ) -#install(EXPORT export_disparity_graph -# FILE disparity_graphTargets.cmake -# DESTINATION lib/cmake/${PROJECT_NAME} -#) -install(DIRECTORY launch DESTINATION share/${PROJECT_NAME}) -install(FILES package.xml - DESTINATION share/${PROJECT_NAME} + +if(BUILD_TESTING) + find_package(ament_lint_auto REQUIRED) + + # the following line skips the linter which checks for copyrights + # comment the line when a copyright and license is added to all source files + set(ament_cmake_copyright_FOUND TRUE) + + # the following line skips cpplint (only works in a git repo) + # comment the line when this package is in a git repo and when + # a copyright and license is added to all source files + set(ament_cmake_cpplint_FOUND TRUE) + ament_lint_auto_find_test_dependencies() +endif() + +ament_export_include_directories( + include +) +ament_export_libraries( + disparity_graph ) -#install(DIRECTORY include -## DESTINATION include/${PROJECT_NAME} -#S) -install( - DIRECTORY include/${PROJECT_NAME}/ - DESTINATION include/${PROJECT_NAME} - FILES_MATCHING PATTERN "*.h" +ament_export_targets( + export_${PROJECT_NAME} ) - ament_package() - diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_graph/LICENSE b/ros_ws/src/robot/autonomy/planning/local/disparity_graph/LICENSE deleted file mode 100644 index a5eb700a7..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_graph/LICENSE +++ /dev/null @@ -1 +0,0 @@ -[This software is BSD licensed.](http://opensource.org/licenses/BSD-3-Clause) Copyright (c) 2015-2019, Carnegie Mellon UniversityAll rights reserved. Redistribution and use in source and binary forms, with or withoutmodification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" ANDANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIEDWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE AREDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLEFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIALDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ORSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVERCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USEOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_graph/include/disparity_graph/disparity_graph.hpp b/ros_ws/src/robot/autonomy/planning/local/disparity_graph/include/disparity_graph/disparity_graph.hpp index 6df2d4b82..ce577172c 100644 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_graph/include/disparity_graph/disparity_graph.hpp +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_graph/include/disparity_graph/disparity_graph.hpp @@ -1,124 +1,350 @@ -/** - * @attention Copyright (C) 2017 - * @attention Carnegie Mellon University - * @attention All rights reserved - * - * @author: AirLab / Field Robotics Center - * @author: Geetesh Dubey - * - * @attention This code was modified under award #A018532. - * @attention LIMITED RIGHTS: - * @attention The US Government is granted Limited Rights to this Data. - * Use, duplication, or disclosure is subject to the - * restrictions as stated in award #A014692 - * @author: Geetesh Dubey - * - */ +#pragma once + #include #include #include #include #include #include -#include -#include -#include -#include -#include -// #include -#include -#include +#include #include #include #include +#include #include #include -#include -#include -#include -#include #include -#include #include #include -#include -#include #include -typedef pcl::PointCloud PointCloud; - -namespace nabla { namespace disparity_graph { -class disparity_graph : public rclcpp::Node { - public: - explicit disparity_graph(const rclcpp::NodeOptions &options); - struct node { +class DisparityGraph : rclcpp::Node { + struct DisparityGraphNode { cv_bridge::CvImagePtr Im_fg; cv_bridge::CvImagePtr Im_bg; std_msgs::msg::Header header; tf2::Transform w2s_tf; tf2::Transform s2w_tf; }; + std::deque disp_graph_; - void disp_cb(const sensor_msgs::msg::Image::ConstSharedPtr &disp_fg, - const sensor_msgs::msg::Image::ConstSharedPtr &disp_bg); - - std::deque disp_graph; - size_t graph_size; + size_t graph_size_; double thresh_; - // tf::TransformListener listener; - std::shared_ptr tf_buffer_; - std::shared_ptr tf_listener_; - std::string sensor_frame, fixed_frame, stabilized_frame; - visualization_msgs::msg::Marker marker; - // ros::Publisher disparity_graph_marker_pub; - rclcpp::Publisher::SharedPtr disparity_graph_marker_pub; - disparity_graph(); - rclcpp::TimerBase::SharedPtr timer1; + tf2_ros::Buffer tf_buffer_; + tf2_ros::TransformListener tf_listener_; + std::string sensor_frame_, fixed_frame_, stabilized_frame_; + visualization_msgs::msg::Marker marker_; + rclcpp::Publisher::SharedPtr disparity_graph_marker_pub_; double angle_tol, displacement_tol; bool first; bool got_cam_info; double fx_, fy_, cx_, cy_, baseline_, downsample_scale; unsigned int width_, height_; - // ros::Subscriber cam_info_sub_; rclcpp::Subscription::SharedPtr cam_info_sub_; + std::mutex io_mutex; + message_filters::Subscriber disp_fg_sub_, disp_bg_sub_; typedef message_filters::sync_policies::ExactTime ExactPolicy; typedef message_filters::Synchronizer ExactSync; - std::shared_ptr exact_sync_; - void getCamInfo(const sensor_msgs::msg::CameraInfo::ConstSharedPtr &msg_info); - bool isStateValidDepth_pose(geometry_msgs::msg::PoseStamped checked_state, double thresh, - double &occupancy); - bool getStateCost(geometry_msgs::msg::Pose checked_state, double &cost); - - // TEST PCD - PointCloud pcd_checked_states; - rclcpp::TimerBase::SharedPtr pcd_test_timer; - rclcpp::TimerBase::SharedPtr pcd_test3_timer; - rclcpp::TimerBase::SharedPtr pcd_test4_timer; - - void pcd_test(); - // void pcd_test2(const ros::TimerEvent &event); - void pcd_test3(); - void pcd_test4(); - void clear_graph() { + + std::shared_ptr exact_sync; + + public: + DisparityGraph() + : Node("disparity_graph"), + graph_size_(10), + tf_buffer_(this->get_clock()), + tf_listener_(tf_buffer_), + fixed_frame_("world"), + stabilized_frame_("base_frame_stabilized"), + angle_tol(30.0), + displacement_tol(1.5), + first(true), + got_cam_info(false) { + disparity_graph_marker_pub_ = + create_publisher("disparity_marker", 10); + marker_.header.frame_id = fixed_frame_; + marker_.header.stamp = this->get_clock()->now(); + marker_.ns = "disparityGraph"; + marker_.id = 0; + marker_.type = visualization_msgs::msg::Marker::ARROW; + marker_.action = visualization_msgs::msg::Marker::ADD; + marker_.pose.position.x = 1; + marker_.pose.position.y = 1; + marker_.pose.position.z = 1; + marker_.pose.orientation.x = 0.0; + marker_.pose.orientation.y = 0.0; + marker_.pose.orientation.z = 0.0; + marker_.pose.orientation.w = 1.0; + marker_.scale.x = 1; + marker_.scale.y = 0.1; + marker_.scale.z = 0.1; + marker_.color.a = 1.0; // Don't forget to set the alpha! + marker_.color.r = 0.0; + marker_.color.g = 1.0; + marker_.color.b = 0.0; + + declare_parameter("baseline", 0.10); + baseline_ = get_parameter("baseline").as_double(); + declare_parameter("downsample_scale", 1.0); + downsample_scale = get_parameter("downsample_scale").as_double(); + declare_parameter("low_occ_thresh", 0.9); + thresh_ = get_parameter("low_occ_thresh").as_double(); + declare_parameter("graph_size", 10); + graph_size_ = get_parameter("graph_size").as_int(); + declare_parameter("displacement_tolerance", 1.5); + displacement_tol = get_parameter("displacement_tolerance").as_double(); + declare_parameter("angle_tolerance", 30.0); + angle_tol = get_parameter("angle_tolerance").as_double() * M_PI / 180.0; + + disp_fg_sub_.subscribe(this, "/ceye/left/expanded_disparity_fg"); + disp_bg_sub_.subscribe(this, "/ceye/left/expanded_disparity_bg"); + + exact_sync.reset(new ExactSync(ExactPolicy(5), disp_fg_sub_, disp_bg_sub_)); + exact_sync->registerCallback(std::bind(&DisparityGraph::disp_cb, this, + std::placeholders::_1, std::placeholders::_2)); + + cam_info_sub_ = create_subscription( + "/nerian_sp1/right/camera_info", 1, + std::bind(&DisparityGraph::get_cam_info, this, std::placeholders::_1)); + } + + virtual ~DisparityGraph(); + + void disp_cb(const sensor_msgs::msg::Image::ConstSharedPtr &disp_fg, + const sensor_msgs::msg::Image::ConstSharedPtr &disp_bg) { + RCLCPP_INFO(this->get_logger(), "Recvd disp stamp: %lf", + (this->get_clock()->now() - disp_fg->header.stamp).seconds()); + sensor_frame_ = disp_fg->header.frame_id; + + tf2::Stamped transform; + geometry_msgs::msg::TransformStamped tf_msg; + try { + tf_msg = tf_buffer_.lookupTransform(sensor_frame_, fixed_frame_, disp_fg->header.stamp); + tf2::fromMsg(tf_msg, transform); + } catch (tf2::TransformException &ex) { + RCLCPP_ERROR(this->get_logger(), "DG disp_cb %s", ex.what()); + return; + } + + std::scoped_lock lock(io_mutex); + + if (first) { + first = false; + DisparityGraphNode n; + try { + n.Im_fg = cv_bridge::toCvCopy(disp_fg, sensor_msgs::image_encodings::TYPE_32FC1); + n.Im_bg = cv_bridge::toCvCopy(disp_bg, sensor_msgs::image_encodings::TYPE_32FC1); + } catch (std::exception ex) { + RCLCPP_ERROR(this->get_logger(), "\n\n\n\n\n\t\t\tDEQUE ERR\n\n\n\n: %s", + ex.what()); + return; + } + + n.header = disp_bg->header; + n.w2s_tf = transform; + n.s2w_tf = transform.inverse(); + disp_graph_.push_front(n); + disp_graph_.push_back(n); + + } else { + tf2::Vector3 curr_p = transform.inverse().getOrigin(); + std::deque::iterator it, end; + it = disp_graph_.begin(); + end = disp_graph_.end() - 1; + tf2::Vector3 graph_p = it->s2w_tf.getOrigin(); + tf2Scalar diff_a = + tf2::angleShortestPath(transform.inverse().getRotation(), it->s2w_tf.getRotation()); + tf2Scalar diff_p = curr_p.distance(graph_p); + + DisparityGraphNode n; + try { + n.Im_fg = cv_bridge::toCvCopy(disp_fg, sensor_msgs::image_encodings::TYPE_32FC1); + n.Im_bg = cv_bridge::toCvCopy(disp_bg, sensor_msgs::image_encodings::TYPE_32FC1); + } catch (std::exception ex) { + RCLCPP_ERROR(this->get_logger(), "\n\n\n\n\n\t\t\tDEQUE ERR\n\n\n\n: %s", + ex.what()); + return; + } + + n.header = disp_bg->header; + n.w2s_tf = transform; + n.s2w_tf = transform.inverse(); + + if (fabs(diff_a) >= angle_tol || fabs(diff_p) > displacement_tol) { + RCLCPP_ERROR(this->get_logger(), "Adding new node size %d", + (int)disp_graph_.size()); + if (disp_graph_.size() >= graph_size_) { + disp_graph_.erase(end); + } + + if (disp_graph_.size() <= graph_size_) { + disp_graph_.push_front(n); + } + } + disp_graph_.pop_back(); + disp_graph_.push_back(n); + } + } + + void get_cam_info(const sensor_msgs::msg::CameraInfo::ConstSharedPtr &cam_info_msg) { + if (got_cam_info) { + return; + } + image_geometry::PinholeCameraModel model; + model.fromCameraInfo(cam_info_msg); + // print + RCLCPP_INFO(this->get_logger(), "Cam Info Recvd Fx Fy Cx Cy: %f %f , %f %f Baseline: %f", + model.fx(), model.fy(), model.cx(), model.cy(), baseline_); + cx_ = model.cx() / downsample_scale; + cy_ = model.cy() / downsample_scale; + fx_ = fy_ = model.fx() / downsample_scale; + width_ = cam_info_msg->width / downsample_scale; + height_ = cam_info_msg->height / downsample_scale; + double baseline = -cam_info_msg->p[3] / cam_info_msg->p[0]; + if (baseline != 0.0) { + baseline_ = baseline; + } + baseline_ *= downsample_scale; + RCLCPP_INFO(this->get_logger(), + "Transformed Cam Info Recvd Fx Fy Cx Cy: %f %f, %f %f Baseline: %f with " + "downsamplescale: %f", + model.fx(), model.fy(), model.cx(), model.cy(), baseline_, downsample_scale); + + RCLCPP_WARN(this->get_logger(), + "Cam Info Constants - Fx Fy Cx Cy: %f %f, %f %f / width=%d - height=%d", fx_, + fy_, cx_, cy_, width_, height_); + + got_cam_info = true; + } + + bool is_state_valid_depth_pose(geometry_msgs::msg::PoseStamped checked_state, double thresh, + double &occupancy) { + occupancy = 0.0; + geometry_msgs::msg::PointStamped checked_point_stamped; + checked_point_stamped.point = checked_state.pose.position; + checked_point_stamped.header = checked_state.header; + + geometry_msgs::msg::PointStamped world_point_stamped; + + try { + tf_buffer_.transform(checked_point_stamped, world_point_stamped, fixed_frame_); + } catch (tf2::TransformException &ex) { + RCLCPP_ERROR(this->get_logger(), "Could not transform %s to %s: %s", + fixed_frame_.c_str(), checked_state.header.frame_id.c_str(), ex.what()); + return false; + } + + tf2::Vector3 optical_point; + tf2::fromMsg(world_point_stamped.point, optical_point); + + std::scoped_lock lock(io_mutex); + + bool seen = false; + for (uint i = 0; i < disp_graph_.size(); i++) { + tf2::Vector3 local_point = disp_graph_.at(i).w2s_tf * optical_point; + + float x, y, z; + + x = local_point.getX(); + y = local_point.getY(); + z = local_point.getZ(); + + if (local_point.length() < 1.0) { + seen = true; + continue; + } + + int u = x / z * fx_ + cx_; + int v = y / z * fy_ + cy_; + + if (u >= 0 && u < width_ && v >= 0 && v < height_ && z > 0.0) { + seen = true; + double state_disparity = baseline_ * fx_ / z; + if ((disp_graph_.at(i).Im_fg->image.at(v, u) > state_disparity) && + (disp_graph_.at(i).Im_bg->image.at(v, u) < state_disparity)) { + occupancy += (state_disparity - 0.5) / state_disparity; + } else { + occupancy -= 0.5 * (state_disparity - 0.5) / state_disparity; + occupancy = occupancy < 0.0 ? 0.0 : occupancy; + } + } + if (occupancy >= thresh) { + return false; + } + } + return seen; + } + + bool get_state_cost(geometry_msgs::msg::Pose checked_state, double &cost) { + geometry_msgs::msg::PointStamped checked_point_stamped; + checked_point_stamped.header.frame_id = "world"; + checked_point_stamped.header.stamp = this->now();// - rclcpp::Duration(0.1); + checked_point_stamped.point = checked_state.position; + + geometry_msgs::msg::PointStamped world_point_stamped; + + try { + tf_buffer_.transform(checked_point_stamped, world_point_stamped, fixed_frame_); + } catch (tf2::TransformException &ex) { + RCLCPP_ERROR(this->get_logger(), "TF to fixed frame failed: %s", ex.what()); + return false; + } + + tf2::Vector3 optical_point; + tf2::fromMsg(world_point_stamped.point, optical_point); + std::lock_guard lock(io_mutex); - disp_graph.clear(); + for (uint i = 0; i < disp_graph_.size(); i++) { + tf2::Vector3 local_point = disp_graph_.at(i).w2s_tf * optical_point; + + float x, y, z; + + x = local_point.getX(); + y = local_point.getY(); + z = local_point.getZ(); + + if (z < 0.0) { + return false; + } + + int u = x / z * fx_ + cx_; + int v = y / z * fy_ + cy_; + + if (u >= 0 && u < width_ && v >= 0 && v < height_ && z > 0.0) { + double state_disparity = baseline_ * fx_ / z; + if ((disp_graph_.at(i).Im_fg->image.at(v, u) > state_disparity) && + (disp_graph_.at(i).Im_bg->image.at(v, u) < state_disparity)) { + cost += (state_disparity - 0.5) / state_disparity; + } + cost = cost < 0.0 ? 0.0 : cost; + + if (cost > 100.0) { + cost = 100.0; + return false; + } + } + } + return true; + } + + void clear_graph(void) { + std::lock_guard lock(io_mutex); + disp_graph_.clear(); first = true; - RCLCPP_ERROR(this->get_logger(), "<<< DISP GRAPH CLEARED >>>"); + RCLCPP_INFO_STREAM(this->get_logger(), "<<< DISP GRAPH CLEARED >>>"); }; - // ros::Publisher pcdPub, occPub_; + rclcpp::Publisher::SharedPtr pcdPub, occPub_; - // nav_msgs::OccupancyGrid occ_map; - // ros::Publisher expansion_poly_pub; + rclcpp::Publisher::SharedPtr expansion_poly_pub; float orig_z; }; } // namespace disparity_graph -} // namespace nabla diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_graph/launch/talker.launch b/ros_ws/src/robot/autonomy/planning/local/disparity_graph/launch/talker.launch deleted file mode 100644 index 55b05325d..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_graph/launch/talker.launch +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_graph/package.xml b/ros_ws/src/robot/autonomy/planning/local/disparity_graph/package.xml index ad7f37d08..774d51d38 100644 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_graph/package.xml +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_graph/package.xml @@ -1,41 +1,28 @@ - - + disparity_graph 0.0.0 - disparity_graph - - nabla - nabla - Copyright 2015-2017 All rights reserved - - ament_cmake - -cv_bridge -geometry_msgs -tf2_geometry_msgs -image_geometry -image_transport -libpcl-all -libpcl-all-dev -nav_msgs -pcl_conversions -pcl_ros -rclcpp -rclpy -sensor_msgs -std_msgs -tf2 -tf2_ros - -ament_lint_auto -ament_lint_common - - + TODO: Package description + andrew + TODO: License declaration + + ament_cmake_ros + + rclcpp + sensor_msgs + std_msgs + tf2 + tf2_ros + geometry_msgs + cv_bridge + image_geometry + nav_msgs + image_transport + + ament_lint_auto + ament_lint_common - - ament_cmake diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_graph/readme.md b/ros_ws/src/robot/autonomy/planning/local/disparity_graph/readme.md deleted file mode 100644 index 0a2c50080..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_graph/readme.md +++ /dev/null @@ -1,10 +0,0 @@ -# disparity_graph - -disparity_graph - -## License - -BSD, see LICENSE -## License - -BSD, see LICENSE \ No newline at end of file diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_graph/src/disparity_graph.cpp b/ros_ws/src/robot/autonomy/planning/local/disparity_graph/src/disparity_graph.cpp index 5812c4da0..2e1006d0b 100644 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_graph/src/disparity_graph.cpp +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_graph/src/disparity_graph.cpp @@ -1,705 +1,6 @@ -/** - * @attention Copyright (C) 2017 - * @attention Carnegie Mellon University - * @attention All rights reserved - * - * @author: AirLab / Field Robotics Center - * @author: Geetesh Dubey - * - * @attention This code was modified under award #A018532. - * @attention LIMITED RIGHTS: - * @attention The US Government is granted Limited Rights to this Data. - * Use, duplication, or disclosure is subject to the - * restrictions as stated in award #A014692 - * @author: Geetesh Dubey - * - */ -/* - * Copyright (c) 2016 Carnegie Mellon University, Author - * - * For License information please see the LICENSE file in the root directory. - * - */ - #include "disparity_graph/disparity_graph.hpp" -#include - -using namespace nabla::disparity_graph; - -disparity_graph::disparity_graph(const rclcpp::NodeOptions &options) - : Node("disparity_graph", options) { - // ros::NodeHandle priv_nh("~/disparity_graph"); - // ros::NodeHandle global_nh("/oa"); - // graph_size = 10; - // angle_tol = /*cos*/(30.0); - // displacement_tol = 01.5; - this->declare_parameter("graph_size", 10); - this->declare_parameter("angle_tolerance", 30.0); - this->declare_parameter("displacement_tolerance", 1.5); - - graph_size = this->get_parameter("graph_size").as_int(); - angle_tol = this->get_parameter("angle_tolerance").as_double() * M_PI / 180.0; - displacement_tol = this->get_parameter("displacement_tolerance").as_double(); - - first = true; - got_cam_info = false; - fixed_frame = "world"; - stabilized_frame = "base_frame_stabilized"; - - // disparity_graph_marker_pub = - // priv_nh.advertise("disparity_marker", 10); - disparity_graph_marker_pub = - this->create_publisher("disparity_marker", 10); - - marker.header.frame_id = fixed_frame; - marker.header.stamp = this->now(); - marker.ns = "disparityGraph"; - marker.id = 0; - marker.type = visualization_msgs::msg::Marker::ARROW; - marker.action = visualization_msgs::msg::Marker::ADD; - marker.pose.position.x = 1; - marker.pose.position.y = 1; - marker.pose.position.z = 1; - marker.pose.orientation.x = 0.0; - marker.pose.orientation.y = 0.0; - marker.pose.orientation.z = 0.0; - marker.pose.orientation.w = 1.0; - marker.scale.x = 1; - marker.scale.y = 0.1; - marker.scale.z = 0.1; - marker.color.a = 1.0; // Don't forget to set the alpha! - marker.color.r = 0.0; - marker.color.g = 1.0; - marker.color.b = 0.0; - - // downsample_scale =4.0; - // baseline_ = 0.5576007548439765; - - // global_nh.param("baseline", baseline_, 0.10);//0.5576007548439765; - // global_nh.param("downsample_scale", downsample_scale, 1.0); - // global_nh.param("low_occ_thresh", thresh_, 0.9); - this->declare_parameter("baseline", 0.10); - this->declare_parameter("downsample_scale", 1.0); - this->declare_parameter("low_occ_thresh", 0.9); - - // int igraph_size = graph_size; - // priv_nh.param("graph_size", igraph_size, igraph_size); - // graph_size = igraph_size; - // priv_nh.param("displacement_tolerance", displacement_tol, displacement_tol); - // priv_nh.param("angle_tolerance", angle_tol, angle_tol); - - // angle_tol = angle_tol * M_PI/180.0; - - // graph_size = this->get_parameter("graph_size").as_int(); - // angle_tol = this->get_parameter("angle_tolerance").as_double() * M_PI / 180.0; - // displacement_tol = this->get_parameter("displacement_tolerance").as_double(); - baseline_ = this->get_parameter("baseline").as_double(); - downsample_scale = this->get_parameter("downsample_scale").as_double(); - thresh_ = this->get_parameter("low_occ_thresh").as_double(); - - RCLCPP_ERROR(this->get_logger(), "disparity_graph NS: %s", this->get_namespace()); - - // right_info_sub_.subscribe(nh, right_info_topic, 1); - disp_fg_sub_.subscribe(this, "/ceye/left/expanded_disparity_fg", - rclcpp::QoS(5).get_rmw_qos_profile()); - disp_bg_sub_.subscribe(this, "/ceye/left/expanded_disparity_bg", - rclcpp::QoS(5).get_rmw_qos_profile()); - - exact_sync_ = std::make_shared(ExactPolicy(5), disp_fg_sub_, disp_bg_sub_); - exact_sync_->registerCallback( - std::bind(&disparity_graph::disp_cb, this, std::placeholders::_1, std::placeholders::_2)); - - // cam_info_sub_ = priv_nh.subscribe("/nerian_sp1/right/camera_info", - // 1,&disparity_graph::getCamInfo,this); - cam_info_sub_ = this->create_subscription( - "/nerian_sp1/right/camera_info", 10, - std::bind(&disparity_graph::getCamInfo, this, std::placeholders::_1)); - // timer1 = priv_nh.createTimer(ros::Duration(0.20), &disparity_graph::pcd_test4,this); - timer1 = this->create_wall_timer(std::chrono::milliseconds(200), - std::bind(&disparity_graph::pcd_test4, this)); - - pcd_checked_states.header.frame_id = fixed_frame; - pcd_checked_states.height = 1; - pcd_checked_states.width = 0; - pcd_checked_states.is_dense = false; - pcdPub = this->create_publisher("/graph_pcd", 10); - expansion_poly_pub = this->create_publisher( - "/expansion/graph_occ_marker", 10); - -} - -void disparity_graph::pcd_test() { - if (pcdPub->get_subscription_count() == 0) { - return; - } - - for (uint i = 0; i < disp_graph.size(); i++) { - for (uint u = 0; u < width_; u += 1) { - for (uint v = 0; v < height_; v += 1) { - tf2::Vector3 pt_optical_fg, pt_optical_bg, pt_world_fg, pt_world_bg, curr_pt; - tf2::Transform w2s_tf; - tf2::Transform s2w_tf; - double z_fg, z_bg; - cv_bridge::CvImagePtr cv_depth_fg, cv_depth_bg; - { - std::lock_guard lock(io_mutex); - // cv_depth_fg = - // cv_bridge::toCvCopy(disp_graph.at(i).Im_fg,sensor_msgs::image_encodings::TYPE_32FC1); - // cv_depth_bg = - // cv_bridge::toCvCopy(disp_graph.at(i).Im_bg,sensor_msgs::image_encodings::TYPE_32FC1); - w2s_tf = disp_graph.at(i).w2s_tf; - s2w_tf = disp_graph.at(i).s2w_tf; - - z_fg = (baseline_ * fx_ / disp_graph.at(i).Im_fg->image.at(v, u)); - z_bg = (baseline_ * fx_ / disp_graph.at(i).Im_bg->image.at(v, u)); - } - - for (double z_sample = z_fg; - z_sample <= z_bg && std::isfinite(z_sample) /*&& z_sample>5.0*/; - z_sample += 0.5) { - pt_optical_fg.setZ(z_sample); - pt_optical_fg.setX((u - cx_) * pt_optical_fg.getZ() / fx_); - pt_optical_fg.setY((v - cy_) * pt_optical_fg.getZ() / fy_); - - pt_world_fg = s2w_tf * pt_optical_fg; - - pcl::PointXYZI pt; - // FG - pt.x = pt_world_fg.getX(); - pt.y = pt_world_fg.getY(); - pt.z = pt_world_fg.getZ(); - - double state_disparity = baseline_ * fx_ / z_sample; - double confidence = (state_disparity - 0.5) / state_disparity; - - if (confidence >= thresh_) - pt.intensity = confidence; //*200.0;//i*20+10; - else - pt.intensity = 0.0; - if (confidence >= thresh_) { - pcd_checked_states.points.push_back(pt); - pcd_checked_states.width++; - } - z_sample = ((z_sample + 0.5) > z_bg) ? z_bg : z_sample; - } - - } - } - } - - // Create the filtering object - pcd_checked_states.header.stamp = pcl_conversions::toPCL(this->now()); - pcl::PCLPointCloud2::Ptr cloud(new pcl::PCLPointCloud2()); - pcl::PCLPointCloud2::Ptr cloud_filtered(new pcl::PCLPointCloud2()); - pcl::toPCLPointCloud2(pcd_checked_states, *cloud); - pcl::VoxelGrid sor; - sor.setInputCloud(cloud); - double voxel_dim = 0.5; - sor.setLeafSize(voxel_dim, voxel_dim, voxel_dim); - sor.filter(*cloud_filtered); - pcd_checked_states.clear(); - pcl::fromPCLPointCloud2(*cloud_filtered, pcd_checked_states); - - sensor_msgs::msg::PointCloud2 cloud_PC2; - pcl::toROSMsg(pcd_checked_states, cloud_PC2); - pcdPub->publish(cloud_PC2); - pcd_checked_states.points.clear(); - pcd_checked_states.width = 0; -} - -void disparity_graph::pcd_test4() { - if (pcdPub->get_subscription_count() == 0) { - return; - } - - pcl::PointXYZI pt; - - rclcpp::Time stamp = this->now(); - tf_buffer_->canTransform(fixed_frame, stabilized_frame, stamp, - rclcpp::Duration::from_seconds(0.1)); - geometry_msgs::msg::TransformStamped transform; - try { - // listener.lookupTransform(fixed_frame, stabilized_frame, stamp, transform); - transform = tf_buffer_->lookupTransform(fixed_frame, stabilized_frame, stamp); - } catch (tf2::TransformException &ex) { - RCLCPP_ERROR(this->get_logger(), "DG graph_pcd %s", ex.what()); - // ros::Duration(1.0).sleep(); - // continue; - return; - } - // checked_point_stmpd.header.stamp = stamp;//ros::Time::now();//(0); - // checked_point_stmpd.header.frame_id = fixed_frame; - - pcd_checked_states.header.frame_id = fixed_frame; - - geometry_msgs::msg::PoseStamped checked_pose; - checked_pose.header.frame_id = pcd_checked_states.header.frame_id; - checked_pose.header.stamp = stamp; - float delta = .5; - for (float i = -50; i <= 50; i += delta) { - for (float u = -50; u <= 50; u += delta) { - for (float v = -10; v <= 10; v += delta) { - // checked_point_stmpd.point.x = i; - // checked_point_stmpd.point.y = u; - // checked_point_stmpd.point.z = v; - - tf2::Vector3 local_point(i, u, v); - // tf::pointMsgToTF(checked_point_stmpd.point,local_point); - // tf2::Vector3 world_point = tf2::transformToEigen(transform); - // tf2::toMsg(world_point, checked_pose.pose.position); - Eigen::Isometry3d transform_eigen; - tf2::fromMsg(transform.transform, transform_eigen); - Eigen::Vector3d eigen_world_point = - transform_eigen * - Eigen::Vector3d(local_point.x(), local_point.y(), local_point.z()); - tf2::Vector3 world_point(eigen_world_point.x(), eigen_world_point.y(), - eigen_world_point.z()); - tf2::toMsg(world_point, checked_pose.pose.position); - double occupancy = 0.0; - bool valid = isStateValidDepth_pose(checked_pose, thresh_, occupancy); - if (!valid) { - pt.x = world_point.getX(); - pt.y = world_point.getY(); - pt.z = world_point.getZ(); - pt.intensity = occupancy; - - if (occupancy >= thresh_) { - pcd_checked_states.points.push_back(pt); - pcd_checked_states.width++; - } - } - } - } - } - - // Create the filtering object - pcd_checked_states.header.stamp = pcl_conversions::toPCL(stamp); - /*pcl::PCLPointCloud2::Ptr cloud (new pcl::PCLPointCloud2 ()); - pcl::PCLPointCloud2::Ptr cloud_filtered (new pcl::PCLPointCloud2 ()); - pcl::toPCLPointCloud2(pcd_checked_states,*cloud); - pcl::VoxelGrid sor; - sor.setInputCloud (cloud); - double voxel_dim = 0.5; - sor.setLeafSize (voxel_dim,voxel_dim,voxel_dim); - sor.filter (*cloud_filtered); - pcd_checked_states.clear(); - pcl::fromPCLPointCloud2(*cloud_filtered,pcd_checked_states);*/ - - sensor_msgs::msg::PointCloud2 cloud_PC2; - pcl::toROSMsg(pcd_checked_states, cloud_PC2); - pcdPub->publish(cloud_PC2); - pcd_checked_states.points.clear(); - pcd_checked_states.width = 0; -} - -/* -void disparity_graph::pcd_test2(const ros::TimerEvent& event) { - pcd_test(event); - if(occPub_.getNumSubscribers() == 0) - return; - - occ_map.info.map_load_time = ros::Time::now(); - occ_map.data.clear(); - occ_map.data.resize(occ_map.info.width*occ_map.info.height,-1); - - for(uint u=0; u=0 && index < occ_map.info.width*occ_map.info.height) - { - getStateCost(chk_pose,cost); - occ_map.data[index] = uint64(cost); - } - - } - } - occ_map.header.stamp = ros::Time::now(); - occPub_.publish(occ_map); -} -*/ - -void disparity_graph::pcd_test3() { - /* create expansion PCD */ - if (expansion_poly_pub->get_subscription_count() > 0) { - cv_bridge::CvImagePtr cv_depth_fg, cv_depth_bg; - visualization_msgs::msg::MarkerArray marker_arr; - visualization_msgs::msg::Marker marker; - // marker.header = msg_disp->header; - marker.ns = "occ_space"; - marker.id = 0; - marker.type = visualization_msgs::msg::Marker::LINE_STRIP; - marker.lifetime = rclcpp::Duration::from_seconds(0.5); - marker.action = visualization_msgs::msg::Marker::ADD; - marker.pose.position.x = 0; // xyz_centroid[0]; - marker.pose.position.y = 0; // xyz_centroid[1]; - marker.pose.position.z = 0; // xyz_centroid[2]; - - // tf::quaternionTFToMsg(tf::createQuaternionFromRPY(0.0,0.0,0.0), marker.pose.orientation); - tf2::Quaternion q; - q.setRPY(0.0, 0.0, 0.0); - tf2::convert(q, marker.pose.orientation); - - // marker.pose.orientation.w = 1; - float marker_scale = 0.1; - marker.scale.x = marker_scale; - marker.scale.y = marker_scale; - marker.scale.z = marker_scale; - marker.color.a = 1.0; // Don't forget to set the alpha! - marker.color.r = 1.0; - marker.color.g = 0.0; - marker.color.b = 0.0; - - int v = 60; - for (uint i = 0; i < disp_graph.size(); i++) { - float prev_depth = 0.0; - marker.header = disp_graph.at(i).header; - for (int u = (int)width_ - 1; u >= 0; u--) { - float depth_value = baseline_ * fx_ / - disp_graph.at(i).Im_fg->image.at( - v, u); // free_msg->image.at(v,u)[0]; - float depth_diff = fabs(depth_value - prev_depth); - prev_depth = depth_value; - if (!std::isnan(depth_value) && !std::isinf(depth_value) && depth_diff < 0.5) { - geometry_msgs::msg::Point gm_p; - gm_p.x = (u - cx_) * depth_value / fx_; - gm_p.y = (v - cy_) * depth_value / fy_; - gm_p.z = depth_value; - marker.points.push_back(gm_p); - - depth_value = baseline_ * fx_ / disp_graph.at(i).Im_bg->image.at(v, u); - gm_p.x = (u - cx_) * depth_value / fx_; - gm_p.y = (v - cy_) * depth_value / fy_; - gm_p.z = depth_value; - marker.points.push_back(gm_p); - // poly.polygon.points.push_back(gm_p); - } else { - marker_arr.markers.push_back(marker); - marker.points.clear(); - marker.id++; - } - } - } - marker_arr.markers.push_back(marker); - expansion_poly_pub->publish(marker_arr); - } -} - -void disparity_graph::disp_cb(const sensor_msgs::msg::Image::ConstSharedPtr &disp_fg, - const sensor_msgs::msg::Image::ConstSharedPtr &disp_bg) { - // ROS_INFO("Recvd Disp,size %d",disp_graph.size()); - RCLCPP_INFO(this->get_logger(), "Recvd disp stamp: %lf", - (this->now() - disp_fg->header.stamp).seconds()); - sensor_frame = disp_fg->header.frame_id; - - // listener.waitForTransform(sensor_frame, - // fixed_frame, - // disp_fg->header.stamp, ros::Duration(0.10)); - // tf::StampedTransform transform; - - geometry_msgs::msg::TransformStamped transform_stamped; - - try { - // listener.lookupTransform(sensor_frame, - // fixed_frame, - // disp_fg->header.stamp, transform); - transform_stamped = tf_buffer_->lookupTransform(fixed_frame, sensor_frame, - tf2_ros::fromMsg(disp_fg->header.stamp), - tf2::durationFromSec(0.10)); - } catch (tf2::TransformException &ex) { - RCLCPP_ERROR(this->get_logger(), "DG disp_cb %s", ex.what()); - // ros::Duration(1.0).sleep(); - // continue; - return; - } - - std::lock_guard lock(io_mutex); - if (first) { - first = false; - node n; - try { - n.Im_fg = cv_bridge::toCvCopy(disp_fg, sensor_msgs::image_encodings::TYPE_32FC1); - n.Im_bg = cv_bridge::toCvCopy(disp_bg, sensor_msgs::image_encodings::TYPE_32FC1); - } catch (std::exception &ex) { - RCLCPP_ERROR(this->get_logger(), "\n\n\n\n\n\t\t\tDEQUE ERR\n\n\n\n: %s", ex.what()); - return; - } - // n.Im_fg = *disp_fg; - // n.Im_bg = *disp_bg; - n.header = disp_bg->header; - // n.w2s_tf = transform; - tf2::fromMsg(transform_stamped.transform, n.w2s_tf); - // n.w2s_tf= tf2::transformToEigen(transform_stamped.transform); - n.s2w_tf = n.w2s_tf.inverse(); - disp_graph.push_front(n); - disp_graph.push_back(n); - } else { - // Check for similar tf nodes - // tf::Vector3 curr_a =transform.inverse().getRotation().normalize().getAxis().normalize(); - - // tf::Vector3 curr_p =transform.inverse().getOrigin(); - // tf2::Transform transform; - // tf2::Vector3 curr_p = transform_stamped.inverse().getOrigin(); - // ############################################################################### - - tf2::Transform transform; - tf2::fromMsg(transform_stamped.transform, transform); - - // Now get the inverse of the tf2::Transform - tf2::Transform inverse_transform = transform.inverse(); - - // Convert the inverse tf2::Transform back to geometry_msgs::msg::Transform - geometry_msgs::msg::Transform inverse_transform_msg = tf2::toMsg(inverse_transform); - - // Now, convert the geometry_msgs::msg::Transform to Eigen::Isometry3d - Eigen::Isometry3d eigen_transform = tf2::transformToEigen(inverse_transform_msg); - - // Extract the translation as Eigen::Vector3d - Eigen::Vector3d curr_p = eigen_transform.translation(); - - // ########################################################################################################## - std::deque::iterator it, end; - it = disp_graph.begin(); - end = disp_graph.end() - 1; - - // ############################################################################################################# - // while(it!=end && disp_graph.size()) - // { - // tf::Vector3 graph_a = it->s2w_tf.getRotation().normalize().getAxis().normalize(); - // tf2::Vector3 graph_p = it->s2w_tf.getOrigin(); - // Ensure it->s2w_tf is of type geometry_msgs::msg::Transform - geometry_msgs::msg::Transform s2w_tf_msg = - tf2::toMsg(it->s2w_tf); // Assuming it->s2w_tf is a tf2::Transform - - // Convert to Eigen - Eigen::Isometry3d graph_transform = tf2::transformToEigen(s2w_tf_msg); - Eigen::Vector3d graph_p = graph_transform.translation(); // Get the translation - - tf2Scalar diff_a = - tf2::angleShortestPath(transform.inverse().getRotation(), it->s2w_tf.getRotation()); - // tf2Scalar diff_p = curr_p.distance(graph_p); - tf2Scalar diff_p = (curr_p - graph_p).norm(); - // ROS_INFO_STREAM("diff_a ; diff_p:"<get_logger(), "\n\n\n\n\n\t\t\tDEQUE ERR\n\n\n\n: %s", ex.what()); - return; - } - // n.Im_fg = *disp_fg; - // n.Im_bg = *disp_bg; - n.header = disp_bg->header; - n.w2s_tf = transform; - n.s2w_tf = transform.inverse(); - // pose in graph is too close in angle to the current graph - if (fabs(diff_a) >= angle_tol || fabs(diff_p) > displacement_tol) { - RCLCPP_ERROR(this->get_logger(), "Adding new node size %d", (int)disp_graph.size()); - if (disp_graph.size() >= graph_size) { - disp_graph.erase(end); - } - - // add new data - if (disp_graph.size() <= graph_size) { - disp_graph.push_front(n); - } - // it = disp_graph.erase(it); - } - disp_graph.pop_back(); - disp_graph.push_back(n); - // pcd_test(); - } - - visualization_msgs::msg::MarkerArray marker_arr; - - for (uint i = 0; i < disp_graph.size(); i++) { - // ROS_INFO_STREAM(disp_graph.at(i).tf.inverse().getOrigin().x()); - // tf2::pointTFToMsg(disp_graph.at(i).s2w_tf.getOrigin(), marker.pose.position); - // tf2::quaternionTFToMsg(disp_graph.at(i).s2w_tf.getRotation(), marker.pose.orientation); - // marker.pose.position = tf2::toMsg(disp_graph.at(i).s2w_tf.getOrigin()); - tf2::Vector3 origin = disp_graph.at(i).s2w_tf.getOrigin(); - marker.pose.position.x = origin.getX(); - marker.pose.position.y = origin.getY(); - marker.pose.position.z = origin.getZ(); - marker.pose.orientation = tf2::toMsg(disp_graph.at(i).s2w_tf.getRotation()); - marker.header.stamp = this->now(); - marker.id = i; - marker_arr.markers.push_back(marker); - } - - disparity_graph_marker_pub->publish(marker_arr); - // marker_arr.markers.clear(); -} - -void disparity_graph::getCamInfo(const sensor_msgs::msg::CameraInfo::ConstSharedPtr &msg_info) { - if (got_cam_info) { - return; - } - image_geometry::PinholeCameraModel model_; - model_.fromCameraInfo(msg_info); - RCLCPP_WARN(this->get_logger(), "Cam Info Recvd Fx Fy Cx Cy: %f %f , %f %f Baseline: %f", - model_.fx(), model_.fy(), model_.cx(), model_.cy(), baseline_); - cx_ = model_.cx() / downsample_scale; - cy_ = model_.cy() / downsample_scale; - fx_ = fy_ = model_.fx() / downsample_scale; - width_ = - msg_info->width / downsample_scale; // this is already downsampled from, disp_expansion - height_ = msg_info->height / downsample_scale; - double baseline = -msg_info->p[3] / msg_info->p[0]; - if (baseline != 0.0) { - baseline_ = baseline; - } - baseline_ *= downsample_scale; - RCLCPP_WARN(this->get_logger(), - "Transformed Cam Info Recvd Fx Fy Cx Cy: %f %f, %f %f Baseline: %f with " - "downsamplescale: %f", - model_.fx(), model_.fy(), model_.cx(), model_.cy(), baseline_, downsample_scale); - - RCLCPP_WARN(this->get_logger(), - "Cam Info Constants - Fx Fy Cx Cy: %f %f, %f %f / width=%d - height=%d", fx_, fy_, - cx_, cy_, width_, height_); - - got_cam_info = true; -} - -bool disparity_graph::isStateValidDepth_pose(geometry_msgs::msg::PoseStamped checked_state, - double thresh, double &occupancy) { - // unsigned int invalid_cntr=0; - occupancy = 0.0; - geometry_msgs::msg::PointStamped checked_point_stamped; - checked_point_stamped.point = checked_state.pose.position; - checked_point_stamped.header = checked_state.header; - - ////check the pose using the footprint_cost check - - geometry_msgs::msg::PointStamped world_point_stamped; - - try { - // listener_.transformPoint(fixed_frame, checked_point_stamped, world_point_stamped); - world_point_stamped = tf_buffer_->transform(checked_point_stamped, fixed_frame); - } catch (tf2::TransformException ex) { - RCLCPP_ERROR(this->get_logger(), "TF to fixed_frame failed: %s", ex.what()); - return false; - } - - tf2::Vector3 optical_point; - tf2::fromMsg(world_point_stamped.point, optical_point); - - std::lock_guard lock(io_mutex); - bool seen = false; // true; - for (uint i = 0; i < disp_graph.size(); i++) { - tf2::Vector3 local_point = disp_graph.at(i).w2s_tf * optical_point; - - float x, y, z; - - x = local_point.getX(); - y = local_point.getY(); - z = local_point.getZ(); - - if (local_point.length() < 1.0) { - seen = true; - continue; - } - // if((-0.20= 0 && u < width_ && v >= 0 && v < height_ && z > 0.0) { - seen = true; - double state_disparity = baseline_ * fx_ / z; - if ((disp_graph.at(i).Im_fg->image.at(v, u) > state_disparity) && - (disp_graph.at(i).Im_bg->image.at(v, u) < state_disparity)) { - occupancy += (state_disparity - 0.5) / state_disparity; - } else { - occupancy -= 0.5 * (state_disparity - 0.5) / state_disparity; - occupancy = occupancy < 0.0 ? 0.0 : occupancy; - } - } - if (/*invalid_cntr>=invalid_thresh*/ occupancy >= thresh) { - return false; - } - } - if (seen) { - return true; - } else { - return false; - } -} - -bool disparity_graph::getStateCost(geometry_msgs::msg::Pose checked_state, double &cost) { - // uint invalid_thresh = 2; - // uint validity = 2; - // unsigned int invalid_cntr=0; - geometry_msgs::msg::PointStamped checked_point_stamped; - checked_point_stamped.header.frame_id = "world"; - checked_point_stamped.header.stamp = this->now() - rclcpp::Duration::from_seconds(0.1); - checked_point_stamped.point = checked_state.position; - - geometry_msgs::msg::PointStamped world_point_stamped; - // listener.waitForTransform(fixed_frame,checked_point_stamped.header.frame_id,checked_point_stamped.header.stamp,ros::Duration(1.0)); - try { - // listener_.transformPoint(fixed_frame, checked_point_stamped, world_point_stamped); - world_point_stamped = tf_buffer_->transform(checked_point_stamped, fixed_frame); - } catch (tf2::TransformException ex) { - RCLCPP_ERROR(this->get_logger(), "TF to fixed_frame failed: %s", ex.what()); - return false; - } - - tf2::Vector3 optical_point; - tf2::fromMsg(world_point_stamped.point, optical_point); - - std::lock_guard lock(io_mutex); - for (uint i = 0; i < disp_graph.size(); i++) { - tf2::Vector3 local_point = disp_graph.at(i).w2s_tf * optical_point; - - float x, y, z; - x = local_point.getX(); - y = local_point.getY(); - z = local_point.getZ(); - - // point behind camera - if (z < 0) { - continue; - } - - int u = x / z * fx_ + cx_; - int v = y / z * fy_ + cy_; - - if (u >= 0 && u < width_ && v >= 0 && v < height_) { - double state_disparity = baseline_ * fx_ / z; - if ((disp_graph.at(i).Im_fg->image.at(v, u) > state_disparity) && - (disp_graph.at(i).Im_bg->image.at(v, u) < state_disparity)) { - // cost += (fabs(bg_msg->image.at(v,u) - - // state_disparity)/fabs(fg_msg->image.at(v,u) - - // bg_msg->image.at(v,u)) + 1) * 10; - cost += state_disparity * 10.0; - // invalid_cntr++; - } - cost = cost < 0.0 ? 0.0 : cost; - - if (cost > 100.0) { - cost = 100.0; - return false; - } - - RCLCPP_ERROR_THROTTLE( - this->get_logger(), *this->get_clock(), 1000, // Throttle for 1 second - "CHECKING POINT at \t%f\t%f\t%f : cost = %f", checked_state.position.x, - checked_state.position.y, checked_state.position.z, cost); - } - } +namespace disparity_graph +{ - return true; -} +} // namespace disparity_graph diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_map_representation/COLCON_IGNORE b/ros_ws/src/robot/autonomy/planning/local/disparity_map_representation/COLCON_IGNORE deleted file mode 100644 index e69de29bb..000000000 diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_map_representation/include/disparity_map_representation/disparity_map_representation.hpp b/ros_ws/src/robot/autonomy/planning/local/disparity_map_representation/include/disparity_map_representation/disparity_map_representation.hpp new file mode 100644 index 000000000..1e5634a09 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_map_representation/include/disparity_map_representation/disparity_map_representation.hpp @@ -0,0 +1,49 @@ +#ifndef _DISPARITY_MAP_REPRESENTATION_ +#define _DISPARITY_MAP_REPRESENTATION_ +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +class DisparityMapRepresentation : public MapRepresentation { + private: + std::unique_ptr disp_graph; + + visualization_msgs::msg::MarkerArray markers; + visualization_msgs::msg::Marker points; + + // tf::TransformListener* listener; + std::shared_ptr listener; + + // ros::Publisher debug_pub; + rclcpp::Publisher::SharedPtr debug_pub; + + int obstacle_check_points; + double obstacle_check_radius; + + public: + DisparityMapRepresentation(); + virtual double distance_to_obstacle(geometry_msgs::msg::PoseStamped pose, + tf2::Vector3 direction); + virtual void publish_debug(); + + // virtual std::vector< std::vector > + // get_values(std::vector trajectories); + virtual std::vector > get_values( + std::vector > trajectories); +}; + +#endif diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_map_representation/src/disparity_map_representation.cpp b/ros_ws/src/robot/autonomy/planning/local/disparity_map_representation/src/disparity_map_representation.cpp index bb5035be6..ffc1546c1 100644 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_map_representation/src/disparity_map_representation.cpp +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_map_representation/src/disparity_map_representation.cpp @@ -1,14 +1,8 @@ -#include - +#include #include -DisparityMapRepresentation::DisparityMapRepresentation() : MapRepresentation() { - // ros::NodeHandle* nh = new ros::NodeHandle(); - // ros::NodeHandle* pnh = new ros::NodeHandle("~"); - disp_graph = new nabla::disparity_graph::disparity_graph(); - // std::shared_ptr disp_graph; - // disp_graph = std::make_shared(); - +DisparityMapRepresentation::DisparityMapRepresentation() + : MapRepresentation(), disp_graph(std::make_unique()) { points.ns = "obstacles"; points.id = 0; points.type = visualization_msgs::msg::Marker::SPHERE_LIST; @@ -47,7 +41,8 @@ std::vector > DisparityMapRepresentation::get_values( for (int i = 0; i < trajectories.size(); i++) { // core_trajectory_msgs::TrajectoryXYZVYaw trajectory = trajectories[i]; for (int j = 0; j < trajectories[i].size(); j++) { - tf2::Vector3 wp = tflib::to_tf(trajectories[i][j].point); + tf2::Vector3 wp; + tf2::fromMsg(trajectories[i][j].point, wp); // find the direction of the current trajectory segment between waypoints // this direction will be used to check for obstacles in a perpendicular direction @@ -59,10 +54,10 @@ std::vector > DisparityMapRepresentation::get_values( 0); // TODO: make this point in the direction of the waypoints quaternion } else { if (j == 0) { - wp2 = tflib::to_tf(trajectories[i][1].point); + tf2::fromMsg(trajectories[i][1].point, wp2); direction = wp2 - wp; } else { - wp2 = tflib::to_tf(trajectories[i][j - 1].point); + tf2::fromMsg(trajectories[i][j-1].point, wp); direction = wp - wp2; } } @@ -90,10 +85,10 @@ std::vector > DisparityMapRepresentation::get_values( directions.push_back(q_left); directions.push_back(q_right); - tf2::Vector3 position = wp; // tflib::to_tf(pose.pose.position); + tf2::Vector3 position = wp; tf2::Quaternion q = tf2::Quaternion(0, 0, 0, 1); // TODO: figure out if this makes sense - // //tflib::to_tf(pose.pose.orientation); + // tf2::Vector3 unit(1, 0, 0); double closest_obstacle_distance = obstacle_check_radius; @@ -129,7 +124,7 @@ std::vector > DisparityMapRepresentation::get_values( double occupancy; bool collision = - !disp_graph->isStateValidDepth_pose(check_pose, 0.9, occupancy); + !disp_graph->is_state_valid_depth_pose(check_pose, 0.9, occupancy); std_msgs::msg::ColorRGBA c; if (collision) { @@ -151,7 +146,7 @@ std::vector > DisparityMapRepresentation::get_values( pose.pose.orientation.w = 1.0; double occupancy; - if (!disp_graph->isStateValidDepth_pose(pose, 0.9, occupancy)) { + if (!disp_graph->is_state_valid_depth_pose(pose, 0.9, occupancy)) { values[i][j] = 0.f; points.colors.push_back(red); } else { @@ -165,136 +160,6 @@ std::vector > DisparityMapRepresentation::get_values( return values; } -/*std::vector< std::vector > - DisparityMapRepresentation::get_values(std::vector - trajectories){ std::vector< std::vector > values(trajectories.size()); - - for(int i = 0; i < trajectories.size(); i++) - for(int j = 0; j < trajectories[i].waypoints.size(); j++) - values[i].push_back(0); - - for(int i = 0; i < trajectories.size(); i++){ - core_trajectory_msgs::TrajectoryXYZVYaw trajectory = trajectories[i]; - for(int j = 0; j < trajectory.waypoints.size(); j++){ - tf::Vector3 wp = tflib::to_tf(trajectory.waypoints[j].position); - - // find the direction of the current trajectory segment between waypoints - // this direction will be used to check for obstacles in a perpendicular direction - tf::Vector3 direction; - tf::Vector3 wp2 = wp; - if(trajectory.waypoints.size() < 2){ - direction = tf::Vector3(1, 0, 0); // TODO: make this point in the direction of the - waypoints quaternion - } - else{ - if(j == 0){ - wp2 = tflib::to_tf(trajectory.waypoints[1].position); - direction = wp2 - wp; - } - else{ - wp2 = tflib::to_tf(trajectory.waypoints[j-1].position); - direction = wp - wp2; - } - } - - points.header.frame_id = trajectory.header.frame_id; - std_msgs::ColorRGBA green; - green.r = 0; - green.b = 0; - green.g = 1; - green.a = 1; - std_msgs::ColorRGBA red; - red.r = 1; - red.b = 0; - red.g = 0; - red.a = 1; - - tf::Quaternion q_up, q_down, q_left, q_right; - q_up.setRPY(0, -M_PI/2, 0); - q_down.setRPY(0, M_PI/2, 0); - q_left.setRPY(0, 0, M_PI/2); - q_right.setRPY(0, 0, -M_PI/2); - std::vector directions; - directions.push_back(q_up); - directions.push_back(q_down); - directions.push_back(q_left); - directions.push_back(q_right); - - tf::Vector3 position = wp;//tflib::to_tf(pose.pose.position); - tf::Quaternion q = tf::Quaternion(0, 0, 0, 1); // TODO: figure out if this makes sense - //tflib::to_tf(pose.pose.orientation); tf::Vector3 unit(1, 0, 0); double - closest_obstacle_distance = obstacle_check_radius; - - direction.normalize(); - tf::Vector3 up = tf::Transform(q_up*q)*unit; - up.normalize(); - - tf::Vector3 side = up.cross(direction); - side.normalize(); - - up = side.cross(direction); - up.normalize(); - - std::vector direction_vectors; - direction_vectors.push_back(up); - direction_vectors.push_back(side); - direction_vectors.push_back(-up); - direction_vectors.push_back(-side); - - for(int m = 0; m < directions.size(); m++){ - tf::Quaternion q_curr = directions[m]; - for(int k = 1; k < obstacle_check_points+1; k++){ - double dist = (double)k*obstacle_check_radius/(double)(obstacle_check_points+1); - - tf::Vector3 point = position + - dist*direction_vectors[m];//tf::Transform(q_curr)*(dist*direction); geometry_msgs::PoseStamped - check_pose; check_pose.header = trajectory.header; check_pose.pose.position.x = point.x(); - check_pose.pose.position.y = point.y(); - check_pose.pose.position.z = point.z(); - check_pose.pose.orientation.w = 1.0; - - double occupancy; - bool collision = !disp_graph->isStateValidDepth_pose(check_pose, 0.9, occupancy); - - std_msgs::ColorRGBA c; - if(collision){ - closest_obstacle_distance = std::min(dist, closest_obstacle_distance); - c = red; - } - else - c = green; - - points.points.push_back(check_pose.pose.position); - points.colors.push_back(c); - } - } - - points.points.push_back(trajectory.waypoints[j].position); - - geometry_msgs::PoseStamped pose; - pose.header = trajectory.header; - pose.pose.position.x = wp.x(); - pose.pose.position.y = wp.y(); - pose.pose.position.z = wp.z(); - pose.pose.orientation.w = 1.0; - - double occupancy; - if(!disp_graph->isStateValidDepth_pose(pose, 0.9, occupancy)){ - values[i][j] = 0.f; - points.colors.push_back(red); - } - else{ - points.colors.push_back(green); - } - - values[i][j] = closest_obstacle_distance; - } - } - - - return values; - }*/ - double DisparityMapRepresentation::distance_to_obstacle(geometry_msgs::msg::PoseStamped pose, tf2::Vector3 direction) { points.header.frame_id = pose.header.frame_id; @@ -320,8 +185,10 @@ double DisparityMapRepresentation::distance_to_obstacle(geometry_msgs::msg::Pose directions.push_back(q_left); directions.push_back(q_right); - tf2::Vector3 position = tflib::to_tf(pose.pose.position); - tf2::Quaternion q = tflib::to_tf(pose.pose.orientation); + tf2::Vector3 position; + tf2::fromMsg(pose.pose.position, position); + tf2::Quaternion q; + tf2::fromMsg(pose.pose.orientation, q); tf2::Vector3 unit(1, 0, 0); double closest_obstacle_distance = obstacle_check_radius; @@ -356,7 +223,7 @@ double DisparityMapRepresentation::distance_to_obstacle(geometry_msgs::msg::Pose check_pose.pose.orientation.w = 1.0; double occupancy; - bool collision = !disp_graph->isStateValidDepth_pose(check_pose, 0.9, occupancy); + bool collision = !disp_graph->is_state_valid_depth_pose(check_pose, 0.9, occupancy); std_msgs::msg::ColorRGBA c; if (collision) { @@ -374,7 +241,7 @@ double DisparityMapRepresentation::distance_to_obstacle(geometry_msgs::msg::Pose points.colors.push_back(green); double occupancy; - if (!disp_graph->isStateValidDepth_pose(pose, 0.9, occupancy)) return 0.f; + if (!disp_graph->is_state_valid_depth_pose(pose, 0.9, occupancy)) return 0.f; return closest_obstacle_distance; } @@ -390,183 +257,4 @@ void DisparityMapRepresentation::publish_debug() { points.colors.clear(); } -/* -DisparityMapRepresentation::DisparityMapRepresentation(ros::NodeHandle* nh){ - // init params - target_frame = nh->param("target_frame", std::string("world")); - distance_threshold = nh->param("distance_threshold", 0.5); - angle_threshold = M_PI/180.*nh->param("angle_threshold", 5.); - buffer_size = nh->param("buffer_size", 10); - - got_camera_info = false; - got_odom = false; - - debug_image = NULL; - - // subscribers - foreground_disparity_sub = - new message_filters::Subscriber(*nh, "/foreground_disparity", 1); - background_disparity_sub = - new message_filters::Subscriber(*nh, "/background_disparity", 1); - fg_bg_sync = - new message_filters::TimeSynchronizer - (*foreground_disparity_sub, *background_disparity_sub, 10); - fg_bg_sync->registerCallback(boost::bind(&DisparityMapRepresentation::fg_bg_disparity_callback, - this, _1, _2)); - camera_info_sub = nh->subscribe("/camera_info", 1, - &DisparityMapRepresentation::camera_info_callback, this); - odom_sub = nh->subscribe("/odometry", 1, &DisparityMapRepresentation::odom_callback, this); - listener = new tf::TransformListener(); - - // publishers - debug_pub = nh->advertise("debug_image", 10); -} - -void DisparityMapRepresentation::fg_bg_disparity_callback -(const sensor_msgs::ImageConstPtr& foreground, - const sensor_msgs::ImageConstPtr& background){ - if(!got_camera_info || !got_odom) - return; - - // convert the message to cv_bridge type - ImagePair image_pair; - try{ - image_pair.foreground = cv_bridge::toCvCopy(*foreground, foreground->encoding); - image_pair.background = cv_bridge::toCvCopy(*background, background->encoding); - } - catch (cv_bridge::Exception& e){ - ROS_ERROR_STREAM("cv_bridge exception: %s" << e.what()); - return; - } - - // get the tf - try{ - listener->waitForTransform(foreground->header.frame_id, target_frame, -foreground->header.stamp, ros::Duration(0.1)); - listener->lookupTransform(foreground->header.frame_id, target_frame, -foreground->header.stamp, image_pair.target_frame_to_image_tf); - } - catch(tf::TransformException& e){ - ROS_ERROR_STREAM("transform exception: " << e.what()); - } - - // for debugging - if(debug_image == NULL) - debug_image = new cv::Mat(foreground->height, foreground->width, CV_8UC1); - - // always keeps the most recent image pair at the beginning of the vector - if(image_pairs.size() == 0) - image_pairs.push_back(image_pair); - - image_pairs[0] = image_pair; - - // check if we should keep the image pair in the vector - if(should_add_image_pair()){ - // TODO: fill this in - } -} - -bool DisparityMapRepresentation::should_add_image_pair(){ - // TODO: fill this in - return false; -} - -void DisparityMapRepresentation::camera_info_callback(sensor_msgs::CameraInfo info){ - fx = info.P[0]; - fy = info.P[5]; - cx = info.P[2]; - cy = info.P[6]; - - baseline = -info.P[3]/info.P[0]; - - got_camera_info = true; -} - -void DisparityMapRepresentation::odom_callback(nav_msgs::Odometry odom){ - this->odom = odom; - got_odom = true; -} - -bool DisparityMapRepresentation::is_obstacle(geometry_msgs::PoseStamped pose, double threshold){ - tf::Vector3 point_target_frame; - double occupancy = 0; - - // transform the pose into the target frame - try{ - tf::StampedTransform pose_to_target_frame_tf; - listener->waitForTransform(target_frame, pose.header.frame_id, pose.header.stamp, - ros::Duration(0.1)); - listener->lookupTransform(target_frame, pose.header.frame_id, pose.header.stamp, - pose_to_target_frame_tf); - - tf::Vector3 point_pose_frame(pose.pose.position.x, pose.pose.position.y, -pose.pose.position.z); point_target_frame = pose_to_target_frame_tf*point_pose_frame; - } - catch(tf::TransformException& e){ - ROS_ERROR_STREAM("transform exception: " << e.what()); - return false; - } - - - for(int i = 0; i < image_pairs.size(); i++){ - ImagePair image_pair = image_pairs[i]; - - // project the point into the image - tf::Vector3 point_image_frame = image_pair.target_frame_to_image_tf*point_target_frame; - //ROS_INFO_STREAM(fx << " " << fy << " " << cx << " " << cy << " " << baseline); - int c = point_image_frame.x()/point_image_frame.z()*fx + cx; - int r = point_image_frame.y()/point_image_frame.z()*fy + cy;; - double point_disparity = baseline*fx/point_image_frame.z(); - //ROS_INFO_STREAM(point_image_frame.x() << " " << point_image_frame.y() << " " << -point_image_frame.z() << " " << c << " " << r); - - // check occupancy - if(point_image_frame.z() >= 0 && - c >= 0 && c < image_pair.foreground->image.cols && - r >= 0 && r < image_pair.foreground->image.rows){ - - // if the point is between the foreground and background - if(image_pair.foreground->image.at(r, c) > point_disparity && - image_pair.background->image.at(r, c) < point_disparity){ - occupancy += (point_disparity - 0.5)/point_disparity; - - ROS_INFO_STREAM("disp: " << point_disparity << " " << -image_pair.foreground->image.at(r, c) << " " << image_pair.background->image.at(r, -c) -<< " " << occupancy); - // debugging - debug_image->at(r, c) = 255; - } - else{ - occupancy -= 0.5*(point_disparity - 0.5)/point_disparity; - occupancy = std::max(occupancy, 0.0); - - // debugging - debug_image->at(r, c) = 128; - } - - - if(occupancy >= threshold) - return false; - } - } - - return true; -} - - -void DisparityMapRepresentation::publish_debug(){ - if(debug_image != NULL){ - cv_bridge::CvImage cv_image; - cv_image.header.frame_id = ""; - cv_image.header.stamp = ros::Time::now(); - cv_image.encoding = sensor_msgs::image_encodings::TYPE_8UC1; - cv_image.image = *debug_image; - - debug_pub.publish(cv_image.toImageMsg()); - *debug_image = 0; - } -} -*/ - PLUGINLIB_EXPORT_CLASS(DisparityMapRepresentation, MapRepresentation) From d8733a4d20f79c4bde20779dbf761a10aaba6bbd Mon Sep 17 00:00:00 2001 From: Andrew Jong Date: Thu, 29 Aug 2024 18:04:31 -0400 Subject: [PATCH 48/50] Droan builds --- .../local/core_local_planner/CMakeLists.txt | 22 +- .../core_local_planner/local_planner.h | 67 +- .../launch/local_planner.launch | 2 +- .../local/core_local_planner/package.xml | 6 +- .../core_local_planner/src/local_planner.cpp | 94 +-- .../CMakeLists.txt | 34 +- .../map_representation.h | 4 +- .../package.xml | 2 +- .../core_trajectory_controller/CMakeLists.txt | 12 +- .../launch/trajectory_controller.launch | 2 +- .../core_trajectory_controller/package.xml | 12 +- .../src/trajectory_controller.cpp | 87 ++- .../local/core_trajectory_msgs/CMakeLists.txt | 35 - .../msg/FixedTrajectory.msg | 2 - .../core_trajectory_msgs/msg/Trajectory.msg | 1 - .../msg/TrajectoryXYZVYaw.msg | 2 - .../msg/WaypointXYZVYaw.msg | 3 - .../local/core_trajectory_msgs/package.xml | 25 - .../srv/TrajectoryMode.srv | 9 - .../local/disparity_graph_ros1/.gitignore | 5 + .../local/disparity_graph_ros1/CMakeLists.txt | 76 ++ .../local/disparity_graph_ros1/LICENSE | 1 + .../include/disparity_graph/disparity_graph.h | 113 +++ .../disparity_graph_ros1/launch/talker.launch | 21 + .../local/disparity_graph_ros1/package.xml | 34 + .../local/disparity_graph_ros1/readme.md | 10 + .../src/disparity_graph.cpp | 653 +++++++++++++++++ .../CMakeLists.txt | 6 +- .../disparity_map_representation.hpp | 4 +- .../disparity_map_representation/package.xml | 2 +- .../src/disparity_map_representation.cpp | 8 +- .../local/droan_local_planner/CMakeLists.txt | 61 ++ .../droan_local_planner.hpp | 666 ++++++++++++++++++ .../local/droan_local_planner/package.xml | 29 + .../src/droan_local_planner.cpp | 10 + 35 files changed, 1822 insertions(+), 298 deletions(-) delete mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/CMakeLists.txt delete mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/msg/FixedTrajectory.msg delete mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/msg/Trajectory.msg delete mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/msg/TrajectoryXYZVYaw.msg delete mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/msg/WaypointXYZVYaw.msg delete mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/package.xml delete mode 100644 ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/srv/TrajectoryMode.srv create mode 100644 ros_ws/src/robot/autonomy/planning/local/disparity_graph_ros1/.gitignore create mode 100644 ros_ws/src/robot/autonomy/planning/local/disparity_graph_ros1/CMakeLists.txt create mode 100644 ros_ws/src/robot/autonomy/planning/local/disparity_graph_ros1/LICENSE create mode 100644 ros_ws/src/robot/autonomy/planning/local/disparity_graph_ros1/include/disparity_graph/disparity_graph.h create mode 100644 ros_ws/src/robot/autonomy/planning/local/disparity_graph_ros1/launch/talker.launch create mode 100644 ros_ws/src/robot/autonomy/planning/local/disparity_graph_ros1/package.xml create mode 100644 ros_ws/src/robot/autonomy/planning/local/disparity_graph_ros1/readme.md create mode 100644 ros_ws/src/robot/autonomy/planning/local/disparity_graph_ros1/src/disparity_graph.cpp create mode 100644 ros_ws/src/robot/autonomy/planning/local/droan_local_planner/CMakeLists.txt create mode 100644 ros_ws/src/robot/autonomy/planning/local/droan_local_planner/include/droan_local_planner/droan_local_planner.hpp create mode 100644 ros_ws/src/robot/autonomy/planning/local/droan_local_planner/package.xml create mode 100644 ros_ws/src/robot/autonomy/planning/local/droan_local_planner/src/droan_local_planner.cpp diff --git a/ros_ws/src/robot/autonomy/planning/local/core_local_planner/CMakeLists.txt b/ros_ws/src/robot/autonomy/planning/local/core_local_planner/CMakeLists.txt index be9f2ba25..fcf8381aa 100644 --- a/ros_ws/src/robot/autonomy/planning/local/core_local_planner/CMakeLists.txt +++ b/ros_ws/src/robot/autonomy/planning/local/core_local_planner/CMakeLists.txt @@ -6,13 +6,13 @@ project(core_local_planner) # std_msgs # sensor_msgs # nav_msgs -# core_trajectory_library -# core_trajectory_controller +# trajectory_library +# trajectory_controller # core_map_representation_interface # tflib # actionlib_msgs # behavior_tree -# core_trajectory_msgs +# airstack_msgs # pluginlib #) find_package(ament_cmake REQUIRED) @@ -20,13 +20,13 @@ find_package(rclcpp REQUIRED) find_package(std_msgs REQUIRED) find_package(sensor_msgs REQUIRED) find_package(nav_msgs REQUIRED) -find_package(core_trajectory_library REQUIRED) -find_package(core_trajectory_controller REQUIRED) +find_package(trajectory_library REQUIRED) +find_package(trajectory_controller REQUIRED) find_package(core_map_representation_interface REQUIRED) find_package(tf2_ros REQUIRED) find_package(actionlib_msgs REQUIRED) find_package(behavior_tree REQUIRED) -find_package(core_trajectory_msgs REQUIRED) +find_package(airstack_msgs REQUIRED) find_package(pluginlib REQUIRED) generate_messages( @@ -41,8 +41,8 @@ catkin_package( include_directories( include - ${core_trajectory_library_INCLUDE_DIRS} - ${core_trajectory_controller_INCLUDE_DIRS} + ${trajectory_library_INCLUDE_DIRS} + ${trajectory_controller_INCLUDE_DIRS} ${core_map_representation_interface_INCLUDE_DIRS} ${tf2_ros_INCLUDE_DIRS} ${behaviortree_cpp_v3_INCLUDE_DIRS} @@ -56,12 +56,12 @@ rclpy std_msgs sensor_msgs nav_msgs -core_trajectory_library -core_trajectory_controller +trajectory_library +trajectory_controller core_map_representation_interface tf2_ros action_msgs -core_trajectory_msgs +airstack_msgs pluginlib # Add other dependencies here ) diff --git a/ros_ws/src/robot/autonomy/planning/local/core_local_planner/include/core_local_planner/local_planner.h b/ros_ws/src/robot/autonomy/planning/local/core_local_planner/include/core_local_planner/local_planner.h index 445a7ede3..fb4b2a360 100644 --- a/ros_ws/src/robot/autonomy/planning/local/core_local_planner/include/core_local_planner/local_planner.h +++ b/ros_ws/src/robot/autonomy/planning/local/core_local_planner/include/core_local_planner/local_planner.h @@ -1,32 +1,30 @@ #ifndef _LOCAL_PLANNER_H_ #define _LOCAL_PLANNER_H_ -// #include -// #include -// #include -// #include -// #include -// #include -// #include -// #include -// #include -// #include -// #include -// #include -// #include -// #include -// #include -// #include -// #include -// #include -// #include -// #include -// #include - -// #include -// #include - -// #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include class LocalPlanner : public BaseNode { private: @@ -34,7 +32,7 @@ class LocalPlanner : public BaseNode { std::string map_representation; bool got_global_plan; - core_trajectory_msgs::msg::TrajectoryXYZVYaw global_plan; + airstack_msgs::msg::TrajectoryXYZVYaw global_plan; double global_plan_trajectory_distance; bool got_look_ahead, got_tracking_point; nav_msgs::msg::Odometry look_ahead_odom, tracking_point_odom; @@ -74,7 +72,7 @@ class LocalPlanner : public BaseNode { // MapRepresentation* pc_map; std::shared_ptr pc_map; - rclcpp::Subscription::SharedPtr global_plan_sub; + rclcpp::Subscription::SharedPtr global_plan_sub; rclcpp::Subscription::SharedPtr waypoint_sub; rclcpp::Subscription::SharedPtr look_ahead_sub; rclcpp::Subscription::SharedPtr tracking_point_sub; @@ -92,15 +90,15 @@ class LocalPlanner : public BaseNode { // ros::Publisher vis_pub, traj_pub, traj_track_pub, obst_vis_pub, global_plan_vis_pub, // look_past_vis_pub; rclcpp::Publisher::SharedPtr vis_pub; - rclcpp::Publisher::SharedPtr traj_pub; - rclcpp::Publisher::SharedPtr traj_track_pub; + rclcpp::Publisher::SharedPtr traj_pub; + rclcpp::Publisher::SharedPtr traj_track_pub; rclcpp::Publisher::SharedPtr obst_vis_pub; - rclcpp::Publisher::SharedPtr global_plan_vis_pub; - rclcpp::Publisher::SharedPtr look_past_vis_pub; + rclcpp::Publisher::SharedPtr global_plan_vis_pub; + rclcpp::Publisher::SharedPtr look_past_vis_pub; // services // ros::ServiceClient traj_mode_client; - rclcpp::Client::SharedPtr traj_mode_client; + rclcpp::Client::SharedPtr traj_mode_client; bool get_best_trajectory(std::vector trajs, Trajectory global_plan, Trajectory* best_traj); @@ -114,8 +112,7 @@ class LocalPlanner : public BaseNode { virtual ~LocalPlanner(); // subscriber callbacks - void global_plan_callback( - const core_trajectory_msgs::msg::TrajectoryXYZVYaw::SharedPtr global_plan); + void global_plan_callback(const airstack_msgs::msg::TrajectoryXYZVYaw::SharedPtr global_plan); void waypoint_callback(const geometry_msgs::msg::PointStamped::SharedPtr wp); void custom_waypoint_callback(const geometry_msgs::msg::PoseStamped::SharedPtr wp); void look_ahead_callback(const nav_msgs::msg::Odometry::SharedPtr odom); diff --git a/ros_ws/src/robot/autonomy/planning/local/core_local_planner/launch/local_planner.launch b/ros_ws/src/robot/autonomy/planning/local/core_local_planner/launch/local_planner.launch index 0fef9afec..b8649a7ae 100644 --- a/ros_ws/src/robot/autonomy/planning/local/core_local_planner/launch/local_planner.launch +++ b/ros_ws/src/robot/autonomy/planning/local/core_local_planner/launch/local_planner.launch @@ -11,7 +11,7 @@ - + diff --git a/ros_ws/src/robot/autonomy/planning/local/core_local_planner/package.xml b/ros_ws/src/robot/autonomy/planning/local/core_local_planner/package.xml index 5b6ea804d..5fd3debff 100644 --- a/ros_ws/src/robot/autonomy/planning/local/core_local_planner/package.xml +++ b/ros_ws/src/robot/autonomy/planning/local/core_local_planner/package.xml @@ -54,13 +54,13 @@ rclpy std_msgs nav_msgs - core_trajectory_library - core_trajectory_controller + trajectory_library + trajectory_controller core_map_representation_interface tf2_ros action_msgs behaviortree_cpp_v3 - core_trajectory_msgs + airstack_msgs pluginlib rosidl_default_generators diff --git a/ros_ws/src/robot/autonomy/planning/local/core_local_planner/src/local_planner.cpp b/ros_ws/src/robot/autonomy/planning/local/core_local_planner/src/local_planner.cpp index 5aeb5c260..5d49559f3 100644 --- a/ros_ws/src/robot/autonomy/planning/local/core_local_planner/src/local_planner.cpp +++ b/ros_ws/src/robot/autonomy/planning/local/core_local_planner/src/local_planner.cpp @@ -1,7 +1,7 @@ #include #include -#include #include +#include #include #include @@ -38,12 +38,12 @@ bool LocalPlanner::initialize() { global_plan_vis_pub = nh->advertise("local_planner_global_plan_vis", 10); look_past_vis_pub = nh->advertise("look_past", 10); - traj_pub = nh->advertise("trajectory", 10); - traj_track_pub = nh->advertise("trajectory_track", 10); + traj_pub = nh->advertise("trajectory", 10); + traj_track_pub = nh->advertise("trajectory_track", 10); // init services traj_mode_client = - nh->serviceClient("set_trajectory_mode"); + nh->serviceClient("set_trajectory_mode"); // init parameters waypoint_spacing = pnh->param("waypoint_spacing", 0.5); @@ -193,14 +193,16 @@ bool LocalPlanner::execute() { // publish the trajectory // ROS_INFO_STREAM("all_in_collsion: " << all_in_collision); if (!all_in_collision) { - core_trajectory_msgs::TrajectoryXYZVYaw path = best_traj.get_TrajectoryXYZVYaw(); + airstack_msgs::TrajectoryXYZVYaw path = best_traj.get_TrajectoryXYZVYaw(); // set yaw if (yaw_mode == SMOOTH_YAW && path.waypoints.size() > 0) { bool found_initial_heading = false; double initial_heading = 0; try { + // rotate tf::StampedTransform transform; + // translate from global frame to best_traj frame listener->waitForTransform(best_traj.get_frame_id(), look_ahead_odom.header.frame_id, look_ahead_odom.header.stamp, ros::Duration(0.1)); @@ -208,6 +210,7 @@ bool LocalPlanner::execute() { look_ahead_odom.header.stamp, transform); transform.setOrigin(tf::Vector3(0, 0, 0)); // only care about rotation + // get the yaw of the lookahead odom in body frame, apparently? initial_heading = tf::getYaw(transform * tflib::to_tf(look_ahead_odom.pose.pose.orientation)); @@ -228,8 +231,8 @@ bool LocalPlanner::execute() { // ROS_INFO_STREAM("heading: " << // 180./M_PI*tf::getYaw(tflib::to_tf(look_ahead_odom.pose.pose.orientation))); for (int i = 1; i < path.waypoints.size(); i++) { - core_trajectory_msgs::WaypointXYZVYaw wp_prev = path.waypoints[i - 1]; - core_trajectory_msgs::WaypointXYZVYaw& wp_curr = path.waypoints[i]; + airstack_msgs::WaypointXYZVYaw wp_prev = path.waypoints[i - 1]; + airstack_msgs::WaypointXYZVYaw& wp_curr = path.waypoints[i]; // ROS_INFO_STREAM(wp_curr.position.y - wp_prev.position.y << " " << // wp_curr.position.x - wp_prev.position.x); @@ -266,7 +269,7 @@ bool LocalPlanner::get_best_trajectory(std::vector trajectories, Tra visualization_msgs::MarkerArray traj_lib_markers, look_past_markers; - /*std::vector trajs; + /*std::vector trajs; for(int i = 0; i < trajectories.size(); i++) trajs.push_back(trajectories[i].get_TrajectoryXYZVYaw()); */ @@ -402,7 +405,7 @@ bool LocalPlanner::get_best_trajectory(std::vector trajectories, Tra return all_in_collision; } -void LocalPlanner::global_plan_callback(core_trajectory_msgs::TrajectoryXYZVYaw global_plan) { +void LocalPlanner::global_plan_callback(airstack_msgs::TrajectoryXYZVYaw global_plan) { ROS_INFO_STREAM("GOT GLOBAL PLAN, goal_mode: " << goal_mode); if (goal_mode != TRAJECTORY) return; @@ -427,17 +430,17 @@ void LocalPlanner::waypoint_callback(geometry_msgs::PointStamped wp) { waypoint_buffer.pop_front(); // stitch together the history of waypoints - core_trajectory_msgs::TrajectoryXYZVYaw global_plan; + airstack_msgs::TrajectoryXYZVYaw global_plan; global_plan.header.frame_id = wp.header.frame_id; global_plan.header.stamp = wp.header.stamp; - std::vector backwards_global_plan; + std::vector backwards_global_plan; // double waypoint_spacing_threshold = 0.5; // double waypoint_angle_threshold = 30.*M_PI/180.; std::vector prev_wps; for (auto it = waypoint_buffer.rbegin(); it != waypoint_buffer.rend(); it++) { geometry_msgs::PointStamped curr_wp = *it; - core_trajectory_msgs::WaypointXYZVYaw waypoint; + airstack_msgs::WaypointXYZVYaw waypoint; waypoint.position.x = curr_wp.point.x; waypoint.position.y = curr_wp.point.y; waypoint.position.z = curr_wp.point.z; @@ -489,16 +492,6 @@ void LocalPlanner::waypoint_callback(geometry_msgs::PointStamped wp) { for (int i = backwards_global_plan.size() - 1; i >= 0; i--) { global_plan.waypoints.push_back(backwards_global_plan[i]); } - /*for(auto it = waypoint_buffer.begin(); it != waypoint_buffer.end(); it++){ - geometry_msgs::PointStamped curr_wp = *it; - core_trajectory_msgs::WaypointXYZVYaw waypoint; - waypoint.position.x = curr_wp.point.x; - waypoint.position.y = curr_wp.point.y; - waypoint.position.z = curr_wp.point.z; - global_plan.waypoints.push_back(waypoint); - } - */ - // add an extra segment onto the end of the path if (got_tracking_point) { try { @@ -516,7 +509,7 @@ void LocalPlanner::waypoint_callback(geometry_msgs::PointStamped wp) { // TODO: Are waypoints in the tracking point frame while the previous ones are in wp // frame? - core_trajectory_msgs::WaypointXYZVYaw wp1, wp2; + airstack_msgs::WaypointXYZVYaw wp1, wp2; wp1.position.x = wp_position.x(); wp1.position.y = wp_position.y(); wp1.position.z = wp_position.z(); @@ -533,55 +526,6 @@ void LocalPlanner::waypoint_callback(geometry_msgs::PointStamped wp) { global_plan_trajectory_distance = 0; this->global_plan = global_plan; this->got_global_plan = true; - - // ROS_INFO_STREAM("GLOBAL PLAN WAYPOINTS: " << global_plan.waypoints.size()); - - // DEBUG ONLY REMOV THIS - /* - Trajectory gp(global_plan); - visualization_msgs::MarkerArray global_markers = gp.get_markers(0, 0, 1); - global_plan_vis_pub.publish(global_markers); - */ - - /* - if(got_tracking_point){ - this->got_global_plan = true; - global_plan_trajectory_distance = 0; - - try{ - tf::StampedTransform transform; - listener->waitForTransform(tracking_point_odom.header.frame_id, wp.header.frame_id, - wp.header.stamp, ros::Duration(0.1)); - listener->lookupTransform(tracking_point_odom.header.frame_id, wp.header.frame_id, - wp.header.stamp, transform); - - tf::Vector3 tp_position = tflib::to_tf(tracking_point_odom.pose.pose.position); - tf::Vector3 wp_position = transform*tflib::to_tf(wp.point); - - tf::Vector3 direction = (wp_position - tp_position).normalized()*3; - tf::Vector3 wp2_position = wp_position + direction; - - core_trajectory_msgs::TrajectoryXYZVYaw global_plan; - global_plan.header.frame_id = tracking_point_odom.header.frame_id; - global_plan.header.stamp = wp.header.stamp; - - core_trajectory_msgs::WaypointXYZVYaw wp1, wp2; - wp1.position.x = wp_position.x(); - wp1.position.y = wp_position.y(); - wp1.position.z = wp_position.z(); - wp2.position.x = wp2_position.x(); - wp2.position.y = wp2_position.y(); - wp2.position.z = wp2_position.z(); - global_plan.waypoints.push_back(wp1); - global_plan.waypoints.push_back(wp2); - - this->global_plan = global_plan; - } - catch(tf::TransformException& ex){ - ROS_ERROR_STREAM("Transform exception in waypoint_callback: " << ex.what()); - } - } - */ } void LocalPlanner::custom_waypoint_callback(geometry_msgs::PoseStamped wp) { @@ -597,11 +541,11 @@ void LocalPlanner::custom_waypoint_callback(geometry_msgs::PoseStamped wp) { tf::Vector3 la_position = tflib::to_tf(look_ahead_odom.pose.pose.position); tf::Vector3 wp_position = transform * tflib::to_tf(wp.pose.position); - core_trajectory_msgs::TrajectoryXYZVYaw global_plan; + airstack_msgs::TrajectoryXYZVYaw global_plan; global_plan.header.frame_id = look_ahead_odom.header.frame_id; global_plan.header.stamp = ros::Time::now(); - core_trajectory_msgs::WaypointXYZVYaw wp1, wp2; + airstack_msgs::WaypointXYZVYaw wp1, wp2; wp1.position.x = la_position.x(); // la_position.x(); wp1.position.y = la_position.y(); // la_position.y(); wp1.position.z = la_position.z(); // la_position.z(); @@ -629,7 +573,7 @@ void LocalPlanner::update_waypoint_mode() { double elapsed_time = (ros::Time::now() - global_plan.header.stamp).toSec(); double distance = 0; for (int i = 1; i < global_plan.waypoints.size(); i++) { - core_trajectory_msgs::WaypointXYZVYaw prev_wp, curr_wp; + airstack_msgs::WaypointXYZVYaw prev_wp, curr_wp; prev_wp = global_plan.waypoints[i - 1]; curr_wp = global_plan.waypoints[i]; diff --git a/ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface/CMakeLists.txt b/ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface/CMakeLists.txt index 95b3d4e54..f1d6d1747 100644 --- a/ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface/CMakeLists.txt +++ b/ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface/CMakeLists.txt @@ -3,6 +3,10 @@ project(core_map_representation_interface) # Find dependencies find_package(ament_cmake REQUIRED) +find_package(airstack_msgs REQUIRED) +find_package(geometry_msgs REQUIRED) +find_package(nav_msgs REQUIRED) +find_package(pluginlib REQUIRED) find_package(rclcpp REQUIRED) find_package(rclpy REQUIRED) find_package(sensor_msgs REQUIRED) @@ -10,10 +14,6 @@ find_package(std_msgs REQUIRED) find_package(tf2 REQUIRED) find_package(tf2_ros REQUIRED) find_package(visualization_msgs REQUIRED) -find_package(pluginlib REQUIRED) -find_package(core_trajectory_msgs REQUIRED) -find_package(geometry_msgs REQUIRED) -find_package(nav_msgs REQUIRED) # Include directories include_directories( @@ -21,29 +21,15 @@ include_directories( ${ament_INCLUDE_DIRS} ) -# Declare a C++ library (if you have any) -# add_library(${PROJECT_NAME} -# src/your_cpp_file.cpp -# ) - -# Link against dependencies (if you have a library) -# ament_target_dependencies(${PROJECT_NAME} -# rclcpp -# sensor_msgs -# std_msgs -# tf2 -# tf2_ros -# visualization_msgs -# pluginlib -# core_trajectory_msgs -# geometry_msgs -# nav_msgs -# ) add_library(core_map_representation_interface INTERFACE) ament_export_targets(core_map_representation_interfaceTargets HAS_LIBRARY_TARGET) #ament_export_include_directories(include) ament_export_dependencies( + airstack_msgs + geometry_msgs + nav_msgs + pluginlib rclcpp rclpy sensor_msgs @@ -51,10 +37,6 @@ ament_export_dependencies( tf2 tf2_ros visualization_msgs - pluginlib - core_trajectory_msgs - geometry_msgs - nav_msgs ) install( TARGETS core_map_representation_interface diff --git a/ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface/include/core_map_representation_interface/map_representation.h b/ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface/include/core_map_representation_interface/map_representation.h index 6425a8c6d..f9b894cb5 100644 --- a/ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface/include/core_map_representation_interface/map_representation.h +++ b/ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface/include/core_map_representation_interface/map_representation.h @@ -1,7 +1,7 @@ #ifndef _CORE_MAP_REPRESENTATION_H_ #define _CORE_MAP_REPRESENTATION_H_ -#include +#include #include #include #include @@ -17,7 +17,7 @@ class MapRepresentation : public rclcpp::Node { virtual std::vector > get_values( std::vector > - trajectories) { // std::vector trajectories){ + trajectories) { // std::vector trajectories){ RCLCPP_ERROR(this->get_logger(), "get_values CALLED BUT NOT IMPLEMENTED"); std::vector > values; diff --git a/ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface/package.xml b/ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface/package.xml index d904d759a..52b15ab66 100644 --- a/ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface/package.xml +++ b/ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface/package.xml @@ -20,7 +20,7 @@ tf2_ros visualization_msgs pluginlib - core_trajectory_msgs + airstack_msgs ament_lint_auto ament_lint_common diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/CMakeLists.txt b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/CMakeLists.txt index 4976b30a5..3c5b4c404 100755 --- a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/CMakeLists.txt +++ b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.8) -project(core_trajectory_controller) +project(trajectory_controller) set (CMAKE_INCLUDE_CURRENT_DIR ON) # Use C++14 standard set(CMAKE_CXX_STANDARD 14) @@ -14,8 +14,8 @@ find_package(sensor_msgs REQUIRED) find_package(std_msgs REQUIRED) find_package(tf2 REQUIRED) find_package(tf2_ros REQUIRED) -find_package(core_trajectory_library REQUIRED) -find_package(core_trajectory_msgs REQUIRED) +find_package(trajectory_library REQUIRED) +find_package(airstack_msgs REQUIRED) find_package(tflib REQUIRED) find_package(std_srvs REQUIRED) find_package(rosidl_default_generators REQUIRED) @@ -30,7 +30,7 @@ include_directories( ${sensor_msgs_INCLUDE_DIRS} ${std_msgs_INCLUDE_DIRS} ${std_srvs_INCLUDE_DIRS} - ${core_trajectory_msgs_INCLUDE_DIRS} # Add this line + ${airstack_msgs_INCLUDE_DIRS} # Add this line ${rosidl_default_runtime_INCLUDE_DIRS} ) @@ -45,8 +45,8 @@ ament_target_dependencies(trajectory_controller std_msgs tf2 tf2_ros - core_trajectory_library - core_trajectory_msgs + trajectory_library + airstack_msgs tflib rosidl_default_generators std_srvs diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/launch/trajectory_controller.launch b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/launch/trajectory_controller.launch index 1aabcdd44..4bdf86d31 100644 --- a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/launch/trajectory_controller.launch +++ b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/launch/trajectory_controller.launch @@ -2,7 +2,7 @@ - + diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/package.xml b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/package.xml index 2fda3388a..b1ec3eeb9 100755 --- a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/package.xml +++ b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/package.xml @@ -2,9 +2,9 @@ - core_trajectory_controller + trajectory_controller 0.0.0 - The core_trajectory_controller package + The trajectory_controller package john TODO @@ -18,10 +18,10 @@ std_msgs tf2 tf2_ros - core_trajectory_library + trajectory_library tflib std_srvs - core_trajectory_msgs + airstack_msgs rosidl_default_generators @@ -32,10 +32,10 @@ std_msgs tf2 tf2_ros - core_trajectory_library + trajectory_library tflib std_srvs - core_trajectory_msgs + airstack_msgs rosidl_default_runtime rosidl_interface_packages diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/src/trajectory_controller.cpp b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/src/trajectory_controller.cpp index f2f9ccb14..cc1c76f45 100644 --- a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/src/trajectory_controller.cpp +++ b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller/src/trajectory_controller.cpp @@ -1,7 +1,6 @@ /*#include -#include -// #include -#include +#include +// #include #include #include #include @@ -10,18 +9,19 @@ #include #include #include +#include #include #include */ -#include #include #include #include #include +#include +#include +#include #include -#include -#include #include #include #include @@ -43,8 +43,8 @@ class TrajectoryControlNode : public rclcpp::Node { // tracking_error_pub, velocity_pub; // SUBSCRIBERS - rclcpp::Subscription::SharedPtr traj_sub; - rclcpp::Subscription::SharedPtr traj_track_sub; + rclcpp::Subscription::SharedPtr traj_sub; + rclcpp::Subscription::SharedPtr traj_track_sub; rclcpp::Subscription::SharedPtr odom_sub; // PUBLISHERS @@ -56,7 +56,7 @@ class TrajectoryControlNode : public rclcpp::Node { rclcpp::Publisher::SharedPtr trajectory_time_pub; rclcpp::Publisher::SharedPtr tracking_error_pub; rclcpp::Publisher::SharedPtr velocity_pub; - rclcpp::Publisher::SharedPtr segment_pub; + rclcpp::Publisher::SharedPtr segment_pub; // tf::TransformBroadcaster* broadcaster; // tf::TransformListener* listener; @@ -68,7 +68,7 @@ class TrajectoryControlNode : public rclcpp::Node { // ros::ServiceServer traj_style_srv, traj_mode_srv; rclcpp::Service::SharedPtr traj_style_srv; - rclcpp::Service::SharedPtr traj_mode_srv; + rclcpp::Service::SharedPtr traj_mode_srv; nav_msgs::msg::Odometry odom; bool got_odom; @@ -91,19 +91,18 @@ class TrajectoryControlNode : public rclcpp::Node { virtual bool execute(); virtual ~TrajectoryControlNode(); - void traj_callback(const core_trajectory_msgs::msg::TrajectoryXYZVYaw::ConstSharedPtr msg); - void traj_track_callback( - const core_trajectory_msgs::msg::TrajectoryXYZVYaw::ConstSharedPtr msg); + void traj_callback(const airstack_msgs::msg::TrajectoryXYZVYaw::ConstSharedPtr msg); + void traj_track_callback(const airstack_msgs::msg::TrajectoryXYZVYaw::ConstSharedPtr msg); void odom_callback(const nav_msgs::msg::Odometry::ConstSharedPtr msg); // bool set_trajectory_style_service(std_srvs::SetBool::Request& req, // std_srvs::SetBool::Response& res); - // bool set_trajectory_mode(core_trajectory_controller::TrajectoryMode::Request& req, - // core_trajectory_controller::TrajectoryMode::Response& res); + // bool set_trajectory_mode(trajectory_controller::TrajectoryMode::Request& req, + // trajectory_controller::TrajectoryMode::Response& res); bool set_trajectory_mode( - const std::shared_ptr request, - std::shared_ptr response); + const std::shared_ptr request, + std::shared_ptr response); void set_trajectory_style_service( const std::shared_ptr request, std::shared_ptr response); @@ -129,7 +128,7 @@ TrajectoryControlNode::TrajectoryControlNode(const rclcpp::NodeOptions& options) velocity_look_ahead_time = this->declare_parameter("velocity_look_ahead_time", 0.0); got_odom = false; - trajectory_mode = core_trajectory_msgs::srv::TrajectoryMode::Request::ROBOT_POSE; // TRACK; + trajectory_mode = airstack_msgs::srv::TrajectoryMode::Request::ROBOT_POSE; // TRACK; trajectory = new Trajectory(target_frame); // tf_buffer = std::make_shared(this->get_clock()); // tf_listener = std::make_shared(*tf_buffer); @@ -144,10 +143,10 @@ TrajectoryControlNode::TrajectoryControlNode(const rclcpp::NodeOptions& options) nh->subscribe("trajectory_track", 10, &TrajectoryControlNode::traj_track_callback, this); odom_sub = nh->subscribe("odometry", 10, &TrajectoryControlNode::odom_callback, this); */ - traj_sub = this->create_subscription( + traj_sub = this->create_subscription( "trajectory", 10, std::bind(&TrajectoryControlNode::traj_callback, this, std::placeholders::_1)); - traj_track_sub = this->create_subscription( + traj_track_sub = this->create_subscription( "trajectory_track", 10, std::bind(&TrajectoryControlNode::traj_track_callback, this, std::placeholders::_1)); odom_sub = this->create_subscription( @@ -156,7 +155,7 @@ TrajectoryControlNode::TrajectoryControlNode(const rclcpp::NodeOptions& options) // init publishers /* - segment_pub = nh->advertise("trajectory_segment", 10); + segment_pub = nh->advertise("trajectory_segment", 10); marker_vis_pub = nh->advertise("trajectory_vis", 10); segment_marker_vis_pub = nh->advertise("trajectory_segment_vis", 10); @@ -170,8 +169,8 @@ TrajectoryControlNode::TrajectoryControlNode(const rclcpp::NodeOptions& options) broadcaster = new tf::TransformBroadcaster(); listener = new tf::TransformListener(); */ - segment_pub = this->create_publisher( - "trajectory_segment", 10); + segment_pub = + this->create_publisher("trajectory_segment", 10); marker_vis_pub = this->create_publisher("trajectory_vis", 10); segment_marker_vis_pub = @@ -198,7 +197,7 @@ TrajectoryControlNode::TrajectoryControlNode(const rclcpp::NodeOptions& options) // Create tf2_ros::TransformBroadcaster tf_broadcaster = std::make_unique(node); // Init services - traj_mode_srv = this->create_service( + traj_mode_srv = this->create_service( "set_trajectory_mode", std::bind(&TrajectoryControlNode::set_trajectory_mode, this, std::placeholders::_1, std::placeholders::_2)); traj_style_srv = this->create_service( @@ -232,11 +231,11 @@ bool TrajectoryControlNode::execute() { tracking_error_pub->publish(tracking_error_msg); if (time_past_end >= 0 && - trajectory_mode != core_trajectory_msgs::srv::TrajectoryMode::Request::REWIND) { + trajectory_mode != airstack_msgs::srv::TrajectoryMode::Request::REWIND) { std::chrono::duration duration_past_end(time_past_end); start_time += rclcpp::Duration(duration_past_end); current_time = trajectory->get_duration(); - } else if (trajectory_mode == core_trajectory_msgs::srv::TrajectoryMode::Request::PAUSE || + } else if (trajectory_mode == airstack_msgs::srv::TrajectoryMode::Request::PAUSE || tracking_error >= tracking_point_distance_limit) { double elapsed_time = current_time - prev_time; std::chrono::duration duration_elapsed(elapsed_time); @@ -244,7 +243,7 @@ bool TrajectoryControlNode::execute() { current_time = (now - start_time).seconds(); } // TODO: zero tracking point velocity in rewind and pause modes - else if (trajectory_mode == core_trajectory_msgs::srv::TrajectoryMode::Request::REWIND && + else if (trajectory_mode == airstack_msgs::srv::TrajectoryMode::Request::REWIND && current_time > 0) { // start_time += rclcpp::Duration(2.0 * (current_time - prev_time)); // current_time = (now - start_time).seconds(); @@ -273,7 +272,7 @@ bool TrajectoryControlNode::execute() { // double elapsed = monitor.toc("get_odom"); // ROS_INFO_STREAM("get_odom elapsed: " << elapsed); - if (trajectory_mode == core_trajectory_msgs::srv::TrajectoryMode::Request::ROBOT_POSE) { + if (trajectory_mode == airstack_msgs::srv::TrajectoryMode::Request::ROBOT_POSE) { // if(!valid){ tracking_point = odom; tracking_point.twist.twist.linear.x = 0; @@ -294,7 +293,7 @@ bool TrajectoryControlNode::execute() { Trajectory sub_trajectory = trajectory->get_subtrajectory_distance(start, start + 1000.); segment_marker_vis_pub->publish(sub_trajectory.get_markers(0, 1, 1)); - core_trajectory_msgs::msg::TrajectoryXYZVYaw segment_msg = + airstack_msgs::msg::TrajectoryXYZVYaw segment_msg = sub_trajectory.get_TrajectoryXYZVYaw(); segment_msg.header.stamp = tracking_point.header.stamp; segment_pub->publish(segment_msg); @@ -307,8 +306,8 @@ bool TrajectoryControlNode::execute() { // TODO: decide whether or not this is a good idea // When the tracking point reaches the end of the trajectory, the velocity gets set to zero if (time_past_end >= 0 || - trajectory_mode == core_trajectory_msgs::srv::TrajectoryMode::Request::PAUSE || - trajectory_mode == core_trajectory_msgs::srv::TrajectoryMode::Request::REWIND) { + trajectory_mode == airstack_msgs::srv::TrajectoryMode::Request::PAUSE || + trajectory_mode == airstack_msgs::srv::TrajectoryMode::Request::REWIND) { tracking_point.twist.twist.linear.x = 0; tracking_point.twist.twist.linear.y = 0; tracking_point.twist.twist.linear.z = 0; @@ -399,25 +398,25 @@ bool TrajectoryControlNode::execute() { } bool TrajectoryControlNode::set_trajectory_mode( - std::shared_ptr request, - std::shared_ptr response) { + std::shared_ptr request, + std::shared_ptr response) { int prev_trajectory_mode = trajectory_mode; trajectory_mode = request->mode; - if (trajectory_mode == core_trajectory_msgs::srv::TrajectoryMode::Request::PAUSE) { + if (trajectory_mode == airstack_msgs::srv::TrajectoryMode::Request::PAUSE) { } - if (trajectory_mode == core_trajectory_msgs::srv::TrajectoryMode::Request::ROBOT_POSE) { + if (trajectory_mode == airstack_msgs::srv::TrajectoryMode::Request::ROBOT_POSE) { trajectory->clear(); - } else if (trajectory_mode == core_trajectory_msgs::srv::TrajectoryMode::Request::TRACK) { + } else if (trajectory_mode == airstack_msgs::srv::TrajectoryMode::Request::TRACK) { trajectory->clear(); - } else if (trajectory_mode == core_trajectory_msgs::srv::TrajectoryMode::Request::SEGMENT) { - if (prev_trajectory_mode != core_trajectory_msgs::srv::TrajectoryMode::Request::PAUSE && - prev_trajectory_mode != core_trajectory_msgs::srv::TrajectoryMode::Request::REWIND && - prev_trajectory_mode != core_trajectory_msgs::srv::TrajectoryMode::Request::SEGMENT) { + } else if (trajectory_mode == airstack_msgs::srv::TrajectoryMode::Request::SEGMENT) { + if (prev_trajectory_mode != airstack_msgs::srv::TrajectoryMode::Request::PAUSE && + prev_trajectory_mode != airstack_msgs::srv::TrajectoryMode::Request::REWIND && + prev_trajectory_mode != airstack_msgs::srv::TrajectoryMode::Request::SEGMENT) { trajectory->clear(); start_time = this->now(); } - } else if (trajectory_mode == core_trajectory_msgs::srv::TrajectoryMode::Request::REWIND) { + } else if (trajectory_mode == airstack_msgs::srv::TrajectoryMode::Request::REWIND) { } response->success = true; @@ -425,13 +424,13 @@ bool TrajectoryControlNode::set_trajectory_mode( } void TrajectoryControlNode::traj_callback( - core_trajectory_msgs::msg::TrajectoryXYZVYaw::ConstSharedPtr traj) { - if (trajectory_mode == core_trajectory_msgs::srv::TrajectoryMode::Request::SEGMENT) + airstack_msgs::msg::TrajectoryXYZVYaw::ConstSharedPtr traj) { + if (trajectory_mode == airstack_msgs::srv::TrajectoryMode::Request::SEGMENT) trajectory->merge(Trajectory(*traj)); } void TrajectoryControlNode::traj_track_callback( - core_trajectory_msgs::msg::TrajectoryXYZVYaw::ConstSharedPtr traj) { + airstack_msgs::msg::TrajectoryXYZVYaw::ConstSharedPtr traj) { start_time = this->now(); trajectory->clear(); trajectory->merge(Trajectory(*traj)); diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/CMakeLists.txt b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/CMakeLists.txt deleted file mode 100644 index 600d3e1cb..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/CMakeLists.txt +++ /dev/null @@ -1,35 +0,0 @@ -cmake_minimum_required(VERSION 3.5) -project(core_trajectory_msgs) - - -if(${CMAKE_VERSION} VERSION_GREATER 3.27) - cmake_policy(SET CMP0148 OLD) -endif() - - -find_package(ament_cmake REQUIRED) -find_package(rosidl_default_generators REQUIRED) -find_package(std_msgs REQUIRED) -find_package(geometry_msgs REQUIRED) -find_package(diagnostic_msgs REQUIRED) -find_package(nav_msgs REQUIRED) - - -rosidl_generate_interfaces(${PROJECT_NAME} - msg/WaypointXYZVYaw.msg - msg/TrajectoryXYZVYaw.msg - msg/FixedTrajectory.msg - msg/Trajectory.msg - srv/TrajectoryMode.srv - DEPENDENCIES std_msgs geometry_msgs diagnostic_msgs nav_msgs -) - -ament_export_dependencies(rosidl_default_runtime) - -install( - DIRECTORY include/${PROJECT_NAME}/ - DESTINATION include/${PROJECT_NAME} - FILES_MATCHING PATTERN "*.hpp" -) - -ament_package() diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/msg/FixedTrajectory.msg b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/msg/FixedTrajectory.msg deleted file mode 100644 index 7c93efde1..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/msg/FixedTrajectory.msg +++ /dev/null @@ -1,2 +0,0 @@ -string type -diagnostic_msgs/KeyValue[] attributes \ No newline at end of file diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/msg/Trajectory.msg b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/msg/Trajectory.msg deleted file mode 100644 index f3e50baec..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/msg/Trajectory.msg +++ /dev/null @@ -1 +0,0 @@ -nav_msgs/Odometry[] trajectory \ No newline at end of file diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/msg/TrajectoryXYZVYaw.msg b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/msg/TrajectoryXYZVYaw.msg deleted file mode 100644 index fc260344c..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/msg/TrajectoryXYZVYaw.msg +++ /dev/null @@ -1,2 +0,0 @@ -std_msgs/Header header -WaypointXYZVYaw[] waypoints \ No newline at end of file diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/msg/WaypointXYZVYaw.msg b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/msg/WaypointXYZVYaw.msg deleted file mode 100644 index 043d75cfa..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/msg/WaypointXYZVYaw.msg +++ /dev/null @@ -1,3 +0,0 @@ -geometry_msgs/Point position -float64 velocity -float64 yaw \ No newline at end of file diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/package.xml b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/package.xml deleted file mode 100644 index 1edc206ad..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/package.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - core_trajectory_msgs - 0.0.0 - The core_trajectory_msgs package - - john - TODO - - ament_cmake - - rosidl_default_generators - rosidl_default_runtime - - std_msgs - geometry_msgs - diagnostic_msgs - - rosidl_interface_packages - - - ament_cmake - - diff --git a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/srv/TrajectoryMode.srv b/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/srv/TrajectoryMode.srv deleted file mode 100644 index c67d38fba..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs/srv/TrajectoryMode.srv +++ /dev/null @@ -1,9 +0,0 @@ -int32 PAUSE=0 -int32 ROBOT_POSE=1 -int32 TRACK=2 -int32 SEGMENT=3 -int32 REWIND=4 - -int32 mode ---- -bool success \ No newline at end of file diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_graph_ros1/.gitignore b/ros_ws/src/robot/autonomy/planning/local/disparity_graph_ros1/.gitignore new file mode 100644 index 000000000..c0152d14f --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_graph_ros1/.gitignore @@ -0,0 +1,5 @@ +*.pyc +.*~ +.*.swo +.*.swp +core diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_graph_ros1/CMakeLists.txt b/ros_ws/src/robot/autonomy/planning/local/disparity_graph_ros1/CMakeLists.txt new file mode 100644 index 000000000..58f0ec5b6 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_graph_ros1/CMakeLists.txt @@ -0,0 +1,76 @@ +cmake_minimum_required(VERSION 2.8.3) +project(disparity_graph) + +find_package(catkin REQUIRED COMPONENTS + cmake_modules + ca_common + cv_bridge + geometry_msgs + image_geometry + image_transport + nav_msgs + roscpp + rospy + sensor_msgs + std_msgs + tf + tf_conversions + tictoc_profiler + pcl_conversions +) + +# CONFIGURE OPENCV +find_package(OpenCV REQUIRED) + +# CONFIGURE PCL +find_package(PCL REQUIRED) + +#CONFIGURER ARMADILLO +find_package(Armadillo REQUIRED) + +## System dependencies are found with CMake's conventions +# find_package(Boost REQUIRED COMPONENTS system) +find_package(PkgConfig REQUIRED) +find_package(octomap REQUIRED) + +catkin_package( + INCLUDE_DIRS include + LIBRARIES disparity_graph + CATKIN_DEPENDS roscpp sensor_msgs std_msgs tf image_transport image_geometry + DEPENDS eigen Boost PCL +) + +#DEBUGGGGGGGGGGGEEEEEEEEEEERRRRRRRRRRR +set(CMAKE_BUILD_TYPE Release) +set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Wall -std=gnu++0x") + +include_directories( + include + ${catkin_INCLUDE_DIRS} + ${OpenCV_INCLUDE_DIRS} + ${PCL_INCLUDE_DIRS} + ${Boost_INCLUDE_DIRS} + ${ARMADILLO_INCLUDE_DIRS} +) + +add_library(disparity_graph + src/disparity_graph.cpp) + +target_link_libraries(disparity_graph + ${catkin_LIBRARIES} + ${OpenCV_LIBS}) + +#Install files + install(DIRECTORY include/${PROJECT_NAME}/ + DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} + FILES_MATCHING PATTERN "*.h" + PATTERN ".svn" EXCLUDE + ) + + install(TARGETS disparity_graph + ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} + LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} + RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} + ) + + diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_graph_ros1/LICENSE b/ros_ws/src/robot/autonomy/planning/local/disparity_graph_ros1/LICENSE new file mode 100644 index 000000000..a5eb700a7 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_graph_ros1/LICENSE @@ -0,0 +1 @@ +[This software is BSD licensed.](http://opensource.org/licenses/BSD-3-Clause) Copyright (c) 2015-2019, Carnegie Mellon UniversityAll rights reserved. Redistribution and use in source and binary forms, with or withoutmodification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" ANDANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIEDWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE AREDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLEFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIALDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ORSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVERCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USEOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_graph_ros1/include/disparity_graph/disparity_graph.h b/ros_ws/src/robot/autonomy/planning/local/disparity_graph_ros1/include/disparity_graph/disparity_graph.h new file mode 100644 index 000000000..5ff32b818 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_graph_ros1/include/disparity_graph/disparity_graph.h @@ -0,0 +1,113 @@ +/** + * @attention Copyright (C) 2017 + * @attention Carnegie Mellon University + * @attention All rights reserved + * + * @author: AirLab / Field Robotics Center + * @author: Geetesh Dubey + * + * @attention This code was modified under award #A018532. + * @attention LIMITED RIGHTS: + * @attention The US Government is granted Limited Rights to this Data. + * Use, duplication, or disclosure is subject to the + * restrictions as stated in award #A014692 + * @author: Geetesh Dubey + * + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include "deque" +#include "image_geometry/pinhole_camera_model.h" +#include "nav_msgs/OccupancyGrid.h" +#include "opencv2/core/core.hpp" +#include "sensor_msgs/Image.h" +#include "sensor_msgs/image_encodings.h" +#include "tf/transform_datatypes.h" +#include "tf/transform_listener.h" +#include "visualization_msgs/MarkerArray.h" + +typedef pcl::PointCloud PointCloud; + +namespace nabla { +namespace disparity_graph { + +class disparity_graph { + private: + struct node { + // sensor_msgs::Image Im_fg; + // sensor_msgs::Image Im_bg; + cv_bridge::CvImagePtr Im_fg; + cv_bridge::CvImagePtr Im_bg; + std_msgs::Header header; + tf::Transform w2s_tf; + tf::Transform s2w_tf; + }; + + public: + void disp_cb(const sensor_msgs::Image::ConstPtr &disp_fg, + const sensor_msgs::Image::ConstPtr &disp_bg); + + std::deque disp_graph; + size_t graph_size; + double thresh_; + tf::TransformListener listener; + std::string sensor_frame, fixed_frame, stabilized_frame; + visualization_msgs::Marker marker; + ros::Publisher disparity_graph_marker_pub; + disparity_graph(); + ros::Timer timer1; + double angle_tol, displacement_tol; + bool first; + bool got_cam_info; + double fx_, fy_, cx_, cy_, baseline_, downsample_scale; + unsigned int width_, height_; + ros::Subscriber cam_info_sub_; + boost::mutex io_mutex; + message_filters::Subscriber disp_fg_sub_, disp_bg_sub_; + typedef message_filters::sync_policies::ExactTime + ExactPolicy; + typedef message_filters::Synchronizer ExactSync; + boost::shared_ptr exact_sync_; + void getCamInfo(const sensor_msgs::CameraInfo::ConstPtr &msg_info); + bool is_state_valid_depth_pose(geometry_msgs::PoseStamped checked_state, double thresh, + double &occupancy); + bool getStateCost(geometry_msgs::Pose checked_state, double &cost); + + // TEST PCD + PointCloud pcd_checked_states; + void pcd_test(const ros::TimerEvent &event); + // void pcd_test2(const ros::TimerEvent &event); + void pcd_test3(const ros::TimerEvent &event); + void pcd_test4(const ros::TimerEvent &event); + void clear_graph(void) { + boost::mutex::scoped_lock lock(io_mutex); + disp_graph.clear(); + first = true; + ROS_ERROR_STREAM("<<< DISP GRAPH CLEARED >>>"); + }; + ros::Publisher pcdPub, occPub_; + // nav_msgs::OccupancyGrid occ_map; + ros::Publisher expansion_poly_pub; + float orig_z; +}; + +} // namespace disparity_graph +} // namespace nabla diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_graph_ros1/launch/talker.launch b/ros_ws/src/robot/autonomy/planning/local/disparity_graph_ros1/launch/talker.launch new file mode 100644 index 000000000..b281d5649 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_graph_ros1/launch/talker.launch @@ -0,0 +1,21 @@ + + + + + + + + + + + + + diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_graph_ros1/package.xml b/ros_ws/src/robot/autonomy/planning/local/disparity_graph_ros1/package.xml new file mode 100644 index 000000000..5fd879423 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_graph_ros1/package.xml @@ -0,0 +1,34 @@ + + disparity_graph + 0.0.0 + disparity_graph + + nabla + nabla + Copyright 2015-2017 All rights reserved + + catkin + + cmake_modules + ca_common + cv_bridge + geometry_msgs + image_geometry + image_transport + libpcl-all + libpcl-all-dev + nav_msgs + pcl_conversions + pcl_ros + roscpp + rospy + sensor_msgs + std_msgs + tf_conversions + tf + tictoc_profiler + + + + + diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_graph_ros1/readme.md b/ros_ws/src/robot/autonomy/planning/local/disparity_graph_ros1/readme.md new file mode 100644 index 000000000..0a2c50080 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_graph_ros1/readme.md @@ -0,0 +1,10 @@ +# disparity_graph + +disparity_graph + +## License + +BSD, see LICENSE +## License + +BSD, see LICENSE \ No newline at end of file diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_graph_ros1/src/disparity_graph.cpp b/ros_ws/src/robot/autonomy/planning/local/disparity_graph_ros1/src/disparity_graph.cpp new file mode 100644 index 000000000..a661fec8e --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_graph_ros1/src/disparity_graph.cpp @@ -0,0 +1,653 @@ +/** + * @attention Copyright (C) 2017 + * @attention Carnegie Mellon University + * @attention All rights reserved + * + * @author: AirLab / Field Robotics Center + * @author: Geetesh Dubey + * + * @attention This code was modified under award #A018532. + * @attention LIMITED RIGHTS: + * @attention The US Government is granted Limited Rights to this Data. + * Use, duplication, or disclosure is subject to the + * restrictions as stated in award #A014692 + * @author: Geetesh Dubey + * + */ +/* + * Copyright (c) 2016 Carnegie Mellon University, Author + * + * For License information please see the LICENSE file in the root directory. + * + */ + +#include "disparity_graph/disparity_graph.h" + +#include + +using namespace nabla::disparity_graph; + +disparity_graph::disparity_graph() { + ros::NodeHandle priv_nh("~/disparity_graph"); + ros::NodeHandle global_nh("/oa"); + graph_size = 10; + angle_tol = /*cos*/ (30.0); + displacement_tol = 01.5; + first = true; + got_cam_info = false; + fixed_frame = "world"; + stabilized_frame = "base_frame_stabilized"; + disparity_graph_marker_pub = + priv_nh.advertise("disparity_marker", 10); + marker.header.frame_id = fixed_frame; + marker.header.stamp = ros::Time::now(); + marker.ns = "disparityGraph"; + marker.id = 0; + marker.type = visualization_msgs::Marker::ARROW; + marker.action = visualization_msgs::Marker::ADD; + marker.pose.position.x = 1; + marker.pose.position.y = 1; + marker.pose.position.z = 1; + marker.pose.orientation.x = 0.0; + marker.pose.orientation.y = 0.0; + marker.pose.orientation.z = 0.0; + marker.pose.orientation.w = 1.0; + marker.scale.x = 1; + marker.scale.y = 0.1; + marker.scale.z = 0.1; + marker.color.a = 1.0; // Don't forget to set the alpha! + marker.color.r = 0.0; + marker.color.g = 1.0; + marker.color.b = 0.0; + + // downsample_scale =4.0; + // baseline_ = 0.5576007548439765; + global_nh.param("baseline", baseline_, 0.10); // 0.5576007548439765; + global_nh.param("downsample_scale", downsample_scale, 1.0); + global_nh.param("low_occ_thresh", thresh_, 0.9); + int igraph_size = graph_size; + priv_nh.param("graph_size", igraph_size, igraph_size); + graph_size = igraph_size; + priv_nh.param("displacement_tolerance", displacement_tol, displacement_tol); + priv_nh.param("angle_tolerance", angle_tol, angle_tol); + angle_tol = angle_tol * M_PI / 180.0; + + ROS_ERROR("disparity_graph NS: %s", priv_nh.getNamespace().c_str()); + + // right_info_sub_.subscribe(nh, right_info_topic, 1); + disp_fg_sub_.subscribe(priv_nh, "/ceye/left/expanded_disparity_fg", 1); + disp_bg_sub_.subscribe(priv_nh, "/ceye/left/expanded_disparity_bg", 1); + + exact_sync_.reset(new ExactSync(ExactPolicy(5), disp_fg_sub_, disp_bg_sub_)); + exact_sync_->registerCallback(boost::bind(&disparity_graph::disp_cb, this, _1, _2)); + cam_info_sub_ = + priv_nh.subscribe("/nerian_sp1/right/camera_info", 1, &disparity_graph::getCamInfo, this); + timer1 = priv_nh.createTimer(ros::Duration(0.20), &disparity_graph::pcd_test4, this); + + pcd_checked_states.header.frame_id = fixed_frame; + pcd_checked_states.height = 1; + pcd_checked_states.width = 0; + pcd_checked_states.is_dense = false; + pcdPub = priv_nh.advertise("/graph_pcd", 10); + expansion_poly_pub = + priv_nh.advertise("/expansion/graph_occ_marker", 10); + + /* + //Occupancy Map + occ_map.header.frame_id=fixed_frame; + occ_map.info.resolution = 1.0;//0.5; + occ_map.info.width = 2*50/occ_map.info.resolution; + occ_map.info.height = 2*50/occ_map.info.resolution; + occ_map.data.resize(occ_map.info.width*occ_map.info.height,-1); + orig_z = -1.0; + occ_map.info.origin.position.x = -double(occ_map.info.width)/2.0*occ_map.info.resolution; + occ_map.info.origin.position.y = -double(occ_map.info.height)/2.0*occ_map.info.resolution; + occ_map.info.origin.position.z = orig_z; + occ_map.info.origin.orientation = tf::createQuaternionMsgFromYaw(0.0); + occPub_ = priv_nh.advertise("/graph_occ_map",10); + */ +} + +void disparity_graph::pcd_test(const ros::TimerEvent &event) { + if (pcdPub.getNumSubscribers() == 0) { + return; + } + + for (uint i = 0; i < disp_graph.size(); i++) { + for (uint u = 0; u < width_; u += 1) { + for (uint v = 0; v < height_; v += 1) { + tf::Point pt_optical_fg, pt_optical_bg, pt_world_fg, pt_world_bg, curr_pt; + tf::Transform w2s_tf; + tf::Transform s2w_tf; + double z_fg, z_bg; + cv_bridge::CvImagePtr cv_depth_fg, cv_depth_bg; + { + boost::mutex::scoped_lock lock(io_mutex); + // cv_depth_fg = + // cv_bridge::toCvCopy(disp_graph.at(i).Im_fg,sensor_msgs::image_encodings::TYPE_32FC1); + // cv_depth_bg = + // cv_bridge::toCvCopy(disp_graph.at(i).Im_bg,sensor_msgs::image_encodings::TYPE_32FC1); + w2s_tf = disp_graph.at(i).w2s_tf; + s2w_tf = disp_graph.at(i).s2w_tf; + + z_fg = (baseline_ * fx_ / disp_graph.at(i).Im_fg->image.at(v, u)); + z_bg = (baseline_ * fx_ / disp_graph.at(i).Im_bg->image.at(v, u)); + } + + for (double z_sample = z_fg; + z_sample <= z_bg && std::isfinite(z_sample) /*&& z_sample>5.0*/; + z_sample += 0.5) { + pt_optical_fg.setZ(z_sample); + pt_optical_fg.setX((u - cx_) * pt_optical_fg.getZ() / fx_); + pt_optical_fg.setY((v - cy_) * pt_optical_fg.getZ() / fy_); + + pt_world_fg = s2w_tf * pt_optical_fg; + + pcl::PointXYZI pt; + // FG + pt.x = pt_world_fg.getX(); + pt.y = pt_world_fg.getY(); + pt.z = pt_world_fg.getZ(); + + double state_disparity = baseline_ * fx_ / z_sample; + double confidence = (state_disparity - 0.5) / state_disparity; + + if (confidence >= thresh_) + pt.intensity = confidence; //*200.0;//i*20+10; + else + pt.intensity = 0.0; + if (confidence >= thresh_) { + pcd_checked_states.points.push_back(pt); + pcd_checked_states.width++; + } + z_sample = ((z_sample + 0.5) > z_bg) ? z_bg : z_sample; + } + + // pt_optical_fg.setZ(baseline_*fx_/disp_graph.at(i).Im_fg->image.at(v,u)); + // pt_optical_fg.setX((u - cx_) * pt_optical_fg.getZ()/fx_); + // pt_optical_fg.setY((v - cy_) * pt_optical_fg.getZ()/fy_); + + // pt_optical_bg.setZ(baseline_*fx_/disp_graph.at(i).Im_bg->image.at(v,u)); + // pt_optical_bg.setX((u - cx_) * pt_optical_bg.getZ()/fx_); + // pt_optical_bg.setY((v - cy_) * pt_optical_bg.getZ()/fy_); + + // pt_world_fg = s2w_tf * pt_optical_fg; + // pt_world_bg = s2w_tf * pt_optical_bg; + + // pcl::PointXYZI pt; + ////FG + // pt.x = pt_world_fg.getX(); + // pt.y = pt_world_fg.getY(); + // pt.z = pt_world_fg.getZ(); + // pt.intensity = 200;//i*20+10; + // pcd_checked_states.points.push_back(pt); + // pcd_checked_states.width++; + + // double x1,y1,x2,y2,z1,z2; + // x1 = pt.x;y1=pt.y;z1=pt.z; + ////BG + // pt.x = pt_world_bg.getX(); + // pt.y = pt_world_bg.getY(); + // pt.z = pt_world_bg.getZ(); + // pt.intensity = 100;//i*20+10; + // pcd_checked_states.points.push_back(pt); + // pcd_checked_states.width++; + } + } + } + + // Create the filtering object + pcd_checked_states.header.stamp = pcl_conversions::toPCL(ros::Time::now()); + pcl::PCLPointCloud2::Ptr cloud(new pcl::PCLPointCloud2()); + pcl::PCLPointCloud2::Ptr cloud_filtered(new pcl::PCLPointCloud2()); + pcl::toPCLPointCloud2(pcd_checked_states, *cloud); + pcl::VoxelGrid sor; + sor.setInputCloud(cloud); + double voxel_dim = 0.5; + sor.setLeafSize(voxel_dim, voxel_dim, voxel_dim); + sor.filter(*cloud_filtered); + pcd_checked_states.clear(); + pcl::fromPCLPointCloud2(*cloud_filtered, pcd_checked_states); + + sensor_msgs::PointCloud2 cloud_PC2; + pcl::toROSMsg(pcd_checked_states, cloud_PC2); + pcdPub.publish(cloud_PC2); + pcd_checked_states.points.clear(); + pcd_checked_states.width = 0; +} + +void disparity_graph::pcd_test4(const ros::TimerEvent &event) { + if (pcdPub.getNumSubscribers() == 0) { + return; + } + + pcl::PointXYZI pt; + + ros::Time stamp = ros::Time::now(); + listener.waitForTransform(fixed_frame, stabilized_frame, stamp, ros::Duration(0.1)); + tf::StampedTransform transform; + try { + listener.lookupTransform(fixed_frame, stabilized_frame, stamp, transform); + } catch (tf::TransformException &ex) { + ROS_ERROR("DG graph_pcd %s", ex.what()); + // ros::Duration(1.0).sleep(); + // continue; + return; + } + // checked_point_stmpd.header.stamp = stamp;//ros::Time::now();//(0); + // checked_point_stmpd.header.frame_id = fixed_frame; + + pcd_checked_states.header.frame_id = fixed_frame; + + geometry_msgs::PoseStamped checked_pose; + checked_pose.header.frame_id = pcd_checked_states.header.frame_id; + checked_pose.header.stamp = stamp; + float delta = .5; + for (float i = -50; i <= 50; i += delta) { + for (float u = -50; u <= 50; u += delta) { + for (float v = -10; v <= 10; v += delta) { + // checked_point_stmpd.point.x = i; + // checked_point_stmpd.point.y = u; + // checked_point_stmpd.point.z = v; + + tf::Point local_point(i, u, v); + // tf::pointMsgToTF(checked_point_stmpd.point,local_point); + tf::Point world_point = transform * local_point; + tf::pointTFToMsg(world_point, checked_pose.pose.position); + double occupancy = 0.0; + bool valid = is_state_valid_depth_pose(checked_pose, thresh_, occupancy); + if (!valid) { + pt.x = world_point.getX(); + pt.y = world_point.getY(); + pt.z = world_point.getZ(); + pt.intensity = occupancy; + + if (occupancy >= thresh_) { + pcd_checked_states.points.push_back(pt); + pcd_checked_states.width++; + } + } + } + } + } + + // Create the filtering object + pcd_checked_states.header.stamp = pcl_conversions::toPCL(stamp); + /*pcl::PCLPointCloud2::Ptr cloud (new pcl::PCLPointCloud2 ()); + pcl::PCLPointCloud2::Ptr cloud_filtered (new pcl::PCLPointCloud2 ()); + pcl::toPCLPointCloud2(pcd_checked_states,*cloud); + pcl::VoxelGrid sor; + sor.setInputCloud (cloud); + double voxel_dim = 0.5; + sor.setLeafSize (voxel_dim,voxel_dim,voxel_dim); + sor.filter (*cloud_filtered); + pcd_checked_states.clear(); + pcl::fromPCLPointCloud2(*cloud_filtered,pcd_checked_states);*/ + + sensor_msgs::PointCloud2 cloud_PC2; + pcl::toROSMsg(pcd_checked_states, cloud_PC2); + pcdPub.publish(cloud_PC2); + pcd_checked_states.points.clear(); + pcd_checked_states.width = 0; +} + +/* +void disparity_graph::pcd_test2(const ros::TimerEvent& event) { + pcd_test(event); + if(occPub_.getNumSubscribers() == 0) + return; + + occ_map.info.map_load_time = ros::Time::now(); + occ_map.data.clear(); + occ_map.data.resize(occ_map.info.width*occ_map.info.height,-1); + + for(uint u=0; u=0 && index < occ_map.info.width*occ_map.info.height) + { + getStateCost(chk_pose,cost); + occ_map.data[index] = uint64(cost); + } + + } + } + occ_map.header.stamp = ros::Time::now(); + occPub_.publish(occ_map); +} +*/ + +void disparity_graph::pcd_test3(const ros::TimerEvent &event) { + /* create expansion PCD */ + if (expansion_poly_pub.getNumSubscribers() > 0) { + cv_bridge::CvImagePtr cv_depth_fg, cv_depth_bg; + visualization_msgs::MarkerArray marker_arr; + visualization_msgs::Marker marker; + // marker.header = msg_disp->header; + marker.ns = "occ_space"; + marker.id = 0; + marker.type = visualization_msgs::Marker::LINE_STRIP; + marker.lifetime = ros::Duration(0.5); + marker.action = visualization_msgs::Marker::ADD; + marker.pose.position.x = 0; // xyz_centroid[0]; + marker.pose.position.y = 0; // xyz_centroid[1]; + marker.pose.position.z = 0; // xyz_centroid[2]; + + tf::quaternionTFToMsg(tf::createQuaternionFromRPY(0.0, 0.0, 0.0), marker.pose.orientation); + // marker.pose.orientation.w = 1; + float marker_scale = 0.1; + marker.scale.x = marker_scale; + marker.scale.y = marker_scale; + marker.scale.z = marker_scale; + marker.color.a = 1.0; // Don't forget to set the alpha! + marker.color.r = 1.0; + marker.color.g = 0.0; + marker.color.b = 0.0; + + int v = 60; + for (uint i = 0; i < disp_graph.size(); i++) { + float prev_depth = 0.0; + // { + // boost::mutex::scoped_lock lock(io_mutex); + // cv_depth_fg = + // cv_bridge::toCvCopy(disp_graph.at(i).Im_fg,sensor_msgs::image_encodings::TYPE_32FC1); + // cv_depth_bg = + // cv_bridge::toCvCopy(disp_graph.at(i).Im_bg,sensor_msgs::image_encodings::TYPE_32FC1); + // } + marker.header = disp_graph.at(i).header; + for (int u = (int)width_ - 1; u >= 0; u--) { + float depth_value = baseline_ * fx_ / + disp_graph.at(i).Im_fg->image.at( + v, u); // free_msg->image.at(v,u)[0]; + float depth_diff = fabs(depth_value - prev_depth); + prev_depth = depth_value; + if (!std::isnan(depth_value) && !std::isinf(depth_value) && depth_diff < 0.5) { + geometry_msgs::Point gm_p; + gm_p.x = (u - cx_) * depth_value / fx_; + gm_p.y = (v - cy_) * depth_value / fy_; + gm_p.z = depth_value; + marker.points.push_back(gm_p); + + depth_value = baseline_ * fx_ / disp_graph.at(i).Im_bg->image.at(v, u); + gm_p.x = (u - cx_) * depth_value / fx_; + gm_p.y = (v - cy_) * depth_value / fy_; + gm_p.z = depth_value; + marker.points.push_back(gm_p); + // poly.polygon.points.push_back(gm_p); + } else { + marker_arr.markers.push_back(marker); + marker.points.clear(); + marker.id++; + } + } + } + marker_arr.markers.push_back(marker); + expansion_poly_pub.publish(marker_arr); + } +} + +void disparity_graph::disp_cb(const sensor_msgs::Image::ConstPtr &disp_fg, + const sensor_msgs::Image::ConstPtr &disp_bg) { + // ROS_INFO("Recvd Disp,size %d",disp_graph.size()); + ROS_INFO("Recvd disp stamp: %lf", + ros::Duration(ros::Time::now() - disp_fg->header.stamp).toSec()); + sensor_frame = disp_fg->header.frame_id; + + listener.waitForTransform(sensor_frame, fixed_frame, disp_fg->header.stamp, + ros::Duration(0.10)); + + tf::StampedTransform transform; + try { + listener.lookupTransform(sensor_frame, fixed_frame, disp_fg->header.stamp, transform); + } catch (tf::TransformException &ex) { + ROS_ERROR("DG disp_cb %s", ex.what()); + // ros::Duration(1.0).sleep(); + // continue; + return; + } + + boost::mutex::scoped_lock lock(io_mutex); + if (first) { + first = false; + node n; + try { + n.Im_fg = cv_bridge::toCvCopy(disp_fg, sensor_msgs::image_encodings::TYPE_32FC1); + n.Im_bg = cv_bridge::toCvCopy(disp_bg, sensor_msgs::image_encodings::TYPE_32FC1); + } catch (std::exception ex) { + ROS_ERROR("\n\n\n\n\n\t\t\tDEQUE ERR\n\n\n\n: %s", ex.what()); + return; + } + // n.Im_fg = *disp_fg; + // n.Im_bg = *disp_bg; + n.header = disp_bg->header; + n.w2s_tf = transform; + n.s2w_tf = transform.inverse(); + disp_graph.push_front(n); + disp_graph.push_back(n); + } else { + // Check for similar tf nodes + // tf::Vector3 curr_a =transform.inverse().getRotation().normalize().getAxis().normalize(); + tf::Vector3 curr_p = transform.inverse().getOrigin(); + std::deque::iterator it, end; + it = disp_graph.begin(); + end = disp_graph.end() - 1; + // while(it!=end && disp_graph.size()) + // { + // tf::Vector3 graph_a = it->s2w_tf.getRotation().normalize().getAxis().normalize(); + tf::Vector3 graph_p = it->s2w_tf.getOrigin(); + // tfScalar diff_a = curr_a.dot(graph_a); + tfScalar diff_a = + tf::angleShortestPath(transform.inverse().getRotation(), it->s2w_tf.getRotation()); + tfScalar diff_p = curr_p.distance(graph_p); + // ROS_INFO_STREAM("diff_a ; diff_p:"<header; + n.w2s_tf = transform; + n.s2w_tf = transform.inverse(); + // pose in graph is too close in angle to the current graph + if (fabs(diff_a) >= angle_tol || fabs(diff_p) > displacement_tol) { + ROS_ERROR("Adding new node size %d", (int)disp_graph.size()); + if (disp_graph.size() >= graph_size) { + disp_graph.erase(end); + } + + // add new data + if (disp_graph.size() <= graph_size) { + disp_graph.push_front(n); + } + // it = disp_graph.erase(it); + } + disp_graph.pop_back(); + disp_graph.push_back(n); + // pcd_test(); + } + + visualization_msgs::MarkerArray marker_arr; + + for (uint i = 0; i < disp_graph.size(); i++) { + // ROS_INFO_STREAM(disp_graph.at(i).tf.inverse().getOrigin().x()); + tf::pointTFToMsg(disp_graph.at(i).s2w_tf.getOrigin(), marker.pose.position); + tf::quaternionTFToMsg(disp_graph.at(i).s2w_tf.getRotation(), marker.pose.orientation); + marker.header.stamp = ros::Time::now(); + marker.id = i; + marker_arr.markers.push_back(marker); + } + + disparity_graph_marker_pub.publish(marker_arr); + // marker_arr.markers.clear(); +} + +void disparity_graph::getCamInfo(const sensor_msgs::CameraInfo::ConstPtr &msg_info) { + if (got_cam_info) { + return; + } + image_geometry::PinholeCameraModel model_; + model_.fromCameraInfo(msg_info); + ROS_WARN("Cam Info Recvd Fx Fy Cx Cy: %f %f , %f %f Baseline: %f", model_.fx(), model_.fy(), + model_.cx(), model_.cy(), baseline_); + cx_ = model_.cx() / downsample_scale; + cy_ = model_.cy() / downsample_scale; + fx_ = fy_ = model_.fx() / downsample_scale; + width_ = + msg_info->width / downsample_scale; // this is already downsampled from, disp_expansion + height_ = msg_info->height / downsample_scale; + double baseline = -msg_info->P[3] / msg_info->P[0]; + if (baseline != 0.0) { + baseline_ = baseline; + } + baseline_ *= downsample_scale; + ROS_WARN( + "Transformed Cam Info Recvd Fx Fy Cx Cy: %f %f, %f %f Baseline: %f with downsamplescale: " + "%f", + model_.fx(), model_.fy(), model_.cx(), model_.cy(), baseline_, downsample_scale); + + ROS_WARN("Cam Info Constants - Fx Fy Cx Cy: %f %f, %f %f / width=%d - height=%d", fx_, fy_, cx_, + cy_, width_, height_); + + got_cam_info = true; +} + +bool disparity_graph::is_state_valid_depth_pose(geometry_msgs::PoseStamped checked_state, + double thresh, double &occupancy) { + // unsigned int invalid_cntr=0; + occupancy = 0.0; + geometry_msgs::PointStamped checked_point_stamped; + checked_point_stamped.point = checked_state.pose.position; + checked_point_stamped.header = checked_state.header; + + ////check the pose using the footprint_cost check + + geometry_msgs::PointStamped world_point_stamped; + + try { + listener.transformPoint(fixed_frame, checked_point_stamped, world_point_stamped); + } catch (tf::TransformException ex) { + ROS_ERROR("TF to fixed_frame failed: %s", ex.what()); + return false; + } + + tf::Point optical_point; + tf::pointMsgToTF(world_point_stamped.point, optical_point); + + boost::mutex::scoped_lock lock(io_mutex); + bool seen = false; // true; + for (uint i = 0; i < disp_graph.size(); i++) { + tf::Point local_point = disp_graph.at(i).w2s_tf * optical_point; + + float x, y, z; + + x = local_point.getX(); + y = local_point.getY(); + z = local_point.getZ(); + + if (local_point.length() < 1.0) { + seen = true; + continue; + } + // if((-0.20= 0 && u < width_ && v >= 0 && v < height_ && z > 0.0) { + seen = true; + double state_disparity = baseline_ * fx_ / z; + if ((disp_graph.at(i).Im_fg->image.at(v, u) > state_disparity) && + (disp_graph.at(i).Im_bg->image.at(v, u) < state_disparity)) { + occupancy += (state_disparity - 0.5) / state_disparity; + } else { + occupancy -= 0.5 * (state_disparity - 0.5) / state_disparity; + occupancy = occupancy < 0.0 ? 0.0 : occupancy; + } + } + if (/*invalid_cntr>=invalid_thresh*/ occupancy >= thresh) { + return false; + } + } + if (seen) { + return true; + } else { + return false; + } +} + +bool disparity_graph::getStateCost(geometry_msgs::Pose checked_state, double &cost) { + // uint invalid_thresh = 2; + // uint validity = 2; + // unsigned int invalid_cntr=0; + geometry_msgs::PointStamped checked_point_stamped; + checked_point_stamped.header.frame_id = "world"; + checked_point_stamped.header.stamp = ros::Time::now() - ros::Duration(0.1); + checked_point_stamped.point = checked_state.position; + + geometry_msgs::PointStamped world_point_stamped; + // listener.waitForTransform(fixed_frame,checked_point_stamped.header.frame_id,checked_point_stamped.header.stamp,ros::Duration(1.0)); + try { + listener.transformPoint(fixed_frame, checked_point_stamped, world_point_stamped); + } catch (tf::TransformException ex) { + ROS_ERROR("TF to fixed_frame failed: %s", ex.what()); + return false; + } + + tf::Point optical_point; + tf::pointMsgToTF(world_point_stamped.point, optical_point); + + boost::mutex::scoped_lock lock(io_mutex); + for (uint i = 0; i < disp_graph.size(); i++) { + tf::Point local_point = disp_graph.at(i).w2s_tf * optical_point; + + float x, y, z; + x = local_point.getX(); + y = local_point.getY(); + z = local_point.getZ(); + + // point behind camera + if (z < 0) { + continue; + } + + int u = x / z * fx_ + cx_; + int v = y / z * fy_ + cy_; + + if (u >= 0 && u < width_ && v >= 0 && v < height_) { + double state_disparity = baseline_ * fx_ / z; + if ((disp_graph.at(i).Im_fg->image.at(v, u) > state_disparity) && + (disp_graph.at(i).Im_bg->image.at(v, u) < state_disparity)) { + // cost += (fabs(bg_msg->image.at(v,u) - + // state_disparity)/fabs(fg_msg->image.at(v,u) - + // bg_msg->image.at(v,u)) + 1) * 10; + cost += state_disparity * 10.0; + // invalid_cntr++; + } + cost = cost < 0.0 ? 0.0 : cost; + ROS_ERROR_THROTTLE(1, "CHECKING POINT at \t%f\t%f\t%f : cost = %f", + checked_state.position.x, checked_state.position.y, + checked_state.position.z, cost); + + if (cost > 100.0) { + cost = 100.0; + return false; + } + } + } + + return true; +} diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_map_representation/CMakeLists.txt b/ros_ws/src/robot/autonomy/planning/local/disparity_map_representation/CMakeLists.txt index 47f8f9adf..b5776ffa5 100644 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_map_representation/CMakeLists.txt +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_map_representation/CMakeLists.txt @@ -17,7 +17,7 @@ find_package(core_map_representation_interface REQUIRED) find_package(disparity_graph REQUIRED) find_package(tflib REQUIRED) find_package(pluginlib REQUIRED) -find_package(core_trajectory_msgs REQUIRED) +find_package(airstack_msgs REQUIRED) find_package(tf2_eigen REQUIRED) find_package(tf2_geometry_msgs REQUIRED) find_package(image_transport REQUIRED) @@ -52,7 +52,7 @@ ament_target_dependencies(disparity_map_representation tf2_ros disparity_graph core_map_representation_interface - core_trajectory_msgs + airstack_msgs cv_bridge tflib pluginlib @@ -64,7 +64,7 @@ ament_export_dependencies(rclcpp tf2_ros disparity_graph core_map_representation_interface - core_trajectory_msgs + airstack_msgs cv_bridge tflib pluginlib diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_map_representation/include/disparity_map_representation/disparity_map_representation.hpp b/ros_ws/src/robot/autonomy/planning/local/disparity_map_representation/include/disparity_map_representation/disparity_map_representation.hpp index 1e5634a09..18829bc6a 100644 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_map_representation/include/disparity_map_representation/disparity_map_representation.hpp +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_map_representation/include/disparity_map_representation/disparity_map_representation.hpp @@ -6,7 +6,7 @@ #include #include -#include +#include #include #include #include @@ -41,7 +41,7 @@ class DisparityMapRepresentation : public MapRepresentation { virtual void publish_debug(); // virtual std::vector< std::vector > - // get_values(std::vector trajectories); + // get_values(std::vector trajectories); virtual std::vector > get_values( std::vector > trajectories); }; diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_map_representation/package.xml b/ros_ws/src/robot/autonomy/planning/local/disparity_map_representation/package.xml index b95b48974..077cd3b2b 100644 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_map_representation/package.xml +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_map_representation/package.xml @@ -25,7 +25,7 @@ disparity_graph tflib pluginlib - core_trajectory_msgs + airstack_msgs ament_lint_auto ament_lint_common diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_map_representation/src/disparity_map_representation.cpp b/ros_ws/src/robot/autonomy/planning/local/disparity_map_representation/src/disparity_map_representation.cpp index ffc1546c1..bca030448 100644 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_map_representation/src/disparity_map_representation.cpp +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_map_representation/src/disparity_map_representation.cpp @@ -39,7 +39,7 @@ std::vector > DisparityMapRepresentation::get_values( } for (int i = 0; i < trajectories.size(); i++) { - // core_trajectory_msgs::TrajectoryXYZVYaw trajectory = trajectories[i]; + // airstack_msgs::TrajectoryXYZVYaw trajectory = trajectories[i]; for (int j = 0; j < trajectories[i].size(); j++) { tf2::Vector3 wp; tf2::fromMsg(trajectories[i][j].point, wp); @@ -57,7 +57,7 @@ std::vector > DisparityMapRepresentation::get_values( tf2::fromMsg(trajectories[i][1].point, wp2); direction = wp2 - wp; } else { - tf2::fromMsg(trajectories[i][j-1].point, wp); + tf2::fromMsg(trajectories[i][j - 1].point, wp); direction = wp - wp2; } } @@ -85,10 +85,10 @@ std::vector > DisparityMapRepresentation::get_values( directions.push_back(q_left); directions.push_back(q_right); - tf2::Vector3 position = wp; + tf2::Vector3 position = wp; tf2::Quaternion q = tf2::Quaternion(0, 0, 0, 1); // TODO: figure out if this makes sense - // + // tf2::Vector3 unit(1, 0, 0); double closest_obstacle_distance = obstacle_check_radius; diff --git a/ros_ws/src/robot/autonomy/planning/local/droan_local_planner/CMakeLists.txt b/ros_ws/src/robot/autonomy/planning/local/droan_local_planner/CMakeLists.txt new file mode 100644 index 000000000..5048c8b84 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/droan_local_planner/CMakeLists.txt @@ -0,0 +1,61 @@ +cmake_minimum_required(VERSION 3.8) +project(droan_local_planner) + +if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") + add_compile_options(-Wall -Wextra -Wpedantic) +endif() + +# find dependencies +find_package(ament_cmake REQUIRED) +find_package(airstack_msgs REQUIRED) +find_package(airstack_common REQUIRED) +find_package(core_map_representation_interface REQUIRED) +find_package(trajectory_controller REQUIRED) +find_package(trajectory_library REQUIRED) +find_package(tflib REQUIRED) +find_package(nav_msgs REQUIRED) +find_package(pluginlib REQUIRED) +find_package(rclcpp REQUIRED) +find_package(std_msgs REQUIRED) +find_package(tf2 REQUIRED) +find_package(tf2_ros REQUIRED) + +add_executable(droan_local_planner src/droan_local_planner.cpp) +target_include_directories(droan_local_planner PUBLIC + $ + $) +target_compile_features(droan_local_planner PUBLIC c_std_99 cxx_std_17) # Require C99 and C++17 +ament_target_dependencies( + droan_local_planner + "airstack_msgs" + "airstack_common" + "core_map_representation_interface" + "trajectory_controller" + "trajectory_library" + "tflib" + "nav_msgs" + "pluginlib" + "rclcpp" + "std_msgs" + "tf2" + "tf2_ros" +) + +install(TARGETS droan_local_planner + DESTINATION lib/${PROJECT_NAME}) + +if(BUILD_TESTING) + find_package(ament_lint_auto REQUIRED) + + # the following line skips the linter which checks for copyrights + # comment the line when a copyright and license is added to all source files + set(ament_cmake_copyright_FOUND TRUE) + + # the following line skips cpplint (only works in a git repo) + # comment the line when this package is in a git repo and when + # a copyright and license is added to all source files + set(ament_cmake_cpplint_FOUND TRUE) + ament_lint_auto_find_test_dependencies() +endif() + +ament_package() diff --git a/ros_ws/src/robot/autonomy/planning/local/droan_local_planner/include/droan_local_planner/droan_local_planner.hpp b/ros_ws/src/robot/autonomy/planning/local/droan_local_planner/include/droan_local_planner/droan_local_planner.hpp new file mode 100644 index 000000000..9f57c5a3d --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/droan_local_planner/include/droan_local_planner/droan_local_planner.hpp @@ -0,0 +1,666 @@ +#pragma once + +#include + +#include +#include +#include +#include +#include +#include +#include +// #include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +class LocalPlanner : rclcpp::Node { + private: + std::unique_ptr traj_lib; + + std::string map_representation; + bool got_global_plan; + airstack_msgs::msg::TrajectoryXYZVYaw global_plan; + double global_plan_trajectory_distance; + bool got_look_ahead, got_tracking_point; + nav_msgs::msg::Odometry look_ahead_odom, tracking_point_odom; + + std::vector static_trajectories; + + double waypoint_spacing, obstacle_check_radius, obstacle_penalty_weight, + forward_progress_penalty_weight; + double robot_radius; + int obstacle_check_points; + + double look_past_distance; + + float waypoint_buffer_duration, waypoint_spacing_threshold, waypoint_angle_threshold; + std::list waypoint_buffer; + + // bool use_fixed_height; + const int GLOBAL_PLAN_HEIGHT = 0; + const int FIXED_HEIGHT = 1; + const int RANGE_SENSOR_HEIGHT = 2; + int height_mode; + double height_above_ground; + double fixed_height; + bool got_range_up, got_range_down; + sensor_msgs::msg::Range range_up, range_down; + + const int TRAJECTORY_YAW = 0; + const int SMOOTH_YAW = 1; + int yaw_mode; + + // custom waypoint params + enum GoalMode { CUSTOM_WAYPOINT, AUTO_WAYPOINT, TRAJECTORY }; + GoalMode goal_mode; + double custom_waypoint_timeout_factor, custom_waypoint_distance_threshold; + + // MapRepresentationDeprecated* map; + // MapRepresentation* pc_map; + std::shared_ptr pc_map; + + rclcpp::Subscription::SharedPtr global_plan_sub; + rclcpp::Subscription::SharedPtr waypoint_sub; + rclcpp::Subscription::SharedPtr look_ahead_sub; + rclcpp::Subscription::SharedPtr tracking_point_sub; + rclcpp::Subscription::SharedPtr range_up_sub; + rclcpp::Subscription::SharedPtr range_down_sub; + rclcpp::Subscription::SharedPtr custom_waypoint_sub; + // subscribers + // ros::Subscriber global_plan_sub, waypoint_sub, look_ahead_sub, tracking_point_sub, + // range_up_sub, + // range_down_sub, custom_waypoint_sub; + + tf2_ros::Buffer tf_buffer; + tf2_ros::TransformListener tf_listener; + + // publishers + // ros::Publisher vis_pub, traj_pub, traj_track_pub, obst_vis_pub, global_plan_vis_pub, + // look_past_vis_pub; + rclcpp::Publisher::SharedPtr vis_pub; + rclcpp::Publisher::SharedPtr traj_pub; + rclcpp::Publisher::SharedPtr traj_track_pub; + rclcpp::Publisher::SharedPtr obst_vis_pub; + rclcpp::Publisher::SharedPtr global_plan_vis_pub; + rclcpp::Publisher::SharedPtr look_past_vis_pub; + + // services + // ros::ServiceClient traj_mode_client; + rclcpp::Client::SharedPtr traj_mode_client; + + public: + LocalPlanner(const std::string node_name) + : Node("droan_local_planner"), + tf_listener(tf_buffer), + goal_mode(TRAJECTORY) + + { + // subscribers + global_plan_sub = this->create_subscription( + "global_plan", 10, std::bind(&LocalPlanner::global_plan_callback, this, _1)); + waypoint_sub = this->create_subscription( + "way_point", 10, std::bind(&LocalPlanner::waypoint_callback, this, _1)); + look_ahead_sub = this->create_subscription( + "look_ahead", 10, std::bind(&LocalPlanner::look_ahead_callback, this, _1)); + tracking_point_sub = this->create_subscription( + "tracking_point", 10, std::bind(&LocalPlanner::tracking_point_callback, this, _1)); + range_up_sub = this->create_subscription( + "range_up", 1, std::bind(&LocalPlanner::range_up_callback, this, _1)); + range_down_sub = this->create_subscription( + "range_down", 1, std::bind(&LocalPlanner::range_down_callback, this, _1)); + custom_waypoint_sub = this->create_subscription( + "custom_waypoint", 1, std::bind(&LocalPlanner::custom_waypoint_callback, this, _1)); + + // publishers + + vis_pub = + this->create_publisher("trajectory_library_vis", 10); + obst_vis_pub = this->create_publisher("obstaccle_vis", 10); + global_plan_vis_pub = this->create_publisher( + "local_planner_global_plan_vis", 10); + look_past_vis_pub = + this->create_publisher("look_past", 10); + traj_pub = this->create_publisher("trajectory", 10); + traj_track_pub = + this->create_publisher("trajectory_track", 10); + + // services + traj_mode_client = + this->create_client("set_trajectory_mode"); + + // init parameters + this->declare_parameter("waypoint_spacing", 0.5); + waypoint_spacing = this->get_parameter("waypoint_spacing").as_double(); + this->declare_parameter("obstacle_penalty_weight", 1.); + obstacle_penalty_weight = this->get_parameter("obstacle_penalty_weight").as_double(); + this->declare_parameter("forward_progress_penalty_weight", 0.5); + forward_progress_penalty_weight = + this->get_parameter("forward_progress_penalty_weight").as_double(); + this->declare_parameter("robot_radius", 0.75); + robot_radius = this->get_parameter("robot_radius").as_double(); + this->declare_parameter("look_past_distance", 0); + look_past_distance = this->get_parameter("look_past_distance").as_double(); + this->declare_parameter("height_mode", 0); + height_mode = this->get_parameter("height_mode").as_int(); + this->declare_parameter("height_above_ground", 1.); + height_above_ground = this->get_parameter("height_above_ground").as_double(); + this->declare_parameter("fixed_height", 1.); + fixed_height = this->get_parameter("fixed_height").as_double(); + this->declare_parameter("yaw_mode", 0); + yaw_mode = this->get_parameter("yaw_mode").as_int(); + this->declare_parameter("map_representation", std::string("PointCloudMapRepresentation")); + map_representation = this->get_parameter("map_representation").as_string(); + this->declare_parameter("waypoint_buffer_duration", 30.); + waypoint_buffer_duration = this->get_parameter("waypoint_buffer_duration").as_double(); + this->declare_parameter("waypoint_spacing_threshold", 0.5); + waypoint_spacing_threshold = this->get_parameter("waypoint_spacing_threshold").as_double(); + this->declare_parameter("waypoint_angle_threshold", 30. * M_PI / 180.); + waypoint_angle_threshold = this->get_parameter("waypoint_angle_threshold").as_double(); + + this->declare_parameter("custom_waypoint_timeout_factor", 0.3); + custom_waypoint_timeout_factor = + this->get_parameter("custom_waypoint_timeout_factor").as_double(); + this->declare_parameter("custom_waypoint_distance_threshold", 0.5); + custom_waypoint_distance_threshold = + this->get_parameter("custom_waypoint_distance_threshold").as_double(); + + this->declare_parameter("trajectory_library_config", std::string("")); + traj_lib = std::make_unique( + this->get_parameter("trajectory_library_config").as_string(), tf_buffer); + } + virtual ~LocalPlanner(); + + virtual bool execute() { + update_waypoint_mode(); + + if (!got_global_plan) return true; + + Trajectory gp(global_plan); + + // set the height of the global plan + if (height_mode == FIXED_HEIGHT) { + gp.set_fixed_height(fixed_height); + } else if (height_mode == RANGE_SENSOR_HEIGHT) { + if (!got_range_up || !got_range_down) return true; + + try { + tf2::Stamped transform_up, transform_down; + + geometry_msgs::msg::TransformStamped tf_up_msg, tf_down_msg; + tf_up_msg = tf_buffer.lookupTransform(range_up.header.frame_id, range_up.header_id, + range_up.header.stamp); + tf2::fromMsg(tf_up_msg, transform_up); + tf_down_msg = tf_buffer.lookupTransform( + range_down.header.frame_id, range_down.header_id, range_down.header.stamp); + tf2::fromMsg(tf_down_msg, transform_down); + + tf2::Vector3 range_up_gp_frame = transform_up * tf2::Vector3(range_up.range, 0, 0); + tf2::Vector3 range_down_gp_frame = + transform_down * tf2::Vector3(range_down.range, 0, 0); + + double tunnel_height = range_up_gp_frame.z() - range_down_gp_frame.z(); + double z_setpoint = (range_up_gp_frame.z() + range_down_gp_frame.z()) / 2.0; + if (tunnel_height / 2.0 >= height_above_ground) { + z_setpoint = range_down_gp_frame.z() + height_above_ground; + } + + gp.set_fixed_height(z_setpoint); + + } catch (tf2::TransformException& ex) { + RCLCPP_ERROR("LocalPlanner", "Failed to get transform: %s", ex.what()); + return true; + } + } + + // transform the look ahead point to the global plan frame + nav_msgs::msg::Odometry look_ahead_odom_global; + // translate to global frame + tf_buffer.transform(look_ahead_odom, look_ahead_odom_global, gp.get_frame_id()); + + tf2::Vector3 look_ahead_position_global; // global frame + tf2::fromMsg(look_ahead_odom.pose.pose.position, look_ahead_position_global); + + // increment how far along the global plan we are + double trajectory_distance; + bool valid = gp.get_trajectory_distance_at_closest_point(look_ahead_position_global, + &trajectory_distance); + if (valid) { + global_plan_trajectory_distance += trajectory_distance; + gp = gp.get_subtrajectory_distance(global_plan_trajectory_distance, + global_plan_trajectory_distance + 10.0); + } else { + RCLCPP_INFO(this->get_logger(), "invalid"); + } + + // publish the segment of the global plan currently being used, for visualization + visualization_msgs::msg::MarkerArray global_markers = gp.get_markers(0, 0, 1); + global_plan_vis_pub->publish(global_markers); + + // get the dynamic trajectories + std::vector dynamic_trajectories = + traj_lib->get_dynamic_trajectories(look_ahead_odom); + + // pick the best trajectory + Trajectory best_traj; + bool all_in_collision = this->get_best_trajectory(dynamic_trajectories, gp, &best_traj); + + // publish the trajectory + if (!all_in_collision) { + airstack_msgs::msg::TrajectoryXYZVYaw path = best_traj.get_TrajectoryXYZVYaw(); + + // set yaw + if (yaw_mode == SMOOTH_YAW && path.waypoints.size() > 0) { + bool found_initial_heading = false; + double initial_heading = 0; + try { + // get the initial heading of the look_ahead_odom in best_traj frame + best_traj.get_frame_id(); + + nav_msgs::msg::Odometry look_ahead_odom_best_traj_frame = + tf_buffer.transform(look_ahead_odom, best_traj.get_frame_id()); + + initial_heading = + tf2::getYaw(look_ahead_odom_best_traj_frame.pose.pose.orientation); + found_initial_heading = true; + + } catch (tf2::TransformException& ex) { + RCLCPP_ERROR("LocalPlanner", "Failed to get transform: %s", ex.what()); + } + + if (found_initial_heading) { + path.waypoints[0].yaw = initial_heading; + double alpha = 0.1; + double sin_yaw_prev = sin(path.waypoints[0].yaw); + double cos_yaw_prev = cos(path.waypoints[0].yaw); + + for (int i = 1; i < path.waypoints.size(); i++) { + airstack_msgs::msg::WaypointXYZVYaw wp_prev = path.waypoints[i - 1]; + airstack_msgs::msg::WaypointXYZVYaw& wp_curr = path.waypoints[i]; + + double yaw = atan2(wp_curr.position.y - wp_prev.position.y, + wp_curr.position.x - wp_prev.position.x); + double cos_yaw = alpha * cos(yaw) + (1 - alpha) * cos_yaw_prev; + double sin_yaw = alpha * sin(yaw) + (1 - alpha) * sin_yaw_prev; + yaw = atan2(sin_yaw, cos_yaw); + + sin_yaw_prev = sin_yaw; + cos_yaw_prev = cos_yaw; + + wp_curr.yaw = yaw; + } + } + } + path.header.stamp = this->now(); + traj_pub->publish(path); + } + return true; + } + + bool get_best_trajectory(std::vector trajs, Trajectory global_plan, + Trajectory* best_traj_ret) { + double min_cost = std::numeric_limits::max(); + int best_traj_index = 0; + bool all_in_collision = true; + + auto now = this->now(); + + visualization_msgs::msg::MarkerArray traj_lib_markers, look_past_markers; + + std::vector> trajectories; + for (int i = 0; i < trajs.size(); i++) { + trajectories.push_back(trajs[i].get_vector_PointStamped()); + } + + std::vector> values = pc_map->get_values(trajectories); + + for (int i = 0; i < trajectories.size(); ++i) { + Trajectory traj = trajectories[i]; + double average_distance = std::numeric_limits::infinity(); + double closest_obstacle_distance = std::numeric_limits::infinity(); + + Trajectory global_plan_in_traj_frame; + try { + global_plan_in_traj_frame = global_plan.transform_to_frame(traj.get_frame_id()); + } catch (tf2::TransformException& ex) { + RCLCPP_ERROR("LocalPlanner", + "Failed to transform global plan to trajectory frame: %s", ex.what()); + return true; + } + + for (int j = 0; j < traj.waypoint_count(); j++) { + Waypoint wp = traj.get_waypoint(j); + + nav_msgs::msg::Odometry odom = wp.odometry(now, traj.get_frame_id()); + geometry_msgs::msg::PoseStamped pose; + pose.header = odom.header; + pose.pose = odom.pose.pose; + closest_obstacle_distance = std::min(closest_obstacle_distance, values[i][j]); + + tf2::Vector3 closest_point; + int wp_index; + double path_distance; + bool valid = global_plan_in_traj_frame.get_closest_point( + wp.position(), &closest_point, &wp_index, &path_distance); + double forward_progress_penalty = -forward_progress_penalty_weight * path_distance; + + if (valid) { + if (!std::isfinite(average_distance)) { + average_distance = 0; + } + average_distance += + closest_point.distance(wp.position()) + forward_progress_penalty; + } + } + + average_distance /= traj.waypoint_count(); + bool collision = closest_obstacle_distance <= robot_radius; + if (!collision) { + all_in_collision = false; + } + + visualization_msgs::msg::MarkerArray traj_markers; + if (collision) { + // red for collision + traj_markers = traj.get_markers(1, 0, 0, .5); + } else { + traj_markers = traj.get_markers(0, 1, 0, .5); + } + + if (look_past_distance > 0) { + if (traj.waypoint_count() >= 2) { + Waypoint curr_wp = traj.get_waypoint(traj.waypoint_count() - 1); + Waypoint prev_wp = traj.get_waypoint(traj.waypoint_count() - 2); + + tf2::Vector3 segment = curr_wp.position() - prev_wp.position(); + segment.normalize(); + + tf2::Vector3 position = curr_wp.position() + look_past_distance * segment; + + tf2::Vector3 closest_point; + int wp_index; + bool valid = global_plan_in_traj_frame.get_closest_point( + position, &closest_point, &wp_index); + + if (!valid) { + collision = true; + } else { + average_distance = position.distance(closest_point); + } + + visualization_msgs::msg::Marker marker; + marker.header.frame_id = traj.get_frame_id(); + marker.header.stamp = now; + marker.ns = "look_past"; + marker.id = i; + marker.type = visualization_msgs::msg::Marker::SPHERE; + marker.action = visualization_msgs::msg::Marker::ADD; + + marker.pose.position.x = position.x(); + marker.pose.position.y = position.y(); + marker.pose.position.z = position.z(); + marker.pose.orientation.w = 1; + marker.scale.x = 0.3; + marker.scale.y = 0.3; + marker.scale.z = 0.3; + marker.color.r = 0.0; + marker.color.g = 0.0; + marker.color.b = 1.0; + marker.color.a = 1.0; + look_past_markers.markers.push_back(marker); + } + } + traj_lib_markers.markers.insert(traj_lib_markers.markers.end(), + traj_markers.markers.begin(), + traj_markers.markers.end()); + double cost = + average_distance - obstacle_penalty_weight * + std::min(closest_obstacle_distance, obstacle_check_radius); + if (!collision && cost < min_cost) { + min_cost = cost; + best_traj_index = i; + *best_traj_ret = traj; + } + } + if (best_traj_index < look_past_markers.markers.size()) { + look_past_markers.markers[best_traj_index].color.r = 0; + look_past_markers.markers[best_traj_index].color.g = 1; + look_past_markers.markers[best_traj_index].color.b = 0; + look_past_markers.markers[best_traj_index].color.a = 1; + } + + vis_pub->publish(traj_lib_markers); + pc_map->publish_debug(); + look_past_vis_pub->publish(look_past_markers); + + return all_in_collision; + } + + // subscriber callbacks + void global_plan_callback(const airstack_msgs::msg::TrajectoryXYZVYaw::SharedPtr global_plan) { + RCLCPP_INFO_STREAM(this->get_logger(), "GOT GLOBAL PLAN, goal_mode: " << goal_mode); + if (goal_mode != TRAJECTORY) return; + + this->global_plan = global_plan; + got_global_plan = true; + global_plan_trajectory_distance = 0; + } + + void waypoint_callback(const geometry_msgs::msg::PointStamped::SharedPtr wp) { + if (goal_mode != AUTO_WAYPOINT) { + waypoint_buffer.clear(); + waypoint_buffer.push_back(wp); + return; + } + + // remove old waypoints if necessary + waypoint_buffer.push_back(wp); + if ((wp.header.stamp - waypoint_buffer.front().header.stamp).toSec() > + waypoint_buffer_duration) { + waypoint_buffer.pop_front(); + } + + // stitch together the history of waypoints + airstack_msgs::msg::TrajectoryXYZVYaw global_plan; + global_plan.header.frame_id = wp.header.frame_id; + global_plan.header.stamp = wp.header.stamp; + + std::vector backwards_global_plan; + + std::vector prev_wps; + for (auto it = waypoint_buffer.rbegin(); it != waypoint_buffer.rend(); it++) { + geometry_msgs::msg::PointStamped curr_wp = *it; + airstack_msgs::msg::WaypointXYZVYaw waypoint; + waypoint.position.x = curr_wp.point.x; + waypoint.position.y = curr_wp.point.y; + waypoint.position.z = curr_wp.point.z; + + if (prev_wps.size() > 1) { + geometry_msgs::PointStamped prev_wp = prev_wps[prev_wps.size() - 1]; + geometry_msgs::PointStamped prev2_wp = prev_wps[prev_wps.size() - 2]; + float distance = sqrt(pow(curr_wp.point.x - prev_wp.point.x, 2) + + pow(curr_wp.point.y - prev_wp.point.y, 2)); + + float a = pow(prev_wp.point.x - curr_wp.point.x, 2) + + pow(prev_wp.point.y - curr_wp.point.y, 2); + float b = pow(prev_wp.point.x - prev2_wp.point.x, 2) + + pow(prev_wp.point.y - prev2_wp.point.y, 2); + float c = pow(prev2_wp.point.x - curr_wp.point.x, 2) + + pow(prev2_wp.point.y - curr_wp.point.y, 2); + float angle = acos((a + b - c) / sqrt(4 * a * b)); + + float angle_diff = fabs(atan2(sin(angle - M_PI), cos(angle - M_PI))); + + // ROS_INFO_STREAM("\tdistance: " << distance << " angle: " << angle*180./M_PI << " + // angle_diff: " << angle_diff*180./M_PI); + + if (distance >= waypoint_spacing_threshold && + angle_diff < waypoint_angle_threshold) { + // ROS_INFO_STREAM("\tADDING wp: " << curr_wp.point.x << " " << curr_wp.point.y + // << " " << curr_wp.point.z); + backwards_global_plan.push_back(waypoint); + prev_wps.push_back(curr_wp); + } + } else { + if (prev_wps.size() == 0) { + prev_wps.push_back(curr_wp); + backwards_global_plan.push_back(waypoint); + } else if (prev_wps.size() == 1) { + geometry_msgs::PointStamped prev_wp = prev_wps[prev_wps.size() - 1]; + float distance = sqrt(pow(curr_wp.point.x - prev_wp.point.x, 2) + + pow(curr_wp.point.y - prev_wp.point.y, 2)); + if (distance >= waypoint_spacing_threshold) { + prev_wps.push_back(curr_wp); + backwards_global_plan.push_back(waypoint); + } + } + } + } + for (int i = 0; i < backwards_global_plan.size(); i++) { + global_plan.waypoints.push_back( + backwards_global_plan[backwards_global_plan.size() - 1 - i]); + } + if (got_tracking_point) { + try { + tf2::Vector3 tp_pos = tf2::Vector3(tracking_point_odom.pose.pose.position.x, + tracking_point_odom.pose.pose.position.y, + tracking_point_odom.pose.pose.position.z); + + // translate wp to tracking point frame + geometry_msgs::msg::PointStamped wp_msg_in_tp_frame = + tf_buffer.transform(wp, tracking_point_odom.header.frame_id); + tf2::Vector3 wp_pos_in_tp_frame = + tf2::Vector3(wp_msg_in_tp_frame.point.x, wp_msg_in_tp_frame.point.y, + wp_msg_in_tp_frame.point.z); + + tf2::Vector3 direction = (wp_pos_in_tp_frame - tp_pos).normalized() * 3; + tf2::Vector3 wp2_pos = wp_msg_in_tp_frame + direction; + + airstack_msgs::msg::WaypointXYZVYaw wp1, wp2; + wp1.position.x = wp_pos_in_tp_frame.x(); + wp1.position.y = wp_pos_in_tp_frame.y(); + wp1.position.z = wp_pos_in_tp_frame.z(); + wp2.position.x = wp2_pos.x(); + wp2.position.y = wp2_pos.y(); + wp2.position.z = wp2_pos.z(); + global_plan.waypoints.push_back(wp1); + global_plan.waypoints.push_back(wp2); + } catch (tf2::TransformException& ex) { + RCLCPP_ERROR("LocalPlanner", "Failed to get transform: %s", ex.what()); + } + } + + global_plan_trajectory_distance = 0; + this->global_plan = global_plan; + this->got_global_plan = true; + } + + void custom_waypoint_callback(const geometry_msgs::msg::PoseStamped::SharedPtr wp) { + if (!got_look_ahead) return; + + try { + auto wp_msg_in_la_frame = + tf_buffer.transform(wp.pose.position, look_ahead_odom.header.frame_id); + + tf2::Vector3 la_position = tf2::Vector3(look_ahead_odom.pose.pose.position.x, + look_ahead_odom.pose.pose.position.y, + look_ahead_odom.pose.pose.position.z); + tf2::Vector3 wp_position = + tf2::Vector3(wp_msg_in_la_frame.x, wp_msg_in_la_frame.y, wp_msg_in_la_frame.z); + + airstack_msgs::msg::TrajectoryXYZVYaw global_plan; + global_plan.header.frame_id = look_ahead_odom.header.frame_id; + global_plan.header.stamp = this->now(); + + airstack_msgs::msg::WaypointXYZVYaw wp1, wp2; + wp1.position.x = la_position.x(); + wp1.position.y = la_position.y(); + wp1.position.z = la_position.z(); + wp2.position.x = wp_position.x(); + wp2.position.y = wp_position.y(); + wp2.position.z = wp_position.z(); + global_plan.waypoints.push_back(wp1); + global_plan.waypoints.push_back(wp2); + + global_plan_trajectory_distance = 0; + this->global_plan = global_plan; + this->got_global_plan = true; + + goal_mode = CUSTOM_WAYPOINT; + } catch (tf2::TransformException& ex) { + RCLCPP_ERROR("LocalPlanner", "Failed to get transform: %s", ex.what()); + } + } + void update_waypoint_mode() { + if (goal_mode == CUSTOM_WAYPOINT) { + if (global_plan.waypoints.size() < 2) goal_mode = AUTO_WAYPOINT; + + // check if the time limit for reaching the waypoint has elapsed + double elapsed_time = (this->now() - global_plan.header.stamp).toSec(); + double distance = 0; + for (int i = 1; i < global_plan.waypoints.size(); i++) { + airstack_msgs::msg::WaypointXYZVYaw prev_wp, curr_wp; + prev_wp = global_plan.waypoints[i - 1]; + curr_wp = global_plan.waypoints[i]; + + distance += sqrt(pow(prev_wp.position.x - curr_wp.position.x, 2) + + pow(prev_wp.position.y - curr_wp.position.y, 2)); + } + + // ROS_INFO_STREAM("elapsed: " << elapsed_time << " / " << + // distance/custom_waypoint_timeout_factor << " distance: " << distance); + if (elapsed_time >= distance / custom_waypoint_timeout_factor) { + // ROS_INFO_STREAM("CUSTOM WAYPOINT TIMEOUT REACHED"); + goal_mode = AUTO_WAYPOINT; + } + + // check if we are close enough to the waypoint + if (got_tracking_point) { + try { + tf2::Vector3 tp_pos = tf2::Vector3(tracking_point_odom.pose.pose.position.x, + tracking_point_odom.pose.pose.position.y, + tracking_point_odom.pose.pose.position.z); + + // translate wp to tracking point frame + geometry_msgs::msg::PointStamped wp_msg_in_tp_frame = tf_buffer.transform( + global_plan.waypoints.back().position, tracking_point_odom.header.frame_id); + tf2::Vector3 wp_pos_in_tp_frame = + tf2::Vector3(wp_msg_in_tp_frame.point.x, wp_msg_in_tp_frame.point.y, + wp_msg_in_tp_frame.point.z); + + if (tp_position.distance(wp_pos_in_tp_frame) < + custom_waypoint_distance_threshold) { + goal_mode = AUTO_WAYPOINT; + } + } catch (tf2::TransformException& ex) { + ROS_ERROR_STREAM("TransformException in update_waypoint_mode: " << ex.what()); + } + } + } + } + void look_ahead_callback(const nav_msgs::msg::Odometry::SharedPtr odom) { + got_look_ahead = true; + look_ahead_odom = odom; + } + void tracking_point_callback(const nav_msgs::msg::Odometry::SharedPtr odom) { + got_tracking_point = true; + tracking_point_odom = odom; + } + void range_up_callback(const sensor_msgs::msg::Range::SharedPtr range) { + got_range_up = true; + range_up = range; + } + void range_down_callback(const sensor_msgs::msg::Range::SharedPtr range) { + got_range_down = true; + range_down = range; + } +}; diff --git a/ros_ws/src/robot/autonomy/planning/local/droan_local_planner/package.xml b/ros_ws/src/robot/autonomy/planning/local/droan_local_planner/package.xml new file mode 100644 index 000000000..213ded957 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/droan_local_planner/package.xml @@ -0,0 +1,29 @@ + + + + droan_local_planner + 0.0.0 + TODO: Package description + andrew + TODO: License declaration + + ament_cmake + + airstack_msgs + trajectory_library + rclcpp + std_msgs + nav_msgs + trajectory_controller + core_map_representation_interface + tf2 + tf2_ros + pluginlib + + ament_lint_auto + ament_lint_common + + + ament_cmake + + diff --git a/ros_ws/src/robot/autonomy/planning/local/droan_local_planner/src/droan_local_planner.cpp b/ros_ws/src/robot/autonomy/planning/local/droan_local_planner/src/droan_local_planner.cpp new file mode 100644 index 000000000..6b6daa757 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/droan_local_planner/src/droan_local_planner.cpp @@ -0,0 +1,10 @@ +#include + +int main(int argc, char ** argv) +{ + (void) argc; + (void) argv; + + printf("hello world droan_local_planner package\n"); + return 0; +} From 642b8506503050b032ee30cd084a3c5ea35df895 Mon Sep 17 00:00:00 2001 From: Andrew Jong Date: Thu, 29 Aug 2024 18:05:32 -0400 Subject: [PATCH 49/50] Rename core_trajectory_msgs to airsatck_msgs; core_trajectory_library to trajectory_library --- .../trajectory_library/src/fixed_trajectory_generator.py | 8 ++++---- .../rqt_fixed_trajectory_selector.py | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/ros_ws/src/robot/autonomy/controls/trajectory_library/src/fixed_trajectory_generator.py b/ros_ws/src/robot/autonomy/controls/trajectory_library/src/fixed_trajectory_generator.py index ba12de293..c4be08549 100755 --- a/ros_ws/src/robot/autonomy/controls/trajectory_library/src/fixed_trajectory_generator.py +++ b/ros_ws/src/robot/autonomy/controls/trajectory_library/src/fixed_trajectory_generator.py @@ -9,10 +9,10 @@ #from at_fcs_mavros.msg import Waypoint #from ca_nav_msgs.msg import XYZVPsi #from ca_nav_msgs.msg import PathXYZVPsi -from core_trajectory_msgs.msg import WaypointXYZVYaw -from core_trajectory_msgs.msg import TrajectoryXYZVYaw -from core_trajectory_controller.msg import Trajectory -from core_trajectory_msgs.msg import FixedTrajectory +from airstack_msgs.msg import WaypointXYZVYaw +from airstack_msgs.msg import TrajectoryXYZVYaw +from trajectory_controller.msg import Trajectory +from airstack_msgs.msg import FixedTrajectory import time import copy diff --git a/ros_ws/src/robot/autonomy/controls/trajectory_library/src/rqt_fixed_trajectory_selector/rqt_fixed_trajectory_selector.py b/ros_ws/src/robot/autonomy/controls/trajectory_library/src/rqt_fixed_trajectory_selector/rqt_fixed_trajectory_selector.py index af755a0ce..a8fd1a8f5 100644 --- a/ros_ws/src/robot/autonomy/controls/trajectory_library/src/rqt_fixed_trajectory_selector/rqt_fixed_trajectory_selector.py +++ b/ros_ws/src/robot/autonomy/controls/trajectory_library/src/rqt_fixed_trajectory_selector/rqt_fixed_trajectory_selector.py @@ -19,7 +19,7 @@ from python_qt_binding.QtGui import QColor from python_qt_binding.QtWidgets import QWidget, QVBoxLayout, QSizePolicy -from core_trajectory_msgs.msg import FixedTrajectory +from airstack_msgs.msg import FixedTrajectory from diagnostic_msgs.msg import KeyValue class FixedTrajectorySelectorPlugin(Plugin): @@ -102,7 +102,7 @@ def publish_trajectory(self): def select_config_file(self): - starting_path = os.path.join(rospkg.RosPack().get_path('core_trajectory_library'), 'config') + starting_path = os.path.join(rospkg.RosPack().get_path('trajectory_library'), 'config') filename = qt.QFileDialog.getOpenFileName(self.widget, 'Open Config File', starting_path, "Config Files (*.yaml)")[0] self.set_config(filename) From 0bff536d2d805a63365e47da5116c0b2fc5bfb6a Mon Sep 17 00:00:00 2001 From: Andrew Jong Date: Thu, 29 Aug 2024 18:06:23 -0400 Subject: [PATCH 50/50] Some cpp thing --- .vscode/settings.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index d22717a20..9d4ba0ef8 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -803,7 +803,9 @@ "bit": "cpp", "__nullptr": "cpp", "__locale": "cpp", - "codecvt": "cpp" + "codecvt": "cpp", + "any": "cpp", + "future": "cpp" }, "C_Cpp.clang_format_fallbackStyle": "{ BasedOnStyle: Google, IndentWidth: 4, ColumnLimit: 100 }", "editor.formatOnSave": true

      r6zV&j(d-3K>Bxb0V@E9%l2 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 NUeeh9>AK_n|38b&o&o>> literal 0 HcmV?d00001 diff --git a/simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain/N00E000.DAT b/simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain/N00E000.DAT new file mode 100644 index 0000000000000000000000000000000000000000..634a3edc38280d35579c06cf3da34a09f262d5fe GIT binary patch literal 2048 ocmezW9}E~^fHRDdAqB=6rAI?xGz3ONU^E0qLtr!nhGhr<0MLL3z5oCK literal 0 HcmV?d00001 diff --git a/simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain/N42W072.DAT b/simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain/N42W072.DAT new file mode 100644 index 0000000000000000000000000000000000000000..25fbbf3df8e3f847f76829a0b26a90c10625b9bb GIT binary patch literal 1894400 zcmeI$xw2)~dD!vI#EBD2B7mN|Z_o2Qq5(93#zYdNz)>VYii4=3JXJZdojGu*fB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK;R#az^~W8?Z5xWUmSnyD}VXLe|z+m?N{5; zc5$u?`|HK+()@jPJGGtMKfk(N->z(z=en|8oA;OZ`!3DBm$s|ht?lM~et!S!!hCXh z-gU>hDdG5bdR|w_m-gsu+l{%WyVs|cxMHfI_$%|%bzvfpZD-~>JJ-4SyLMcgt2c6^2SHk(Z@7!FqqsV1)ae7;u z&&|(?X@6HGoSxrD6Ln>-bn>kQ#jbW$*6H~~;UzOW;m2qu;8m&`Pc6C={zfbLTbjK1sIlogp zzkiZZJvcLEoSo8Zak*B{E4>z4vvkVA?ySa@2bEIUwWB`N?$yUs zRt+mNR(`E>ROt$rXH0k&Ck9)HLv|X z+HsnD)#x3vix)xXKrK#=C_F#LsJ)7&=#9x`HrBHM-&H3K1&)2Ax z`)k!Yn&_t!`_A@wzwa;_ja02{R4b)<(^#(2?Att#=JoORe0y`QJ9Agg$&|gtHzrGI z&AVFBJ*V~zcw>H_+2fy1D{f3p%V$b}6q}*!VYctsH%~MzFcx`g3{D!^`8JcH`UlwZ1nx<@{RtE1^8>`;}X3 zo~$!K@y+z3`L3(kwN|F$S8QcB!ez-?FPhcO@uJKAN?tou<6YcZX)E!t`t`ousFh*$ ztE{N@?k>|Sp=-^b!^~e9UF%!_&W+d2y^ht|+S^=ND|zqA+kPL``ewt?-j3SYnda8i zy5{COLmZUX-d66f>_7Cr?^kW@TCFT=&1oNBJA1mV65Umqi6ydR8pj-RU29%_T>JQ1 zk=E{A57*pntgF3Nrn!38`&!oT!>+z&XZ0+n`rjRE73yrXTvMr4Ycy(I<#zSiZ*ym5 z#cF?bT$=Ua)^>ZY8+&hROJy8Qd_Ab&&Fe#Mt+7}o7Jp?{h=<$#S!eFf`{lY;x5L`l zT2vcWhOYjs_(to-L_V79;goY@&$cqI6{a4P=dC);qE1JBR?AjdY2TWs*r(<|c1wEw}B^K`CqG1c~$9Gr?z(p7b^dIeTG`5s&QU%8 zbs9gupQy@)&gbiN)tb=UZ}ne!u$}}Ond17Z@>{FUPFzoMJsVU?Pn4D03~ZK^iO9x)!%ruawFsd44xTC>WlR`XWDYdE-Yx&$+Ex}fncK&qh-N~urs}r#VU!VRpCr(UUDrugWziaa$ew}+7(MI>g z_6OVV&CgfoUH7lCuIBZGU#m_{eBQ0=J%g;>q7vG3>gDfGd{1l1H?qaA{~tIx?<%$Z zz7tCOU29!eChO@UvlZJ&mtD)@@Z8s^cdePd{_m)jW1WxIx{>F~liE-<#fdu>I$GZAYYZ=YWO&((Tf-DU8KF8;7XuBX=ai?t7Q63n1os*`vYwf@{L zzuI2@^c=tT#8vybeII`?G3_G#AKjgOKCB$A=W8|`N?8A!v-XMladuYX=hK7E!sTVV z+|BvDcEEPv#_kaP`re!7(At}OGH)M$I#HdS+9ML^T(ow={K~3T!g}Is7OejbXa@K6 z+S6yzYprTGEWbM?AMI^ibEml0xRpnh(bZ1&XzIJP_r5Gz`%ig&_+Q3m)|!uNPS>Z# zrShK5o^pR$eVCPp{d>)km5q%=v#?C=>iJ`xwQGOpfaY=SZ!RawiVo|Lrw{ z*Z*X-)0Nq4A7A;?bHK`;>Rl(m9E#|*^*GPkxc114ulj#;ueX!!8oTc6OxZXzd)C^& z&eyf+@I-KR@~7wjyVL5{>H2VfBG;N#KGvIcLQbsQJFIuj`78TA{_c#x;jCN6AC&vw zy~cHATCFJa*8e2ehI07**~dQ^h0F6@wkx*R{ttRRCuMs0AJ^8Mb!uDBOu7DU?Ein~ z|2PmxfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7z9jJL^>6#% z|MOSJ|J^_N%P;=*zyHeitL@?TbbGeFGr!MoNBhsY`F&>V^}=>>e$LO&rFlKKU#GWI z`?u$|vvbF}?aB6hdvi*-HFuoZPS2<3=jZGme`(?_&fon$nyVVl&ON8L6LY;W@6PP; zPqzo#^{J)!Gjqq8{oYI4m5IB&N7s&8(sg!^KDHg3a!yYClkL%Vce^$;WP3cd-`el0m8a&a{pa^ju535(1^G{e5l9y*i&>nfuFtl_iaR@mD9lURD2%iMcT4uKKU+?P+|9 zFE^I#xp|-arTJO%H>RY^b6@3^4`oTcxUzrWD3uvUyK64hQPy0Yi2A?2?|tQ5ou9_K zclEDKOQLZry7(fit(ZnMqx7n~nRI!Ntc=U^SGAwpzp3vle&xz4CyUkA`d&|0`x>>P z(_d|_70uP|uAQ}@KKEIF9cIv)muoiEhVH+z3sh#cH8Pdmcjd?GbM0H7*5=+d%eoqa zHE&m486Q@V?yZHjcC~M;!&kHS;;ZOJ zrP+MAx4c+Fy;kEAI`r$!Sv~ITBU9~VZTZ@KUNfakDfi09GN8=JwXrEPn*F!;zngQ7 zOc`IVZp~lybmd92xcRiSZqNHQAMefQm3(#P+|j&SD^0VxRVDwfR)V|xOjv8d{k<)R zPn+o%XEq=0Evt;?-O9kViWGf+O1w8(iQSoRtF^Y)(rcr4YJTc}{c85q&)QX4)p~!A zeYmeB^}imhe%_pW4=e8)p+lY&-JRXHYQ8`5)!r!G+51#|&FR*~l>?1k`fHA+-JP|d zK6E8niT9@TMzl5Yuqqu!x%idaHzs$0X{{{e30=n_pl5(mwf*_3fAU|Nry& zufF*1@%H~#t)tzq*Y=LJA1uXYL9@TrV~y8?+3TOay4tndh1zoud-j^8YrUw9W^ZfM z)lqL3do=NHZg0)?d`h{s?}F{Qoj9tg`y07+tux75b8gRQRr8w@`S$i=dw+iJ{$?Lv z^|yW=PAbjkwXU{ST%9q$Kf8VLMZerW-rk!Qbq+W_yXji5)*4nBwIZ1{6I#=6O}?z? zcc<=8wy#Yo_a?f1{Mf4!%E7K`EGJvdd*A+eYj6MaIcvS#KAPG;ns@gnu9Hx0=robz z>A8xjEuAC!xxVY&8@uOI>wDXWbG@8?JenHTKE6&Qon89LZS}u0F20&C`DORc_Q725 z&HIOQUwu6@tvEI0DKOr;`l3 za?S9@SUvtt?mU??p3En=XT)3o+I<>{`rb&cvu1fv@A~W7UjJ(Un^RKj(AB+$*4*pU zjvP-;?Zs!e&VdKfMzHbE|Jl5|J#{uhwXIdEzd8?<3+secWV&laQmTZNCh zcI}~Qbuv4#N1fdJvd+7ytlebo{OxYZ=G`8$cE&ziB{Tw+b7HT3sb-l?{cC(q@A-0a zk6q<8-d&Y(=*i*!$~yh3%u3Fwd^n!psJzN=W~`hj%k#cCuVq`UI5vN+6GtVi{j!r+<8gW78`E~h%hRq_nltlV zdvR^8btiZK!}+9I%hgJ#4YmE;z_~jnTgKu!px<1%=XvXyxy%{zJ0KjuM>IYXL4zB?wwhu&QAN!&8KS}y)|*2CNAye zv=8@5&jICArL6NwJuBy~@0KgNee2PD+AhEL>*8A-YgapSeOU%Y^zDURJG>k~!eCWYy!&;5jDQ2y4YrZ$b+sWVE1l)m9GFhUR+_okm&*uI%;J&gT2| ziEfluJw28699_Pw5_%GOyyt6W)aNp`wXJ<&trM+Who`v1|68=y=U$tij`xcZZ{9qf zHnfM7F-!Z@w77n(XQtN5Y}T__{|C@o{_d3U?v(K6T#qKYeQ@oQ>)h1J+3MK6t@Hi= zNB!s-uG8~7Q~!(UMc1>@uI4qnPR#F~Ve4(X-t+l+Fj0+8PfhI`ogcg2p6ku&L-VXz zQ*60ghLs7|=k9u03)Yj@gW1Wd{oOsj^IvDU=2`z2)oG%W-ZJmm@!ovfRSOe{NBX(KZi#n&Rc{CBv_Q;ewHTJ~u z;a>kYw;ycZn>M_dcJ;q<&Bb!A_)aT5Yd@X#y)$KGUCSHw&h0O!l#eF%8}mNDhjV|c zma&uP3Lk?PJ(D_CIs&!?nHEHxF-3|KFMxBwozR{rYHPs`t~0`ubkN zC-Yq`FMh2Zow#~Z=t-ma52n2-wn~3}`@^}uH9wV58~UdC^SiPC|6~1s4gDfOfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+0D-?>fnTqG+v~^v;`o34r+@jy zum0CpwqI?xw>#U-?do=RJGGtLE^pVi>)Vy>(tL7d-rtzt*XH|M+x@v7Y!BzUH`n#~ z{O11o?fLG;#GRS=GgHEa?Pxo{Ul*r@E5C`qyGK8mQtnNS*QeB5^ZV|+R^R!FJ+qyj z_;d6A;{2SOaw_54T-WzI?@bB!_jk4U#>76DvTEyvx%ioVi*TuQ&=dC^R#@^G_@7ohw^!>fYYOntK zePJTHF7IX3gW^-VzW4g-wEWKeeRm}5!Rl-Mt?uj+zdrHx;Nq(u)Qdh}qtckwgL~Vf zJ-+)cP0ZE3)t9G+n^SK+$fDmDUOB8%ieJ%>=Z;!XJ5#B+o%f36qPs%21L5A&xoYRRo> z|7ydXY3I|ay&9j)&-01>aC^CZFrVF?d)BoadTp+Ct&u5@@4c$?>Ga~AsrSR}qltcZ z$~r_%{uIE#3arLsiZNzWP-CvF`dmHPw=l+k! z;GKzmXZrotTo32Y;v1o2iod?U>wUdy{8D@}@%6d*x2M%>eYyS0srY(Zbmi5O`d*oR z_h4`J@_Kvv@Mu11HK^T<`^w)Hv*zE;DXUy-=04i(UXIwy-L4+In3hyd^iOmC;y$KjVk=kqyLO+uv+lpK{mrkh|NU;o|6gkR^8WvexBlvji{EMgKkVac zhi@%z)m`i6T60@HkG2!DLpA?eIm^*C!@954V&!%tvDVwQ2d9nI^T6S?;B^84|WQl8ZAwf3*G%+VhI z#&&Faa@g6{T6p7Cbn~iNS^gKlW^HRvf1RH!Ik~+)S2Lly4|`;-??lwesQJ-e)cUd3 z{#LAhE>84`$+Op|1?}@^=da6q`-?A^AI+6(WtE-f@cP~B<>~veiGFSS{rP=-f7fWV zLbjr`B0QegN@!;FS!2>l)yjHp+J9{7e{CYay8XeF^2Tmi{9zw&MQBZaKCi71t~-YV?$s{RZu(-@f@gE}+DO-X)An}tP9fFY?$fIH&a6kR zM(rsp*UFX)6M16lt^PN*-y4C~r<@C8xc2dPC-UvR-WA=NRu9%bcy(sPsaF~B#?<}Q z>B)(SzP1}bnb>xZR>BWv4gY9X(hnxS-Q>>Pv+_8(GO%$tzMmGaOwZDJJommoE$;mA z@m!Vg{fa*8flTUFhY$CRf7a$)a@)Ok1q#1(X6@9j?)}o>&lsZ49eu=dmmQ)tJanM?aO6hXR>!E2U=0q3Aa=7xvBT{ zDdV;IIXMD1=H91c^lWNdIov$#T-a6o<9(jBj`dX1I$G_A_^Wew`}mV7;m!GZx?jzM zPDPbn{}1Qcp3PbbR{Ys%&*k~Pb+>h5tpKf}>ty|GFMF+L`CXs(_Kej^P!^n-7Bzp@ zKE774&IXSreqF6*&48W`@>|b_t>v#xDb;^A`0~FtRymhDOT35S!0_yo;&F4#_cyd1JM3Kku-v0m3{?%W9@jouK z|F1o`RVv-a=<--Tne1y$cDj9k^6)S}THijLmF63>-h47M{?mzA`*<1JN_RA)dS}MJ zHSN7U{)1QZx_Q<*@yW!0ZDPN^pPJV`xMpY1qCKhJnOtlRt(BqYqOMNa)%)olTN_$u z56>5^@#~qtvt}pc!&6b~*+*0BH@45_q}$bLy*9LNG`BNY@jYp_r&fQnx;EG9uWjF) z=+Cxq&Gm=#zBbg852n_24(U1h@|4nf>d{2D9*@IEw7ecRejn{E|JJL> z@6PW^`u<$24Ij^Fb#}Wsb?4rEd3$>Ht?6Uq+x5-4_j}Xg&*rtr?`=Pr*V^#SDgDA| z-Jd=*LvQUp|7dE@X~lkX@B1HZT|eA@y!~i?|7gEz!?$Plb)LF3Ex0+gKc7~AJf-%{ zw|-OSkG7v~zu5kG`+RknIr{CRcE&5NlUrzKd zw?Etd`CNao$A3P5ADgV{|1Q=F`1YQ$pG@ub@{jiZ{&?>C(~0}l{Qi^e&$oZM{fq5q zQ}++1_MgxA)$etRX$M%(QyJIaTKJQR`m?=++Fe<{*lX{OKYo>O4=3Z^-e=hdyZ5*E z-u-Cee>A=R*_80hssCqFR^@%Z*WMWX@Kx(O>Gd4{;ht-s&Ddo8-_xoL^s-H$r`U8&hKhm=GFYibNzVlTjTiiS&MtVY!$vg`ek}~ z`khz(|D&m?9{h6J{`uab$|!%*`RVkleY_m*x%{0O`%h=w5Alsaqx_?ZuGX$f`N4ku za6bE!8NcHb-~Z4(*faN#uiu}ze!6PIPhYvM4E+B7S^a7sum1L-H^;9Qd^VBQTm6;t zoymru?fR8g2KRma|LN?7on`uejp}cu`R0CqBmd)9vEBXCX>Fs|n66$`!%yZkaAF^W zbrN0wm+;-GZ_SY(>~o;H%7P45-v4m!_-x+)Wa>ZjYUOCvezDK^vVUbxEoj#MVB(tv zs|962^P~FPNn81Qk}3yVt-dimsOLYKtD4H@+VIo8{?AA4$MbjP{%~4f{pCj|b*~xsb9yr1cVqwmzr63%a{vGU literal 0 HcmV?d00001 diff --git a/simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain/S36E149.DAT b/simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain/S36E149.DAT new file mode 100644 index 0000000000000000000000000000000000000000..48eef0cdfc340d3cd8df4b1fbf31433577d9b225 GIT binary patch literal 2103296 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 uqw`wPhIl3eGdl|D2#O;~9KA7v> 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 literal 0 HcmV?d00001 diff --git a/simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/test.gdb b/simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/test.gdb new file mode 100644 index 000000000..03291d094 --- /dev/null +++ b/simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/test.gdb @@ -0,0 +1,12 @@ +set environment LD_PRELOAD /extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/inject.so + +b _ZN7HALSITL9Scheduler10stop_clockEm +catch signal SIGSEGV + +commands 1 + #info registers rsi + call (void)injected_function($rsi) + continue + +commands 2 + bt \ No newline at end of file From f58746ca2951146f7df9846142d9748d85b6782a Mon Sep 17 00:00:00 2001 From: Robbi Exley Date: Tue, 30 Jul 2024 16:05:53 -0400 Subject: [PATCH 02/50] Local Planner --- install/.colcon_install_layout | 1 + install/COLCON_IGNORE | 0 install/_local_setup_util_ps1.py | 407 +++ install/_local_setup_util_sh.py | 407 +++ install/local_setup.bash | 121 + install/local_setup.ps1 | 55 + install/local_setup.sh | 137 + install/local_setup.zsh | 134 + install/setup.bash | 34 + install/setup.ps1 | 30 + install/setup.sh | 49 + install/setup.zsh | 34 + log/COLCON_IGNORE | 0 .../disparity_expansion/command.log | 4 + .../disparity_expansion/stderr.log | 8 + .../disparity_expansion/stdout.log | 140 + .../disparity_expansion/stdout_stderr.log | 148 + .../disparity_expansion/streams.log | 152 + log/build_2024-07-25_13-05-11/events.log | 218 ++ log/build_2024-07-25_13-05-11/logger_all.log | 2597 +++++++++++++++++ .../disparity_expansion/command.log | 2 + .../disparity_expansion/stderr.log | 20 + .../disparity_expansion/stdout.log | 31 + .../disparity_expansion/stdout_stderr.log | 51 + .../disparity_expansion/streams.log | 53 + log/build_2024-07-25_13-07-04/events.log | 103 + log/build_2024-07-25_13-07-04/logger_all.log | 2595 ++++++++++++++++ .../disparity_expansion/command.log | 2 + .../disparity_expansion/stderr.log | 8 + .../disparity_expansion/stdout.log | 1 + .../disparity_expansion/stdout_stderr.log | 9 + .../disparity_expansion/streams.log | 11 + log/build_2024-07-25_13-14-27/events.log | 37 + log/build_2024-07-25_13-14-27/logger_all.log | 2595 ++++++++++++++++ log/latest | 1 + log/latest_build | 1 + ros_ws/src/perception_pcl | 1 + .../local/disparity_expansion/CMakeLists.txt | 106 +- .../local/disparity_expansion/COLCON_IGNORE | 1 - .../local/disparity_expansion/package.xml | 35 +- .../src/disparity_conv.cpp | 346 ++- .../src/disparity_expansion.cpp | 277 +- .../disparity_expansion/src/disparity_pcd.cpp | 161 +- .../include/disparity_graph/disparity_graph.h | 88 +- .../src/disparity_graph.cpp | 165 +- simulation/gaz_sim.py | 101 + 46 files changed, 11078 insertions(+), 399 deletions(-) create mode 100644 install/.colcon_install_layout create mode 100644 install/COLCON_IGNORE create mode 100644 install/_local_setup_util_ps1.py create mode 100644 install/_local_setup_util_sh.py create mode 100644 install/local_setup.bash create mode 100644 install/local_setup.ps1 create mode 100644 install/local_setup.sh create mode 100644 install/local_setup.zsh create mode 100644 install/setup.bash create mode 100644 install/setup.ps1 create mode 100644 install/setup.sh create mode 100644 install/setup.zsh create mode 100644 log/COLCON_IGNORE create mode 100644 log/build_2024-07-25_13-05-11/disparity_expansion/command.log create mode 100644 log/build_2024-07-25_13-05-11/disparity_expansion/stderr.log create mode 100644 log/build_2024-07-25_13-05-11/disparity_expansion/stdout.log create mode 100644 log/build_2024-07-25_13-05-11/disparity_expansion/stdout_stderr.log create mode 100644 log/build_2024-07-25_13-05-11/disparity_expansion/streams.log create mode 100644 log/build_2024-07-25_13-05-11/events.log create mode 100644 log/build_2024-07-25_13-05-11/logger_all.log create mode 100644 log/build_2024-07-25_13-07-04/disparity_expansion/command.log create mode 100644 log/build_2024-07-25_13-07-04/disparity_expansion/stderr.log create mode 100644 log/build_2024-07-25_13-07-04/disparity_expansion/stdout.log create mode 100644 log/build_2024-07-25_13-07-04/disparity_expansion/stdout_stderr.log create mode 100644 log/build_2024-07-25_13-07-04/disparity_expansion/streams.log create mode 100644 log/build_2024-07-25_13-07-04/events.log create mode 100644 log/build_2024-07-25_13-07-04/logger_all.log create mode 100644 log/build_2024-07-25_13-14-27/disparity_expansion/command.log create mode 100644 log/build_2024-07-25_13-14-27/disparity_expansion/stderr.log create mode 100644 log/build_2024-07-25_13-14-27/disparity_expansion/stdout.log create mode 100644 log/build_2024-07-25_13-14-27/disparity_expansion/stdout_stderr.log create mode 100644 log/build_2024-07-25_13-14-27/disparity_expansion/streams.log create mode 100644 log/build_2024-07-25_13-14-27/events.log create mode 100644 log/build_2024-07-25_13-14-27/logger_all.log create mode 120000 log/latest create mode 120000 log/latest_build create mode 160000 ros_ws/src/perception_pcl delete mode 100644 ros_ws/src/robot/autonomy/planning/local/disparity_expansion/COLCON_IGNORE create mode 100644 simulation/gaz_sim.py diff --git a/install/.colcon_install_layout b/install/.colcon_install_layout new file mode 100644 index 000000000..3aad5336a --- /dev/null +++ b/install/.colcon_install_layout @@ -0,0 +1 @@ +isolated diff --git a/install/COLCON_IGNORE b/install/COLCON_IGNORE new file mode 100644 index 000000000..e69de29bb diff --git a/install/_local_setup_util_ps1.py b/install/_local_setup_util_ps1.py new file mode 100644 index 000000000..3c6d9e877 --- /dev/null +++ b/install/_local_setup_util_ps1.py @@ -0,0 +1,407 @@ +# Copyright 2016-2019 Dirk Thomas +# Licensed under the Apache License, Version 2.0 + +import argparse +from collections import OrderedDict +import os +from pathlib import Path +import sys + + +FORMAT_STR_COMMENT_LINE = '# {comment}' +FORMAT_STR_SET_ENV_VAR = 'Set-Item -Path "Env:{name}" -Value "{value}"' +FORMAT_STR_USE_ENV_VAR = '$env:{name}' +FORMAT_STR_INVOKE_SCRIPT = '_colcon_prefix_powershell_source_script "{script_path}"' # noqa: E501 +FORMAT_STR_REMOVE_LEADING_SEPARATOR = '' # noqa: E501 +FORMAT_STR_REMOVE_TRAILING_SEPARATOR = '' # noqa: E501 + +DSV_TYPE_APPEND_NON_DUPLICATE = 'append-non-duplicate' +DSV_TYPE_PREPEND_NON_DUPLICATE = 'prepend-non-duplicate' +DSV_TYPE_PREPEND_NON_DUPLICATE_IF_EXISTS = 'prepend-non-duplicate-if-exists' +DSV_TYPE_SET = 'set' +DSV_TYPE_SET_IF_UNSET = 'set-if-unset' +DSV_TYPE_SOURCE = 'source' + + +def main(argv=sys.argv[1:]): # noqa: D103 + parser = argparse.ArgumentParser( + description='Output shell commands for the packages in topological ' + 'order') + parser.add_argument( + 'primary_extension', + help='The file extension of the primary shell') + parser.add_argument( + 'additional_extension', nargs='?', + help='The additional file extension to be considered') + parser.add_argument( + '--merged-install', action='store_true', + help='All install prefixes are merged into a single location') + args = parser.parse_args(argv) + + packages = get_packages(Path(__file__).parent, args.merged_install) + + ordered_packages = order_packages(packages) + for pkg_name in ordered_packages: + if _include_comments(): + print( + FORMAT_STR_COMMENT_LINE.format_map( + {'comment': 'Package: ' + pkg_name})) + prefix = os.path.abspath(os.path.dirname(__file__)) + if not args.merged_install: + prefix = os.path.join(prefix, pkg_name) + for line in get_commands( + pkg_name, prefix, args.primary_extension, + args.additional_extension + ): + print(line) + + for line in _remove_ending_separators(): + print(line) + + +def get_packages(prefix_path, merged_install): + """ + Find packages based on colcon-specific files created during installation. + + :param Path prefix_path: The install prefix path of all packages + :param bool merged_install: The flag if the packages are all installed + directly in the prefix or if each package is installed in a subdirectory + named after the package + :returns: A mapping from the package name to the set of runtime + dependencies + :rtype: dict + """ + packages = {} + # since importing colcon_core isn't feasible here the following constant + # must match colcon_core.location.get_relative_package_index_path() + subdirectory = 'share/colcon-core/packages' + if merged_install: + # return if workspace is empty + if not (prefix_path / subdirectory).is_dir(): + return packages + # find all files in the subdirectory + for p in (prefix_path / subdirectory).iterdir(): + if not p.is_file(): + continue + if p.name.startswith('.'): + continue + add_package_runtime_dependencies(p, packages) + else: + # for each subdirectory look for the package specific file + for p in prefix_path.iterdir(): + if not p.is_dir(): + continue + if p.name.startswith('.'): + continue + p = p / subdirectory / p.name + if p.is_file(): + add_package_runtime_dependencies(p, packages) + + # remove unknown dependencies + pkg_names = set(packages.keys()) + for k in packages.keys(): + packages[k] = {d for d in packages[k] if d in pkg_names} + + return packages + + +def add_package_runtime_dependencies(path, packages): + """ + Check the path and if it exists extract the packages runtime dependencies. + + :param Path path: The resource file containing the runtime dependencies + :param dict packages: A mapping from package names to the sets of runtime + dependencies to add to + """ + content = path.read_text() + dependencies = set(content.split(os.pathsep) if content else []) + packages[path.name] = dependencies + + +def order_packages(packages): + """ + Order packages topologically. + + :param dict packages: A mapping from package name to the set of runtime + dependencies + :returns: The package names + :rtype: list + """ + # select packages with no dependencies in alphabetical order + to_be_ordered = list(packages.keys()) + ordered = [] + while to_be_ordered: + pkg_names_without_deps = [ + name for name in to_be_ordered if not packages[name]] + if not pkg_names_without_deps: + reduce_cycle_set(packages) + raise RuntimeError( + 'Circular dependency between: ' + ', '.join(sorted(packages))) + pkg_names_without_deps.sort() + pkg_name = pkg_names_without_deps[0] + to_be_ordered.remove(pkg_name) + ordered.append(pkg_name) + # remove item from dependency lists + for k in list(packages.keys()): + if pkg_name in packages[k]: + packages[k].remove(pkg_name) + return ordered + + +def reduce_cycle_set(packages): + """ + Reduce the set of packages to the ones part of the circular dependency. + + :param dict packages: A mapping from package name to the set of runtime + dependencies which is modified in place + """ + last_depended = None + while len(packages) > 0: + # get all remaining dependencies + depended = set() + for pkg_name, dependencies in packages.items(): + depended = depended.union(dependencies) + # remove all packages which are not dependent on + for name in list(packages.keys()): + if name not in depended: + del packages[name] + if last_depended: + # if remaining packages haven't changed return them + if last_depended == depended: + return packages.keys() + # otherwise reduce again + last_depended = depended + + +def _include_comments(): + # skipping comment lines when COLCON_TRACE is not set speeds up the + # processing especially on Windows + return bool(os.environ.get('COLCON_TRACE')) + + +def get_commands(pkg_name, prefix, primary_extension, additional_extension): + commands = [] + package_dsv_path = os.path.join(prefix, 'share', pkg_name, 'package.dsv') + if os.path.exists(package_dsv_path): + commands += process_dsv_file( + package_dsv_path, prefix, primary_extension, additional_extension) + return commands + + +def process_dsv_file( + dsv_path, prefix, primary_extension=None, additional_extension=None +): + commands = [] + if _include_comments(): + commands.append(FORMAT_STR_COMMENT_LINE.format_map({'comment': dsv_path})) + with open(dsv_path, 'r') as h: + content = h.read() + lines = content.splitlines() + + basenames = OrderedDict() + for i, line in enumerate(lines): + # skip over empty or whitespace-only lines + if not line.strip(): + continue + # skip over comments + if line.startswith('#'): + continue + try: + type_, remainder = line.split(';', 1) + except ValueError: + raise RuntimeError( + "Line %d in '%s' doesn't contain a semicolon separating the " + 'type from the arguments' % (i + 1, dsv_path)) + if type_ != DSV_TYPE_SOURCE: + # handle non-source lines + try: + commands += handle_dsv_types_except_source( + type_, remainder, prefix) + except RuntimeError as e: + raise RuntimeError( + "Line %d in '%s' %s" % (i + 1, dsv_path, e)) from e + else: + # group remaining source lines by basename + path_without_ext, ext = os.path.splitext(remainder) + if path_without_ext not in basenames: + basenames[path_without_ext] = set() + assert ext.startswith('.') + ext = ext[1:] + if ext in (primary_extension, additional_extension): + basenames[path_without_ext].add(ext) + + # add the dsv extension to each basename if the file exists + for basename, extensions in basenames.items(): + if not os.path.isabs(basename): + basename = os.path.join(prefix, basename) + if os.path.exists(basename + '.dsv'): + extensions.add('dsv') + + for basename, extensions in basenames.items(): + if not os.path.isabs(basename): + basename = os.path.join(prefix, basename) + if 'dsv' in extensions: + # process dsv files recursively + commands += process_dsv_file( + basename + '.dsv', prefix, primary_extension=primary_extension, + additional_extension=additional_extension) + elif primary_extension in extensions and len(extensions) == 1: + # source primary-only files + commands += [ + FORMAT_STR_INVOKE_SCRIPT.format_map({ + 'prefix': prefix, + 'script_path': basename + '.' + primary_extension})] + elif additional_extension in extensions: + # source non-primary files + commands += [ + FORMAT_STR_INVOKE_SCRIPT.format_map({ + 'prefix': prefix, + 'script_path': basename + '.' + additional_extension})] + + return commands + + +def handle_dsv_types_except_source(type_, remainder, prefix): + commands = [] + if type_ in (DSV_TYPE_SET, DSV_TYPE_SET_IF_UNSET): + try: + env_name, value = remainder.split(';', 1) + except ValueError: + raise RuntimeError( + "doesn't contain a semicolon separating the environment name " + 'from the value') + try_prefixed_value = os.path.join(prefix, value) if value else prefix + if os.path.exists(try_prefixed_value): + value = try_prefixed_value + if type_ == DSV_TYPE_SET: + commands += _set(env_name, value) + elif type_ == DSV_TYPE_SET_IF_UNSET: + commands += _set_if_unset(env_name, value) + else: + assert False + elif type_ in ( + DSV_TYPE_APPEND_NON_DUPLICATE, + DSV_TYPE_PREPEND_NON_DUPLICATE, + DSV_TYPE_PREPEND_NON_DUPLICATE_IF_EXISTS + ): + try: + env_name_and_values = remainder.split(';') + except ValueError: + raise RuntimeError( + "doesn't contain a semicolon separating the environment name " + 'from the values') + env_name = env_name_and_values[0] + values = env_name_and_values[1:] + for value in values: + if not value: + value = prefix + elif not os.path.isabs(value): + value = os.path.join(prefix, value) + if ( + type_ == DSV_TYPE_PREPEND_NON_DUPLICATE_IF_EXISTS and + not os.path.exists(value) + ): + comment = f'skip extending {env_name} with not existing ' \ + f'path: {value}' + if _include_comments(): + commands.append( + FORMAT_STR_COMMENT_LINE.format_map({'comment': comment})) + elif type_ == DSV_TYPE_APPEND_NON_DUPLICATE: + commands += _append_unique_value(env_name, value) + else: + commands += _prepend_unique_value(env_name, value) + else: + raise RuntimeError( + 'contains an unknown environment hook type: ' + type_) + return commands + + +env_state = {} + + +def _append_unique_value(name, value): + global env_state + if name not in env_state: + if os.environ.get(name): + env_state[name] = set(os.environ[name].split(os.pathsep)) + else: + env_state[name] = set() + # append even if the variable has not been set yet, in case a shell script sets the + # same variable without the knowledge of this Python script. + # later _remove_ending_separators() will cleanup any unintentional leading separator + extend = FORMAT_STR_USE_ENV_VAR.format_map({'name': name}) + os.pathsep + line = FORMAT_STR_SET_ENV_VAR.format_map( + {'name': name, 'value': extend + value}) + if value not in env_state[name]: + env_state[name].add(value) + else: + if not _include_comments(): + return [] + line = FORMAT_STR_COMMENT_LINE.format_map({'comment': line}) + return [line] + + +def _prepend_unique_value(name, value): + global env_state + if name not in env_state: + if os.environ.get(name): + env_state[name] = set(os.environ[name].split(os.pathsep)) + else: + env_state[name] = set() + # prepend even if the variable has not been set yet, in case a shell script sets the + # same variable without the knowledge of this Python script. + # later _remove_ending_separators() will cleanup any unintentional trailing separator + extend = os.pathsep + FORMAT_STR_USE_ENV_VAR.format_map({'name': name}) + line = FORMAT_STR_SET_ENV_VAR.format_map( + {'name': name, 'value': value + extend}) + if value not in env_state[name]: + env_state[name].add(value) + else: + if not _include_comments(): + return [] + line = FORMAT_STR_COMMENT_LINE.format_map({'comment': line}) + return [line] + + +# generate commands for removing prepended underscores +def _remove_ending_separators(): + # do nothing if the shell extension does not implement the logic + if FORMAT_STR_REMOVE_TRAILING_SEPARATOR is None: + return [] + + global env_state + commands = [] + for name in env_state: + # skip variables that already had values before this script started prepending + if name in os.environ: + continue + commands += [ + FORMAT_STR_REMOVE_LEADING_SEPARATOR.format_map({'name': name}), + FORMAT_STR_REMOVE_TRAILING_SEPARATOR.format_map({'name': name})] + return commands + + +def _set(name, value): + global env_state + env_state[name] = value + line = FORMAT_STR_SET_ENV_VAR.format_map( + {'name': name, 'value': value}) + return [line] + + +def _set_if_unset(name, value): + global env_state + line = FORMAT_STR_SET_ENV_VAR.format_map( + {'name': name, 'value': value}) + if env_state.get(name, os.environ.get(name)): + line = FORMAT_STR_COMMENT_LINE.format_map({'comment': line}) + return [line] + + +if __name__ == '__main__': # pragma: no cover + try: + rc = main() + except RuntimeError as e: + print(str(e), file=sys.stderr) + rc = 1 + sys.exit(rc) diff --git a/install/_local_setup_util_sh.py b/install/_local_setup_util_sh.py new file mode 100644 index 000000000..f67eaa989 --- /dev/null +++ b/install/_local_setup_util_sh.py @@ -0,0 +1,407 @@ +# Copyright 2016-2019 Dirk Thomas +# Licensed under the Apache License, Version 2.0 + +import argparse +from collections import OrderedDict +import os +from pathlib import Path +import sys + + +FORMAT_STR_COMMENT_LINE = '# {comment}' +FORMAT_STR_SET_ENV_VAR = 'export {name}="{value}"' +FORMAT_STR_USE_ENV_VAR = '${name}' +FORMAT_STR_INVOKE_SCRIPT = 'COLCON_CURRENT_PREFIX="{prefix}" _colcon_prefix_sh_source_script "{script_path}"' # noqa: E501 +FORMAT_STR_REMOVE_LEADING_SEPARATOR = 'if [ "$(echo -n ${name} | head -c 1)" = ":" ]; then export {name}=${{{name}#?}} ; fi' # noqa: E501 +FORMAT_STR_REMOVE_TRAILING_SEPARATOR = 'if [ "$(echo -n ${name} | tail -c 1)" = ":" ]; then export {name}=${{{name}%?}} ; fi' # noqa: E501 + +DSV_TYPE_APPEND_NON_DUPLICATE = 'append-non-duplicate' +DSV_TYPE_PREPEND_NON_DUPLICATE = 'prepend-non-duplicate' +DSV_TYPE_PREPEND_NON_DUPLICATE_IF_EXISTS = 'prepend-non-duplicate-if-exists' +DSV_TYPE_SET = 'set' +DSV_TYPE_SET_IF_UNSET = 'set-if-unset' +DSV_TYPE_SOURCE = 'source' + + +def main(argv=sys.argv[1:]): # noqa: D103 + parser = argparse.ArgumentParser( + description='Output shell commands for the packages in topological ' + 'order') + parser.add_argument( + 'primary_extension', + help='The file extension of the primary shell') + parser.add_argument( + 'additional_extension', nargs='?', + help='The additional file extension to be considered') + parser.add_argument( + '--merged-install', action='store_true', + help='All install prefixes are merged into a single location') + args = parser.parse_args(argv) + + packages = get_packages(Path(__file__).parent, args.merged_install) + + ordered_packages = order_packages(packages) + for pkg_name in ordered_packages: + if _include_comments(): + print( + FORMAT_STR_COMMENT_LINE.format_map( + {'comment': 'Package: ' + pkg_name})) + prefix = os.path.abspath(os.path.dirname(__file__)) + if not args.merged_install: + prefix = os.path.join(prefix, pkg_name) + for line in get_commands( + pkg_name, prefix, args.primary_extension, + args.additional_extension + ): + print(line) + + for line in _remove_ending_separators(): + print(line) + + +def get_packages(prefix_path, merged_install): + """ + Find packages based on colcon-specific files created during installation. + + :param Path prefix_path: The install prefix path of all packages + :param bool merged_install: The flag if the packages are all installed + directly in the prefix or if each package is installed in a subdirectory + named after the package + :returns: A mapping from the package name to the set of runtime + dependencies + :rtype: dict + """ + packages = {} + # since importing colcon_core isn't feasible here the following constant + # must match colcon_core.location.get_relative_package_index_path() + subdirectory = 'share/colcon-core/packages' + if merged_install: + # return if workspace is empty + if not (prefix_path / subdirectory).is_dir(): + return packages + # find all files in the subdirectory + for p in (prefix_path / subdirectory).iterdir(): + if not p.is_file(): + continue + if p.name.startswith('.'): + continue + add_package_runtime_dependencies(p, packages) + else: + # for each subdirectory look for the package specific file + for p in prefix_path.iterdir(): + if not p.is_dir(): + continue + if p.name.startswith('.'): + continue + p = p / subdirectory / p.name + if p.is_file(): + add_package_runtime_dependencies(p, packages) + + # remove unknown dependencies + pkg_names = set(packages.keys()) + for k in packages.keys(): + packages[k] = {d for d in packages[k] if d in pkg_names} + + return packages + + +def add_package_runtime_dependencies(path, packages): + """ + Check the path and if it exists extract the packages runtime dependencies. + + :param Path path: The resource file containing the runtime dependencies + :param dict packages: A mapping from package names to the sets of runtime + dependencies to add to + """ + content = path.read_text() + dependencies = set(content.split(os.pathsep) if content else []) + packages[path.name] = dependencies + + +def order_packages(packages): + """ + Order packages topologically. + + :param dict packages: A mapping from package name to the set of runtime + dependencies + :returns: The package names + :rtype: list + """ + # select packages with no dependencies in alphabetical order + to_be_ordered = list(packages.keys()) + ordered = [] + while to_be_ordered: + pkg_names_without_deps = [ + name for name in to_be_ordered if not packages[name]] + if not pkg_names_without_deps: + reduce_cycle_set(packages) + raise RuntimeError( + 'Circular dependency between: ' + ', '.join(sorted(packages))) + pkg_names_without_deps.sort() + pkg_name = pkg_names_without_deps[0] + to_be_ordered.remove(pkg_name) + ordered.append(pkg_name) + # remove item from dependency lists + for k in list(packages.keys()): + if pkg_name in packages[k]: + packages[k].remove(pkg_name) + return ordered + + +def reduce_cycle_set(packages): + """ + Reduce the set of packages to the ones part of the circular dependency. + + :param dict packages: A mapping from package name to the set of runtime + dependencies which is modified in place + """ + last_depended = None + while len(packages) > 0: + # get all remaining dependencies + depended = set() + for pkg_name, dependencies in packages.items(): + depended = depended.union(dependencies) + # remove all packages which are not dependent on + for name in list(packages.keys()): + if name not in depended: + del packages[name] + if last_depended: + # if remaining packages haven't changed return them + if last_depended == depended: + return packages.keys() + # otherwise reduce again + last_depended = depended + + +def _include_comments(): + # skipping comment lines when COLCON_TRACE is not set speeds up the + # processing especially on Windows + return bool(os.environ.get('COLCON_TRACE')) + + +def get_commands(pkg_name, prefix, primary_extension, additional_extension): + commands = [] + package_dsv_path = os.path.join(prefix, 'share', pkg_name, 'package.dsv') + if os.path.exists(package_dsv_path): + commands += process_dsv_file( + package_dsv_path, prefix, primary_extension, additional_extension) + return commands + + +def process_dsv_file( + dsv_path, prefix, primary_extension=None, additional_extension=None +): + commands = [] + if _include_comments(): + commands.append(FORMAT_STR_COMMENT_LINE.format_map({'comment': dsv_path})) + with open(dsv_path, 'r') as h: + content = h.read() + lines = content.splitlines() + + basenames = OrderedDict() + for i, line in enumerate(lines): + # skip over empty or whitespace-only lines + if not line.strip(): + continue + # skip over comments + if line.startswith('#'): + continue + try: + type_, remainder = line.split(';', 1) + except ValueError: + raise RuntimeError( + "Line %d in '%s' doesn't contain a semicolon separating the " + 'type from the arguments' % (i + 1, dsv_path)) + if type_ != DSV_TYPE_SOURCE: + # handle non-source lines + try: + commands += handle_dsv_types_except_source( + type_, remainder, prefix) + except RuntimeError as e: + raise RuntimeError( + "Line %d in '%s' %s" % (i + 1, dsv_path, e)) from e + else: + # group remaining source lines by basename + path_without_ext, ext = os.path.splitext(remainder) + if path_without_ext not in basenames: + basenames[path_without_ext] = set() + assert ext.startswith('.') + ext = ext[1:] + if ext in (primary_extension, additional_extension): + basenames[path_without_ext].add(ext) + + # add the dsv extension to each basename if the file exists + for basename, extensions in basenames.items(): + if not os.path.isabs(basename): + basename = os.path.join(prefix, basename) + if os.path.exists(basename + '.dsv'): + extensions.add('dsv') + + for basename, extensions in basenames.items(): + if not os.path.isabs(basename): + basename = os.path.join(prefix, basename) + if 'dsv' in extensions: + # process dsv files recursively + commands += process_dsv_file( + basename + '.dsv', prefix, primary_extension=primary_extension, + additional_extension=additional_extension) + elif primary_extension in extensions and len(extensions) == 1: + # source primary-only files + commands += [ + FORMAT_STR_INVOKE_SCRIPT.format_map({ + 'prefix': prefix, + 'script_path': basename + '.' + primary_extension})] + elif additional_extension in extensions: + # source non-primary files + commands += [ + FORMAT_STR_INVOKE_SCRIPT.format_map({ + 'prefix': prefix, + 'script_path': basename + '.' + additional_extension})] + + return commands + + +def handle_dsv_types_except_source(type_, remainder, prefix): + commands = [] + if type_ in (DSV_TYPE_SET, DSV_TYPE_SET_IF_UNSET): + try: + env_name, value = remainder.split(';', 1) + except ValueError: + raise RuntimeError( + "doesn't contain a semicolon separating the environment name " + 'from the value') + try_prefixed_value = os.path.join(prefix, value) if value else prefix + if os.path.exists(try_prefixed_value): + value = try_prefixed_value + if type_ == DSV_TYPE_SET: + commands += _set(env_name, value) + elif type_ == DSV_TYPE_SET_IF_UNSET: + commands += _set_if_unset(env_name, value) + else: + assert False + elif type_ in ( + DSV_TYPE_APPEND_NON_DUPLICATE, + DSV_TYPE_PREPEND_NON_DUPLICATE, + DSV_TYPE_PREPEND_NON_DUPLICATE_IF_EXISTS + ): + try: + env_name_and_values = remainder.split(';') + except ValueError: + raise RuntimeError( + "doesn't contain a semicolon separating the environment name " + 'from the values') + env_name = env_name_and_values[0] + values = env_name_and_values[1:] + for value in values: + if not value: + value = prefix + elif not os.path.isabs(value): + value = os.path.join(prefix, value) + if ( + type_ == DSV_TYPE_PREPEND_NON_DUPLICATE_IF_EXISTS and + not os.path.exists(value) + ): + comment = f'skip extending {env_name} with not existing ' \ + f'path: {value}' + if _include_comments(): + commands.append( + FORMAT_STR_COMMENT_LINE.format_map({'comment': comment})) + elif type_ == DSV_TYPE_APPEND_NON_DUPLICATE: + commands += _append_unique_value(env_name, value) + else: + commands += _prepend_unique_value(env_name, value) + else: + raise RuntimeError( + 'contains an unknown environment hook type: ' + type_) + return commands + + +env_state = {} + + +def _append_unique_value(name, value): + global env_state + if name not in env_state: + if os.environ.get(name): + env_state[name] = set(os.environ[name].split(os.pathsep)) + else: + env_state[name] = set() + # append even if the variable has not been set yet, in case a shell script sets the + # same variable without the knowledge of this Python script. + # later _remove_ending_separators() will cleanup any unintentional leading separator + extend = FORMAT_STR_USE_ENV_VAR.format_map({'name': name}) + os.pathsep + line = FORMAT_STR_SET_ENV_VAR.format_map( + {'name': name, 'value': extend + value}) + if value not in env_state[name]: + env_state[name].add(value) + else: + if not _include_comments(): + return [] + line = FORMAT_STR_COMMENT_LINE.format_map({'comment': line}) + return [line] + + +def _prepend_unique_value(name, value): + global env_state + if name not in env_state: + if os.environ.get(name): + env_state[name] = set(os.environ[name].split(os.pathsep)) + else: + env_state[name] = set() + # prepend even if the variable has not been set yet, in case a shell script sets the + # same variable without the knowledge of this Python script. + # later _remove_ending_separators() will cleanup any unintentional trailing separator + extend = os.pathsep + FORMAT_STR_USE_ENV_VAR.format_map({'name': name}) + line = FORMAT_STR_SET_ENV_VAR.format_map( + {'name': name, 'value': value + extend}) + if value not in env_state[name]: + env_state[name].add(value) + else: + if not _include_comments(): + return [] + line = FORMAT_STR_COMMENT_LINE.format_map({'comment': line}) + return [line] + + +# generate commands for removing prepended underscores +def _remove_ending_separators(): + # do nothing if the shell extension does not implement the logic + if FORMAT_STR_REMOVE_TRAILING_SEPARATOR is None: + return [] + + global env_state + commands = [] + for name in env_state: + # skip variables that already had values before this script started prepending + if name in os.environ: + continue + commands += [ + FORMAT_STR_REMOVE_LEADING_SEPARATOR.format_map({'name': name}), + FORMAT_STR_REMOVE_TRAILING_SEPARATOR.format_map({'name': name})] + return commands + + +def _set(name, value): + global env_state + env_state[name] = value + line = FORMAT_STR_SET_ENV_VAR.format_map( + {'name': name, 'value': value}) + return [line] + + +def _set_if_unset(name, value): + global env_state + line = FORMAT_STR_SET_ENV_VAR.format_map( + {'name': name, 'value': value}) + if env_state.get(name, os.environ.get(name)): + line = FORMAT_STR_COMMENT_LINE.format_map({'comment': line}) + return [line] + + +if __name__ == '__main__': # pragma: no cover + try: + rc = main() + except RuntimeError as e: + print(str(e), file=sys.stderr) + rc = 1 + sys.exit(rc) diff --git a/install/local_setup.bash b/install/local_setup.bash new file mode 100644 index 000000000..03f00256c --- /dev/null +++ b/install/local_setup.bash @@ -0,0 +1,121 @@ +# generated from colcon_bash/shell/template/prefix.bash.em + +# This script extends the environment with all packages contained in this +# prefix path. + +# a bash script is able to determine its own path if necessary +if [ -z "$COLCON_CURRENT_PREFIX" ]; then + _colcon_prefix_bash_COLCON_CURRENT_PREFIX="$(builtin cd "`dirname "${BASH_SOURCE[0]}"`" > /dev/null && pwd)" +else + _colcon_prefix_bash_COLCON_CURRENT_PREFIX="$COLCON_CURRENT_PREFIX" +fi + +# function to prepend a value to a variable +# which uses colons as separators +# duplicates as well as trailing separators are avoided +# first argument: the name of the result variable +# second argument: the value to be prepended +_colcon_prefix_bash_prepend_unique_value() { + # arguments + _listname="$1" + _value="$2" + + # get values from variable + eval _values=\"\$$_listname\" + # backup the field separator + _colcon_prefix_bash_prepend_unique_value_IFS="$IFS" + IFS=":" + # start with the new value + _all_values="$_value" + _contained_value="" + # iterate over existing values in the variable + for _item in $_values; do + # ignore empty strings + if [ -z "$_item" ]; then + continue + fi + # ignore duplicates of _value + if [ "$_item" = "$_value" ]; then + _contained_value=1 + continue + fi + # keep non-duplicate values + _all_values="$_all_values:$_item" + done + unset _item + if [ -z "$_contained_value" ]; then + if [ -n "$COLCON_TRACE" ]; then + if [ "$_all_values" = "$_value" ]; then + echo "export $_listname=$_value" + else + echo "export $_listname=$_value:\$$_listname" + fi + fi + fi + unset _contained_value + # restore the field separator + IFS="$_colcon_prefix_bash_prepend_unique_value_IFS" + unset _colcon_prefix_bash_prepend_unique_value_IFS + # export the updated variable + eval export $_listname=\"$_all_values\" + unset _all_values + unset _values + + unset _value + unset _listname +} + +# add this prefix to the COLCON_PREFIX_PATH +_colcon_prefix_bash_prepend_unique_value COLCON_PREFIX_PATH "$_colcon_prefix_bash_COLCON_CURRENT_PREFIX" +unset _colcon_prefix_bash_prepend_unique_value + +# check environment variable for custom Python executable +if [ -n "$COLCON_PYTHON_EXECUTABLE" ]; then + if [ ! -f "$COLCON_PYTHON_EXECUTABLE" ]; then + echo "error: COLCON_PYTHON_EXECUTABLE '$COLCON_PYTHON_EXECUTABLE' doesn't exist" + return 1 + fi + _colcon_python_executable="$COLCON_PYTHON_EXECUTABLE" +else + # try the Python executable known at configure time + _colcon_python_executable="/usr/bin/python3" + # if it doesn't exist try a fall back + if [ ! -f "$_colcon_python_executable" ]; then + if ! /usr/bin/env python3 --version > /dev/null 2> /dev/null; then + echo "error: unable to find python3 executable" + return 1 + fi + _colcon_python_executable=`/usr/bin/env python3 -c "import sys; print(sys.executable)"` + fi +fi + +# function to source another script with conditional trace output +# first argument: the path of the script +_colcon_prefix_sh_source_script() { + if [ -f "$1" ]; then + if [ -n "$COLCON_TRACE" ]; then + echo "# . \"$1\"" + fi + . "$1" + else + echo "not found: \"$1\"" 1>&2 + fi +} + +# get all commands in topological order +_colcon_ordered_commands="$($_colcon_python_executable "$_colcon_prefix_bash_COLCON_CURRENT_PREFIX/_local_setup_util_sh.py" sh bash)" +unset _colcon_python_executable +if [ -n "$COLCON_TRACE" ]; then + echo "$(declare -f _colcon_prefix_sh_source_script)" + echo "# Execute generated script:" + echo "# <<<" + echo "${_colcon_ordered_commands}" + echo "# >>>" + echo "unset _colcon_prefix_sh_source_script" +fi +eval "${_colcon_ordered_commands}" +unset _colcon_ordered_commands + +unset _colcon_prefix_sh_source_script + +unset _colcon_prefix_bash_COLCON_CURRENT_PREFIX diff --git a/install/local_setup.ps1 b/install/local_setup.ps1 new file mode 100644 index 000000000..6f68c8ded --- /dev/null +++ b/install/local_setup.ps1 @@ -0,0 +1,55 @@ +# generated from colcon_powershell/shell/template/prefix.ps1.em + +# This script extends the environment with all packages contained in this +# prefix path. + +# check environment variable for custom Python executable +if ($env:COLCON_PYTHON_EXECUTABLE) { + if (!(Test-Path "$env:COLCON_PYTHON_EXECUTABLE" -PathType Leaf)) { + echo "error: COLCON_PYTHON_EXECUTABLE '$env:COLCON_PYTHON_EXECUTABLE' doesn't exist" + exit 1 + } + $_colcon_python_executable="$env:COLCON_PYTHON_EXECUTABLE" +} else { + # use the Python executable known at configure time + $_colcon_python_executable="/usr/bin/python3" + # if it doesn't exist try a fall back + if (!(Test-Path "$_colcon_python_executable" -PathType Leaf)) { + if (!(Get-Command "python3" -ErrorAction SilentlyContinue)) { + echo "error: unable to find python3 executable" + exit 1 + } + $_colcon_python_executable="python3" + } +} + +# function to source another script with conditional trace output +# first argument: the path of the script +function _colcon_prefix_powershell_source_script { + param ( + $_colcon_prefix_powershell_source_script_param + ) + # source script with conditional trace output + if (Test-Path $_colcon_prefix_powershell_source_script_param) { + if ($env:COLCON_TRACE) { + echo ". '$_colcon_prefix_powershell_source_script_param'" + } + . "$_colcon_prefix_powershell_source_script_param" + } else { + Write-Error "not found: '$_colcon_prefix_powershell_source_script_param'" + } +} + +# get all commands in topological order +$_colcon_ordered_commands = & "$_colcon_python_executable" "$(Split-Path $PSCommandPath -Parent)/_local_setup_util_ps1.py" ps1 + +# execute all commands in topological order +if ($env:COLCON_TRACE) { + echo "Execute generated script:" + echo "<<<" + $_colcon_ordered_commands.Split([Environment]::NewLine, [StringSplitOptions]::RemoveEmptyEntries) | Write-Output + echo ">>>" +} +if ($_colcon_ordered_commands) { + $_colcon_ordered_commands.Split([Environment]::NewLine, [StringSplitOptions]::RemoveEmptyEntries) | Invoke-Expression +} diff --git a/install/local_setup.sh b/install/local_setup.sh new file mode 100644 index 000000000..0a1ae21e2 --- /dev/null +++ b/install/local_setup.sh @@ -0,0 +1,137 @@ +# generated from colcon_core/shell/template/prefix.sh.em + +# This script extends the environment with all packages contained in this +# prefix path. + +# since a plain shell script can't determine its own path when being sourced +# either use the provided COLCON_CURRENT_PREFIX +# or fall back to the build time prefix (if it exists) +_colcon_prefix_sh_COLCON_CURRENT_PREFIX="/root/AirStack/install" +if [ -z "$COLCON_CURRENT_PREFIX" ]; then + if [ ! -d "$_colcon_prefix_sh_COLCON_CURRENT_PREFIX" ]; then + echo "The build time path \"$_colcon_prefix_sh_COLCON_CURRENT_PREFIX\" doesn't exist. Either source a script for a different shell or set the environment variable \"COLCON_CURRENT_PREFIX\" explicitly." 1>&2 + unset _colcon_prefix_sh_COLCON_CURRENT_PREFIX + return 1 + fi +else + _colcon_prefix_sh_COLCON_CURRENT_PREFIX="$COLCON_CURRENT_PREFIX" +fi + +# function to prepend a value to a variable +# which uses colons as separators +# duplicates as well as trailing separators are avoided +# first argument: the name of the result variable +# second argument: the value to be prepended +_colcon_prefix_sh_prepend_unique_value() { + # arguments + _listname="$1" + _value="$2" + + # get values from variable + eval _values=\"\$$_listname\" + # backup the field separator + _colcon_prefix_sh_prepend_unique_value_IFS="$IFS" + IFS=":" + # start with the new value + _all_values="$_value" + _contained_value="" + # iterate over existing values in the variable + for _item in $_values; do + # ignore empty strings + if [ -z "$_item" ]; then + continue + fi + # ignore duplicates of _value + if [ "$_item" = "$_value" ]; then + _contained_value=1 + continue + fi + # keep non-duplicate values + _all_values="$_all_values:$_item" + done + unset _item + if [ -z "$_contained_value" ]; then + if [ -n "$COLCON_TRACE" ]; then + if [ "$_all_values" = "$_value" ]; then + echo "export $_listname=$_value" + else + echo "export $_listname=$_value:\$$_listname" + fi + fi + fi + unset _contained_value + # restore the field separator + IFS="$_colcon_prefix_sh_prepend_unique_value_IFS" + unset _colcon_prefix_sh_prepend_unique_value_IFS + # export the updated variable + eval export $_listname=\"$_all_values\" + unset _all_values + unset _values + + unset _value + unset _listname +} + +# add this prefix to the COLCON_PREFIX_PATH +_colcon_prefix_sh_prepend_unique_value COLCON_PREFIX_PATH "$_colcon_prefix_sh_COLCON_CURRENT_PREFIX" +unset _colcon_prefix_sh_prepend_unique_value + +# check environment variable for custom Python executable +if [ -n "$COLCON_PYTHON_EXECUTABLE" ]; then + if [ ! -f "$COLCON_PYTHON_EXECUTABLE" ]; then + echo "error: COLCON_PYTHON_EXECUTABLE '$COLCON_PYTHON_EXECUTABLE' doesn't exist" + return 1 + fi + _colcon_python_executable="$COLCON_PYTHON_EXECUTABLE" +else + # try the Python executable known at configure time + _colcon_python_executable="/usr/bin/python3" + # if it doesn't exist try a fall back + if [ ! -f "$_colcon_python_executable" ]; then + if ! /usr/bin/env python3 --version > /dev/null 2> /dev/null; then + echo "error: unable to find python3 executable" + return 1 + fi + _colcon_python_executable=`/usr/bin/env python3 -c "import sys; print(sys.executable)"` + fi +fi + +# function to source another script with conditional trace output +# first argument: the path of the script +_colcon_prefix_sh_source_script() { + if [ -f "$1" ]; then + if [ -n "$COLCON_TRACE" ]; then + echo "# . \"$1\"" + fi + . "$1" + else + echo "not found: \"$1\"" 1>&2 + fi +} + +# get all commands in topological order +_colcon_ordered_commands="$($_colcon_python_executable "$_colcon_prefix_sh_COLCON_CURRENT_PREFIX/_local_setup_util_sh.py" sh)" +unset _colcon_python_executable +if [ -n "$COLCON_TRACE" ]; then + echo "_colcon_prefix_sh_source_script() { + if [ -f \"\$1\" ]; then + if [ -n \"\$COLCON_TRACE\" ]; then + echo \"# . \\\"\$1\\\"\" + fi + . \"\$1\" + else + echo \"not found: \\\"\$1\\\"\" 1>&2 + fi + }" + echo "# Execute generated script:" + echo "# <<<" + echo "${_colcon_ordered_commands}" + echo "# >>>" + echo "unset _colcon_prefix_sh_source_script" +fi +eval "${_colcon_ordered_commands}" +unset _colcon_ordered_commands + +unset _colcon_prefix_sh_source_script + +unset _colcon_prefix_sh_COLCON_CURRENT_PREFIX diff --git a/install/local_setup.zsh b/install/local_setup.zsh new file mode 100644 index 000000000..b6487102f --- /dev/null +++ b/install/local_setup.zsh @@ -0,0 +1,134 @@ +# generated from colcon_zsh/shell/template/prefix.zsh.em + +# This script extends the environment with all packages contained in this +# prefix path. + +# a zsh script is able to determine its own path if necessary +if [ -z "$COLCON_CURRENT_PREFIX" ]; then + _colcon_prefix_zsh_COLCON_CURRENT_PREFIX="$(builtin cd -q "`dirname "${(%):-%N}"`" > /dev/null && pwd)" +else + _colcon_prefix_zsh_COLCON_CURRENT_PREFIX="$COLCON_CURRENT_PREFIX" +fi + +# function to convert array-like strings into arrays +# to workaround SH_WORD_SPLIT not being set +_colcon_prefix_zsh_convert_to_array() { + local _listname=$1 + local _dollar="$" + local _split="{=" + local _to_array="(\"$_dollar$_split$_listname}\")" + eval $_listname=$_to_array +} + +# function to prepend a value to a variable +# which uses colons as separators +# duplicates as well as trailing separators are avoided +# first argument: the name of the result variable +# second argument: the value to be prepended +_colcon_prefix_zsh_prepend_unique_value() { + # arguments + _listname="$1" + _value="$2" + + # get values from variable + eval _values=\"\$$_listname\" + # backup the field separator + _colcon_prefix_zsh_prepend_unique_value_IFS="$IFS" + IFS=":" + # start with the new value + _all_values="$_value" + _contained_value="" + # workaround SH_WORD_SPLIT not being set + _colcon_prefix_zsh_convert_to_array _values + # iterate over existing values in the variable + for _item in $_values; do + # ignore empty strings + if [ -z "$_item" ]; then + continue + fi + # ignore duplicates of _value + if [ "$_item" = "$_value" ]; then + _contained_value=1 + continue + fi + # keep non-duplicate values + _all_values="$_all_values:$_item" + done + unset _item + if [ -z "$_contained_value" ]; then + if [ -n "$COLCON_TRACE" ]; then + if [ "$_all_values" = "$_value" ]; then + echo "export $_listname=$_value" + else + echo "export $_listname=$_value:\$$_listname" + fi + fi + fi + unset _contained_value + # restore the field separator + IFS="$_colcon_prefix_zsh_prepend_unique_value_IFS" + unset _colcon_prefix_zsh_prepend_unique_value_IFS + # export the updated variable + eval export $_listname=\"$_all_values\" + unset _all_values + unset _values + + unset _value + unset _listname +} + +# add this prefix to the COLCON_PREFIX_PATH +_colcon_prefix_zsh_prepend_unique_value COLCON_PREFIX_PATH "$_colcon_prefix_zsh_COLCON_CURRENT_PREFIX" +unset _colcon_prefix_zsh_prepend_unique_value +unset _colcon_prefix_zsh_convert_to_array + +# check environment variable for custom Python executable +if [ -n "$COLCON_PYTHON_EXECUTABLE" ]; then + if [ ! -f "$COLCON_PYTHON_EXECUTABLE" ]; then + echo "error: COLCON_PYTHON_EXECUTABLE '$COLCON_PYTHON_EXECUTABLE' doesn't exist" + return 1 + fi + _colcon_python_executable="$COLCON_PYTHON_EXECUTABLE" +else + # try the Python executable known at configure time + _colcon_python_executable="/usr/bin/python3" + # if it doesn't exist try a fall back + if [ ! -f "$_colcon_python_executable" ]; then + if ! /usr/bin/env python3 --version > /dev/null 2> /dev/null; then + echo "error: unable to find python3 executable" + return 1 + fi + _colcon_python_executable=`/usr/bin/env python3 -c "import sys; print(sys.executable)"` + fi +fi + +# function to source another script with conditional trace output +# first argument: the path of the script +_colcon_prefix_sh_source_script() { + if [ -f "$1" ]; then + if [ -n "$COLCON_TRACE" ]; then + echo "# . \"$1\"" + fi + . "$1" + else + echo "not found: \"$1\"" 1>&2 + fi +} + +# get all commands in topological order +_colcon_ordered_commands="$($_colcon_python_executable "$_colcon_prefix_zsh_COLCON_CURRENT_PREFIX/_local_setup_util_sh.py" sh zsh)" +unset _colcon_python_executable +if [ -n "$COLCON_TRACE" ]; then + echo "$(declare -f _colcon_prefix_sh_source_script)" + echo "# Execute generated script:" + echo "# <<<" + echo "${_colcon_ordered_commands}" + echo "# >>>" + echo "unset _colcon_prefix_sh_source_script" +fi +eval "${_colcon_ordered_commands}" +unset _colcon_ordered_commands + +unset _colcon_prefix_sh_source_script + +unset _colcon_prefix_zsh_COLCON_CURRENT_PREFIX diff --git a/install/setup.bash b/install/setup.bash new file mode 100644 index 000000000..f5b1a0822 --- /dev/null +++ b/install/setup.bash @@ -0,0 +1,34 @@ +# generated from colcon_bash/shell/template/prefix_chain.bash.em + +# This script extends the environment with the environment of other prefix +# paths which were sourced when this file was generated as well as all packages +# contained in this prefix path. + +# function to source another script with conditional trace output +# first argument: the path of the script +_colcon_prefix_chain_bash_source_script() { + if [ -f "$1" ]; then + if [ -n "$COLCON_TRACE" ]; then + echo "# . \"$1\"" + fi + . "$1" + else + echo "not found: \"$1\"" 1>&2 + fi +} + +# source chained prefixes +# setting COLCON_CURRENT_PREFIX avoids determining the prefix in the sourced script +COLCON_CURRENT_PREFIX="/opt/ros/humble" +_colcon_prefix_chain_bash_source_script "$COLCON_CURRENT_PREFIX/local_setup.bash" +# setting COLCON_CURRENT_PREFIX avoids determining the prefix in the sourced script +COLCON_CURRENT_PREFIX="/root/AirStack/ros_ws/install" +_colcon_prefix_chain_bash_source_script "$COLCON_CURRENT_PREFIX/local_setup.bash" + +# source this prefix +# setting COLCON_CURRENT_PREFIX avoids determining the prefix in the sourced script +COLCON_CURRENT_PREFIX="$(builtin cd "`dirname "${BASH_SOURCE[0]}"`" > /dev/null && pwd)" +_colcon_prefix_chain_bash_source_script "$COLCON_CURRENT_PREFIX/local_setup.bash" + +unset COLCON_CURRENT_PREFIX +unset _colcon_prefix_chain_bash_source_script diff --git a/install/setup.ps1 b/install/setup.ps1 new file mode 100644 index 000000000..ba7875062 --- /dev/null +++ b/install/setup.ps1 @@ -0,0 +1,30 @@ +# generated from colcon_powershell/shell/template/prefix_chain.ps1.em + +# This script extends the environment with the environment of other prefix +# paths which were sourced when this file was generated as well as all packages +# contained in this prefix path. + +# function to source another script with conditional trace output +# first argument: the path of the script +function _colcon_prefix_chain_powershell_source_script { + param ( + $_colcon_prefix_chain_powershell_source_script_param + ) + # source script with conditional trace output + if (Test-Path $_colcon_prefix_chain_powershell_source_script_param) { + if ($env:COLCON_TRACE) { + echo ". '$_colcon_prefix_chain_powershell_source_script_param'" + } + . "$_colcon_prefix_chain_powershell_source_script_param" + } else { + Write-Error "not found: '$_colcon_prefix_chain_powershell_source_script_param'" + } +} + +# source chained prefixes +_colcon_prefix_chain_powershell_source_script "/opt/ros/humble\local_setup.ps1" +_colcon_prefix_chain_powershell_source_script "/root/AirStack/ros_ws/install\local_setup.ps1" + +# source this prefix +$env:COLCON_CURRENT_PREFIX=(Split-Path $PSCommandPath -Parent) +_colcon_prefix_chain_powershell_source_script "$env:COLCON_CURRENT_PREFIX\local_setup.ps1" diff --git a/install/setup.sh b/install/setup.sh new file mode 100644 index 000000000..877cdfa4f --- /dev/null +++ b/install/setup.sh @@ -0,0 +1,49 @@ +# generated from colcon_core/shell/template/prefix_chain.sh.em + +# This script extends the environment with the environment of other prefix +# paths which were sourced when this file was generated as well as all packages +# contained in this prefix path. + +# since a plain shell script can't determine its own path when being sourced +# either use the provided COLCON_CURRENT_PREFIX +# or fall back to the build time prefix (if it exists) +_colcon_prefix_chain_sh_COLCON_CURRENT_PREFIX=/root/AirStack/install +if [ ! -z "$COLCON_CURRENT_PREFIX" ]; then + _colcon_prefix_chain_sh_COLCON_CURRENT_PREFIX="$COLCON_CURRENT_PREFIX" +elif [ ! -d "$_colcon_prefix_chain_sh_COLCON_CURRENT_PREFIX" ]; then + echo "The build time path \"$_colcon_prefix_chain_sh_COLCON_CURRENT_PREFIX\" doesn't exist. Either source a script for a different shell or set the environment variable \"COLCON_CURRENT_PREFIX\" explicitly." 1>&2 + unset _colcon_prefix_chain_sh_COLCON_CURRENT_PREFIX + return 1 +fi + +# function to source another script with conditional trace output +# first argument: the path of the script +_colcon_prefix_chain_sh_source_script() { + if [ -f "$1" ]; then + if [ -n "$COLCON_TRACE" ]; then + echo "# . \"$1\"" + fi + . "$1" + else + echo "not found: \"$1\"" 1>&2 + fi +} + +# source chained prefixes +# setting COLCON_CURRENT_PREFIX avoids relying on the build time prefix of the sourced script +COLCON_CURRENT_PREFIX="/opt/ros/humble" +_colcon_prefix_chain_sh_source_script "$COLCON_CURRENT_PREFIX/local_setup.sh" + +# setting COLCON_CURRENT_PREFIX avoids relying on the build time prefix of the sourced script +COLCON_CURRENT_PREFIX="/root/AirStack/ros_ws/install" +_colcon_prefix_chain_sh_source_script "$COLCON_CURRENT_PREFIX/local_setup.sh" + + +# source this prefix +# setting COLCON_CURRENT_PREFIX avoids relying on the build time prefix of the sourced script +COLCON_CURRENT_PREFIX="$_colcon_prefix_chain_sh_COLCON_CURRENT_PREFIX" +_colcon_prefix_chain_sh_source_script "$COLCON_CURRENT_PREFIX/local_setup.sh" + +unset _colcon_prefix_chain_sh_COLCON_CURRENT_PREFIX +unset _colcon_prefix_chain_sh_source_script +unset COLCON_CURRENT_PREFIX diff --git a/install/setup.zsh b/install/setup.zsh new file mode 100644 index 000000000..401aff6bf --- /dev/null +++ b/install/setup.zsh @@ -0,0 +1,34 @@ +# generated from colcon_zsh/shell/template/prefix_chain.zsh.em + +# This script extends the environment with the environment of other prefix +# paths which were sourced when this file was generated as well as all packages +# contained in this prefix path. + +# function to source another script with conditional trace output +# first argument: the path of the script +_colcon_prefix_chain_zsh_source_script() { + if [ -f "$1" ]; then + if [ -n "$COLCON_TRACE" ]; then + echo "# . \"$1\"" + fi + . "$1" + else + echo "not found: \"$1\"" 1>&2 + fi +} + +# source chained prefixes +# setting COLCON_CURRENT_PREFIX avoids determining the prefix in the sourced script +COLCON_CURRENT_PREFIX="/opt/ros/humble" +_colcon_prefix_chain_zsh_source_script "$COLCON_CURRENT_PREFIX/local_setup.zsh" +# setting COLCON_CURRENT_PREFIX avoids determining the prefix in the sourced script +COLCON_CURRENT_PREFIX="/root/AirStack/ros_ws/install" +_colcon_prefix_chain_zsh_source_script "$COLCON_CURRENT_PREFIX/local_setup.zsh" + +# source this prefix +# setting COLCON_CURRENT_PREFIX avoids determining the prefix in the sourced script +COLCON_CURRENT_PREFIX="$(builtin cd -q "`dirname "${(%):-%N}"`" > /dev/null && pwd)" +_colcon_prefix_chain_zsh_source_script "$COLCON_CURRENT_PREFIX/local_setup.zsh" + +unset COLCON_CURRENT_PREFIX +unset _colcon_prefix_chain_zsh_source_script diff --git a/log/COLCON_IGNORE b/log/COLCON_IGNORE new file mode 100644 index 000000000..e69de29bb diff --git a/log/build_2024-07-25_13-05-11/disparity_expansion/command.log b/log/build_2024-07-25_13-05-11/disparity_expansion/command.log new file mode 100644 index 000000000..16ca00795 --- /dev/null +++ b/log/build_2024-07-25_13-05-11/disparity_expansion/command.log @@ -0,0 +1,4 @@ +Invoking command in '/root/AirStack/build/disparity_expansion': /usr/bin/cmake /root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion -DCMAKE_INSTALL_PREFIX=/root/AirStack/install/disparity_expansion +Invoked command in '/root/AirStack/build/disparity_expansion' returned '0': /usr/bin/cmake /root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion -DCMAKE_INSTALL_PREFIX=/root/AirStack/install/disparity_expansion +Invoking command in '/root/AirStack/build/disparity_expansion': /usr/bin/cmake --build /root/AirStack/build/disparity_expansion -- -j12 -l12 +Invoked command in '/root/AirStack/build/disparity_expansion' returned '2': /usr/bin/cmake --build /root/AirStack/build/disparity_expansion -- -j12 -l12 diff --git a/log/build_2024-07-25_13-05-11/disparity_expansion/stderr.log b/log/build_2024-07-25_13-05-11/disparity_expansion/stderr.log new file mode 100644 index 000000000..8d7b7d7c3 --- /dev/null +++ b/log/build_2024-07-25_13-05-11/disparity_expansion/stderr.log @@ -0,0 +1,8 @@ +** WARNING ** io features related to pcap will be disabled +/root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_conv.cpp:42:10: fatal error: pcl_ros/point_cloud.hpp: No such file or directory + 42 | #include  + | ^~~~~~~~~~~~~~~~~~~~~~~~~ +compilation terminated. +gmake[2]: *** [CMakeFiles/disparity_conv.dir/build.make:76: CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o] Error 1 +gmake[1]: *** [CMakeFiles/Makefile2:137: CMakeFiles/disparity_conv.dir/all] Error 2 +gmake: *** [Makefile:101: all] Error 2 diff --git a/log/build_2024-07-25_13-05-11/disparity_expansion/stdout.log b/log/build_2024-07-25_13-05-11/disparity_expansion/stdout.log new file mode 100644 index 000000000..40192dcb1 --- /dev/null +++ b/log/build_2024-07-25_13-05-11/disparity_expansion/stdout.log @@ -0,0 +1,140 @@ +-- The C compiler identification is GNU 11.4.0 +-- The CXX compiler identification is GNU 11.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Detecting CXX compiler ABI info +-- Detecting CXX compiler ABI info - done +-- Check for working CXX compiler: /usr/bin/c++ - skipped +-- Detecting CXX compile features +-- Detecting CXX compile features - done +-- Found ament_cmake: 1.3.9 (/opt/ros/humble/share/ament_cmake/cmake) +-- Found Python3: /usr/bin/python3 (found version "3.10.12") found components: Interpreter +-- Found rclcpp: 16.0.9 (/opt/ros/humble/share/rclcpp/cmake) +-- Found rosidl_generator_c: 3.1.5 (/opt/ros/humble/share/rosidl_generator_c/cmake) +-- Found rosidl_adapter: 3.1.5 (/opt/ros/humble/share/rosidl_adapter/cmake) +-- Found rosidl_generator_cpp: 3.1.5 (/opt/ros/humble/share/rosidl_generator_cpp/cmake) +-- Using all available rosidl_typesupport_c: rosidl_typesupport_fastrtps_c;rosidl_typesupport_introspection_c +-- Using all available rosidl_typesupport_cpp: rosidl_typesupport_fastrtps_cpp;rosidl_typesupport_introspection_cpp +-- Found rmw_implementation_cmake: 6.1.2 (/opt/ros/humble/share/rmw_implementation_cmake/cmake) +-- Found rmw_fastrtps_cpp: 6.2.6 (/opt/ros/humble/share/rmw_fastrtps_cpp/cmake) +-- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libcrypto.so (found version "3.0.2") +-- Found FastRTPS: /opt/ros/humble/include +-- Using RMW implementation 'rmw_fastrtps_cpp' as default +-- Looking for pthread.h +-- Looking for pthread.h - found +-- Performing Test CMAKE_HAVE_LIBC_PTHREAD +-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success +-- Found Threads: TRUE +-- Found cv_bridge: 3.2.1 (/opt/ros/humble/share/cv_bridge/cmake) +-- Found image_geometry: 3.2.1 (/opt/ros/humble/share/image_geometry/cmake) +-- Found image_transport: 3.1.9 (/opt/ros/humble/share/image_transport/cmake) +-- Found tf2: 0.25.7 (/opt/ros/humble/share/tf2/cmake) +-- Found OpenCV: /usr (found version "4.5.4") +-- Checking for module 'eigen3' +-- Found eigen3, version 3.4.0 +-- Found Eigen: /usr/include/eigen3 (Required is at least version "3.1") +-- Eigen found (include: /usr/include/eigen3, version: 3.4.0) +-- Found Boost: /usr/lib/x86_64-linux-gnu/cmake/Boost-1.74.0/BoostConfig.cmake (found suitable version "1.74.0", minimum required is "1.65.0") found components: system filesystem date_time iostreams serialization +-- Checking for module 'flann' +-- Found flann, version 1.9.1 +-- Found FLANN: /usr/lib/x86_64-linux-gnu/libflann_cpp.so +-- FLANN found (include: /usr/include, lib: /usr/lib/x86_64-linux-gnu/libflann_cpp.so) +-- Found GLEW: /usr/lib/x86_64-linux-gnu/libGLEW.so +-- Found OpenGL: /usr/lib/x86_64-linux-gnu/libOpenGL.so found components: OpenGL GLX +-- Found MPI_C: /usr/lib/x86_64-linux-gnu/libmpi.so (found version "3.1") +-- Found MPI: TRUE (found version "3.1") found components: C +-- Found JsonCpp: /usr/lib/x86_64-linux-gnu/libjsoncpp.so (found suitable version "1.9.5", minimum required is "0.7.0") +-- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.11") +-- Found PNG: /usr/lib/x86_64-linux-gnu/libpng.so (found version "1.6.37") +-- Found Eigen3: /usr/include/eigen3 (found version "3.4.0") +-- Found X11: /usr/include +-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so +-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so - found +-- Looking for gethostbyname +-- Looking for gethostbyname - found +-- Looking for connect +-- Looking for connect - found +-- Looking for remove +-- Looking for remove - found +-- Looking for shmat +-- Looking for shmat - found +-- Looking for IceConnectionNumber in ICE +-- Looking for IceConnectionNumber in ICE - found +-- Found EXPAT: /usr/lib/x86_64-linux-gnu/libexpat.so (found version "2.4.7") +-- Found double-conversion: /usr/lib/x86_64-linux-gnu/libdouble-conversion.so +-- Found LZ4: /usr/lib/x86_64-linux-gnu/liblz4.so (found version "1.9.3") +-- Found LZMA: /usr/lib/x86_64-linux-gnu/liblzma.so (found version "5.2.5") +-- Found JPEG: /usr/lib/x86_64-linux-gnu/libjpeg.so (found version "80") +-- Found TIFF: /usr/lib/x86_64-linux-gnu/libtiff.so (found version "4.3.0") +-- Found Freetype: /usr/lib/x86_64-linux-gnu/libfreetype.so (found version "2.11.1") +-- Found utf8cpp: /usr/include/utf8cpp +-- Checking for module 'libusb-1.0' +-- Found libusb-1.0, version 1.0.25 +-- Found libusb: /usr/lib/x86_64-linux-gnu/libusb-1.0.so +-- Found OpenNI: /usr/lib/libOpenNI.so;libusb::libusb (found version "1.5.4.0") +-- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) +-- Found OpenNI2: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb (found version "2.2.0.33") +-- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb) +-- Eigen found (include: /usr/include/eigen3, version: 3.4.0) +-- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) +-- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb) +-- Found Qhull version 8.0.2 +-- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) +-- looking for PCL_COMMON +-- Found PCL_COMMON: /usr/lib/x86_64-linux-gnu/libpcl_common.so +-- looking for PCL_KDTREE +-- Found PCL_KDTREE: /usr/lib/x86_64-linux-gnu/libpcl_kdtree.so +-- looking for PCL_OCTREE +-- Found PCL_OCTREE: /usr/lib/x86_64-linux-gnu/libpcl_octree.so +-- looking for PCL_SEARCH +-- Found PCL_SEARCH: /usr/lib/x86_64-linux-gnu/libpcl_search.so +-- looking for PCL_SAMPLE_CONSENSUS +-- Found PCL_SAMPLE_CONSENSUS: /usr/lib/x86_64-linux-gnu/libpcl_sample_consensus.so +-- looking for PCL_FILTERS +-- Found PCL_FILTERS: /usr/lib/x86_64-linux-gnu/libpcl_filters.so +-- looking for PCL_2D +-- Found PCL_2D: /usr/include/pcl-1.12 +-- looking for PCL_GEOMETRY +-- Found PCL_GEOMETRY: /usr/include/pcl-1.12 +-- looking for PCL_IO +-- Found PCL_IO: /usr/lib/x86_64-linux-gnu/libpcl_io.so +-- looking for PCL_FEATURES +-- Found PCL_FEATURES: /usr/lib/x86_64-linux-gnu/libpcl_features.so +-- looking for PCL_ML +-- Found PCL_ML: /usr/lib/x86_64-linux-gnu/libpcl_ml.so +-- looking for PCL_SEGMENTATION +-- Found PCL_SEGMENTATION: /usr/lib/x86_64-linux-gnu/libpcl_segmentation.so +-- looking for PCL_VISUALIZATION +-- Found PCL_VISUALIZATION: /usr/lib/x86_64-linux-gnu/libpcl_visualization.so +-- looking for PCL_SURFACE +-- Found PCL_SURFACE: /usr/lib/x86_64-linux-gnu/libpcl_surface.so +-- looking for PCL_REGISTRATION +-- Found PCL_REGISTRATION: /usr/lib/x86_64-linux-gnu/libpcl_registration.so +-- looking for PCL_KEYPOINTS +-- Found PCL_KEYPOINTS: /usr/lib/x86_64-linux-gnu/libpcl_keypoints.so +-- looking for PCL_TRACKING +-- Found PCL_TRACKING: /usr/lib/x86_64-linux-gnu/libpcl_tracking.so +-- looking for PCL_RECOGNITION +-- Found PCL_RECOGNITION: /usr/lib/x86_64-linux-gnu/libpcl_recognition.so +-- looking for PCL_STEREO +-- Found PCL_STEREO: /usr/lib/x86_64-linux-gnu/libpcl_stereo.so +-- looking for PCL_APPS +-- Found PCL_APPS: /usr/lib/x86_64-linux-gnu/libpcl_apps.so +-- looking for PCL_IN_HAND_SCANNER +-- Found PCL_IN_HAND_SCANNER: /usr/include/pcl-1.12 +-- looking for PCL_MODELER +-- Found PCL_MODELER: /usr/include/pcl-1.12 +-- looking for PCL_POINT_CLOUD_EDITOR +-- Found PCL_POINT_CLOUD_EDITOR: /usr/include/pcl-1.12 +-- looking for PCL_OUTOFCORE +-- Found PCL_OUTOFCORE: /usr/lib/x86_64-linux-gnu/libpcl_outofcore.so +-- looking for PCL_PEOPLE +-- Found PCL_PEOPLE: /usr/lib/x86_64-linux-gnu/libpcl_people.so +-- Found PCL: pcl_common;pcl_kdtree;pcl_octree;pcl_search;pcl_sample_consensus;pcl_filters;pcl_io;pcl_features;pcl_ml;pcl_segmentation;pcl_visualization;pcl_surface;pcl_registration;pcl_keypoints;pcl_tracking;pcl_recognition;pcl_stereo;pcl_apps;pcl_outofcore;pcl_people;Boost::system;Boost::filesystem;Boost::date_time;Boost::iostreams;Boost::serialization;/usr/lib/libOpenNI.so;libusb::libusb;/usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb;VTK::ChartsCore;VTK::CommonColor;VTK::CommonComputationalGeometry;VTK::CommonCore;VTK::CommonDataModel;VTK::CommonExecutionModel;VTK::CommonMath;VTK::CommonMisc;VTK::CommonTransforms;VTK::FiltersCore;VTK::FiltersExtraction;VTK::FiltersGeneral;VTK::FiltersGeometry;VTK::FiltersModeling;VTK::FiltersSources;VTK::ImagingCore;VTK::ImagingSources;VTK::InteractionImage;VTK::InteractionStyle;VTK::InteractionWidgets;VTK::IOCore;VTK::IOGeometry;VTK::IOImage;VTK::IOLegacy;VTK::IOPLY;VTK::RenderingAnnotation;VTK::RenderingCore;VTK::RenderingContext2D;VTK::RenderingLOD;VTK::RenderingFreeType;VTK::ViewsCore;VTK::ViewsContext2D;VTK::RenderingOpenGL2;VTK::GUISupportQt;FLANN::FLANN;QHULL::QHULL (Required is at least version "1.7") +-- Configuring done +-- Generating done +-- Build files have been written to: /root/AirStack/build/disparity_expansion +[ 50%] Building CXX object CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o diff --git a/log/build_2024-07-25_13-05-11/disparity_expansion/stdout_stderr.log b/log/build_2024-07-25_13-05-11/disparity_expansion/stdout_stderr.log new file mode 100644 index 000000000..5c11dae7a --- /dev/null +++ b/log/build_2024-07-25_13-05-11/disparity_expansion/stdout_stderr.log @@ -0,0 +1,148 @@ +-- The C compiler identification is GNU 11.4.0 +-- The CXX compiler identification is GNU 11.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Detecting CXX compiler ABI info +-- Detecting CXX compiler ABI info - done +-- Check for working CXX compiler: /usr/bin/c++ - skipped +-- Detecting CXX compile features +-- Detecting CXX compile features - done +-- Found ament_cmake: 1.3.9 (/opt/ros/humble/share/ament_cmake/cmake) +-- Found Python3: /usr/bin/python3 (found version "3.10.12") found components: Interpreter +-- Found rclcpp: 16.0.9 (/opt/ros/humble/share/rclcpp/cmake) +-- Found rosidl_generator_c: 3.1.5 (/opt/ros/humble/share/rosidl_generator_c/cmake) +-- Found rosidl_adapter: 3.1.5 (/opt/ros/humble/share/rosidl_adapter/cmake) +-- Found rosidl_generator_cpp: 3.1.5 (/opt/ros/humble/share/rosidl_generator_cpp/cmake) +-- Using all available rosidl_typesupport_c: rosidl_typesupport_fastrtps_c;rosidl_typesupport_introspection_c +-- Using all available rosidl_typesupport_cpp: rosidl_typesupport_fastrtps_cpp;rosidl_typesupport_introspection_cpp +-- Found rmw_implementation_cmake: 6.1.2 (/opt/ros/humble/share/rmw_implementation_cmake/cmake) +-- Found rmw_fastrtps_cpp: 6.2.6 (/opt/ros/humble/share/rmw_fastrtps_cpp/cmake) +-- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libcrypto.so (found version "3.0.2") +-- Found FastRTPS: /opt/ros/humble/include +-- Using RMW implementation 'rmw_fastrtps_cpp' as default +-- Looking for pthread.h +-- Looking for pthread.h - found +-- Performing Test CMAKE_HAVE_LIBC_PTHREAD +-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success +-- Found Threads: TRUE +-- Found cv_bridge: 3.2.1 (/opt/ros/humble/share/cv_bridge/cmake) +-- Found image_geometry: 3.2.1 (/opt/ros/humble/share/image_geometry/cmake) +-- Found image_transport: 3.1.9 (/opt/ros/humble/share/image_transport/cmake) +-- Found tf2: 0.25.7 (/opt/ros/humble/share/tf2/cmake) +-- Found OpenCV: /usr (found version "4.5.4") +-- Checking for module 'eigen3' +-- Found eigen3, version 3.4.0 +-- Found Eigen: /usr/include/eigen3 (Required is at least version "3.1") +-- Eigen found (include: /usr/include/eigen3, version: 3.4.0) +-- Found Boost: /usr/lib/x86_64-linux-gnu/cmake/Boost-1.74.0/BoostConfig.cmake (found suitable version "1.74.0", minimum required is "1.65.0") found components: system filesystem date_time iostreams serialization +-- Checking for module 'flann' +-- Found flann, version 1.9.1 +-- Found FLANN: /usr/lib/x86_64-linux-gnu/libflann_cpp.so +-- FLANN found (include: /usr/include, lib: /usr/lib/x86_64-linux-gnu/libflann_cpp.so) +-- Found GLEW: /usr/lib/x86_64-linux-gnu/libGLEW.so +-- Found OpenGL: /usr/lib/x86_64-linux-gnu/libOpenGL.so found components: OpenGL GLX +-- Found MPI_C: /usr/lib/x86_64-linux-gnu/libmpi.so (found version "3.1") +-- Found MPI: TRUE (found version "3.1") found components: C +-- Found JsonCpp: /usr/lib/x86_64-linux-gnu/libjsoncpp.so (found suitable version "1.9.5", minimum required is "0.7.0") +-- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.11") +-- Found PNG: /usr/lib/x86_64-linux-gnu/libpng.so (found version "1.6.37") +-- Found Eigen3: /usr/include/eigen3 (found version "3.4.0") +-- Found X11: /usr/include +-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so +-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so - found +-- Looking for gethostbyname +-- Looking for gethostbyname - found +-- Looking for connect +-- Looking for connect - found +-- Looking for remove +-- Looking for remove - found +-- Looking for shmat +-- Looking for shmat - found +-- Looking for IceConnectionNumber in ICE +-- Looking for IceConnectionNumber in ICE - found +-- Found EXPAT: /usr/lib/x86_64-linux-gnu/libexpat.so (found version "2.4.7") +-- Found double-conversion: /usr/lib/x86_64-linux-gnu/libdouble-conversion.so +-- Found LZ4: /usr/lib/x86_64-linux-gnu/liblz4.so (found version "1.9.3") +-- Found LZMA: /usr/lib/x86_64-linux-gnu/liblzma.so (found version "5.2.5") +-- Found JPEG: /usr/lib/x86_64-linux-gnu/libjpeg.so (found version "80") +-- Found TIFF: /usr/lib/x86_64-linux-gnu/libtiff.so (found version "4.3.0") +-- Found Freetype: /usr/lib/x86_64-linux-gnu/libfreetype.so (found version "2.11.1") +-- Found utf8cpp: /usr/include/utf8cpp +-- Checking for module 'libusb-1.0' +-- Found libusb-1.0, version 1.0.25 +-- Found libusb: /usr/lib/x86_64-linux-gnu/libusb-1.0.so +-- Found OpenNI: /usr/lib/libOpenNI.so;libusb::libusb (found version "1.5.4.0") +-- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) +-- Found OpenNI2: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb (found version "2.2.0.33") +-- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb) +** WARNING ** io features related to pcap will be disabled +-- Eigen found (include: /usr/include/eigen3, version: 3.4.0) +-- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) +-- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb) +-- Found Qhull version 8.0.2 +-- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) +-- looking for PCL_COMMON +-- Found PCL_COMMON: /usr/lib/x86_64-linux-gnu/libpcl_common.so +-- looking for PCL_KDTREE +-- Found PCL_KDTREE: /usr/lib/x86_64-linux-gnu/libpcl_kdtree.so +-- looking for PCL_OCTREE +-- Found PCL_OCTREE: /usr/lib/x86_64-linux-gnu/libpcl_octree.so +-- looking for PCL_SEARCH +-- Found PCL_SEARCH: /usr/lib/x86_64-linux-gnu/libpcl_search.so +-- looking for PCL_SAMPLE_CONSENSUS +-- Found PCL_SAMPLE_CONSENSUS: /usr/lib/x86_64-linux-gnu/libpcl_sample_consensus.so +-- looking for PCL_FILTERS +-- Found PCL_FILTERS: /usr/lib/x86_64-linux-gnu/libpcl_filters.so +-- looking for PCL_2D +-- Found PCL_2D: /usr/include/pcl-1.12 +-- looking for PCL_GEOMETRY +-- Found PCL_GEOMETRY: /usr/include/pcl-1.12 +-- looking for PCL_IO +-- Found PCL_IO: /usr/lib/x86_64-linux-gnu/libpcl_io.so +-- looking for PCL_FEATURES +-- Found PCL_FEATURES: /usr/lib/x86_64-linux-gnu/libpcl_features.so +-- looking for PCL_ML +-- Found PCL_ML: /usr/lib/x86_64-linux-gnu/libpcl_ml.so +-- looking for PCL_SEGMENTATION +-- Found PCL_SEGMENTATION: /usr/lib/x86_64-linux-gnu/libpcl_segmentation.so +-- looking for PCL_VISUALIZATION +-- Found PCL_VISUALIZATION: /usr/lib/x86_64-linux-gnu/libpcl_visualization.so +-- looking for PCL_SURFACE +-- Found PCL_SURFACE: /usr/lib/x86_64-linux-gnu/libpcl_surface.so +-- looking for PCL_REGISTRATION +-- Found PCL_REGISTRATION: /usr/lib/x86_64-linux-gnu/libpcl_registration.so +-- looking for PCL_KEYPOINTS +-- Found PCL_KEYPOINTS: /usr/lib/x86_64-linux-gnu/libpcl_keypoints.so +-- looking for PCL_TRACKING +-- Found PCL_TRACKING: /usr/lib/x86_64-linux-gnu/libpcl_tracking.so +-- looking for PCL_RECOGNITION +-- Found PCL_RECOGNITION: /usr/lib/x86_64-linux-gnu/libpcl_recognition.so +-- looking for PCL_STEREO +-- Found PCL_STEREO: /usr/lib/x86_64-linux-gnu/libpcl_stereo.so +-- looking for PCL_APPS +-- Found PCL_APPS: /usr/lib/x86_64-linux-gnu/libpcl_apps.so +-- looking for PCL_IN_HAND_SCANNER +-- Found PCL_IN_HAND_SCANNER: /usr/include/pcl-1.12 +-- looking for PCL_MODELER +-- Found PCL_MODELER: /usr/include/pcl-1.12 +-- looking for PCL_POINT_CLOUD_EDITOR +-- Found PCL_POINT_CLOUD_EDITOR: /usr/include/pcl-1.12 +-- looking for PCL_OUTOFCORE +-- Found PCL_OUTOFCORE: /usr/lib/x86_64-linux-gnu/libpcl_outofcore.so +-- looking for PCL_PEOPLE +-- Found PCL_PEOPLE: /usr/lib/x86_64-linux-gnu/libpcl_people.so +-- Found PCL: pcl_common;pcl_kdtree;pcl_octree;pcl_search;pcl_sample_consensus;pcl_filters;pcl_io;pcl_features;pcl_ml;pcl_segmentation;pcl_visualization;pcl_surface;pcl_registration;pcl_keypoints;pcl_tracking;pcl_recognition;pcl_stereo;pcl_apps;pcl_outofcore;pcl_people;Boost::system;Boost::filesystem;Boost::date_time;Boost::iostreams;Boost::serialization;/usr/lib/libOpenNI.so;libusb::libusb;/usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb;VTK::ChartsCore;VTK::CommonColor;VTK::CommonComputationalGeometry;VTK::CommonCore;VTK::CommonDataModel;VTK::CommonExecutionModel;VTK::CommonMath;VTK::CommonMisc;VTK::CommonTransforms;VTK::FiltersCore;VTK::FiltersExtraction;VTK::FiltersGeneral;VTK::FiltersGeometry;VTK::FiltersModeling;VTK::FiltersSources;VTK::ImagingCore;VTK::ImagingSources;VTK::InteractionImage;VTK::InteractionStyle;VTK::InteractionWidgets;VTK::IOCore;VTK::IOGeometry;VTK::IOImage;VTK::IOLegacy;VTK::IOPLY;VTK::RenderingAnnotation;VTK::RenderingCore;VTK::RenderingContext2D;VTK::RenderingLOD;VTK::RenderingFreeType;VTK::ViewsCore;VTK::ViewsContext2D;VTK::RenderingOpenGL2;VTK::GUISupportQt;FLANN::FLANN;QHULL::QHULL (Required is at least version "1.7") +-- Configuring done +-- Generating done +-- Build files have been written to: /root/AirStack/build/disparity_expansion +[ 50%] Building CXX object CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o +/root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_conv.cpp:42:10: fatal error: pcl_ros/point_cloud.hpp: No such file or directory + 42 | #include  + | ^~~~~~~~~~~~~~~~~~~~~~~~~ +compilation terminated. +gmake[2]: *** [CMakeFiles/disparity_conv.dir/build.make:76: CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o] Error 1 +gmake[1]: *** [CMakeFiles/Makefile2:137: CMakeFiles/disparity_conv.dir/all] Error 2 +gmake: *** [Makefile:101: all] Error 2 diff --git a/log/build_2024-07-25_13-05-11/disparity_expansion/streams.log b/log/build_2024-07-25_13-05-11/disparity_expansion/streams.log new file mode 100644 index 000000000..d7bfd5aac --- /dev/null +++ b/log/build_2024-07-25_13-05-11/disparity_expansion/streams.log @@ -0,0 +1,152 @@ +[0.009s] Invoking command in '/root/AirStack/build/disparity_expansion': /usr/bin/cmake /root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion -DCMAKE_INSTALL_PREFIX=/root/AirStack/install/disparity_expansion +[0.076s] -- The C compiler identification is GNU 11.4.0 +[0.142s] -- The CXX compiler identification is GNU 11.4.0 +[0.152s] -- Detecting C compiler ABI info +[0.232s] -- Detecting C compiler ABI info - done +[0.240s] -- Check for working C compiler: /usr/bin/cc - skipped +[0.241s] -- Detecting C compile features +[0.241s] -- Detecting C compile features - done +[0.245s] -- Detecting CXX compiler ABI info +[0.335s] -- Detecting CXX compiler ABI info - done +[0.344s] -- Check for working CXX compiler: /usr/bin/c++ - skipped +[0.344s] -- Detecting CXX compile features +[0.345s] -- Detecting CXX compile features - done +[0.349s] -- Found ament_cmake: 1.3.9 (/opt/ros/humble/share/ament_cmake/cmake) +[0.506s] -- Found Python3: /usr/bin/python3 (found version "3.10.12") found components: Interpreter +[0.624s] -- Found rclcpp: 16.0.9 (/opt/ros/humble/share/rclcpp/cmake) +[0.681s] -- Found rosidl_generator_c: 3.1.5 (/opt/ros/humble/share/rosidl_generator_c/cmake) +[0.689s] -- Found rosidl_adapter: 3.1.5 (/opt/ros/humble/share/rosidl_adapter/cmake) +[0.700s] -- Found rosidl_generator_cpp: 3.1.5 (/opt/ros/humble/share/rosidl_generator_cpp/cmake) +[0.716s] -- Using all available rosidl_typesupport_c: rosidl_typesupport_fastrtps_c;rosidl_typesupport_introspection_c +[0.738s] -- Using all available rosidl_typesupport_cpp: rosidl_typesupport_fastrtps_cpp;rosidl_typesupport_introspection_cpp +[0.814s] -- Found rmw_implementation_cmake: 6.1.2 (/opt/ros/humble/share/rmw_implementation_cmake/cmake) +[0.819s] -- Found rmw_fastrtps_cpp: 6.2.6 (/opt/ros/humble/share/rmw_fastrtps_cpp/cmake) +[0.978s] -- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libcrypto.so (found version "3.0.2") +[1.023s] -- Found FastRTPS: /opt/ros/humble/include +[1.098s] -- Using RMW implementation 'rmw_fastrtps_cpp' as default +[1.115s] -- Looking for pthread.h +[1.196s] -- Looking for pthread.h - found +[1.197s] -- Performing Test CMAKE_HAVE_LIBC_PTHREAD +[1.299s] -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success +[1.300s] -- Found Threads: TRUE +[1.448s] -- Found cv_bridge: 3.2.1 (/opt/ros/humble/share/cv_bridge/cmake) +[1.576s] -- Found image_geometry: 3.2.1 (/opt/ros/humble/share/image_geometry/cmake) +[1.585s] -- Found image_transport: 3.1.9 (/opt/ros/humble/share/image_transport/cmake) +[1.651s] -- Found tf2: 0.25.7 (/opt/ros/humble/share/tf2/cmake) +[1.660s] -- Found OpenCV: /usr (found version "4.5.4") +[1.682s] -- Checking for module 'eigen3' +[1.707s] -- Found eigen3, version 3.4.0 +[1.769s] -- Found Eigen: /usr/include/eigen3 (Required is at least version "3.1") +[1.769s] -- Eigen found (include: /usr/include/eigen3, version: 3.4.0) +[1.795s] -- Found Boost: /usr/lib/x86_64-linux-gnu/cmake/Boost-1.74.0/BoostConfig.cmake (found suitable version "1.74.0", minimum required is "1.65.0") found components: system filesystem date_time iostreams serialization +[1.822s] -- Checking for module 'flann' +[1.847s] -- Found flann, version 1.9.1 +[1.916s] -- Found FLANN: /usr/lib/x86_64-linux-gnu/libflann_cpp.so +[1.916s] -- FLANN found (include: /usr/include, lib: /usr/lib/x86_64-linux-gnu/libflann_cpp.so) +[1.948s] -- Found GLEW: /usr/lib/x86_64-linux-gnu/libGLEW.so +[1.952s] -- Found OpenGL: /usr/lib/x86_64-linux-gnu/libOpenGL.so found components: OpenGL GLX +[2.147s] -- Found MPI_C: /usr/lib/x86_64-linux-gnu/libmpi.so (found version "3.1") +[2.148s] -- Found MPI: TRUE (found version "3.1") found components: C +[2.151s] -- Found JsonCpp: /usr/lib/x86_64-linux-gnu/libjsoncpp.so (found suitable version "1.9.5", minimum required is "0.7.0") +[2.159s] -- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.11") +[2.172s] -- Found PNG: /usr/lib/x86_64-linux-gnu/libpng.so (found version "1.6.37") +[2.182s] -- Found Eigen3: /usr/include/eigen3 (found version "3.4.0") +[2.311s] -- Found X11: /usr/include +[2.311s] -- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so +[2.413s] -- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so - found +[2.414s] -- Looking for gethostbyname +[2.503s] -- Looking for gethostbyname - found +[2.503s] -- Looking for connect +[2.592s] -- Looking for connect - found +[2.592s] -- Looking for remove +[2.697s] -- Looking for remove - found +[2.697s] -- Looking for shmat +[2.794s] -- Looking for shmat - found +[2.795s] -- Looking for IceConnectionNumber in ICE +[2.888s] -- Looking for IceConnectionNumber in ICE - found +[3.020s] -- Found EXPAT: /usr/lib/x86_64-linux-gnu/libexpat.so (found version "2.4.7") +[3.022s] -- Found double-conversion: /usr/lib/x86_64-linux-gnu/libdouble-conversion.so +[3.024s] -- Found LZ4: /usr/lib/x86_64-linux-gnu/liblz4.so (found version "1.9.3") +[3.025s] -- Found LZMA: /usr/lib/x86_64-linux-gnu/liblzma.so (found version "5.2.5") +[3.037s] -- Found JPEG: /usr/lib/x86_64-linux-gnu/libjpeg.so (found version "80") +[3.040s] -- Found TIFF: /usr/lib/x86_64-linux-gnu/libtiff.so (found version "4.3.0") +[3.043s] -- Found Freetype: /usr/lib/x86_64-linux-gnu/libfreetype.so (found version "2.11.1") +[3.048s] -- Found utf8cpp: /usr/include/utf8cpp +[3.171s] -- Checking for module 'libusb-1.0' +[3.198s] -- Found libusb-1.0, version 1.0.25 +[3.265s] -- Found libusb: /usr/lib/x86_64-linux-gnu/libusb-1.0.so +[3.267s] -- Found OpenNI: /usr/lib/libOpenNI.so;libusb::libusb (found version "1.5.4.0") +[3.267s] -- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) +[3.372s] -- Found OpenNI2: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb (found version "2.2.0.33") +[3.372s] -- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb) +[3.372s] ** WARNING ** io features related to pcap will be disabled +[3.534s] -- Eigen found (include: /usr/include/eigen3, version: 3.4.0) +[3.544s] -- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) +[3.555s] -- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb) +[3.712s] -- Found Qhull version 8.0.2 +[3.870s] -- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) +[4.023s] -- looking for PCL_COMMON +[4.024s] -- Found PCL_COMMON: /usr/lib/x86_64-linux-gnu/libpcl_common.so +[4.024s] -- looking for PCL_KDTREE +[4.024s] -- Found PCL_KDTREE: /usr/lib/x86_64-linux-gnu/libpcl_kdtree.so +[4.024s] -- looking for PCL_OCTREE +[4.025s] -- Found PCL_OCTREE: /usr/lib/x86_64-linux-gnu/libpcl_octree.so +[4.025s] -- looking for PCL_SEARCH +[4.026s] -- Found PCL_SEARCH: /usr/lib/x86_64-linux-gnu/libpcl_search.so +[4.026s] -- looking for PCL_SAMPLE_CONSENSUS +[4.026s] -- Found PCL_SAMPLE_CONSENSUS: /usr/lib/x86_64-linux-gnu/libpcl_sample_consensus.so +[4.026s] -- looking for PCL_FILTERS +[4.027s] -- Found PCL_FILTERS: /usr/lib/x86_64-linux-gnu/libpcl_filters.so +[4.027s] -- looking for PCL_2D +[4.027s] -- Found PCL_2D: /usr/include/pcl-1.12 +[4.027s] -- looking for PCL_GEOMETRY +[4.027s] -- Found PCL_GEOMETRY: /usr/include/pcl-1.12 +[4.027s] -- looking for PCL_IO +[4.028s] -- Found PCL_IO: /usr/lib/x86_64-linux-gnu/libpcl_io.so +[4.028s] -- looking for PCL_FEATURES +[4.029s] -- Found PCL_FEATURES: /usr/lib/x86_64-linux-gnu/libpcl_features.so +[4.029s] -- looking for PCL_ML +[4.029s] -- Found PCL_ML: /usr/lib/x86_64-linux-gnu/libpcl_ml.so +[4.029s] -- looking for PCL_SEGMENTATION +[4.030s] -- Found PCL_SEGMENTATION: /usr/lib/x86_64-linux-gnu/libpcl_segmentation.so +[4.030s] -- looking for PCL_VISUALIZATION +[4.031s] -- Found PCL_VISUALIZATION: /usr/lib/x86_64-linux-gnu/libpcl_visualization.so +[4.031s] -- looking for PCL_SURFACE +[4.031s] -- Found PCL_SURFACE: /usr/lib/x86_64-linux-gnu/libpcl_surface.so +[4.031s] -- looking for PCL_REGISTRATION +[4.032s] -- Found PCL_REGISTRATION: /usr/lib/x86_64-linux-gnu/libpcl_registration.so +[4.032s] -- looking for PCL_KEYPOINTS +[4.033s] -- Found PCL_KEYPOINTS: /usr/lib/x86_64-linux-gnu/libpcl_keypoints.so +[4.033s] -- looking for PCL_TRACKING +[4.033s] -- Found PCL_TRACKING: /usr/lib/x86_64-linux-gnu/libpcl_tracking.so +[4.033s] -- looking for PCL_RECOGNITION +[4.034s] -- Found PCL_RECOGNITION: /usr/lib/x86_64-linux-gnu/libpcl_recognition.so +[4.034s] -- looking for PCL_STEREO +[4.035s] -- Found PCL_STEREO: /usr/lib/x86_64-linux-gnu/libpcl_stereo.so +[4.035s] -- looking for PCL_APPS +[4.035s] -- Found PCL_APPS: /usr/lib/x86_64-linux-gnu/libpcl_apps.so +[4.036s] -- looking for PCL_IN_HAND_SCANNER +[4.036s] -- Found PCL_IN_HAND_SCANNER: /usr/include/pcl-1.12 +[4.036s] -- looking for PCL_MODELER +[4.036s] -- Found PCL_MODELER: /usr/include/pcl-1.12 +[4.036s] -- looking for PCL_POINT_CLOUD_EDITOR +[4.036s] -- Found PCL_POINT_CLOUD_EDITOR: /usr/include/pcl-1.12 +[4.037s] -- looking for PCL_OUTOFCORE +[4.037s] -- Found PCL_OUTOFCORE: /usr/lib/x86_64-linux-gnu/libpcl_outofcore.so +[4.037s] -- looking for PCL_PEOPLE +[4.038s] -- Found PCL_PEOPLE: /usr/lib/x86_64-linux-gnu/libpcl_people.so +[4.038s] -- Found PCL: pcl_common;pcl_kdtree;pcl_octree;pcl_search;pcl_sample_consensus;pcl_filters;pcl_io;pcl_features;pcl_ml;pcl_segmentation;pcl_visualization;pcl_surface;pcl_registration;pcl_keypoints;pcl_tracking;pcl_recognition;pcl_stereo;pcl_apps;pcl_outofcore;pcl_people;Boost::system;Boost::filesystem;Boost::date_time;Boost::iostreams;Boost::serialization;/usr/lib/libOpenNI.so;libusb::libusb;/usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb;VTK::ChartsCore;VTK::CommonColor;VTK::CommonComputationalGeometry;VTK::CommonCore;VTK::CommonDataModel;VTK::CommonExecutionModel;VTK::CommonMath;VTK::CommonMisc;VTK::CommonTransforms;VTK::FiltersCore;VTK::FiltersExtraction;VTK::FiltersGeneral;VTK::FiltersGeometry;VTK::FiltersModeling;VTK::FiltersSources;VTK::ImagingCore;VTK::ImagingSources;VTK::InteractionImage;VTK::InteractionStyle;VTK::InteractionWidgets;VTK::IOCore;VTK::IOGeometry;VTK::IOImage;VTK::IOLegacy;VTK::IOPLY;VTK::RenderingAnnotation;VTK::RenderingCore;VTK::RenderingContext2D;VTK::RenderingLOD;VTK::RenderingFreeType;VTK::ViewsCore;VTK::ViewsContext2D;VTK::RenderingOpenGL2;VTK::GUISupportQt;FLANN::FLANN;QHULL::QHULL (Required is at least version "1.7") +[4.042s] -- Configuring done +[4.061s] -- Generating done +[4.063s] -- Build files have been written to: /root/AirStack/build/disparity_expansion +[4.074s] Invoked command in '/root/AirStack/build/disparity_expansion' returned '0': /usr/bin/cmake /root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion -DCMAKE_INSTALL_PREFIX=/root/AirStack/install/disparity_expansion +[4.077s] Invoking command in '/root/AirStack/build/disparity_expansion': /usr/bin/cmake --build /root/AirStack/build/disparity_expansion -- -j12 -l12 +[4.144s] [ 50%] Building CXX object CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o +[4.457s] /root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_conv.cpp:42:10: fatal error: pcl_ros/point_cloud.hpp: No such file or directory +[4.457s] 42 | #include  +[4.458s] | ^~~~~~~~~~~~~~~~~~~~~~~~~ +[4.458s] compilation terminated. +[4.467s] gmake[2]: *** [CMakeFiles/disparity_conv.dir/build.make:76: CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o] Error 1 +[4.467s] gmake[1]: *** [CMakeFiles/Makefile2:137: CMakeFiles/disparity_conv.dir/all] Error 2 +[4.467s] gmake: *** [Makefile:101: all] Error 2 +[4.471s] Invoked command in '/root/AirStack/build/disparity_expansion' returned '2': /usr/bin/cmake --build /root/AirStack/build/disparity_expansion -- -j12 -l12 diff --git a/log/build_2024-07-25_13-05-11/events.log b/log/build_2024-07-25_13-05-11/events.log new file mode 100644 index 000000000..ac66b0ea5 --- /dev/null +++ b/log/build_2024-07-25_13-05-11/events.log @@ -0,0 +1,218 @@ +[0.000000] (-) TimerEvent: {} +[0.000223] (-) JobUnselected: {'identifier': 'controls_bringup'} +[0.000302] (-) JobUnselected: {'identifier': 'dronekit'} +[0.000332] (-) JobUnselected: {'identifier': 'mav_comm'} +[0.000357] (-) JobUnselected: {'identifier': 'mav_msgs'} +[0.000395] (-) JobUnselected: {'identifier': 'mav_planning_msgs'} +[0.000476] (-) JobUnselected: {'identifier': 'mav_state_machine_msgs'} +[0.000516] (-) JobUnselected: {'identifier': 'mav_system_msgs'} +[0.000564] (-) JobUnselected: {'identifier': 'mavros_interface'} +[0.000611] (-) JobUnselected: {'identifier': 'px4_msgs'} +[0.000651] (-) JobUnselected: {'identifier': 'px4_ros_com'} +[0.000726] (-) JobUnselected: {'identifier': 'robot_bringup'} +[0.000768] (-) JobUnselected: {'identifier': 'robot_interface'} +[0.000828] (-) JobUnselected: {'identifier': 'vdb_mapping'} +[0.000871] (-) JobUnselected: {'identifier': 'vdb_mapping_interfaces'} +[0.000896] (-) JobUnselected: {'identifier': 'vdb_mapping_ros2'} +[0.000927] (disparity_expansion) JobQueued: {'identifier': 'disparity_expansion', 'dependencies': OrderedDict()} +[0.000957] (disparity_expansion) JobStarted: {'identifier': 'disparity_expansion'} +[0.008960] (disparity_expansion) JobProgress: {'identifier': 'disparity_expansion', 'progress': 'cmake'} +[0.009203] (disparity_expansion) Command: {'cmd': ['/usr/bin/cmake', '/root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion', '-DCMAKE_INSTALL_PREFIX=/root/AirStack/install/disparity_expansion'], 'cwd': '/root/AirStack/build/disparity_expansion', 'env': OrderedDict([('LESSOPEN', '| /usr/bin/lesspipe %s'), ('HOSTNAME', 'wildfire-desktop'), ('ISAACSIM_PATH', '/isaac-sim'), ('SHLVL', '1'), ('LD_LIBRARY_PATH', '/root/AirStack/ros_ws/install/vdb_mapping_interfaces/lib:/root/AirStack/ros_ws/install/vdb_mapping/lib:/root/AirStack/ros_ws/install/mavros_interface/lib:/root/AirStack/ros_ws/install/robot_interface/lib:/root/AirStack/ros_ws/install/px4_ros_com/lib:/root/AirStack/ros_ws/install/px4_msgs/lib:/root/AirStack/ros_ws/install/mav_system_msgs/lib:/root/AirStack/ros_ws/install/mav_state_machine_msgs/lib:/root/AirStack/ros_ws/install/mav_planning_msgs/lib:/root/AirStack/ros_ws/install/mav_msgs/lib:/opt/ros/humble/opt/rviz_ogre_vendor/lib:/opt/ros/humble/lib/x86_64-linux-gnu:/opt/ros/humble/lib'), ('HOME', '/root'), ('MIN_DRIVER_VERSION', '525.60.11'), ('ROS_PYTHON_VERSION', '3'), ('LC_CTYPE', 'C.UTF-8'), ('COLCON_PREFIX_PATH', '/root/AirStack/ros_ws/install'), ('ROS_DISTRO', 'humble'), ('_', '/usr/bin/colcon'), ('ROS_VERSION', '2'), ('PKG_CONFIG_PATH', '/root/AirStack/ros_ws/install/vdb_mapping/lib/x86_64-linux-gnu/pkgconfig:/root/AirStack/ros_ws/install/vdb_mapping/lib/pkgconfig'), ('NVIDIA_DRIVER_CAPABILITIES', 'all'), ('TERM', 'xterm'), ('ROS_LOCALHOST_ONLY', '0'), ('PATH', '/opt/ros/humble/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'), ('VK_DRIVER_FILES', '/etc/vulkan/icd.d/nvidia_icd.json'), ('DISPLAY', ':1'), ('LS_COLORS', 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:'), ('AMENT_PREFIX_PATH', '/root/AirStack/ros_ws/install/vdb_mapping_ros2:/root/AirStack/ros_ws/install/vdb_mapping_interfaces:/root/AirStack/ros_ws/install/mavros_interface:/root/AirStack/ros_ws/install/robot_interface:/root/AirStack/ros_ws/install/robot_bringup:/root/AirStack/ros_ws/install/px4_ros_com:/root/AirStack/ros_ws/install/px4_msgs:/root/AirStack/ros_ws/install/mav_comm:/root/AirStack/ros_ws/install/mav_system_msgs:/root/AirStack/ros_ws/install/mav_state_machine_msgs:/root/AirStack/ros_ws/install/mav_planning_msgs:/root/AirStack/ros_ws/install/mav_msgs:/root/AirStack/ros_ws/install/controls_bringup:/opt/ros/humble'), ('OMNI_PASS', 'admin'), ('LESSCLOSE', '/usr/bin/lesspipe %s %s'), ('ACCEPT_EULA', 'Y'), ('CMAKE_MODULE_PATH', '/root/AirStack/ros_ws/install/vdb_mapping/lib/cmake/vdb_mapping'), ('OMNI_SERVER', 'http://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/4.0'), ('PWD', '/root/AirStack/build/disparity_expansion'), ('OMNI_USER', 'admin'), ('PYTHONPATH', '/root/AirStack/ros_ws/install/vdb_mapping_interfaces/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/px4_ros_com/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/px4_msgs/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/mav_planning_msgs/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/mav_msgs/local/lib/python3.10/dist-packages:/opt/ros/humble/lib/python3.10/site-packages:/opt/ros/humble/local/lib/python3.10/dist-packages'), ('NVIDIA_VISIBLE_DEVICES', 'all'), ('TZ', 'America/New_York'), ('COLCON', '1'), ('CMAKE_PREFIX_PATH', '/root/AirStack/ros_ws/install/vdb_mapping_ros2:/root/AirStack/ros_ws/install/vdb_mapping_interfaces:/root/AirStack/ros_ws/install/vdb_mapping:/root/AirStack/ros_ws/install/mavros_interface:/root/AirStack/ros_ws/install/robot_interface:/root/AirStack/ros_ws/install/robot_bringup:/root/AirStack/ros_ws/install/px4_ros_com:/root/AirStack/ros_ws/install/px4_msgs:/root/AirStack/ros_ws/install/mav_comm:/root/AirStack/ros_ws/install/mav_system_msgs:/root/AirStack/ros_ws/install/mav_state_machine_msgs:/root/AirStack/ros_ws/install/mav_planning_msgs:/root/AirStack/ros_ws/install/mav_msgs:/root/AirStack/ros_ws/install/controls_bringup')]), 'shell': False} +[0.076923] (disparity_expansion) StdoutLine: {'line': b'-- The C compiler identification is GNU 11.4.0\n'} +[0.099504] (-) TimerEvent: {} +[0.142553] (disparity_expansion) StdoutLine: {'line': b'-- The CXX compiler identification is GNU 11.4.0\n'} +[0.152843] (disparity_expansion) StdoutLine: {'line': b'-- Detecting C compiler ABI info\n'} +[0.199578] (-) TimerEvent: {} +[0.232811] (disparity_expansion) StdoutLine: {'line': b'-- Detecting C compiler ABI info - done\n'} +[0.241310] (disparity_expansion) StdoutLine: {'line': b'-- Check for working C compiler: /usr/bin/cc - skipped\n'} +[0.241637] (disparity_expansion) StdoutLine: {'line': b'-- Detecting C compile features\n'} +[0.242099] (disparity_expansion) StdoutLine: {'line': b'-- Detecting C compile features - done\n'} +[0.245893] (disparity_expansion) StdoutLine: {'line': b'-- Detecting CXX compiler ABI info\n'} +[0.299666] (-) TimerEvent: {} +[0.335719] (disparity_expansion) StdoutLine: {'line': b'-- Detecting CXX compiler ABI info - done\n'} +[0.345121] (disparity_expansion) StdoutLine: {'line': b'-- Check for working CXX compiler: /usr/bin/c++ - skipped\n'} +[0.345351] (disparity_expansion) StdoutLine: {'line': b'-- Detecting CXX compile features\n'} +[0.345723] (disparity_expansion) StdoutLine: {'line': b'-- Detecting CXX compile features - done\n'} +[0.349760] (disparity_expansion) StdoutLine: {'line': b'-- Found ament_cmake: 1.3.9 (/opt/ros/humble/share/ament_cmake/cmake)\n'} +[0.399741] (-) TimerEvent: {} +[0.499983] (-) TimerEvent: {} +[0.507207] (disparity_expansion) StdoutLine: {'line': b'-- Found Python3: /usr/bin/python3 (found version "3.10.12") found components: Interpreter \n'} +[0.600054] (-) TimerEvent: {} +[0.624519] (disparity_expansion) StdoutLine: {'line': b'-- Found rclcpp: 16.0.9 (/opt/ros/humble/share/rclcpp/cmake)\n'} +[0.682130] (disparity_expansion) StdoutLine: {'line': b'-- Found rosidl_generator_c: 3.1.5 (/opt/ros/humble/share/rosidl_generator_c/cmake)\n'} +[0.690014] (disparity_expansion) StdoutLine: {'line': b'-- Found rosidl_adapter: 3.1.5 (/opt/ros/humble/share/rosidl_adapter/cmake)\n'} +[0.700125] (-) TimerEvent: {} +[0.700581] (disparity_expansion) StdoutLine: {'line': b'-- Found rosidl_generator_cpp: 3.1.5 (/opt/ros/humble/share/rosidl_generator_cpp/cmake)\n'} +[0.716634] (disparity_expansion) StdoutLine: {'line': b'-- Using all available rosidl_typesupport_c: rosidl_typesupport_fastrtps_c;rosidl_typesupport_introspection_c\n'} +[0.738694] (disparity_expansion) StdoutLine: {'line': b'-- Using all available rosidl_typesupport_cpp: rosidl_typesupport_fastrtps_cpp;rosidl_typesupport_introspection_cpp\n'} +[0.800202] (-) TimerEvent: {} +[0.815354] (disparity_expansion) StdoutLine: {'line': b'-- Found rmw_implementation_cmake: 6.1.2 (/opt/ros/humble/share/rmw_implementation_cmake/cmake)\n'} +[0.819530] (disparity_expansion) StdoutLine: {'line': b'-- Found rmw_fastrtps_cpp: 6.2.6 (/opt/ros/humble/share/rmw_fastrtps_cpp/cmake)\n'} +[0.900305] (-) TimerEvent: {} +[0.978649] (disparity_expansion) StdoutLine: {'line': b'-- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libcrypto.so (found version "3.0.2") \n'} +[1.000380] (-) TimerEvent: {} +[1.023418] (disparity_expansion) StdoutLine: {'line': b'-- Found FastRTPS: /opt/ros/humble/include \n'} +[1.098447] (disparity_expansion) StdoutLine: {'line': b"-- Using RMW implementation 'rmw_fastrtps_cpp' as default\n"} +[1.100456] (-) TimerEvent: {} +[1.115495] (disparity_expansion) StdoutLine: {'line': b'-- Looking for pthread.h\n'} +[1.197278] (disparity_expansion) StdoutLine: {'line': b'-- Looking for pthread.h - found\n'} +[1.197928] (disparity_expansion) StdoutLine: {'line': b'-- Performing Test CMAKE_HAVE_LIBC_PTHREAD\n'} +[1.200523] (-) TimerEvent: {} +[1.299611] (disparity_expansion) StdoutLine: {'line': b'-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success\n'} +[1.300602] (-) TimerEvent: {} +[1.301255] (disparity_expansion) StdoutLine: {'line': b'-- Found Threads: TRUE \n'} +[1.400685] (-) TimerEvent: {} +[1.448851] (disparity_expansion) StdoutLine: {'line': b'-- Found cv_bridge: 3.2.1 (/opt/ros/humble/share/cv_bridge/cmake)\n'} +[1.500941] (-) TimerEvent: {} +[1.577304] (disparity_expansion) StdoutLine: {'line': b'-- Found image_geometry: 3.2.1 (/opt/ros/humble/share/image_geometry/cmake)\n'} +[1.586315] (disparity_expansion) StdoutLine: {'line': b'-- Found image_transport: 3.1.9 (/opt/ros/humble/share/image_transport/cmake)\n'} +[1.601047] (-) TimerEvent: {} +[1.651541] (disparity_expansion) StdoutLine: {'line': b'-- Found tf2: 0.25.7 (/opt/ros/humble/share/tf2/cmake)\n'} +[1.660703] (disparity_expansion) StdoutLine: {'line': b'-- Found OpenCV: /usr (found version "4.5.4") \n'} +[1.682589] (disparity_expansion) StdoutLine: {'line': b"-- Checking for module 'eigen3'\n"} +[1.701133] (-) TimerEvent: {} +[1.707534] (disparity_expansion) StdoutLine: {'line': b'-- Found eigen3, version 3.4.0\n'} +[1.769977] (disparity_expansion) StdoutLine: {'line': b'-- Found Eigen: /usr/include/eigen3 (Required is at least version "3.1") \n'} +[1.770220] (disparity_expansion) StdoutLine: {'line': b'-- Eigen found (include: /usr/include/eigen3, version: 3.4.0)\n'} +[1.795592] (disparity_expansion) StdoutLine: {'line': b'-- Found Boost: /usr/lib/x86_64-linux-gnu/cmake/Boost-1.74.0/BoostConfig.cmake (found suitable version "1.74.0", minimum required is "1.65.0") found components: system filesystem date_time iostreams serialization \n'} +[1.801208] (-) TimerEvent: {} +[1.823388] (disparity_expansion) StdoutLine: {'line': b"-- Checking for module 'flann'\n"} +[1.848308] (disparity_expansion) StdoutLine: {'line': b'-- Found flann, version 1.9.1\n'} +[1.901287] (-) TimerEvent: {} +[1.916439] (disparity_expansion) StdoutLine: {'line': b'-- Found FLANN: /usr/lib/x86_64-linux-gnu/libflann_cpp.so \n'} +[1.916653] (disparity_expansion) StdoutLine: {'line': b'-- FLANN found (include: /usr/include, lib: /usr/lib/x86_64-linux-gnu/libflann_cpp.so)\n'} +[1.948553] (disparity_expansion) StdoutLine: {'line': b'-- Found GLEW: /usr/lib/x86_64-linux-gnu/libGLEW.so \n'} +[1.952645] (disparity_expansion) StdoutLine: {'line': b'-- Found OpenGL: /usr/lib/x86_64-linux-gnu/libOpenGL.so found components: OpenGL GLX \n'} +[2.001361] (-) TimerEvent: {} +[2.101583] (-) TimerEvent: {} +[2.148219] (disparity_expansion) StdoutLine: {'line': b'-- Found MPI_C: /usr/lib/x86_64-linux-gnu/libmpi.so (found version "3.1") \n'} +[2.148598] (disparity_expansion) StdoutLine: {'line': b'-- Found MPI: TRUE (found version "3.1") found components: C \n'} +[2.151926] (disparity_expansion) StdoutLine: {'line': b'-- Found JsonCpp: /usr/lib/x86_64-linux-gnu/libjsoncpp.so (found suitable version "1.9.5", minimum required is "0.7.0") \n'} +[2.159663] (disparity_expansion) StdoutLine: {'line': b'-- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.11") \n'} +[2.172838] (disparity_expansion) StdoutLine: {'line': b'-- Found PNG: /usr/lib/x86_64-linux-gnu/libpng.so (found version "1.6.37") \n'} +[2.183282] (disparity_expansion) StdoutLine: {'line': b'-- Found Eigen3: /usr/include/eigen3 (found version "3.4.0") \n'} +[2.201653] (-) TimerEvent: {} +[2.301879] (-) TimerEvent: {} +[2.311982] (disparity_expansion) StdoutLine: {'line': b'-- Found X11: /usr/include \n'} +[2.312328] (disparity_expansion) StdoutLine: {'line': b'-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so\n'} +[2.401950] (-) TimerEvent: {} +[2.414314] (disparity_expansion) StdoutLine: {'line': b'-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so - found\n'} +[2.414503] (disparity_expansion) StdoutLine: {'line': b'-- Looking for gethostbyname\n'} +[2.502032] (-) TimerEvent: {} +[2.504198] (disparity_expansion) StdoutLine: {'line': b'-- Looking for gethostbyname - found\n'} +[2.504392] (disparity_expansion) StdoutLine: {'line': b'-- Looking for connect\n'} +[2.593144] (disparity_expansion) StdoutLine: {'line': b'-- Looking for connect - found\n'} +[2.593307] (disparity_expansion) StdoutLine: {'line': b'-- Looking for remove\n'} +[2.602098] (-) TimerEvent: {} +[2.697789] (disparity_expansion) StdoutLine: {'line': b'-- Looking for remove - found\n'} +[2.697975] (disparity_expansion) StdoutLine: {'line': b'-- Looking for shmat\n'} +[2.702172] (-) TimerEvent: {} +[2.795212] (disparity_expansion) StdoutLine: {'line': b'-- Looking for shmat - found\n'} +[2.795422] (disparity_expansion) StdoutLine: {'line': b'-- Looking for IceConnectionNumber in ICE\n'} +[2.802247] (-) TimerEvent: {} +[2.888573] (disparity_expansion) StdoutLine: {'line': b'-- Looking for IceConnectionNumber in ICE - found\n'} +[2.902329] (-) TimerEvent: {} +[3.002536] (-) TimerEvent: {} +[3.020662] (disparity_expansion) StdoutLine: {'line': b'-- Found EXPAT: /usr/lib/x86_64-linux-gnu/libexpat.so (found version "2.4.7") \n'} +[3.022977] (disparity_expansion) StdoutLine: {'line': b'-- Found double-conversion: /usr/lib/x86_64-linux-gnu/libdouble-conversion.so \n'} +[3.024615] (disparity_expansion) StdoutLine: {'line': b'-- Found LZ4: /usr/lib/x86_64-linux-gnu/liblz4.so (found version "1.9.3") \n'} +[3.025795] (disparity_expansion) StdoutLine: {'line': b'-- Found LZMA: /usr/lib/x86_64-linux-gnu/liblzma.so (found version "5.2.5") \n'} +[3.037673] (disparity_expansion) StdoutLine: {'line': b'-- Found JPEG: /usr/lib/x86_64-linux-gnu/libjpeg.so (found version "80") \n'} +[3.040972] (disparity_expansion) StdoutLine: {'line': b'-- Found TIFF: /usr/lib/x86_64-linux-gnu/libtiff.so (found version "4.3.0") \n'} +[3.044124] (disparity_expansion) StdoutLine: {'line': b'-- Found Freetype: /usr/lib/x86_64-linux-gnu/libfreetype.so (found version "2.11.1") \n'} +[3.048780] (disparity_expansion) StdoutLine: {'line': b'-- Found utf8cpp: /usr/include/utf8cpp \n'} +[3.102619] (-) TimerEvent: {} +[3.172090] (disparity_expansion) StdoutLine: {'line': b"-- Checking for module 'libusb-1.0'\n"} +[3.198689] (disparity_expansion) StdoutLine: {'line': b'-- Found libusb-1.0, version 1.0.25\n'} +[3.202690] (-) TimerEvent: {} +[3.265939] (disparity_expansion) StdoutLine: {'line': b'-- Found libusb: /usr/lib/x86_64-linux-gnu/libusb-1.0.so \n'} +[3.267413] (disparity_expansion) StdoutLine: {'line': b'-- Found OpenNI: /usr/lib/libOpenNI.so;libusb::libusb (found version "1.5.4.0") \n'} +[3.267539] (disparity_expansion) StdoutLine: {'line': b'-- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb)\n'} +[3.302763] (-) TimerEvent: {} +[3.372722] (disparity_expansion) StdoutLine: {'line': b'-- Found OpenNI2: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb (found version "2.2.0.33") \n'} +[3.372909] (disparity_expansion) StdoutLine: {'line': b'-- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb)\n'} +[3.373052] (disparity_expansion) StderrLine: {'line': b'\x1b[0m** WARNING ** io features related to pcap will be disabled\x1b[0m\n'} +[3.402834] (-) TimerEvent: {} +[3.503057] (-) TimerEvent: {} +[3.534485] (disparity_expansion) StdoutLine: {'line': b'-- Eigen found (include: /usr/include/eigen3, version: 3.4.0)\n'} +[3.545371] (disparity_expansion) StdoutLine: {'line': b'-- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb)\n'} +[3.555947] (disparity_expansion) StdoutLine: {'line': b'-- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb)\n'} +[3.603132] (-) TimerEvent: {} +[3.703334] (-) TimerEvent: {} +[3.712761] (disparity_expansion) StdoutLine: {'line': b'-- Found Qhull version 8.0.2\n'} +[3.803423] (-) TimerEvent: {} +[3.870677] (disparity_expansion) StdoutLine: {'line': b'-- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb)\n'} +[3.903499] (-) TimerEvent: {} +[4.003692] (-) TimerEvent: {} +[4.024039] (disparity_expansion) StdoutLine: {'line': b'-- looking for PCL_COMMON\n'} +[4.024595] (disparity_expansion) StdoutLine: {'line': b'-- Found PCL_COMMON: /usr/lib/x86_64-linux-gnu/libpcl_common.so \n'} +[4.024733] (disparity_expansion) StdoutLine: {'line': b'-- looking for PCL_KDTREE\n'} +[4.025203] (disparity_expansion) StdoutLine: {'line': b'-- Found PCL_KDTREE: /usr/lib/x86_64-linux-gnu/libpcl_kdtree.so \n'} +[4.025321] (disparity_expansion) StdoutLine: {'line': b'-- looking for PCL_OCTREE\n'} +[4.025820] (disparity_expansion) StdoutLine: {'line': b'-- Found PCL_OCTREE: /usr/lib/x86_64-linux-gnu/libpcl_octree.so \n'} +[4.025933] (disparity_expansion) StdoutLine: {'line': b'-- looking for PCL_SEARCH\n'} +[4.026408] (disparity_expansion) StdoutLine: {'line': b'-- Found PCL_SEARCH: /usr/lib/x86_64-linux-gnu/libpcl_search.so \n'} +[4.026528] (disparity_expansion) StdoutLine: {'line': b'-- looking for PCL_SAMPLE_CONSENSUS\n'} +[4.027034] (disparity_expansion) StdoutLine: {'line': b'-- Found PCL_SAMPLE_CONSENSUS: /usr/lib/x86_64-linux-gnu/libpcl_sample_consensus.so \n'} +[4.027145] (disparity_expansion) StdoutLine: {'line': b'-- looking for PCL_FILTERS\n'} +[4.027669] (disparity_expansion) StdoutLine: {'line': b'-- Found PCL_FILTERS: /usr/lib/x86_64-linux-gnu/libpcl_filters.so \n'} +[4.027809] (disparity_expansion) StdoutLine: {'line': b'-- looking for PCL_2D\n'} +[4.027969] (disparity_expansion) StdoutLine: {'line': b'-- Found PCL_2D: /usr/include/pcl-1.12 \n'} +[4.028085] (disparity_expansion) StdoutLine: {'line': b'-- looking for PCL_GEOMETRY\n'} +[4.028251] (disparity_expansion) StdoutLine: {'line': b'-- Found PCL_GEOMETRY: /usr/include/pcl-1.12 \n'} +[4.028369] (disparity_expansion) StdoutLine: {'line': b'-- looking for PCL_IO\n'} +[4.028814] (disparity_expansion) StdoutLine: {'line': b'-- Found PCL_IO: /usr/lib/x86_64-linux-gnu/libpcl_io.so \n'} +[4.028994] (disparity_expansion) StdoutLine: {'line': b'-- looking for PCL_FEATURES\n'} +[4.029502] (disparity_expansion) StdoutLine: {'line': b'-- Found PCL_FEATURES: /usr/lib/x86_64-linux-gnu/libpcl_features.so \n'} +[4.029671] (disparity_expansion) StdoutLine: {'line': b'-- looking for PCL_ML\n'} +[4.030170] (disparity_expansion) StdoutLine: {'line': b'-- Found PCL_ML: /usr/lib/x86_64-linux-gnu/libpcl_ml.so \n'} +[4.030285] (disparity_expansion) StdoutLine: {'line': b'-- looking for PCL_SEGMENTATION\n'} +[4.030761] (disparity_expansion) StdoutLine: {'line': b'-- Found PCL_SEGMENTATION: /usr/lib/x86_64-linux-gnu/libpcl_segmentation.so \n'} +[4.030954] (disparity_expansion) StdoutLine: {'line': b'-- looking for PCL_VISUALIZATION\n'} +[4.031464] (disparity_expansion) StdoutLine: {'line': b'-- Found PCL_VISUALIZATION: /usr/lib/x86_64-linux-gnu/libpcl_visualization.so \n'} +[4.031650] (disparity_expansion) StdoutLine: {'line': b'-- looking for PCL_SURFACE\n'} +[4.032153] (disparity_expansion) StdoutLine: {'line': b'-- Found PCL_SURFACE: /usr/lib/x86_64-linux-gnu/libpcl_surface.so \n'} +[4.032299] (disparity_expansion) StdoutLine: {'line': b'-- looking for PCL_REGISTRATION\n'} +[4.032793] (disparity_expansion) StdoutLine: {'line': b'-- Found PCL_REGISTRATION: /usr/lib/x86_64-linux-gnu/libpcl_registration.so \n'} +[4.032966] (disparity_expansion) StdoutLine: {'line': b'-- looking for PCL_KEYPOINTS\n'} +[4.033473] (disparity_expansion) StdoutLine: {'line': b'-- Found PCL_KEYPOINTS: /usr/lib/x86_64-linux-gnu/libpcl_keypoints.so \n'} +[4.033636] (disparity_expansion) StdoutLine: {'line': b'-- looking for PCL_TRACKING\n'} +[4.034134] (disparity_expansion) StdoutLine: {'line': b'-- Found PCL_TRACKING: /usr/lib/x86_64-linux-gnu/libpcl_tracking.so \n'} +[4.034278] (disparity_expansion) StdoutLine: {'line': b'-- looking for PCL_RECOGNITION\n'} +[4.034784] (disparity_expansion) StdoutLine: {'line': b'-- Found PCL_RECOGNITION: /usr/lib/x86_64-linux-gnu/libpcl_recognition.so \n'} +[4.034998] (disparity_expansion) StdoutLine: {'line': b'-- looking for PCL_STEREO\n'} +[4.035532] (disparity_expansion) StdoutLine: {'line': b'-- Found PCL_STEREO: /usr/lib/x86_64-linux-gnu/libpcl_stereo.so \n'} +[4.035645] (disparity_expansion) StdoutLine: {'line': b'-- looking for PCL_APPS\n'} +[4.036152] (disparity_expansion) StdoutLine: {'line': b'-- Found PCL_APPS: /usr/lib/x86_64-linux-gnu/libpcl_apps.so \n'} +[4.036564] (disparity_expansion) StdoutLine: {'line': b'-- looking for PCL_IN_HAND_SCANNER\n'} +[4.036750] (disparity_expansion) StdoutLine: {'line': b'-- Found PCL_IN_HAND_SCANNER: /usr/include/pcl-1.12 \n'} +[4.036851] (disparity_expansion) StdoutLine: {'line': b'-- looking for PCL_MODELER\n'} +[4.037015] (disparity_expansion) StdoutLine: {'line': b'-- Found PCL_MODELER: /usr/include/pcl-1.12 \n'} +[4.037116] (disparity_expansion) StdoutLine: {'line': b'-- looking for PCL_POINT_CLOUD_EDITOR\n'} +[4.037335] (disparity_expansion) StdoutLine: {'line': b'-- Found PCL_POINT_CLOUD_EDITOR: /usr/include/pcl-1.12 \n'} +[4.037434] (disparity_expansion) StdoutLine: {'line': b'-- looking for PCL_OUTOFCORE\n'} +[4.037933] (disparity_expansion) StdoutLine: {'line': b'-- Found PCL_OUTOFCORE: /usr/lib/x86_64-linux-gnu/libpcl_outofcore.so \n'} +[4.038081] (disparity_expansion) StdoutLine: {'line': b'-- looking for PCL_PEOPLE\n'} +[4.038594] (disparity_expansion) StdoutLine: {'line': b'-- Found PCL_PEOPLE: /usr/lib/x86_64-linux-gnu/libpcl_people.so \n'} +[4.039219] (disparity_expansion) StdoutLine: {'line': b'-- Found PCL: pcl_common;pcl_kdtree;pcl_octree;pcl_search;pcl_sample_consensus;pcl_filters;pcl_io;pcl_features;pcl_ml;pcl_segmentation;pcl_visualization;pcl_surface;pcl_registration;pcl_keypoints;pcl_tracking;pcl_recognition;pcl_stereo;pcl_apps;pcl_outofcore;pcl_people;Boost::system;Boost::filesystem;Boost::date_time;Boost::iostreams;Boost::serialization;/usr/lib/libOpenNI.so;libusb::libusb;/usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb;VTK::ChartsCore;VTK::CommonColor;VTK::CommonComputationalGeometry;VTK::CommonCore;VTK::CommonDataModel;VTK::CommonExecutionModel;VTK::CommonMath;VTK::CommonMisc;VTK::CommonTransforms;VTK::FiltersCore;VTK::FiltersExtraction;VTK::FiltersGeneral;VTK::FiltersGeometry;VTK::FiltersModeling;VTK::FiltersSources;VTK::ImagingCore;VTK::ImagingSources;VTK::InteractionImage;VTK::InteractionStyle;VTK::InteractionWidgets;VTK::IOCore;VTK::IOGeometry;VTK::IOImage;VTK::IOLegacy;VTK::IOPLY;VTK::RenderingAnnotation;VTK::RenderingCore;VTK::RenderingContext2D;VTK::RenderingLOD;VTK::RenderingFreeType;VTK::ViewsCore;VTK::ViewsContext2D;VTK::RenderingOpenGL2;VTK::GUISupportQt;FLANN::FLANN;QHULL::QHULL (Required is at least version "1.7") \n'} +[4.042538] (disparity_expansion) StdoutLine: {'line': b'-- Configuring done\n'} +[4.061702] (disparity_expansion) StdoutLine: {'line': b'-- Generating done\n'} +[4.063544] (disparity_expansion) StdoutLine: {'line': b'-- Build files have been written to: /root/AirStack/build/disparity_expansion\n'} +[4.074975] (disparity_expansion) CommandEnded: {'returncode': 0} +[4.075755] (disparity_expansion) JobProgress: {'identifier': 'disparity_expansion', 'progress': 'build'} +[4.077015] (disparity_expansion) Command: {'cmd': ['/usr/bin/cmake', '--build', '/root/AirStack/build/disparity_expansion', '--', '-j12', '-l12'], 'cwd': '/root/AirStack/build/disparity_expansion', 'env': OrderedDict([('LESSOPEN', '| /usr/bin/lesspipe %s'), ('HOSTNAME', 'wildfire-desktop'), ('ISAACSIM_PATH', '/isaac-sim'), ('SHLVL', '1'), ('LD_LIBRARY_PATH', '/root/AirStack/ros_ws/install/vdb_mapping_interfaces/lib:/root/AirStack/ros_ws/install/vdb_mapping/lib:/root/AirStack/ros_ws/install/mavros_interface/lib:/root/AirStack/ros_ws/install/robot_interface/lib:/root/AirStack/ros_ws/install/px4_ros_com/lib:/root/AirStack/ros_ws/install/px4_msgs/lib:/root/AirStack/ros_ws/install/mav_system_msgs/lib:/root/AirStack/ros_ws/install/mav_state_machine_msgs/lib:/root/AirStack/ros_ws/install/mav_planning_msgs/lib:/root/AirStack/ros_ws/install/mav_msgs/lib:/opt/ros/humble/opt/rviz_ogre_vendor/lib:/opt/ros/humble/lib/x86_64-linux-gnu:/opt/ros/humble/lib'), ('HOME', '/root'), ('MIN_DRIVER_VERSION', '525.60.11'), ('ROS_PYTHON_VERSION', '3'), ('LC_CTYPE', 'C.UTF-8'), ('COLCON_PREFIX_PATH', '/root/AirStack/ros_ws/install'), ('ROS_DISTRO', 'humble'), ('_', '/usr/bin/colcon'), ('ROS_VERSION', '2'), ('PKG_CONFIG_PATH', '/root/AirStack/ros_ws/install/vdb_mapping/lib/x86_64-linux-gnu/pkgconfig:/root/AirStack/ros_ws/install/vdb_mapping/lib/pkgconfig'), ('NVIDIA_DRIVER_CAPABILITIES', 'all'), ('TERM', 'xterm'), ('ROS_LOCALHOST_ONLY', '0'), ('PATH', '/opt/ros/humble/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'), ('VK_DRIVER_FILES', '/etc/vulkan/icd.d/nvidia_icd.json'), ('DISPLAY', ':1'), ('LS_COLORS', 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:'), ('AMENT_PREFIX_PATH', '/root/AirStack/ros_ws/install/vdb_mapping_ros2:/root/AirStack/ros_ws/install/vdb_mapping_interfaces:/root/AirStack/ros_ws/install/mavros_interface:/root/AirStack/ros_ws/install/robot_interface:/root/AirStack/ros_ws/install/robot_bringup:/root/AirStack/ros_ws/install/px4_ros_com:/root/AirStack/ros_ws/install/px4_msgs:/root/AirStack/ros_ws/install/mav_comm:/root/AirStack/ros_ws/install/mav_system_msgs:/root/AirStack/ros_ws/install/mav_state_machine_msgs:/root/AirStack/ros_ws/install/mav_planning_msgs:/root/AirStack/ros_ws/install/mav_msgs:/root/AirStack/ros_ws/install/controls_bringup:/opt/ros/humble'), ('OMNI_PASS', 'admin'), ('LESSCLOSE', '/usr/bin/lesspipe %s %s'), ('ACCEPT_EULA', 'Y'), ('CMAKE_MODULE_PATH', '/root/AirStack/ros_ws/install/vdb_mapping/lib/cmake/vdb_mapping'), ('OMNI_SERVER', 'http://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/4.0'), ('PWD', '/root/AirStack/build/disparity_expansion'), ('OMNI_USER', 'admin'), ('PYTHONPATH', '/root/AirStack/ros_ws/install/vdb_mapping_interfaces/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/px4_ros_com/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/px4_msgs/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/mav_planning_msgs/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/mav_msgs/local/lib/python3.10/dist-packages:/opt/ros/humble/lib/python3.10/site-packages:/opt/ros/humble/local/lib/python3.10/dist-packages'), ('NVIDIA_VISIBLE_DEVICES', 'all'), ('TZ', 'America/New_York'), ('COLCON', '1'), ('CMAKE_PREFIX_PATH', '/root/AirStack/ros_ws/install/vdb_mapping_ros2:/root/AirStack/ros_ws/install/vdb_mapping_interfaces:/root/AirStack/ros_ws/install/vdb_mapping:/root/AirStack/ros_ws/install/mavros_interface:/root/AirStack/ros_ws/install/robot_interface:/root/AirStack/ros_ws/install/robot_bringup:/root/AirStack/ros_ws/install/px4_ros_com:/root/AirStack/ros_ws/install/px4_msgs:/root/AirStack/ros_ws/install/mav_comm:/root/AirStack/ros_ws/install/mav_system_msgs:/root/AirStack/ros_ws/install/mav_state_machine_msgs:/root/AirStack/ros_ws/install/mav_planning_msgs:/root/AirStack/ros_ws/install/mav_msgs:/root/AirStack/ros_ws/install/controls_bringup')]), 'shell': False} +[4.103756] (-) TimerEvent: {} +[4.145324] (disparity_expansion) StdoutLine: {'line': b'[ 50%] \x1b[32mBuilding CXX object CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o\x1b[0m\n'} +[4.203841] (-) TimerEvent: {} +[4.304084] (-) TimerEvent: {} +[4.404531] (-) TimerEvent: {} +[4.458257] (disparity_expansion) StderrLine: {'line': b'\x1b[01m\x1b[K/root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_conv.cpp:42:10:\x1b[m\x1b[K \x1b[01;31m\x1b[Kfatal error: \x1b[m\x1b[Kpcl_ros/point_cloud.hpp: No such file or directory\n'} +[4.458395] (disparity_expansion) StderrLine: {'line': b' 42 | #include \x1b[01;31m\x1b[K\x1b[m\x1b[K\n'} +[4.458455] (disparity_expansion) StderrLine: {'line': b' | \x1b[01;31m\x1b[K^~~~~~~~~~~~~~~~~~~~~~~~~\x1b[m\x1b[K\n'} +[4.458515] (disparity_expansion) StderrLine: {'line': b'compilation terminated.\n'} +[4.467903] (disparity_expansion) StderrLine: {'line': b'gmake[2]: *** [CMakeFiles/disparity_conv.dir/build.make:76: CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o] Error 1\n'} +[4.468132] (disparity_expansion) StderrLine: {'line': b'gmake[1]: *** [CMakeFiles/Makefile2:137: CMakeFiles/disparity_conv.dir/all] Error 2\n'} +[4.468413] (disparity_expansion) StderrLine: {'line': b'gmake: *** [Makefile:101: all] Error 2\n'} +[4.472204] (disparity_expansion) CommandEnded: {'returncode': 2} +[4.472516] (disparity_expansion) JobEnded: {'identifier': 'disparity_expansion', 'rc': 2} +[4.482633] (-) EventReactorShutdown: {} diff --git a/log/build_2024-07-25_13-05-11/logger_all.log b/log/build_2024-07-25_13-05-11/logger_all.log new file mode 100644 index 000000000..82eb8f0d3 --- /dev/null +++ b/log/build_2024-07-25_13-05-11/logger_all.log @@ -0,0 +1,2597 @@ +[0.077s] DEBUG:colcon:Command line arguments: ['/usr/bin/colcon', 'build', '--packages-select', 'disparity_expansion'] +[0.078s] DEBUG:colcon:Parsed command line arguments: Namespace(log_base=None, log_level=None, verb_name='build', build_base='build', install_base='install', merge_install=False, symlink_install=False, test_result_base=None, continue_on_error=False, executor='parallel', parallel_workers=12, event_handlers=None, ignore_user_meta=False, metas=['./colcon.meta'], base_paths=['.'], packages_ignore=None, packages_ignore_regex=None, paths=None, packages_up_to=None, packages_up_to_regex=None, packages_above=None, packages_above_and_dependencies=None, packages_above_depth=None, packages_select_by_dep=None, packages_skip_by_dep=None, packages_skip_up_to=None, packages_select_build_failed=False, packages_skip_build_finished=False, packages_select_test_failures=False, packages_skip_test_passed=False, packages_select=['disparity_expansion'], packages_skip=None, packages_select_regex=None, packages_skip_regex=None, packages_start=None, packages_end=None, allow_overriding=[], cmake_args=None, cmake_target=None, cmake_target_skip_unavailable=False, cmake_clean_cache=False, cmake_clean_first=False, cmake_force_configure=False, ament_cmake_args=None, catkin_cmake_args=None, catkin_skip_building_tests=False, mixin_files=None, mixin=None, verb_parser=, verb_extension=, main=>, mixin_verb=('build',)) +[0.198s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) check parameters +[0.198s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) check parameters +[0.198s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) check parameters +[0.198s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) check parameters +[0.198s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) discover +[0.198s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) discover +[0.198s] INFO:colcon.colcon_core.package_discovery:Crawling recursively for packages in '/root/AirStack' +[0.198s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ignore', 'ignore_ament_install'] +[0.198s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore' +[0.198s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore_ament_install' +[0.198s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_pkg'] +[0.198s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_pkg' +[0.198s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_meta'] +[0.198s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_meta' +[0.198s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ros'] +[0.198s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ros' +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['cmake', 'python'] +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'cmake' +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'python' +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['python_setup_py'] +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'python_setup_py' +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extensions ['ignore', 'ignore_ament_install'] +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'ignore' +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(build) ignored +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extensions ['ignore', 'ignore_ament_install'] +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'ignore' +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'ignore_ament_install' +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extensions ['colcon_pkg'] +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'colcon_pkg' +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extensions ['colcon_meta'] +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'colcon_meta' +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extensions ['ros'] +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'ros' +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extensions ['cmake', 'python'] +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'cmake' +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'python' +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extensions ['python_setup_py'] +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'python_setup_py' +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extensions ['ignore', 'ignore_ament_install'] +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'ignore' +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'ignore_ament_install' +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extensions ['colcon_pkg'] +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'colcon_pkg' +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extensions ['colcon_meta'] +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'colcon_meta' +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extensions ['ros'] +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'ros' +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extensions ['cmake', 'python'] +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'cmake' +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'python' +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extensions ['python_setup_py'] +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'python_setup_py' +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extensions ['ignore', 'ignore_ament_install'] +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'ignore' +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'ignore_ament_install' +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extensions ['colcon_pkg'] +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'colcon_pkg' +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extensions ['colcon_meta'] +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'colcon_meta' +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extensions ['ros'] +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'ros' +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extensions ['cmake', 'python'] +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'cmake' +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'python' +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extensions ['python_setup_py'] +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'python_setup_py' +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extensions ['ignore', 'ignore_ament_install'] +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'ignore' +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'ignore_ament_install' +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extensions ['colcon_pkg'] +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'colcon_pkg' +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extensions ['colcon_meta'] +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'colcon_meta' +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extensions ['ros'] +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'ros' +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extensions ['cmake', 'python'] +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'cmake' +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'python' +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extensions ['python_setup_py'] +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'python_setup_py' +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extensions ['ignore', 'ignore_ament_install'] +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'ignore' +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'ignore_ament_install' +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extensions ['colcon_pkg'] +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'colcon_pkg' +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extensions ['colcon_meta'] +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'colcon_meta' +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extensions ['ros'] +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'ros' +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extensions ['cmake', 'python'] +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'cmake' +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'python' +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extensions ['python_setup_py'] +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'python_setup_py' +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extensions ['ignore', 'ignore_ament_install'] +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'ignore' +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'ignore_ament_install' +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extensions ['colcon_pkg'] +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'colcon_pkg' +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extensions ['colcon_meta'] +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'colcon_meta' +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extensions ['ros'] +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'ros' +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extensions ['cmake', 'python'] +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'cmake' +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'python' +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extensions ['python_setup_py'] +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'python_setup_py' +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extensions ['ignore', 'ignore_ament_install'] +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'ignore' +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'ignore_ament_install' +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extensions ['colcon_pkg'] +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'colcon_pkg' +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extensions ['colcon_meta'] +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'colcon_meta' +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extensions ['ros'] +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'ros' +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extensions ['cmake', 'python'] +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'cmake' +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'python' +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extensions ['python_setup_py'] +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'python_setup_py' +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extensions ['ignore', 'ignore_ament_install'] +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'ignore' +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'ignore_ament_install' +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extensions ['colcon_pkg'] +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'colcon_pkg' +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extensions ['colcon_meta'] +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'colcon_meta' +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extensions ['ros'] +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'ros' +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extensions ['cmake', 'python'] +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'cmake' +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'python' +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extensions ['python_setup_py'] +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'python_setup_py' +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extensions ['ignore', 'ignore_ament_install'] +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'ignore' +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'ignore_ament_install' +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extensions ['colcon_pkg'] +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'colcon_pkg' +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extensions ['colcon_meta'] +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'colcon_meta' +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extensions ['ros'] +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'ros' +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extensions ['cmake', 'python'] +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'cmake' +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'python' +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extensions ['python_setup_py'] +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'python_setup_py' +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extensions ['ignore', 'ignore_ament_install'] +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'ignore' +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(install) ignored +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extensions ['ignore', 'ignore_ament_install'] +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'ignore' +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'ignore_ament_install' +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extensions ['colcon_pkg'] +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'colcon_pkg' +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extensions ['colcon_meta'] +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'colcon_meta' +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extensions ['ros'] +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'ros' +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extensions ['cmake', 'python'] +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'cmake' +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'python' +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extensions ['python_setup_py'] +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'python_setup_py' +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(log) by extensions ['ignore', 'ignore_ament_install'] +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(log) by extension 'ignore' +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(log) ignored +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extensions ['ignore', 'ignore_ament_install'] +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'ignore' +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'ignore_ament_install' +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extensions ['colcon_pkg'] +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'colcon_pkg' +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extensions ['colcon_meta'] +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'colcon_meta' +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extensions ['ros'] +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'ros' +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extensions ['cmake', 'python'] +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'cmake' +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'python' +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extensions ['python_setup_py'] +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'python_setup_py' +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/build) by extensions ['ignore', 'ignore_ament_install'] +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/build) by extension 'ignore' +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/build) ignored +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/install) by extensions ['ignore', 'ignore_ament_install'] +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/install) by extension 'ignore' +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/install) ignored +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/log) by extensions ['ignore', 'ignore_ament_install'] +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/log) by extension 'ignore' +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/log) ignored +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extensions ['ignore', 'ignore_ament_install'] +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'ignore' +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'ignore_ament_install' +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extensions ['colcon_pkg'] +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'colcon_pkg' +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extensions ['colcon_meta'] +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'colcon_meta' +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extensions ['ros'] +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'ros' +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extensions ['cmake', 'python'] +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'cmake' +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'python' +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extensions ['python_setup_py'] +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'python_setup_py' +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extensions ['ignore', 'ignore_ament_install'] +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'ignore' +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'ignore_ament_install' +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extensions ['colcon_pkg'] +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'colcon_pkg' +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extensions ['colcon_meta'] +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'colcon_meta' +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extensions ['ros'] +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'ros' +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extensions ['cmake', 'python'] +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'cmake' +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'python' +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extensions ['python_setup_py'] +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'python_setup_py' +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extensions ['ignore', 'ignore_ament_install'] +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'ignore' +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'ignore_ament_install' +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extensions ['colcon_pkg'] +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'colcon_pkg' +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extensions ['colcon_meta'] +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'colcon_meta' +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extensions ['ros'] +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'ros' +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extensions ['cmake', 'python'] +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'cmake' +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'python' +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extensions ['python_setup_py'] +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'python_setup_py' +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extensions ['ignore', 'ignore_ament_install'] +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'ignore' +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'ignore_ament_install' +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extensions ['colcon_pkg'] +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'colcon_pkg' +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extensions ['colcon_meta'] +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'colcon_meta' +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extensions ['ros'] +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'ros' +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extensions ['cmake', 'python'] +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'cmake' +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'python' +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extensions ['python_setup_py'] +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'python_setup_py' +[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extensions ['ignore', 'ignore_ament_install'] +[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'ignore' +[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'ignore_ament_install' +[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extensions ['colcon_pkg'] +[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'colcon_pkg' +[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extensions ['colcon_meta'] +[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'colcon_meta' +[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extensions ['ros'] +[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'ros' +[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extensions ['cmake', 'python'] +[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'cmake' +[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'python' +[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extensions ['python_setup_py'] +[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'python_setup_py' +[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extensions ['ignore', 'ignore_ament_install'] +[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extension 'ignore' +[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extension 'ignore_ament_install' +[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extensions ['colcon_pkg'] +[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extension 'colcon_pkg' +[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extensions ['colcon_meta'] +[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extension 'colcon_meta' +[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extensions ['ros'] +[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extension 'ros' +[0.217s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/controls_bringup' with type 'ros.ament_cmake' and name 'controls_bringup' +[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extensions ['ignore', 'ignore_ament_install'] +[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'ignore' +[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'ignore_ament_install' +[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extensions ['colcon_pkg'] +[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'colcon_pkg' +[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extensions ['colcon_meta'] +[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'colcon_meta' +[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extensions ['ros'] +[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'ros' +[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extensions ['cmake', 'python'] +[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'cmake' +[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'python' +[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extensions ['python_setup_py'] +[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'python_setup_py' +[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extensions ['ignore', 'ignore_ament_install'] +[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extension 'ignore' +[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extension 'ignore_ament_install' +[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extensions ['colcon_pkg'] +[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extension 'colcon_pkg' +[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extensions ['colcon_meta'] +[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extension 'colcon_meta' +[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extensions ['ros'] +[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extension 'ros' +[0.218s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm' with type 'ros.ament_cmake' and name 'mav_comm' +[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extensions ['ignore', 'ignore_ament_install'] +[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extension 'ignore' +[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extension 'ignore_ament_install' +[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extensions ['colcon_pkg'] +[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extension 'colcon_pkg' +[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extensions ['colcon_meta'] +[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extension 'colcon_meta' +[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extensions ['ros'] +[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extension 'ros' +[0.219s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs' with type 'ros.ament_cmake' and name 'mav_msgs' +[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extensions ['ignore', 'ignore_ament_install'] +[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extension 'ignore' +[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extension 'ignore_ament_install' +[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extensions ['colcon_pkg'] +[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extension 'colcon_pkg' +[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extensions ['colcon_meta'] +[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extension 'colcon_meta' +[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extensions ['ros'] +[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extension 'ros' +[0.220s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs' with type 'ros.ament_cmake' and name 'mav_planning_msgs' +[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extensions ['ignore', 'ignore_ament_install'] +[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extension 'ignore' +[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extension 'ignore_ament_install' +[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extensions ['colcon_pkg'] +[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extension 'colcon_pkg' +[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extensions ['colcon_meta'] +[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extension 'colcon_meta' +[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extensions ['ros'] +[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extension 'ros' +[0.221s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs' with type 'ros.ament_cmake' and name 'mav_state_machine_msgs' +[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extensions ['ignore', 'ignore_ament_install'] +[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extension 'ignore' +[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extension 'ignore_ament_install' +[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extensions ['colcon_pkg'] +[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extension 'colcon_pkg' +[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extensions ['colcon_meta'] +[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extension 'colcon_meta' +[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extensions ['ros'] +[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extension 'ros' +[0.222s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs' with type 'ros.ament_cmake' and name 'mav_system_msgs' +[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extensions ['ignore', 'ignore_ament_install'] +[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extension 'ignore' +[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extension 'ignore_ament_install' +[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extensions ['colcon_pkg'] +[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extension 'colcon_pkg' +[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extensions ['colcon_meta'] +[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extension 'colcon_meta' +[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extensions ['ros'] +[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extension 'ros' +[0.223s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/mavros_interface' with type 'ros.ament_cmake' and name 'mavros_interface' +[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extensions ['ignore', 'ignore_ament_install'] +[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extension 'ignore' +[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extension 'ignore_ament_install' +[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extensions ['colcon_pkg'] +[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extension 'colcon_pkg' +[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extensions ['colcon_meta'] +[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extension 'colcon_meta' +[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extensions ['ros'] +[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extension 'ros' +[0.224s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/px4_msgs' with type 'ros.ament_cmake' and name 'px4_msgs' +[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extensions ['ignore', 'ignore_ament_install'] +[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extension 'ignore' +[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extension 'ignore_ament_install' +[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extensions ['colcon_pkg'] +[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extension 'colcon_pkg' +[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extensions ['colcon_meta'] +[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extension 'colcon_meta' +[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extensions ['ros'] +[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extension 'ros' +[0.225s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/px4_ros_com' with type 'ros.ament_cmake' and name 'px4_ros_com' +[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extensions ['ignore', 'ignore_ament_install'] +[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extension 'ignore' +[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extension 'ignore_ament_install' +[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extensions ['colcon_pkg'] +[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extension 'colcon_pkg' +[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extensions ['colcon_meta'] +[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extension 'colcon_meta' +[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extensions ['ros'] +[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extension 'ros' +[0.226s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/robot_interface' with type 'ros.ament_cmake' and name 'robot_interface' +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extensions ['ignore', 'ignore_ament_install'] +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'ignore' +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'ignore_ament_install' +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extensions ['colcon_pkg'] +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'colcon_pkg' +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extensions ['colcon_meta'] +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'colcon_meta' +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extensions ['ros'] +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'ros' +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extensions ['cmake', 'python'] +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'cmake' +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'python' +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extensions ['python_setup_py'] +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'python_setup_py' +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extensions ['ignore', 'ignore_ament_install'] +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'ignore' +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'ignore_ament_install' +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extensions ['colcon_pkg'] +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'colcon_pkg' +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extensions ['colcon_meta'] +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'colcon_meta' +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extensions ['ros'] +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'ros' +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extensions ['cmake', 'python'] +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'cmake' +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'python' +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extensions ['python_setup_py'] +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'python_setup_py' +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extensions ['ignore', 'ignore_ament_install'] +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'ignore' +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'ignore_ament_install' +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extensions ['colcon_pkg'] +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'colcon_pkg' +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extensions ['colcon_meta'] +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'colcon_meta' +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extensions ['ros'] +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'ros' +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extensions ['cmake', 'python'] +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'cmake' +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'python' +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extensions ['python_setup_py'] +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'python_setup_py' +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extensions ['ignore', 'ignore_ament_install'] +[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'ignore' +[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'ignore_ament_install' +[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extensions ['colcon_pkg'] +[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'colcon_pkg' +[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extensions ['colcon_meta'] +[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'colcon_meta' +[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extensions ['ros'] +[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'ros' +[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extensions ['cmake', 'python'] +[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'cmake' +[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'python' +[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extensions ['python_setup_py'] +[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'python_setup_py' +[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation) by extensions ['ignore', 'ignore_ament_install'] +[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation) by extension 'ignore' +[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation) ignored +[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/core_local_planner) by extensions ['ignore', 'ignore_ament_install'] +[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/core_local_planner) by extension 'ignore' +[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/core_local_planner) ignored +[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extensions ['ignore', 'ignore_ament_install'] +[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extension 'ignore' +[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extension 'ignore_ament_install' +[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extensions ['colcon_pkg'] +[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extension 'colcon_pkg' +[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extensions ['colcon_meta'] +[0.229s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extension 'colcon_meta' +[0.229s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extensions ['ros'] +[0.229s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extension 'ros' +[0.229s] DEBUG:colcon.colcon_core.package_identification:Failed to parse potential ROS package manifest in'ros_ws/src/robot/autonomy/planning/local/disparity_expansion': Error(s) in package 'ros_ws/src/robot/autonomy/planning/local/disparity_expansion/package.xml': +Error(s): +- The manifest of package "disparity_expansion" (with format version 1) must not contain the following tags: exec_depend +- Either update to a newer format or replace tags with tags. +[0.229s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extensions ['cmake', 'python'] +[0.229s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extension 'cmake' +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extension 'python' +[0.231s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/planning/local/disparity_expansion' with type 'cmake' and name 'disparity_expansion' +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp) by extensions ['ignore', 'ignore_ament_install'] +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp) by extension 'ignore' +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp) ignored +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extensions ['ignore', 'ignore_ament_install'] +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'ignore' +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'ignore_ament_install' +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extensions ['colcon_pkg'] +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'colcon_pkg' +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extensions ['colcon_meta'] +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'colcon_meta' +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extensions ['ros'] +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'ros' +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extensions ['cmake', 'python'] +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'cmake' +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'python' +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extensions ['python_setup_py'] +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'python_setup_py' +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extensions ['ignore', 'ignore_ament_install'] +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'ignore' +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'ignore_ament_install' +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extensions ['colcon_pkg'] +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'colcon_pkg' +[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extensions ['colcon_meta'] +[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'colcon_meta' +[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extensions ['ros'] +[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'ros' +[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extensions ['cmake', 'python'] +[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'cmake' +[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'python' +[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extensions ['python_setup_py'] +[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'python_setup_py' +[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extensions ['ignore', 'ignore_ament_install'] +[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extension 'ignore' +[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extension 'ignore_ament_install' +[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extensions ['colcon_pkg'] +[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extension 'colcon_pkg' +[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extensions ['colcon_meta'] +[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extension 'colcon_meta' +[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extensions ['ros'] +[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extension 'ros' +[0.233s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping' with type 'ros.cmake' and name 'vdb_mapping' +[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extensions ['ignore', 'ignore_ament_install'] +[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'ignore' +[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'ignore_ament_install' +[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extensions ['colcon_pkg'] +[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'colcon_pkg' +[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extensions ['colcon_meta'] +[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'colcon_meta' +[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extensions ['ros'] +[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'ros' +[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extensions ['cmake', 'python'] +[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'cmake' +[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'python' +[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extensions ['python_setup_py'] +[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'python_setup_py' +[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extensions ['ignore', 'ignore_ament_install'] +[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extension 'ignore' +[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extension 'ignore_ament_install' +[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extensions ['colcon_pkg'] +[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extension 'colcon_pkg' +[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extensions ['colcon_meta'] +[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extension 'colcon_meta' +[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extensions ['ros'] +[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extension 'ros' +[0.234s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces' with type 'ros.ament_cmake' and name 'vdb_mapping_interfaces' +[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extensions ['ignore', 'ignore_ament_install'] +[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extension 'ignore' +[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extension 'ignore_ament_install' +[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extensions ['colcon_pkg'] +[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extension 'colcon_pkg' +[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extensions ['colcon_meta'] +[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extension 'colcon_meta' +[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extensions ['ros'] +[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extension 'ros' +[0.235s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2' with type 'ros.ament_cmake' and name 'vdb_mapping_ros2' +[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extensions ['ignore', 'ignore_ament_install'] +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'ignore' +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'ignore_ament_install' +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extensions ['colcon_pkg'] +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'colcon_pkg' +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extensions ['colcon_meta'] +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'colcon_meta' +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extensions ['ros'] +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'ros' +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extensions ['cmake', 'python'] +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'cmake' +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'python' +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extensions ['python_setup_py'] +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'python_setup_py' +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extensions ['ignore', 'ignore_ament_install'] +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extension 'ignore' +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extension 'ignore_ament_install' +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extensions ['colcon_pkg'] +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extension 'colcon_pkg' +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extensions ['colcon_meta'] +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extension 'colcon_meta' +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extensions ['ros'] +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extension 'ros' +[0.237s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/robot_bringup' with type 'ros.ament_cmake' and name 'robot_bringup' +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extensions ['ignore', 'ignore_ament_install'] +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'ignore' +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'ignore_ament_install' +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extensions ['colcon_pkg'] +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'colcon_pkg' +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extensions ['colcon_meta'] +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'colcon_meta' +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extensions ['ros'] +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'ros' +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extensions ['cmake', 'python'] +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'cmake' +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'python' +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extensions ['python_setup_py'] +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'python_setup_py' +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extensions ['ignore', 'ignore_ament_install'] +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'ignore' +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'ignore_ament_install' +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extensions ['colcon_pkg'] +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'colcon_pkg' +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extensions ['colcon_meta'] +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'colcon_meta' +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extensions ['ros'] +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'ros' +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extensions ['cmake', 'python'] +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'cmake' +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'python' +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extensions ['python_setup_py'] +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'python_setup_py' +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extensions ['ignore', 'ignore_ament_install'] +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'ignore' +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'ignore_ament_install' +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extensions ['colcon_pkg'] +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'colcon_pkg' +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extensions ['colcon_meta'] +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'colcon_meta' +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extensions ['ros'] +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'ros' +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extensions ['cmake', 'python'] +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'cmake' +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'python' +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extensions ['python_setup_py'] +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'python_setup_py' +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extensions ['ignore', 'ignore_ament_install'] +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'ignore' +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'ignore_ament_install' +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extensions ['colcon_pkg'] +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'colcon_pkg' +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extensions ['colcon_meta'] +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'colcon_meta' +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extensions ['ros'] +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'ros' +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extensions ['cmake', 'python'] +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'cmake' +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'python' +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extensions ['python_setup_py'] +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'python_setup_py' +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extensions ['ignore', 'ignore_ament_install'] +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'ignore' +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'ignore_ament_install' +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extensions ['colcon_pkg'] +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'colcon_pkg' +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extensions ['colcon_meta'] +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'colcon_meta' +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extensions ['ros'] +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'ros' +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extensions ['cmake', 'python'] +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'cmake' +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'python' +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extensions ['python_setup_py'] +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'python_setup_py' +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extensions ['ignore', 'ignore_ament_install'] +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'ignore' +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'ignore_ament_install' +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extensions ['colcon_pkg'] +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'colcon_pkg' +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extensions ['colcon_meta'] +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'colcon_meta' +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extensions ['ros'] +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'ros' +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extensions ['cmake', 'python'] +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'cmake' +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'python' +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extensions ['python_setup_py'] +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'python_setup_py' +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extensions ['ignore', 'ignore_ament_install'] +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'ignore' +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'ignore_ament_install' +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extensions ['colcon_pkg'] +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'colcon_pkg' +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extensions ['colcon_meta'] +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'colcon_meta' +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extensions ['ros'] +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'ros' +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extensions ['cmake', 'python'] +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'cmake' +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'python' +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extensions ['python_setup_py'] +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'python_setup_py' +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extensions ['ignore', 'ignore_ament_install'] +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'ignore' +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'ignore_ament_install' +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extensions ['colcon_pkg'] +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'colcon_pkg' +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extensions ['colcon_meta'] +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'colcon_meta' +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extensions ['ros'] +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'ros' +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extensions ['cmake', 'python'] +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'cmake' +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'python' +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extensions ['python_setup_py'] +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'python_setup_py' +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extensions ['ignore', 'ignore_ament_install'] +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'ignore' +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'ignore_ament_install' +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extensions ['colcon_pkg'] +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'colcon_pkg' +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extensions ['colcon_meta'] +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'colcon_meta' +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extensions ['ros'] +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'ros' +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extensions ['cmake', 'python'] +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'cmake' +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'python' +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extensions ['python_setup_py'] +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'python_setup_py' +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extensions ['ignore', 'ignore_ament_install'] +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'ignore' +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'ignore_ament_install' +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extensions ['colcon_pkg'] +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'colcon_pkg' +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extensions ['colcon_meta'] +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'colcon_meta' +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extensions ['ros'] +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'ros' +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extensions ['cmake', 'python'] +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'cmake' +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'python' +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extensions ['python_setup_py'] +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'python_setup_py' +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extensions ['ignore', 'ignore_ament_install'] +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'ignore' +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'ignore_ament_install' +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extensions ['colcon_pkg'] +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'colcon_pkg' +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extensions ['colcon_meta'] +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'colcon_meta' +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extensions ['ros'] +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'ros' +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extensions ['cmake', 'python'] +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'cmake' +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'python' +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extensions ['python_setup_py'] +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'python_setup_py' +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extensions ['ignore', 'ignore_ament_install'] +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'ignore' +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'ignore_ament_install' +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extensions ['colcon_pkg'] +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'colcon_pkg' +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extensions ['colcon_meta'] +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'colcon_meta' +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extensions ['ros'] +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'ros' +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extensions ['cmake', 'python'] +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'cmake' +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'python' +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extensions ['python_setup_py'] +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'python_setup_py' +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extensions ['ignore', 'ignore_ament_install'] +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'ignore' +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'ignore_ament_install' +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extensions ['colcon_pkg'] +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'colcon_pkg' +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extensions ['colcon_meta'] +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'colcon_meta' +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extensions ['ros'] +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'ros' +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extensions ['cmake', 'python'] +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'cmake' +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'python' +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extensions ['python_setup_py'] +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'python_setup_py' +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extensions ['ignore', 'ignore_ament_install'] +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'ignore' +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'ignore_ament_install' +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extensions ['colcon_pkg'] +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'colcon_pkg' +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extensions ['colcon_meta'] +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'colcon_meta' +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extensions ['ros'] +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'ros' +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extensions ['cmake', 'python'] +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'cmake' +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'python' +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extensions ['python_setup_py'] +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'python_setup_py' +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extensions ['ignore', 'ignore_ament_install'] +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'ignore' +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'ignore_ament_install' +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extensions ['colcon_pkg'] +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'colcon_pkg' +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extensions ['colcon_meta'] +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'colcon_meta' +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extensions ['ros'] +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'ros' +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extensions ['cmake', 'python'] +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'cmake' +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'python' +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extensions ['python_setup_py'] +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'python_setup_py' +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extensions ['ignore', 'ignore_ament_install'] +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'ignore' +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'ignore_ament_install' +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extensions ['colcon_pkg'] +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'colcon_pkg' +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extensions ['colcon_meta'] +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'colcon_meta' +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extensions ['ros'] +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'ros' +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extensions ['cmake', 'python'] +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'cmake' +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'python' +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extensions ['python_setup_py'] +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'python_setup_py' +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extensions ['ignore', 'ignore_ament_install'] +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'ignore' +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'ignore_ament_install' +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extensions ['colcon_pkg'] +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'colcon_pkg' +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extensions ['colcon_meta'] +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'colcon_meta' +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extensions ['ros'] +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'ros' +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extensions ['cmake', 'python'] +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'cmake' +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'python' +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extensions ['python_setup_py'] +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'python_setup_py' +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extensions ['ignore', 'ignore_ament_install'] +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'ignore' +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'ignore_ament_install' +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extensions ['colcon_pkg'] +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'colcon_pkg' +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extensions ['colcon_meta'] +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'colcon_meta' +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extensions ['ros'] +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'ros' +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extensions ['cmake', 'python'] +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'cmake' +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'python' +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extensions ['python_setup_py'] +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'python_setup_py' +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extensions ['ignore', 'ignore_ament_install'] +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'ignore' +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'ignore_ament_install' +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extensions ['colcon_pkg'] +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'colcon_pkg' +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extensions ['colcon_meta'] +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'colcon_meta' +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extensions ['ros'] +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'ros' +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extensions ['cmake', 'python'] +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'cmake' +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'python' +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extensions ['python_setup_py'] +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'python_setup_py' +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extensions ['ignore', 'ignore_ament_install'] +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'ignore' +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'ignore_ament_install' +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extensions ['colcon_pkg'] +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'colcon_pkg' +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extensions ['colcon_meta'] +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'colcon_meta' +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extensions ['ros'] +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'ros' +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extensions ['cmake', 'python'] +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'cmake' +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'python' +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extensions ['python_setup_py'] +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'python_setup_py' +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extensions ['ignore', 'ignore_ament_install'] +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'ignore' +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'ignore_ament_install' +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extensions ['colcon_pkg'] +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'colcon_pkg' +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extensions ['colcon_meta'] +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'colcon_meta' +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extensions ['ros'] +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'ros' +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extensions ['cmake', 'python'] +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'cmake' +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'python' +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extensions ['python_setup_py'] +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'python_setup_py' +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extensions ['ignore', 'ignore_ament_install'] +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'ignore' +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'ignore_ament_install' +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extensions ['colcon_pkg'] +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'colcon_pkg' +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extensions ['colcon_meta'] +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'colcon_meta' +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extensions ['ros'] +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'ros' +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extensions ['cmake', 'python'] +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'cmake' +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'python' +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extensions ['python_setup_py'] +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'python_setup_py' +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extensions ['ignore', 'ignore_ament_install'] +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'ignore' +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'ignore_ament_install' +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extensions ['colcon_pkg'] +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'colcon_pkg' +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extensions ['colcon_meta'] +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'colcon_meta' +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extensions ['ros'] +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'ros' +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extensions ['cmake', 'python'] +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'cmake' +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'python' +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extensions ['python_setup_py'] +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'python_setup_py' +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extensions ['ignore', 'ignore_ament_install'] +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'ignore' +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'ignore_ament_install' +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extensions ['colcon_pkg'] +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'colcon_pkg' +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extensions ['colcon_meta'] +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'colcon_meta' +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extensions ['ros'] +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'ros' +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extensions ['cmake', 'python'] +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'cmake' +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'python' +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extensions ['python_setup_py'] +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'python_setup_py' +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extensions ['ignore', 'ignore_ament_install'] +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'ignore' +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'ignore_ament_install' +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extensions ['colcon_pkg'] +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'colcon_pkg' +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extensions ['colcon_meta'] +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'colcon_meta' +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extensions ['ros'] +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'ros' +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extensions ['cmake', 'python'] +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'cmake' +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'python' +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extensions ['python_setup_py'] +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'python_setup_py' +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extensions ['ignore', 'ignore_ament_install'] +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'ignore' +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'ignore_ament_install' +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extensions ['colcon_pkg'] +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'colcon_pkg' +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extensions ['colcon_meta'] +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'colcon_meta' +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extensions ['ros'] +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'ros' +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extensions ['cmake', 'python'] +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'cmake' +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'python' +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extensions ['python_setup_py'] +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'python_setup_py' +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extensions ['ignore', 'ignore_ament_install'] +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'ignore' +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'ignore_ament_install' +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extensions ['colcon_pkg'] +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'colcon_pkg' +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extensions ['colcon_meta'] +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'colcon_meta' +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extensions ['ros'] +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'ros' +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extensions ['cmake', 'python'] +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'cmake' +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'python' +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extensions ['python_setup_py'] +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'python_setup_py' +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extensions ['ignore', 'ignore_ament_install'] +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'ignore' +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'ignore_ament_install' +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extensions ['colcon_pkg'] +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'colcon_pkg' +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extensions ['colcon_meta'] +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'colcon_meta' +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extensions ['ros'] +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'ros' +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extensions ['cmake', 'python'] +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'cmake' +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'python' +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extensions ['python_setup_py'] +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'python_setup_py' +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extensions ['ignore', 'ignore_ament_install'] +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'ignore' +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'ignore_ament_install' +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extensions ['colcon_pkg'] +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'colcon_pkg' +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extensions ['colcon_meta'] +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'colcon_meta' +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extensions ['ros'] +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'ros' +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extensions ['cmake', 'python'] +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'cmake' +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'python' +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extensions ['python_setup_py'] +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'python_setup_py' +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extensions ['ignore', 'ignore_ament_install'] +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'ignore' +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'ignore_ament_install' +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extensions ['colcon_pkg'] +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'colcon_pkg' +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extensions ['colcon_meta'] +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'colcon_meta' +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extensions ['ros'] +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'ros' +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extensions ['cmake', 'python'] +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'cmake' +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'python' +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extensions ['python_setup_py'] +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'python_setup_py' +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extensions ['ignore', 'ignore_ament_install'] +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'ignore' +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'ignore_ament_install' +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extensions ['colcon_pkg'] +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'colcon_pkg' +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extensions ['colcon_meta'] +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'colcon_meta' +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extensions ['ros'] +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'ros' +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extensions ['cmake', 'python'] +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'cmake' +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'python' +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extensions ['python_setup_py'] +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'python_setup_py' +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extensions ['ignore', 'ignore_ament_install'] +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'ignore' +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'ignore_ament_install' +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extensions ['colcon_pkg'] +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'colcon_pkg' +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extensions ['colcon_meta'] +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'colcon_meta' +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extensions ['ros'] +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'ros' +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extensions ['cmake', 'python'] +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'cmake' +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'python' +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extensions ['python_setup_py'] +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'python_setup_py' +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extensions ['ignore', 'ignore_ament_install'] +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'ignore' +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'ignore_ament_install' +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extensions ['colcon_pkg'] +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'colcon_pkg' +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extensions ['colcon_meta'] +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'colcon_meta' +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extensions ['ros'] +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'ros' +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extensions ['cmake', 'python'] +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'cmake' +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'python' +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extensions ['python_setup_py'] +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'python_setup_py' +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extensions ['ignore', 'ignore_ament_install'] +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'ignore' +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'ignore_ament_install' +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extensions ['colcon_pkg'] +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'colcon_pkg' +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extensions ['colcon_meta'] +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'colcon_meta' +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extensions ['ros'] +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'ros' +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extensions ['cmake', 'python'] +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'cmake' +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'python' +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extensions ['python_setup_py'] +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'python_setup_py' +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extensions ['ignore', 'ignore_ament_install'] +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'ignore' +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'ignore_ament_install' +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extensions ['colcon_pkg'] +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'colcon_pkg' +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extensions ['colcon_meta'] +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'colcon_meta' +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extensions ['ros'] +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'ros' +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extensions ['cmake', 'python'] +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'cmake' +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'python' +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extensions ['python_setup_py'] +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'python_setup_py' +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extensions ['ignore', 'ignore_ament_install'] +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'ignore' +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'ignore_ament_install' +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extensions ['colcon_pkg'] +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'colcon_pkg' +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extensions ['colcon_meta'] +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'colcon_meta' +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extensions ['ros'] +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'ros' +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extensions ['cmake', 'python'] +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'cmake' +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'python' +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extensions ['python_setup_py'] +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'python_setup_py' +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extensions ['ignore', 'ignore_ament_install'] +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'ignore' +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'ignore_ament_install' +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extensions ['colcon_pkg'] +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'colcon_pkg' +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extensions ['colcon_meta'] +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'colcon_meta' +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extensions ['ros'] +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'ros' +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extensions ['cmake', 'python'] +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'cmake' +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'python' +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extensions ['python_setup_py'] +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'python_setup_py' +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extensions ['ignore', 'ignore_ament_install'] +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'ignore' +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'ignore_ament_install' +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extensions ['colcon_pkg'] +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'colcon_pkg' +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extensions ['colcon_meta'] +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'colcon_meta' +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extensions ['ros'] +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'ros' +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extensions ['cmake', 'python'] +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'cmake' +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'python' +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extensions ['python_setup_py'] +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'python_setup_py' +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extensions ['ignore', 'ignore_ament_install'] +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'ignore' +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'ignore_ament_install' +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extensions ['colcon_pkg'] +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'colcon_pkg' +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extensions ['colcon_meta'] +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'colcon_meta' +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extensions ['ros'] +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'ros' +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extensions ['cmake', 'python'] +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'cmake' +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'python' +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extensions ['python_setup_py'] +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'python_setup_py' +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extensions ['ignore', 'ignore_ament_install'] +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'ignore' +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'ignore_ament_install' +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extensions ['colcon_pkg'] +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'colcon_pkg' +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extensions ['colcon_meta'] +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'colcon_meta' +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extensions ['ros'] +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'ros' +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extensions ['cmake', 'python'] +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'cmake' +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'python' +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extensions ['python_setup_py'] +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'python_setup_py' +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extensions ['ignore', 'ignore_ament_install'] +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'ignore' +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'ignore_ament_install' +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extensions ['colcon_pkg'] +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'colcon_pkg' +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extensions ['colcon_meta'] +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'colcon_meta' +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extensions ['ros'] +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'ros' +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extensions ['cmake', 'python'] +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'cmake' +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'python' +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extensions ['python_setup_py'] +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'python_setup_py' +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extensions ['ignore', 'ignore_ament_install'] +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'ignore' +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'ignore_ament_install' +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extensions ['colcon_pkg'] +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'colcon_pkg' +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extensions ['colcon_meta'] +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'colcon_meta' +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extensions ['ros'] +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'ros' +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extensions ['cmake', 'python'] +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'cmake' +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'python' +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extensions ['python_setup_py'] +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'python_setup_py' +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extensions ['ignore', 'ignore_ament_install'] +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'ignore' +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'ignore_ament_install' +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extensions ['colcon_pkg'] +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'colcon_pkg' +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extensions ['colcon_meta'] +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'colcon_meta' +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extensions ['ros'] +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'ros' +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extensions ['cmake', 'python'] +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'cmake' +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'python' +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extensions ['python_setup_py'] +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'python_setup_py' +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extensions ['ignore', 'ignore_ament_install'] +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'ignore' +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'ignore_ament_install' +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extensions ['colcon_pkg'] +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'colcon_pkg' +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extensions ['colcon_meta'] +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'colcon_meta' +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extensions ['ros'] +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'ros' +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extensions ['cmake', 'python'] +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'cmake' +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'python' +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extensions ['python_setup_py'] +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'python_setup_py' +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extensions ['ignore', 'ignore_ament_install'] +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'ignore' +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'ignore_ament_install' +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extensions ['colcon_pkg'] +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'colcon_pkg' +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extensions ['colcon_meta'] +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'colcon_meta' +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extensions ['ros'] +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'ros' +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extensions ['cmake', 'python'] +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'cmake' +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'python' +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extensions ['python_setup_py'] +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'python_setup_py' +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extensions ['ignore', 'ignore_ament_install'] +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'ignore' +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'ignore_ament_install' +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extensions ['colcon_pkg'] +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'colcon_pkg' +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extensions ['colcon_meta'] +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'colcon_meta' +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extensions ['ros'] +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'ros' +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extensions ['cmake', 'python'] +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'cmake' +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'python' +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extensions ['python_setup_py'] +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'python_setup_py' +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extensions ['ignore', 'ignore_ament_install'] +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'ignore' +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'ignore_ament_install' +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extensions ['colcon_pkg'] +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'colcon_pkg' +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extensions ['colcon_meta'] +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'colcon_meta' +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extensions ['ros'] +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'ros' +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extensions ['cmake', 'python'] +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'cmake' +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'python' +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extensions ['python_setup_py'] +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'python_setup_py' +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extensions ['ignore', 'ignore_ament_install'] +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'ignore' +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'ignore_ament_install' +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extensions ['colcon_pkg'] +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'colcon_pkg' +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extensions ['colcon_meta'] +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'colcon_meta' +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extensions ['ros'] +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'ros' +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extensions ['cmake', 'python'] +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'cmake' +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'python' +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extensions ['python_setup_py'] +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'python_setup_py' +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extensions ['ignore', 'ignore_ament_install'] +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'ignore' +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'ignore_ament_install' +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extensions ['colcon_pkg'] +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'colcon_pkg' +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extensions ['colcon_meta'] +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'colcon_meta' +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extensions ['ros'] +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'ros' +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extensions ['cmake', 'python'] +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'cmake' +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'python' +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extensions ['python_setup_py'] +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'python_setup_py' +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extensions ['ignore', 'ignore_ament_install'] +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'ignore' +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'ignore_ament_install' +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extensions ['colcon_pkg'] +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'colcon_pkg' +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extensions ['colcon_meta'] +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'colcon_meta' +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extensions ['ros'] +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'ros' +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extensions ['cmake', 'python'] +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'cmake' +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'python' +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extensions ['python_setup_py'] +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'python_setup_py' +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extensions ['ignore', 'ignore_ament_install'] +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'ignore' +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'ignore_ament_install' +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extensions ['colcon_pkg'] +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'colcon_pkg' +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extensions ['colcon_meta'] +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'colcon_meta' +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extensions ['ros'] +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'ros' +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extensions ['cmake', 'python'] +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'cmake' +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'python' +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extensions ['python_setup_py'] +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'python_setup_py' +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extensions ['ignore', 'ignore_ament_install'] +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'ignore' +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'ignore_ament_install' +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extensions ['colcon_pkg'] +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'colcon_pkg' +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extensions ['colcon_meta'] +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'colcon_meta' +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extensions ['ros'] +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'ros' +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extensions ['cmake', 'python'] +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'cmake' +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'python' +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extensions ['python_setup_py'] +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'python_setup_py' +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extensions ['ignore', 'ignore_ament_install'] +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'ignore' +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'ignore_ament_install' +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extensions ['colcon_pkg'] +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'colcon_pkg' +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extensions ['colcon_meta'] +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'colcon_meta' +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extensions ['ros'] +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'ros' +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extensions ['cmake', 'python'] +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'cmake' +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'python' +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extensions ['python_setup_py'] +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'python_setup_py' +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extensions ['ignore', 'ignore_ament_install'] +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'ignore' +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'ignore_ament_install' +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extensions ['colcon_pkg'] +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'colcon_pkg' +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extensions ['colcon_meta'] +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'colcon_meta' +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extensions ['ros'] +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'ros' +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extensions ['cmake', 'python'] +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'cmake' +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'python' +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extensions ['python_setup_py'] +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'python_setup_py' +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extensions ['ignore', 'ignore_ament_install'] +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'ignore' +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'ignore_ament_install' +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extensions ['colcon_pkg'] +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'colcon_pkg' +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extensions ['colcon_meta'] +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'colcon_meta' +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extensions ['ros'] +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'ros' +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extensions ['cmake', 'python'] +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'cmake' +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'python' +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extensions ['python_setup_py'] +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'python_setup_py' +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extensions ['ignore', 'ignore_ament_install'] +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'ignore' +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'ignore_ament_install' +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extensions ['colcon_pkg'] +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'colcon_pkg' +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extensions ['colcon_meta'] +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'colcon_meta' +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extensions ['ros'] +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'ros' +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extensions ['cmake', 'python'] +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'cmake' +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'python' +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extensions ['python_setup_py'] +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'python_setup_py' +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extensions ['ignore', 'ignore_ament_install'] +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'ignore' +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'ignore_ament_install' +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extensions ['colcon_pkg'] +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'colcon_pkg' +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extensions ['colcon_meta'] +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'colcon_meta' +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extensions ['ros'] +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'ros' +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extensions ['cmake', 'python'] +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'cmake' +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'python' +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extensions ['python_setup_py'] +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'python_setup_py' +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extensions ['ignore', 'ignore_ament_install'] +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'ignore' +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'ignore_ament_install' +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extensions ['colcon_pkg'] +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'colcon_pkg' +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extensions ['colcon_meta'] +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'colcon_meta' +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extensions ['ros'] +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'ros' +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extensions ['cmake', 'python'] +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'cmake' +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'python' +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extensions ['python_setup_py'] +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'python_setup_py' +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extensions ['ignore', 'ignore_ament_install'] +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'ignore' +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'ignore_ament_install' +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extensions ['colcon_pkg'] +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'colcon_pkg' +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extensions ['colcon_meta'] +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'colcon_meta' +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extensions ['ros'] +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'ros' +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extensions ['cmake', 'python'] +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'cmake' +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'python' +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extensions ['python_setup_py'] +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'python_setup_py' +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extensions ['ignore', 'ignore_ament_install'] +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'ignore' +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'ignore_ament_install' +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extensions ['colcon_pkg'] +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'colcon_pkg' +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extensions ['colcon_meta'] +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'colcon_meta' +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extensions ['ros'] +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'ros' +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extensions ['cmake', 'python'] +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'cmake' +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'python' +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extensions ['python_setup_py'] +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'python_setup_py' +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extensions ['ignore', 'ignore_ament_install'] +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'ignore' +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'ignore_ament_install' +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extensions ['colcon_pkg'] +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'colcon_pkg' +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extensions ['colcon_meta'] +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'colcon_meta' +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extensions ['ros'] +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'ros' +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extensions ['cmake', 'python'] +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'cmake' +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'python' +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extensions ['python_setup_py'] +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'python_setup_py' +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extensions ['ignore', 'ignore_ament_install'] +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'ignore' +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'ignore_ament_install' +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extensions ['colcon_pkg'] +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'colcon_pkg' +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extensions ['colcon_meta'] +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'colcon_meta' +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extensions ['ros'] +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'ros' +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extensions ['cmake', 'python'] +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'cmake' +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'python' +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extensions ['python_setup_py'] +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'python_setup_py' +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extensions ['ignore', 'ignore_ament_install'] +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'ignore' +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'ignore_ament_install' +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extensions ['colcon_pkg'] +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'colcon_pkg' +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extensions ['colcon_meta'] +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'colcon_meta' +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extensions ['ros'] +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'ros' +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extensions ['cmake', 'python'] +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'cmake' +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'python' +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extensions ['python_setup_py'] +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'python_setup_py' +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extensions ['ignore', 'ignore_ament_install'] +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'ignore' +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'ignore_ament_install' +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extensions ['colcon_pkg'] +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'colcon_pkg' +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extensions ['colcon_meta'] +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'colcon_meta' +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extensions ['ros'] +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'ros' +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extensions ['cmake', 'python'] +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'cmake' +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'python' +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extensions ['python_setup_py'] +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'python_setup_py' +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extensions ['ignore', 'ignore_ament_install'] +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'ignore' +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'ignore_ament_install' +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extensions ['colcon_pkg'] +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'colcon_pkg' +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extensions ['colcon_meta'] +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'colcon_meta' +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extensions ['ros'] +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'ros' +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extensions ['cmake', 'python'] +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'cmake' +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'python' +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extensions ['python_setup_py'] +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'python_setup_py' +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extensions ['ignore', 'ignore_ament_install'] +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'ignore' +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'ignore_ament_install' +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extensions ['colcon_pkg'] +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'colcon_pkg' +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extensions ['colcon_meta'] +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'colcon_meta' +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extensions ['ros'] +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'ros' +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extensions ['cmake', 'python'] +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'cmake' +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'python' +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extensions ['python_setup_py'] +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'python_setup_py' +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extensions ['ignore', 'ignore_ament_install'] +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'ignore' +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'ignore_ament_install' +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extensions ['colcon_pkg'] +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'colcon_pkg' +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extensions ['colcon_meta'] +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'colcon_meta' +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extensions ['ros'] +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'ros' +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extensions ['cmake', 'python'] +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'cmake' +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'python' +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extensions ['python_setup_py'] +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'python_setup_py' +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extensions ['ignore', 'ignore_ament_install'] +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'ignore' +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'ignore_ament_install' +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extensions ['colcon_pkg'] +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'colcon_pkg' +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extensions ['colcon_meta'] +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'colcon_meta' +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extensions ['ros'] +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'ros' +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extensions ['cmake', 'python'] +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'cmake' +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'python' +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extensions ['python_setup_py'] +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'python_setup_py' +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extensions ['ignore', 'ignore_ament_install'] +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'ignore' +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'ignore_ament_install' +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extensions ['colcon_pkg'] +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'colcon_pkg' +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extensions ['colcon_meta'] +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'colcon_meta' +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extensions ['ros'] +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'ros' +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extensions ['cmake', 'python'] +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'cmake' +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'python' +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extensions ['python_setup_py'] +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'python_setup_py' +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extensions ['ignore', 'ignore_ament_install'] +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'ignore' +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'ignore_ament_install' +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extensions ['colcon_pkg'] +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'colcon_pkg' +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extensions ['colcon_meta'] +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'colcon_meta' +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extensions ['ros'] +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'ros' +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extensions ['cmake', 'python'] +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'cmake' +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'python' +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extensions ['python_setup_py'] +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'python_setup_py' +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extensions ['ignore', 'ignore_ament_install'] +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'ignore' +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'ignore_ament_install' +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extensions ['colcon_pkg'] +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'colcon_pkg' +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extensions ['colcon_meta'] +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'colcon_meta' +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extensions ['ros'] +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'ros' +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extensions ['cmake', 'python'] +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'cmake' +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'python' +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extensions ['python_setup_py'] +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'python_setup_py' +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extensions ['ignore', 'ignore_ament_install'] +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'ignore' +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'ignore_ament_install' +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extensions ['colcon_pkg'] +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'colcon_pkg' +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extensions ['colcon_meta'] +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'colcon_meta' +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extensions ['ros'] +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'ros' +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extensions ['cmake', 'python'] +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'cmake' +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'python' +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extensions ['python_setup_py'] +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'python_setup_py' +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extensions ['ignore', 'ignore_ament_install'] +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'ignore' +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'ignore_ament_install' +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extensions ['colcon_pkg'] +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'colcon_pkg' +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extensions ['colcon_meta'] +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'colcon_meta' +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extensions ['ros'] +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'ros' +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extensions ['cmake', 'python'] +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'cmake' +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'python' +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extensions ['python_setup_py'] +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'python_setup_py' +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extensions ['ignore', 'ignore_ament_install'] +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'ignore' +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'ignore_ament_install' +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extensions ['colcon_pkg'] +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'colcon_pkg' +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extensions ['colcon_meta'] +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'colcon_meta' +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extensions ['ros'] +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'ros' +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extensions ['cmake', 'python'] +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'cmake' +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'python' +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extensions ['python_setup_py'] +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'python_setup_py' +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extensions ['ignore', 'ignore_ament_install'] +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'ignore' +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'ignore_ament_install' +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extensions ['colcon_pkg'] +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'colcon_pkg' +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extensions ['colcon_meta'] +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'colcon_meta' +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extensions ['ros'] +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'ros' +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extensions ['cmake', 'python'] +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'cmake' +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'python' +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extensions ['python_setup_py'] +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'python_setup_py' +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extensions ['ignore', 'ignore_ament_install'] +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'ignore' +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'ignore_ament_install' +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extensions ['colcon_pkg'] +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'colcon_pkg' +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extensions ['colcon_meta'] +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'colcon_meta' +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extensions ['ros'] +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'ros' +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extensions ['cmake', 'python'] +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'cmake' +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'python' +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extensions ['python_setup_py'] +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'python_setup_py' +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extensions ['ignore', 'ignore_ament_install'] +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'ignore' +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'ignore_ament_install' +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extensions ['colcon_pkg'] +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'colcon_pkg' +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extensions ['colcon_meta'] +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'colcon_meta' +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extensions ['ros'] +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'ros' +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extensions ['cmake', 'python'] +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'cmake' +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'python' +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extensions ['python_setup_py'] +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'python_setup_py' +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extensions ['ignore', 'ignore_ament_install'] +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'ignore' +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'ignore_ament_install' +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extensions ['colcon_pkg'] +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'colcon_pkg' +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extensions ['colcon_meta'] +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'colcon_meta' +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extensions ['ros'] +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'ros' +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extensions ['cmake', 'python'] +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'cmake' +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'python' +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extensions ['python_setup_py'] +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'python_setup_py' +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extensions ['ignore', 'ignore_ament_install'] +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'ignore' +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'ignore_ament_install' +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extensions ['colcon_pkg'] +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'colcon_pkg' +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extensions ['colcon_meta'] +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'colcon_meta' +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extensions ['ros'] +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'ros' +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extensions ['cmake', 'python'] +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'cmake' +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'python' +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extensions ['python_setup_py'] +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'python_setup_py' +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extensions ['ignore', 'ignore_ament_install'] +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'ignore' +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'ignore_ament_install' +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extensions ['colcon_pkg'] +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'colcon_pkg' +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extensions ['colcon_meta'] +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'colcon_meta' +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extensions ['ros'] +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'ros' +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extensions ['cmake', 'python'] +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'cmake' +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'python' +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extensions ['python_setup_py'] +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'python_setup_py' +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extensions ['ignore', 'ignore_ament_install'] +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'ignore' +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'ignore_ament_install' +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extensions ['colcon_pkg'] +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'colcon_pkg' +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extensions ['colcon_meta'] +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'colcon_meta' +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extensions ['ros'] +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'ros' +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extensions ['cmake', 'python'] +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'cmake' +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'python' +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extensions ['python_setup_py'] +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'python_setup_py' +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extensions ['ignore', 'ignore_ament_install'] +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'ignore' +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'ignore_ament_install' +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extensions ['colcon_pkg'] +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'colcon_pkg' +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extensions ['colcon_meta'] +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'colcon_meta' +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extensions ['ros'] +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'ros' +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extensions ['cmake', 'python'] +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'cmake' +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'python' +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extensions ['python_setup_py'] +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'python_setup_py' +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extensions ['ignore', 'ignore_ament_install'] +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'ignore' +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'ignore_ament_install' +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extensions ['colcon_pkg'] +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'colcon_pkg' +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extensions ['colcon_meta'] +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'colcon_meta' +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extensions ['ros'] +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'ros' +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extensions ['cmake', 'python'] +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'cmake' +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'python' +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extensions ['python_setup_py'] +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'python_setup_py' +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extensions ['ignore', 'ignore_ament_install'] +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'ignore' +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'ignore_ament_install' +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extensions ['colcon_pkg'] +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'colcon_pkg' +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extensions ['colcon_meta'] +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'colcon_meta' +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extensions ['ros'] +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'ros' +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extensions ['cmake', 'python'] +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'cmake' +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'python' +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extensions ['python_setup_py'] +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'python_setup_py' +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extensions ['ignore', 'ignore_ament_install'] +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'ignore' +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'ignore_ament_install' +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extensions ['colcon_pkg'] +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'colcon_pkg' +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extensions ['colcon_meta'] +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'colcon_meta' +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extensions ['ros'] +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'ros' +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extensions ['cmake', 'python'] +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'cmake' +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'python' +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extensions ['python_setup_py'] +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'python_setup_py' +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extensions ['ignore', 'ignore_ament_install'] +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'ignore' +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'ignore_ament_install' +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extensions ['colcon_pkg'] +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'colcon_pkg' +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extensions ['colcon_meta'] +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'colcon_meta' +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extensions ['ros'] +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'ros' +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extensions ['cmake', 'python'] +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'cmake' +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'python' +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extensions ['python_setup_py'] +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'python_setup_py' +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extensions ['ignore', 'ignore_ament_install'] +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'ignore' +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'ignore_ament_install' +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extensions ['colcon_pkg'] +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'colcon_pkg' +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extensions ['colcon_meta'] +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'colcon_meta' +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extensions ['ros'] +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'ros' +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extensions ['cmake', 'python'] +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'cmake' +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'python' +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extensions ['python_setup_py'] +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'python_setup_py' +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extensions ['ignore', 'ignore_ament_install'] +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'ignore' +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'ignore_ament_install' +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extensions ['colcon_pkg'] +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'colcon_pkg' +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extensions ['colcon_meta'] +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'colcon_meta' +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extensions ['ros'] +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'ros' +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extensions ['cmake', 'python'] +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'cmake' +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'python' +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extensions ['python_setup_py'] +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'python_setup_py' +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extensions ['ignore', 'ignore_ament_install'] +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'ignore' +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'ignore_ament_install' +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extensions ['colcon_pkg'] +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'colcon_pkg' +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extensions ['colcon_meta'] +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'colcon_meta' +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extensions ['ros'] +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'ros' +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extensions ['cmake', 'python'] +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'cmake' +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'python' +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extensions ['python_setup_py'] +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'python_setup_py' +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extensions ['ignore', 'ignore_ament_install'] +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'ignore' +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'ignore_ament_install' +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extensions ['colcon_pkg'] +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'colcon_pkg' +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extensions ['colcon_meta'] +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'colcon_meta' +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extensions ['ros'] +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'ros' +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extensions ['cmake', 'python'] +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'cmake' +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'python' +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extensions ['python_setup_py'] +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'python_setup_py' +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extensions ['ignore', 'ignore_ament_install'] +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'ignore' +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'ignore_ament_install' +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extensions ['colcon_pkg'] +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'colcon_pkg' +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extensions ['colcon_meta'] +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'colcon_meta' +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extensions ['ros'] +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'ros' +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extensions ['cmake', 'python'] +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'cmake' +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'python' +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extensions ['python_setup_py'] +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'python_setup_py' +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extensions ['ignore', 'ignore_ament_install'] +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'ignore' +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'ignore_ament_install' +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extensions ['colcon_pkg'] +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'colcon_pkg' +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extensions ['colcon_meta'] +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'colcon_meta' +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extensions ['ros'] +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'ros' +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extensions ['cmake', 'python'] +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'cmake' +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'python' +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extensions ['python_setup_py'] +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'python_setup_py' +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extensions ['ignore', 'ignore_ament_install'] +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'ignore' +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'ignore_ament_install' +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extensions ['colcon_pkg'] +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'colcon_pkg' +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extensions ['colcon_meta'] +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'colcon_meta' +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extensions ['ros'] +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'ros' +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extensions ['cmake', 'python'] +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'cmake' +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'python' +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extensions ['python_setup_py'] +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'python_setup_py' +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extensions ['ignore', 'ignore_ament_install'] +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'ignore' +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'ignore_ament_install' +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extensions ['colcon_pkg'] +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'colcon_pkg' +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extensions ['colcon_meta'] +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'colcon_meta' +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extensions ['ros'] +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'ros' +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extensions ['cmake', 'python'] +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'cmake' +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'python' +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extensions ['python_setup_py'] +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'python_setup_py' +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extensions ['ignore', 'ignore_ament_install'] +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'ignore' +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'ignore_ament_install' +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extensions ['colcon_pkg'] +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'colcon_pkg' +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extensions ['colcon_meta'] +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'colcon_meta' +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extensions ['ros'] +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'ros' +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extensions ['cmake', 'python'] +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'cmake' +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'python' +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extensions ['python_setup_py'] +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'python_setup_py' +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extensions ['ignore', 'ignore_ament_install'] +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'ignore' +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'ignore_ament_install' +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extensions ['colcon_pkg'] +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'colcon_pkg' +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extensions ['colcon_meta'] +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'colcon_meta' +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extensions ['ros'] +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'ros' +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extensions ['cmake', 'python'] +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'cmake' +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'python' +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extensions ['python_setup_py'] +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'python_setup_py' +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extensions ['ignore', 'ignore_ament_install'] +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'ignore' +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'ignore_ament_install' +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extensions ['colcon_pkg'] +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'colcon_pkg' +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extensions ['colcon_meta'] +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'colcon_meta' +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extensions ['ros'] +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'ros' +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extensions ['cmake', 'python'] +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'cmake' +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'python' +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extensions ['python_setup_py'] +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'python_setup_py' +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extensions ['ignore', 'ignore_ament_install'] +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'ignore' +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'ignore_ament_install' +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extensions ['colcon_pkg'] +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'colcon_pkg' +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extensions ['colcon_meta'] +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'colcon_meta' +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extensions ['ros'] +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'ros' +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extensions ['cmake', 'python'] +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'cmake' +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'python' +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extensions ['python_setup_py'] +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'python_setup_py' +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extensions ['ignore', 'ignore_ament_install'] +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'ignore' +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'ignore_ament_install' +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extensions ['colcon_pkg'] +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'colcon_pkg' +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extensions ['colcon_meta'] +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'colcon_meta' +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extensions ['ros'] +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'ros' +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extensions ['cmake', 'python'] +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'cmake' +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'python' +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extensions ['python_setup_py'] +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'python_setup_py' +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extensions ['ignore', 'ignore_ament_install'] +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'ignore' +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'ignore_ament_install' +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extensions ['colcon_pkg'] +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'colcon_pkg' +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extensions ['colcon_meta'] +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'colcon_meta' +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extensions ['ros'] +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'ros' +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extensions ['cmake', 'python'] +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'cmake' +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'python' +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extensions ['python_setup_py'] +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'python_setup_py' +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extensions ['ignore', 'ignore_ament_install'] +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'ignore' +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'ignore_ament_install' +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extensions ['colcon_pkg'] +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'colcon_pkg' +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extensions ['colcon_meta'] +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'colcon_meta' +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extensions ['ros'] +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'ros' +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extensions ['cmake', 'python'] +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'cmake' +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'python' +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extensions ['python_setup_py'] +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'python_setup_py' +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extensions ['ignore', 'ignore_ament_install'] +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'ignore' +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'ignore_ament_install' +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extensions ['colcon_pkg'] +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'colcon_pkg' +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extensions ['colcon_meta'] +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'colcon_meta' +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extensions ['ros'] +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'ros' +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extensions ['cmake', 'python'] +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'cmake' +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'python' +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extensions ['python_setup_py'] +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'python_setup_py' +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extensions ['ignore', 'ignore_ament_install'] +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'ignore' +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'ignore_ament_install' +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extensions ['colcon_pkg'] +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'colcon_pkg' +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extensions ['colcon_meta'] +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'colcon_meta' +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extensions ['ros'] +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'ros' +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extensions ['cmake', 'python'] +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'cmake' +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'python' +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extensions ['python_setup_py'] +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'python_setup_py' +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extensions ['ignore', 'ignore_ament_install'] +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'ignore' +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'ignore_ament_install' +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extensions ['colcon_pkg'] +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'colcon_pkg' +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extensions ['colcon_meta'] +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'colcon_meta' +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extensions ['ros'] +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'ros' +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extensions ['cmake', 'python'] +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'cmake' +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'python' +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extensions ['python_setup_py'] +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'python_setup_py' +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extensions ['ignore', 'ignore_ament_install'] +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'ignore' +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'ignore_ament_install' +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extensions ['colcon_pkg'] +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'colcon_pkg' +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extensions ['colcon_meta'] +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'colcon_meta' +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extensions ['ros'] +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'ros' +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extensions ['cmake', 'python'] +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'cmake' +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'python' +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extensions ['python_setup_py'] +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'python_setup_py' +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extensions ['ignore', 'ignore_ament_install'] +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'ignore' +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'ignore_ament_install' +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extensions ['colcon_pkg'] +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'colcon_pkg' +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extensions ['colcon_meta'] +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'colcon_meta' +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extensions ['ros'] +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'ros' +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extensions ['cmake', 'python'] +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'cmake' +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'python' +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extensions ['python_setup_py'] +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'python_setup_py' +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extensions ['ignore', 'ignore_ament_install'] +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'ignore' +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'ignore_ament_install' +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extensions ['colcon_pkg'] +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'colcon_pkg' +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extensions ['colcon_meta'] +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'colcon_meta' +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extensions ['ros'] +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'ros' +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extensions ['cmake', 'python'] +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'cmake' +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'python' +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extensions ['python_setup_py'] +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'python_setup_py' +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extensions ['ignore', 'ignore_ament_install'] +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'ignore' +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'ignore_ament_install' +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extensions ['colcon_pkg'] +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'colcon_pkg' +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extensions ['colcon_meta'] +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'colcon_meta' +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extensions ['ros'] +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'ros' +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extensions ['cmake', 'python'] +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'cmake' +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'python' +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extensions ['python_setup_py'] +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'python_setup_py' +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extensions ['ignore', 'ignore_ament_install'] +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'ignore' +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'ignore_ament_install' +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extensions ['colcon_pkg'] +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'colcon_pkg' +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extensions ['colcon_meta'] +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'colcon_meta' +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extensions ['ros'] +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'ros' +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extensions ['cmake', 'python'] +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'cmake' +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'python' +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extensions ['python_setup_py'] +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'python_setup_py' +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extensions ['ignore', 'ignore_ament_install'] +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'ignore' +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'ignore_ament_install' +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extensions ['colcon_pkg'] +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'colcon_pkg' +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extensions ['colcon_meta'] +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'colcon_meta' +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extensions ['ros'] +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'ros' +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extensions ['cmake', 'python'] +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'cmake' +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'python' +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extensions ['python_setup_py'] +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'python_setup_py' +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extensions ['ignore', 'ignore_ament_install'] +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'ignore' +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'ignore_ament_install' +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extensions ['colcon_pkg'] +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'colcon_pkg' +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extensions ['colcon_meta'] +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'colcon_meta' +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extensions ['ros'] +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'ros' +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extensions ['cmake', 'python'] +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'cmake' +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'python' +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extensions ['python_setup_py'] +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'python_setup_py' +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extensions ['ignore', 'ignore_ament_install'] +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'ignore' +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'ignore_ament_install' +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extensions ['colcon_pkg'] +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'colcon_pkg' +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extensions ['colcon_meta'] +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'colcon_meta' +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extensions ['ros'] +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'ros' +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extensions ['cmake', 'python'] +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'cmake' +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'python' +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extensions ['python_setup_py'] +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'python_setup_py' +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extensions ['ignore', 'ignore_ament_install'] +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'ignore' +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'ignore_ament_install' +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extensions ['colcon_pkg'] +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'colcon_pkg' +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extensions ['colcon_meta'] +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'colcon_meta' +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extensions ['ros'] +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'ros' +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extensions ['cmake', 'python'] +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'cmake' +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'python' +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extensions ['python_setup_py'] +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'python_setup_py' +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extensions ['ignore', 'ignore_ament_install'] +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'ignore' +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'ignore_ament_install' +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extensions ['colcon_pkg'] +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'colcon_pkg' +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extensions ['colcon_meta'] +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'colcon_meta' +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extensions ['ros'] +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'ros' +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extensions ['cmake', 'python'] +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'cmake' +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'python' +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extensions ['python_setup_py'] +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'python_setup_py' +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extensions ['ignore', 'ignore_ament_install'] +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'ignore' +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'ignore_ament_install' +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extensions ['colcon_pkg'] +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'colcon_pkg' +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extensions ['colcon_meta'] +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'colcon_meta' +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extensions ['ros'] +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'ros' +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extensions ['cmake', 'python'] +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'cmake' +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'python' +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extensions ['python_setup_py'] +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'python_setup_py' +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extensions ['ignore', 'ignore_ament_install'] +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'ignore' +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'ignore_ament_install' +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extensions ['colcon_pkg'] +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'colcon_pkg' +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extensions ['colcon_meta'] +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'colcon_meta' +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extensions ['ros'] +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'ros' +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extensions ['cmake', 'python'] +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'cmake' +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'python' +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extensions ['python_setup_py'] +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'python_setup_py' +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extensions ['ignore', 'ignore_ament_install'] +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'ignore' +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'ignore_ament_install' +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extensions ['colcon_pkg'] +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'colcon_pkg' +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extensions ['colcon_meta'] +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'colcon_meta' +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extensions ['ros'] +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'ros' +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extensions ['cmake', 'python'] +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'cmake' +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'python' +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extensions ['python_setup_py'] +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'python_setup_py' +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extensions ['ignore', 'ignore_ament_install'] +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'ignore' +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'ignore_ament_install' +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extensions ['colcon_pkg'] +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'colcon_pkg' +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extensions ['colcon_meta'] +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'colcon_meta' +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extensions ['ros'] +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'ros' +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extensions ['cmake', 'python'] +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'cmake' +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'python' +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extensions ['python_setup_py'] +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'python_setup_py' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extensions ['ignore', 'ignore_ament_install'] +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'ignore' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'ignore_ament_install' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extensions ['colcon_pkg'] +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'colcon_pkg' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extensions ['colcon_meta'] +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'colcon_meta' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extensions ['ros'] +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'ros' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extensions ['cmake', 'python'] +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'cmake' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'python' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extensions ['python_setup_py'] +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'python_setup_py' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extensions ['ignore', 'ignore_ament_install'] +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'ignore' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'ignore_ament_install' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extensions ['colcon_pkg'] +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'colcon_pkg' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extensions ['colcon_meta'] +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'colcon_meta' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extensions ['ros'] +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'ros' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extensions ['cmake', 'python'] +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'cmake' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'python' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extensions ['python_setup_py'] +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'python_setup_py' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extensions ['ignore', 'ignore_ament_install'] +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'ignore' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'ignore_ament_install' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extensions ['colcon_pkg'] +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'colcon_pkg' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extensions ['colcon_meta'] +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'colcon_meta' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extensions ['ros'] +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'ros' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extensions ['cmake', 'python'] +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'cmake' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'python' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extensions ['python_setup_py'] +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'python_setup_py' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extensions ['ignore', 'ignore_ament_install'] +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'ignore' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'ignore_ament_install' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extensions ['colcon_pkg'] +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'colcon_pkg' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extensions ['colcon_meta'] +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'colcon_meta' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extensions ['ros'] +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'ros' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extensions ['cmake', 'python'] +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'cmake' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'python' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extensions ['python_setup_py'] +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'python_setup_py' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extensions ['ignore', 'ignore_ament_install'] +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'ignore' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'ignore_ament_install' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extensions ['colcon_pkg'] +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'colcon_pkg' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extensions ['colcon_meta'] +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'colcon_meta' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extensions ['ros'] +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'ros' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extensions ['cmake', 'python'] +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'cmake' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'python' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extensions ['python_setup_py'] +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'python_setup_py' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extensions ['ignore', 'ignore_ament_install'] +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'ignore' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'ignore_ament_install' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extensions ['colcon_pkg'] +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'colcon_pkg' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extensions ['colcon_meta'] +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'colcon_meta' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extensions ['ros'] +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'ros' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extensions ['cmake', 'python'] +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'cmake' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'python' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extensions ['python_setup_py'] +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'python_setup_py' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extensions ['ignore', 'ignore_ament_install'] +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'ignore' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'ignore_ament_install' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extensions ['colcon_pkg'] +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'colcon_pkg' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extensions ['colcon_meta'] +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'colcon_meta' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extensions ['ros'] +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'ros' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extensions ['cmake', 'python'] +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'cmake' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'python' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extensions ['python_setup_py'] +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'python_setup_py' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extensions ['ignore', 'ignore_ament_install'] +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'ignore' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'ignore_ament_install' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extensions ['colcon_pkg'] +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'colcon_pkg' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extensions ['colcon_meta'] +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'colcon_meta' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extensions ['ros'] +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'ros' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extensions ['cmake', 'python'] +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'cmake' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'python' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extensions ['python_setup_py'] +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'python_setup_py' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extensions ['ignore', 'ignore_ament_install'] +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'ignore' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'ignore_ament_install' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extensions ['colcon_pkg'] +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'colcon_pkg' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extensions ['colcon_meta'] +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'colcon_meta' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extensions ['ros'] +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'ros' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extensions ['cmake', 'python'] +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'cmake' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'python' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extensions ['python_setup_py'] +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'python_setup_py' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extensions ['ignore', 'ignore_ament_install'] +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'ignore' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'ignore_ament_install' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extensions ['colcon_pkg'] +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'colcon_pkg' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extensions ['colcon_meta'] +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'colcon_meta' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extensions ['ros'] +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'ros' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extensions ['cmake', 'python'] +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'cmake' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'python' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extensions ['python_setup_py'] +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'python_setup_py' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extensions ['ignore', 'ignore_ament_install'] +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'ignore' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'ignore_ament_install' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extensions ['colcon_pkg'] +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'colcon_pkg' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extensions ['colcon_meta'] +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'colcon_meta' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extensions ['ros'] +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'ros' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extensions ['cmake', 'python'] +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'cmake' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'python' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extensions ['python_setup_py'] +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'python_setup_py' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extensions ['ignore', 'ignore_ament_install'] +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'ignore' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'ignore_ament_install' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extensions ['colcon_pkg'] +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'colcon_pkg' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extensions ['colcon_meta'] +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'colcon_meta' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extensions ['ros'] +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'ros' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extensions ['cmake', 'python'] +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'cmake' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'python' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extensions ['python_setup_py'] +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'python_setup_py' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extensions ['ignore', 'ignore_ament_install'] +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'ignore' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'ignore_ament_install' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extensions ['colcon_pkg'] +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'colcon_pkg' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extensions ['colcon_meta'] +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'colcon_meta' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extensions ['ros'] +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'ros' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extensions ['cmake', 'python'] +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'cmake' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'python' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extensions ['python_setup_py'] +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'python_setup_py' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extensions ['ignore', 'ignore_ament_install'] +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'ignore' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'ignore_ament_install' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extensions ['colcon_pkg'] +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'colcon_pkg' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extensions ['colcon_meta'] +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'colcon_meta' +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extensions ['ros'] +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'ros' +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extensions ['cmake', 'python'] +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'cmake' +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'python' +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extensions ['python_setup_py'] +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'python_setup_py' +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extensions ['ignore', 'ignore_ament_install'] +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'ignore' +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'ignore_ament_install' +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extensions ['colcon_pkg'] +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'colcon_pkg' +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extensions ['colcon_meta'] +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'colcon_meta' +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extensions ['ros'] +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'ros' +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extensions ['cmake', 'python'] +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'cmake' +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'python' +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extensions ['python_setup_py'] +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'python_setup_py' +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extensions ['ignore', 'ignore_ament_install'] +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'ignore' +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'ignore_ament_install' +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extensions ['colcon_pkg'] +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'colcon_pkg' +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extensions ['colcon_meta'] +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'colcon_meta' +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extensions ['ros'] +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'ros' +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extensions ['cmake', 'python'] +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'cmake' +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'python' +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extensions ['python_setup_py'] +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'python_setup_py' +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extensions ['ignore', 'ignore_ament_install'] +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'ignore' +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'ignore_ament_install' +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extensions ['colcon_pkg'] +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'colcon_pkg' +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extensions ['colcon_meta'] +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'colcon_meta' +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extensions ['ros'] +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'ros' +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extensions ['cmake', 'python'] +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'cmake' +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'python' +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extensions ['python_setup_py'] +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'python_setup_py' +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extensions ['ignore', 'ignore_ament_install'] +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'ignore' +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'ignore_ament_install' +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extensions ['colcon_pkg'] +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'colcon_pkg' +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extensions ['colcon_meta'] +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'colcon_meta' +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extensions ['ros'] +[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'ros' +[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extensions ['cmake', 'python'] +[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'cmake' +[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'python' +[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extensions ['python_setup_py'] +[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'python_setup_py' +[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extensions ['ignore', 'ignore_ament_install'] +[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'ignore' +[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'ignore_ament_install' +[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extensions ['colcon_pkg'] +[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'colcon_pkg' +[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extensions ['colcon_meta'] +[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'colcon_meta' +[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extensions ['ros'] +[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'ros' +[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extensions ['cmake', 'python'] +[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'cmake' +[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'python' +[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extensions ['python_setup_py'] +[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'python_setup_py' +[0.498s] DEBUG:colcon.colcon_core.package_identification:Package 'simulation/dronekit-python' with type 'python' and name 'dronekit' +[0.498s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extensions ['ignore', 'ignore_ament_install'] +[0.498s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'ignore' +[0.498s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'ignore_ament_install' +[0.499s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extensions ['colcon_pkg'] +[0.499s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'colcon_pkg' +[0.499s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extensions ['colcon_meta'] +[0.499s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'colcon_meta' +[0.499s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extensions ['ros'] +[0.499s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'ros' +[0.499s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extensions ['cmake', 'python'] +[0.499s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'cmake' +[0.499s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'python' +[0.499s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extensions ['python_setup_py'] +[0.499s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'python_setup_py' +[0.499s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extensions ['ignore', 'ignore_ament_install'] +[0.499s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'ignore' +[0.499s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'ignore_ament_install' +[0.499s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extensions ['colcon_pkg'] +[0.500s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'colcon_pkg' +[0.500s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extensions ['colcon_meta'] +[0.500s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'colcon_meta' +[0.500s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extensions ['ros'] +[0.500s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'ros' +[0.500s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extensions ['cmake', 'python'] +[0.500s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'cmake' +[0.500s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'python' +[0.500s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extensions ['python_setup_py'] +[0.500s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'python_setup_py' +[0.500s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extensions ['ignore', 'ignore_ament_install'] +[0.500s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'ignore' +[0.500s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'ignore_ament_install' +[0.500s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extensions ['colcon_pkg'] +[0.500s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'colcon_pkg' +[0.500s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extensions ['colcon_meta'] +[0.500s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'colcon_meta' +[0.501s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extensions ['ros'] +[0.501s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'ros' +[0.501s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extensions ['cmake', 'python'] +[0.501s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'cmake' +[0.501s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'python' +[0.501s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extensions ['python_setup_py'] +[0.501s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'python_setup_py' +[0.501s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extensions ['ignore', 'ignore_ament_install'] +[0.501s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'ignore' +[0.501s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'ignore_ament_install' +[0.501s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extensions ['colcon_pkg'] +[0.501s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'colcon_pkg' +[0.501s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extensions ['colcon_meta'] +[0.501s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'colcon_meta' +[0.501s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extensions ['ros'] +[0.502s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'ros' +[0.502s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extensions ['cmake', 'python'] +[0.502s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'cmake' +[0.502s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'python' +[0.502s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extensions ['python_setup_py'] +[0.502s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'python_setup_py' +[0.502s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) using defaults +[0.502s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) discover +[0.502s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) using defaults +[0.502s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) discover +[0.502s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) using defaults +[0.530s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'controls_bringup' in 'ros_ws/src/robot/autonomy/controls/controls_bringup' +[0.530s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'dronekit' in 'simulation/dronekit-python' +[0.530s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mav_msgs' in 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs' +[0.531s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mav_state_machine_msgs' in 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs' +[0.531s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mav_system_msgs' in 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs' +[0.531s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'px4_msgs' in 'ros_ws/src/robot/autonomy/controls/px4_msgs' +[0.531s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'robot_bringup' in 'ros_ws/src/robot/robot_bringup' +[0.531s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'vdb_mapping' in 'ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping' +[0.531s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'vdb_mapping_interfaces' in 'ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces' +[0.531s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mav_planning_msgs' in 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs' +[0.531s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'px4_ros_com' in 'ros_ws/src/robot/autonomy/controls/px4_ros_com' +[0.531s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'robot_interface' in 'ros_ws/src/robot/autonomy/controls/robot_interface' +[0.531s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'vdb_mapping_ros2' in 'ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2' +[0.531s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mav_comm' in 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm' +[0.531s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mavros_interface' in 'ros_ws/src/robot/autonomy/controls/mavros_interface' +[0.531s] Level 1:colcon.colcon_core.package_discovery:discover_packages(prefix_path) check parameters +[0.531s] Level 1:colcon.colcon_core.package_discovery:discover_packages(prefix_path) discover +[0.533s] DEBUG:colcon.colcon_installed_package_information.package_discovery:Found 14 installed packages in /root/AirStack/ros_ws/install +[0.534s] DEBUG:colcon.colcon_installed_package_information.package_discovery:Found 277 installed packages in /opt/ros/humble +[0.535s] Level 1:colcon.colcon_core.package_discovery:discover_packages(prefix_path) using defaults +[0.563s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'cmake_args' from command line to 'None' +[0.563s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'cmake_target' from command line to 'None' +[0.563s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'cmake_target_skip_unavailable' from command line to 'False' +[0.563s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'cmake_clean_cache' from command line to 'False' +[0.563s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'cmake_clean_first' from command line to 'False' +[0.563s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'cmake_force_configure' from command line to 'False' +[0.563s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'ament_cmake_args' from command line to 'None' +[0.563s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'catkin_cmake_args' from command line to 'None' +[0.563s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'catkin_skip_building_tests' from command line to 'False' +[0.563s] DEBUG:colcon.colcon_core.verb:Building package 'disparity_expansion' with the following arguments: {'ament_cmake_args': None, 'build_base': '/root/AirStack/build/disparity_expansion', 'catkin_cmake_args': None, 'catkin_skip_building_tests': False, 'cmake_args': None, 'cmake_clean_cache': False, 'cmake_clean_first': False, 'cmake_force_configure': False, 'cmake_target': None, 'cmake_target_skip_unavailable': False, 'install_base': '/root/AirStack/install/disparity_expansion', 'merge_install': False, 'path': '/root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion', 'symlink_install': False, 'test_result_base': None} +[0.563s] INFO:colcon.colcon_core.executor:Executing jobs using 'parallel' executor +[0.564s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete +[0.564s] INFO:colcon.colcon_cmake.task.cmake.build:Building CMake package in '/root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion' +[0.566s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_core.shell.bat': Not used on non-Windows systems +[0.566s] INFO:colcon.colcon_core.shell:Skip shell extension 'powershell' for command environment: Not usable outside of PowerShell +[0.566s] DEBUG:colcon.colcon_core.shell:Skip shell extension 'dsv' for command environment +[0.574s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoking command in '/root/AirStack/build/disparity_expansion': /usr/bin/cmake /root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion -DCMAKE_INSTALL_PREFIX=/root/AirStack/install/disparity_expansion +[4.639s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoked command in '/root/AirStack/build/disparity_expansion' returned '0': /usr/bin/cmake /root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion -DCMAKE_INSTALL_PREFIX=/root/AirStack/install/disparity_expansion +[4.642s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoking command in '/root/AirStack/build/disparity_expansion': /usr/bin/cmake --build /root/AirStack/build/disparity_expansion -- -j12 -l12 +[5.037s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoked command in '/root/AirStack/build/disparity_expansion' returned '2': /usr/bin/cmake --build /root/AirStack/build/disparity_expansion -- -j12 -l12 +[5.047s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:closing loop +[5.047s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:loop closed +[5.047s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete finished with '2' +[5.047s] DEBUG:colcon.colcon_core.event_reactor:joining thread +[5.053s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.notify_send': Could not find 'notify-send' +[5.053s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.terminal_notifier': Not used on non-Darwin systems +[5.053s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.win32': Not used on non-Windows systems +[5.053s] INFO:colcon.colcon_notification.desktop_notification:Sending desktop notification using 'notify2' +[5.057s] DEBUG:colcon.colcon_notification.desktop_notification.notify2:Failed to initialize notify2: org.freedesktop.DBus.Error.Spawn.ExecFailed: /usr/bin/dbus-launch terminated abnormally without any error message +[5.058s] DEBUG:colcon.colcon_core.event_reactor:joined thread +[5.059s] INFO:colcon.colcon_core.shell:Creating prefix script '/root/AirStack/install/local_setup.ps1' +[5.060s] INFO:colcon.colcon_core.shell:Creating prefix util module '/root/AirStack/install/_local_setup_util_ps1.py' +[5.062s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/root/AirStack/install/setup.ps1' +[5.065s] INFO:colcon.colcon_core.shell:Creating prefix script '/root/AirStack/install/local_setup.sh' +[5.065s] INFO:colcon.colcon_core.shell:Creating prefix util module '/root/AirStack/install/_local_setup_util_sh.py' +[5.066s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/root/AirStack/install/setup.sh' +[5.067s] INFO:colcon.colcon_core.shell:Creating prefix script '/root/AirStack/install/local_setup.bash' +[5.067s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/root/AirStack/install/setup.bash' +[5.068s] INFO:colcon.colcon_core.shell:Creating prefix script '/root/AirStack/install/local_setup.zsh' +[5.069s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/root/AirStack/install/setup.zsh' diff --git a/log/build_2024-07-25_13-07-04/disparity_expansion/command.log b/log/build_2024-07-25_13-07-04/disparity_expansion/command.log new file mode 100644 index 000000000..c661a790e --- /dev/null +++ b/log/build_2024-07-25_13-07-04/disparity_expansion/command.log @@ -0,0 +1,2 @@ +Invoking command in '/root/AirStack/build/disparity_expansion': /usr/bin/cmake --build /root/AirStack/build/disparity_expansion -- -j12 -l12 +Invoked command in '/root/AirStack/build/disparity_expansion' returned '2': /usr/bin/cmake --build /root/AirStack/build/disparity_expansion -- -j12 -l12 diff --git a/log/build_2024-07-25_13-07-04/disparity_expansion/stderr.log b/log/build_2024-07-25_13-07-04/disparity_expansion/stderr.log new file mode 100644 index 000000000..9e9e31aa8 --- /dev/null +++ b/log/build_2024-07-25_13-07-04/disparity_expansion/stderr.log @@ -0,0 +1,20 @@ +CMake Warning (dev) at CMakeLists.txt:29 (find_package): + Policy CMP0074 is not set: find_package uses _ROOT variables. + Run "cmake --help-policy CMP0074" for policy details. Use the cmake_policy + command to set the policy and suppress this warning. + + CMake variable PCL_ROOT is set to: + + /usr + + For compatibility, CMake is ignoring the variable. +This warning is for project developers. Use -Wno-dev to suppress it. + +In file included from /root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_conv.cpp:42: +/opt/ros/humble/include/pcl_ros/point_cloud.hpp:45:10: fatal error: ros/ros.h: No such file or directory + 45 | #include  + | ^~~~~~~~~~~ +compilation terminated. +gmake[2]: *** [CMakeFiles/disparity_conv.dir/build.make:76: CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o] Error 1 +gmake[1]: *** [CMakeFiles/Makefile2:137: CMakeFiles/disparity_conv.dir/all] Error 2 +gmake: *** [Makefile:101: all] Error 2 diff --git a/log/build_2024-07-25_13-07-04/disparity_expansion/stdout.log b/log/build_2024-07-25_13-07-04/disparity_expansion/stdout.log new file mode 100644 index 000000000..869198849 --- /dev/null +++ b/log/build_2024-07-25_13-07-04/disparity_expansion/stdout.log @@ -0,0 +1,31 @@ +-- Found ament_cmake: 1.3.9 (/opt/ros/humble/share/ament_cmake/cmake) +-- Found rclcpp: 16.0.9 (/opt/ros/humble/share/rclcpp/cmake) +-- Found rosidl_generator_c: 3.1.5 (/opt/ros/humble/share/rosidl_generator_c/cmake) +-- Found rosidl_adapter: 3.1.5 (/opt/ros/humble/share/rosidl_adapter/cmake) +-- Found rosidl_generator_cpp: 3.1.5 (/opt/ros/humble/share/rosidl_generator_cpp/cmake) +-- Using all available rosidl_typesupport_c: rosidl_typesupport_fastrtps_c;rosidl_typesupport_introspection_c +-- Using all available rosidl_typesupport_cpp: rosidl_typesupport_fastrtps_cpp;rosidl_typesupport_introspection_cpp +-- Found rmw_implementation_cmake: 6.1.2 (/opt/ros/humble/share/rmw_implementation_cmake/cmake) +-- Found rmw_fastrtps_cpp: 6.2.6 (/opt/ros/humble/share/rmw_fastrtps_cpp/cmake) +-- Using RMW implementation 'rmw_fastrtps_cpp' as default +-- Found cv_bridge: 3.2.1 (/opt/ros/humble/share/cv_bridge/cmake) +-- Found image_geometry: 3.2.1 (/opt/ros/humble/share/image_geometry/cmake) +-- Found image_transport: 3.1.9 (/opt/ros/humble/share/image_transport/cmake) +-- Found tf2: 0.25.7 (/opt/ros/humble/share/tf2/cmake) +-- Found pcl_ros: 2.4.0 (/opt/ros/humble/share/pcl_ros/cmake) +-- Found eigen3_cmake_module: 0.1.1 (/opt/ros/humble/share/eigen3_cmake_module/cmake) +-- Found Eigen3: TRUE (found version "3.4.0") +-- Ensuring Eigen3 include directory is part of orocos-kdl CMake target +-- Eigen found (include: /usr/include/eigen3, version: 3.4.0) +-- FLANN found (include: /usr/include, lib: /usr/lib/x86_64-linux-gnu/libflann_cpp.so) +-- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) +-- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb) +-- Eigen found (include: /usr/include/eigen3, version: 3.4.0) +-- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) +-- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb) +-- Found Qhull version 8.0.2 +-- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) +-- Configuring done +-- Generating done +-- Build files have been written to: /root/AirStack/build/disparity_expansion +[ 50%] Building CXX object CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o diff --git a/log/build_2024-07-25_13-07-04/disparity_expansion/stdout_stderr.log b/log/build_2024-07-25_13-07-04/disparity_expansion/stdout_stderr.log new file mode 100644 index 000000000..d999a75c0 --- /dev/null +++ b/log/build_2024-07-25_13-07-04/disparity_expansion/stdout_stderr.log @@ -0,0 +1,51 @@ +-- Found ament_cmake: 1.3.9 (/opt/ros/humble/share/ament_cmake/cmake) +-- Found rclcpp: 16.0.9 (/opt/ros/humble/share/rclcpp/cmake) +-- Found rosidl_generator_c: 3.1.5 (/opt/ros/humble/share/rosidl_generator_c/cmake) +-- Found rosidl_adapter: 3.1.5 (/opt/ros/humble/share/rosidl_adapter/cmake) +-- Found rosidl_generator_cpp: 3.1.5 (/opt/ros/humble/share/rosidl_generator_cpp/cmake) +-- Using all available rosidl_typesupport_c: rosidl_typesupport_fastrtps_c;rosidl_typesupport_introspection_c +-- Using all available rosidl_typesupport_cpp: rosidl_typesupport_fastrtps_cpp;rosidl_typesupport_introspection_cpp +-- Found rmw_implementation_cmake: 6.1.2 (/opt/ros/humble/share/rmw_implementation_cmake/cmake) +-- Found rmw_fastrtps_cpp: 6.2.6 (/opt/ros/humble/share/rmw_fastrtps_cpp/cmake) +-- Using RMW implementation 'rmw_fastrtps_cpp' as default +-- Found cv_bridge: 3.2.1 (/opt/ros/humble/share/cv_bridge/cmake) +-- Found image_geometry: 3.2.1 (/opt/ros/humble/share/image_geometry/cmake) +-- Found image_transport: 3.1.9 (/opt/ros/humble/share/image_transport/cmake) +-- Found tf2: 0.25.7 (/opt/ros/humble/share/tf2/cmake) +-- Found pcl_ros: 2.4.0 (/opt/ros/humble/share/pcl_ros/cmake) +-- Found eigen3_cmake_module: 0.1.1 (/opt/ros/humble/share/eigen3_cmake_module/cmake) +-- Found Eigen3: TRUE (found version "3.4.0") +-- Ensuring Eigen3 include directory is part of orocos-kdl CMake target +-- Eigen found (include: /usr/include/eigen3, version: 3.4.0) +-- FLANN found (include: /usr/include, lib: /usr/lib/x86_64-linux-gnu/libflann_cpp.so) +-- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) +-- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb) +-- Eigen found (include: /usr/include/eigen3, version: 3.4.0) +-- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) +-- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb) +-- Found Qhull version 8.0.2 +-- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) +CMake Warning (dev) at CMakeLists.txt:29 (find_package): + Policy CMP0074 is not set: find_package uses _ROOT variables. + Run "cmake --help-policy CMP0074" for policy details. Use the cmake_policy + command to set the policy and suppress this warning. + + CMake variable PCL_ROOT is set to: + + /usr + + For compatibility, CMake is ignoring the variable. +This warning is for project developers. Use -Wno-dev to suppress it. + +-- Configuring done +-- Generating done +-- Build files have been written to: /root/AirStack/build/disparity_expansion +[ 50%] Building CXX object CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o +In file included from /root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_conv.cpp:42: +/opt/ros/humble/include/pcl_ros/point_cloud.hpp:45:10: fatal error: ros/ros.h: No such file or directory + 45 | #include  + | ^~~~~~~~~~~ +compilation terminated. +gmake[2]: *** [CMakeFiles/disparity_conv.dir/build.make:76: CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o] Error 1 +gmake[1]: *** [CMakeFiles/Makefile2:137: CMakeFiles/disparity_conv.dir/all] Error 2 +gmake: *** [Makefile:101: all] Error 2 diff --git a/log/build_2024-07-25_13-07-04/disparity_expansion/streams.log b/log/build_2024-07-25_13-07-04/disparity_expansion/streams.log new file mode 100644 index 000000000..27cd82829 --- /dev/null +++ b/log/build_2024-07-25_13-07-04/disparity_expansion/streams.log @@ -0,0 +1,53 @@ +[0.013s] Invoking command in '/root/AirStack/build/disparity_expansion': /usr/bin/cmake --build /root/AirStack/build/disparity_expansion -- -j12 -l12 +[0.042s] -- Found ament_cmake: 1.3.9 (/opt/ros/humble/share/ament_cmake/cmake) +[0.172s] -- Found rclcpp: 16.0.9 (/opt/ros/humble/share/rclcpp/cmake) +[0.200s] -- Found rosidl_generator_c: 3.1.5 (/opt/ros/humble/share/rosidl_generator_c/cmake) +[0.202s] -- Found rosidl_adapter: 3.1.5 (/opt/ros/humble/share/rosidl_adapter/cmake) +[0.207s] -- Found rosidl_generator_cpp: 3.1.5 (/opt/ros/humble/share/rosidl_generator_cpp/cmake) +[0.217s] -- Using all available rosidl_typesupport_c: rosidl_typesupport_fastrtps_c;rosidl_typesupport_introspection_c +[0.230s] -- Using all available rosidl_typesupport_cpp: rosidl_typesupport_fastrtps_cpp;rosidl_typesupport_introspection_cpp +[0.280s] -- Found rmw_implementation_cmake: 6.1.2 (/opt/ros/humble/share/rmw_implementation_cmake/cmake) +[0.282s] -- Found rmw_fastrtps_cpp: 6.2.6 (/opt/ros/humble/share/rmw_fastrtps_cpp/cmake) +[0.456s] -- Using RMW implementation 'rmw_fastrtps_cpp' as default +[0.585s] -- Found cv_bridge: 3.2.1 (/opt/ros/humble/share/cv_bridge/cmake) +[0.701s] -- Found image_geometry: 3.2.1 (/opt/ros/humble/share/image_geometry/cmake) +[0.707s] -- Found image_transport: 3.1.9 (/opt/ros/humble/share/image_transport/cmake) +[0.746s] -- Found tf2: 0.25.7 (/opt/ros/humble/share/tf2/cmake) +[0.755s] -- Found pcl_ros: 2.4.0 (/opt/ros/humble/share/pcl_ros/cmake) +[0.992s] -- Found eigen3_cmake_module: 0.1.1 (/opt/ros/humble/share/eigen3_cmake_module/cmake) +[0.993s] -- Found Eigen3: TRUE (found version "3.4.0") +[0.993s] -- Ensuring Eigen3 include directory is part of orocos-kdl CMake target +[1.334s] -- Eigen found (include: /usr/include/eigen3, version: 3.4.0) +[1.379s] -- FLANN found (include: /usr/include, lib: /usr/lib/x86_64-linux-gnu/libflann_cpp.so) +[1.726s] -- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) +[1.737s] -- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb) +[1.894s] -- Eigen found (include: /usr/include/eigen3, version: 3.4.0) +[1.906s] -- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) +[1.917s] -- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb) +[2.074s] -- Found Qhull version 8.0.2 +[2.229s] -- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) +[2.406s] CMake Warning (dev) at CMakeLists.txt:29 (find_package): +[2.406s] Policy CMP0074 is not set: find_package uses _ROOT variables. +[2.406s] Run "cmake --help-policy CMP0074" for policy details. Use the cmake_policy +[2.406s] command to set the policy and suppress this warning. +[2.406s] +[2.407s] CMake variable PCL_ROOT is set to: +[2.407s] +[2.407s] /usr +[2.407s] +[2.407s] For compatibility, CMake is ignoring the variable. +[2.407s] This warning is for project developers. Use -Wno-dev to suppress it. +[2.407s]  +[2.424s] -- Configuring done +[2.446s] -- Generating done +[2.448s] -- Build files have been written to: /root/AirStack/build/disparity_expansion +[2.498s] [ 50%] Building CXX object CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o +[2.825s] In file included from /root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_conv.cpp:42: +[2.825s] /opt/ros/humble/include/pcl_ros/point_cloud.hpp:45:10: fatal error: ros/ros.h: No such file or directory +[2.825s] 45 | #include  +[2.826s] | ^~~~~~~~~~~ +[2.826s] compilation terminated. +[2.835s] gmake[2]: *** [CMakeFiles/disparity_conv.dir/build.make:76: CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o] Error 1 +[2.835s] gmake[1]: *** [CMakeFiles/Makefile2:137: CMakeFiles/disparity_conv.dir/all] Error 2 +[2.835s] gmake: *** [Makefile:101: all] Error 2 +[2.838s] Invoked command in '/root/AirStack/build/disparity_expansion' returned '2': /usr/bin/cmake --build /root/AirStack/build/disparity_expansion -- -j12 -l12 diff --git a/log/build_2024-07-25_13-07-04/events.log b/log/build_2024-07-25_13-07-04/events.log new file mode 100644 index 000000000..ca2511d38 --- /dev/null +++ b/log/build_2024-07-25_13-07-04/events.log @@ -0,0 +1,103 @@ +[0.000000] (-) TimerEvent: {} +[0.000542] (-) JobUnselected: {'identifier': 'controls_bringup'} +[0.000599] (-) JobUnselected: {'identifier': 'dronekit'} +[0.000697] (-) JobUnselected: {'identifier': 'mav_comm'} +[0.000735] (-) JobUnselected: {'identifier': 'mav_msgs'} +[0.000834] (-) JobUnselected: {'identifier': 'mav_planning_msgs'} +[0.000862] (-) JobUnselected: {'identifier': 'mav_state_machine_msgs'} +[0.000887] (-) JobUnselected: {'identifier': 'mav_system_msgs'} +[0.000911] (-) JobUnselected: {'identifier': 'mavros_interface'} +[0.000951] (-) JobUnselected: {'identifier': 'px4_msgs'} +[0.000990] (-) JobUnselected: {'identifier': 'px4_ros_com'} +[0.001059] (-) JobUnselected: {'identifier': 'robot_bringup'} +[0.001085] (-) JobUnselected: {'identifier': 'robot_interface'} +[0.001112] (-) JobUnselected: {'identifier': 'vdb_mapping'} +[0.001141] (-) JobUnselected: {'identifier': 'vdb_mapping_interfaces'} +[0.001165] (-) JobUnselected: {'identifier': 'vdb_mapping_ros2'} +[0.001247] (disparity_expansion) JobQueued: {'identifier': 'disparity_expansion', 'dependencies': OrderedDict()} +[0.001278] (disparity_expansion) JobStarted: {'identifier': 'disparity_expansion'} +[0.009838] (disparity_expansion) JobProgress: {'identifier': 'disparity_expansion', 'progress': 'cmake'} +[0.010775] (disparity_expansion) JobProgress: {'identifier': 'disparity_expansion', 'progress': 'build'} +[0.011841] (disparity_expansion) Command: {'cmd': ['/usr/bin/cmake', '--build', '/root/AirStack/build/disparity_expansion', '--', '-j12', '-l12'], 'cwd': '/root/AirStack/build/disparity_expansion', 'env': OrderedDict([('LESSOPEN', '| /usr/bin/lesspipe %s'), ('HOSTNAME', 'wildfire-desktop'), ('ISAACSIM_PATH', '/isaac-sim'), ('SHLVL', '1'), ('LD_LIBRARY_PATH', '/root/AirStack/ros_ws/install/vdb_mapping_interfaces/lib:/root/AirStack/ros_ws/install/vdb_mapping/lib:/root/AirStack/ros_ws/install/mavros_interface/lib:/root/AirStack/ros_ws/install/robot_interface/lib:/root/AirStack/ros_ws/install/px4_ros_com/lib:/root/AirStack/ros_ws/install/px4_msgs/lib:/root/AirStack/ros_ws/install/mav_system_msgs/lib:/root/AirStack/ros_ws/install/mav_state_machine_msgs/lib:/root/AirStack/ros_ws/install/mav_planning_msgs/lib:/root/AirStack/ros_ws/install/mav_msgs/lib:/opt/ros/humble/opt/rviz_ogre_vendor/lib:/opt/ros/humble/lib/x86_64-linux-gnu:/opt/ros/humble/lib'), ('HOME', '/root'), ('MIN_DRIVER_VERSION', '525.60.11'), ('ROS_PYTHON_VERSION', '3'), ('LC_CTYPE', 'C.UTF-8'), ('COLCON_PREFIX_PATH', '/root/AirStack/ros_ws/install'), ('ROS_DISTRO', 'humble'), ('_', '/usr/bin/colcon'), ('ROS_VERSION', '2'), ('PKG_CONFIG_PATH', '/root/AirStack/ros_ws/install/vdb_mapping/lib/x86_64-linux-gnu/pkgconfig:/root/AirStack/ros_ws/install/vdb_mapping/lib/pkgconfig'), ('NVIDIA_DRIVER_CAPABILITIES', 'all'), ('TERM', 'xterm'), ('ROS_LOCALHOST_ONLY', '0'), ('PATH', '/opt/ros/humble/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'), ('VK_DRIVER_FILES', '/etc/vulkan/icd.d/nvidia_icd.json'), ('DISPLAY', ':1'), ('LS_COLORS', 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:'), ('AMENT_PREFIX_PATH', '/root/AirStack/ros_ws/install/vdb_mapping_ros2:/root/AirStack/ros_ws/install/vdb_mapping_interfaces:/root/AirStack/ros_ws/install/mavros_interface:/root/AirStack/ros_ws/install/robot_interface:/root/AirStack/ros_ws/install/robot_bringup:/root/AirStack/ros_ws/install/px4_ros_com:/root/AirStack/ros_ws/install/px4_msgs:/root/AirStack/ros_ws/install/mav_comm:/root/AirStack/ros_ws/install/mav_system_msgs:/root/AirStack/ros_ws/install/mav_state_machine_msgs:/root/AirStack/ros_ws/install/mav_planning_msgs:/root/AirStack/ros_ws/install/mav_msgs:/root/AirStack/ros_ws/install/controls_bringup:/opt/ros/humble'), ('OMNI_PASS', 'admin'), ('LESSCLOSE', '/usr/bin/lesspipe %s %s'), ('ACCEPT_EULA', 'Y'), ('CMAKE_MODULE_PATH', '/root/AirStack/ros_ws/install/vdb_mapping/lib/cmake/vdb_mapping'), ('OMNI_SERVER', 'http://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/4.0'), ('PWD', '/root/AirStack/build/disparity_expansion'), ('OMNI_USER', 'admin'), ('PYTHONPATH', '/root/AirStack/ros_ws/install/vdb_mapping_interfaces/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/px4_ros_com/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/px4_msgs/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/mav_planning_msgs/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/mav_msgs/local/lib/python3.10/dist-packages:/opt/ros/humble/lib/python3.10/site-packages:/opt/ros/humble/local/lib/python3.10/dist-packages'), ('NVIDIA_VISIBLE_DEVICES', 'all'), ('TZ', 'America/New_York'), ('COLCON', '1'), ('CMAKE_PREFIX_PATH', '/root/AirStack/ros_ws/install/vdb_mapping_ros2:/root/AirStack/ros_ws/install/vdb_mapping_interfaces:/root/AirStack/ros_ws/install/vdb_mapping:/root/AirStack/ros_ws/install/mavros_interface:/root/AirStack/ros_ws/install/robot_interface:/root/AirStack/ros_ws/install/robot_bringup:/root/AirStack/ros_ws/install/px4_ros_com:/root/AirStack/ros_ws/install/px4_msgs:/root/AirStack/ros_ws/install/mav_comm:/root/AirStack/ros_ws/install/mav_system_msgs:/root/AirStack/ros_ws/install/mav_state_machine_msgs:/root/AirStack/ros_ws/install/mav_planning_msgs:/root/AirStack/ros_ws/install/mav_msgs:/root/AirStack/ros_ws/install/controls_bringup')]), 'shell': False} +[0.043222] (disparity_expansion) StdoutLine: {'line': b'-- Found ament_cmake: 1.3.9 (/opt/ros/humble/share/ament_cmake/cmake)\n'} +[0.099825] (-) TimerEvent: {} +[0.173072] (disparity_expansion) StdoutLine: {'line': b'-- Found rclcpp: 16.0.9 (/opt/ros/humble/share/rclcpp/cmake)\n'} +[0.199901] (-) TimerEvent: {} +[0.201131] (disparity_expansion) StdoutLine: {'line': b'-- Found rosidl_generator_c: 3.1.5 (/opt/ros/humble/share/rosidl_generator_c/cmake)\n'} +[0.203246] (disparity_expansion) StdoutLine: {'line': b'-- Found rosidl_adapter: 3.1.5 (/opt/ros/humble/share/rosidl_adapter/cmake)\n'} +[0.208210] (disparity_expansion) StdoutLine: {'line': b'-- Found rosidl_generator_cpp: 3.1.5 (/opt/ros/humble/share/rosidl_generator_cpp/cmake)\n'} +[0.217801] (disparity_expansion) StdoutLine: {'line': b'-- Using all available rosidl_typesupport_c: rosidl_typesupport_fastrtps_c;rosidl_typesupport_introspection_c\n'} +[0.231101] (disparity_expansion) StdoutLine: {'line': b'-- Using all available rosidl_typesupport_cpp: rosidl_typesupport_fastrtps_cpp;rosidl_typesupport_introspection_cpp\n'} +[0.281625] (disparity_expansion) StdoutLine: {'line': b'-- Found rmw_implementation_cmake: 6.1.2 (/opt/ros/humble/share/rmw_implementation_cmake/cmake)\n'} +[0.282979] (disparity_expansion) StdoutLine: {'line': b'-- Found rmw_fastrtps_cpp: 6.2.6 (/opt/ros/humble/share/rmw_fastrtps_cpp/cmake)\n'} +[0.299978] (-) TimerEvent: {} +[0.400167] (-) TimerEvent: {} +[0.457108] (disparity_expansion) StdoutLine: {'line': b"-- Using RMW implementation 'rmw_fastrtps_cpp' as default\n"} +[0.500242] (-) TimerEvent: {} +[0.586495] (disparity_expansion) StdoutLine: {'line': b'-- Found cv_bridge: 3.2.1 (/opt/ros/humble/share/cv_bridge/cmake)\n'} +[0.600323] (-) TimerEvent: {} +[0.700530] (-) TimerEvent: {} +[0.702091] (disparity_expansion) StdoutLine: {'line': b'-- Found image_geometry: 3.2.1 (/opt/ros/humble/share/image_geometry/cmake)\n'} +[0.708207] (disparity_expansion) StdoutLine: {'line': b'-- Found image_transport: 3.1.9 (/opt/ros/humble/share/image_transport/cmake)\n'} +[0.747590] (disparity_expansion) StdoutLine: {'line': b'-- Found tf2: 0.25.7 (/opt/ros/humble/share/tf2/cmake)\n'} +[0.756669] (disparity_expansion) StdoutLine: {'line': b'-- Found pcl_ros: 2.4.0 (/opt/ros/humble/share/pcl_ros/cmake)\n'} +[0.800590] (-) TimerEvent: {} +[0.900770] (-) TimerEvent: {} +[0.992737] (disparity_expansion) StdoutLine: {'line': b'-- Found eigen3_cmake_module: 0.1.1 (/opt/ros/humble/share/eigen3_cmake_module/cmake)\n'} +[0.993725] (disparity_expansion) StdoutLine: {'line': b'-- Found Eigen3: TRUE (found version "3.4.0") \n'} +[0.993857] (disparity_expansion) StdoutLine: {'line': b'-- Ensuring Eigen3 include directory is part of orocos-kdl CMake target\n'} +[1.000860] (-) TimerEvent: {} +[1.101066] (-) TimerEvent: {} +[1.201280] (-) TimerEvent: {} +[1.301485] (-) TimerEvent: {} +[1.334832] (disparity_expansion) StdoutLine: {'line': b'-- Eigen found (include: /usr/include/eigen3, version: 3.4.0)\n'} +[1.380341] (disparity_expansion) StdoutLine: {'line': b'-- FLANN found (include: /usr/include, lib: /usr/lib/x86_64-linux-gnu/libflann_cpp.so)\n'} +[1.401577] (-) TimerEvent: {} +[1.501831] (-) TimerEvent: {} +[1.602123] (-) TimerEvent: {} +[1.702406] (-) TimerEvent: {} +[1.727612] (disparity_expansion) StdoutLine: {'line': b'-- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb)\n'} +[1.738468] (disparity_expansion) StdoutLine: {'line': b'-- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb)\n'} +[1.802506] (-) TimerEvent: {} +[1.895538] (disparity_expansion) StdoutLine: {'line': b'-- Eigen found (include: /usr/include/eigen3, version: 3.4.0)\n'} +[1.902575] (-) TimerEvent: {} +[1.907106] (disparity_expansion) StdoutLine: {'line': b'-- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb)\n'} +[1.917965] (disparity_expansion) StdoutLine: {'line': b'-- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb)\n'} +[2.002679] (-) TimerEvent: {} +[2.074991] (disparity_expansion) StdoutLine: {'line': b'-- Found Qhull version 8.0.2\n'} +[2.102749] (-) TimerEvent: {} +[2.202966] (-) TimerEvent: {} +[2.230216] (disparity_expansion) StdoutLine: {'line': b'-- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb)\n'} +[2.303036] (-) TimerEvent: {} +[2.403213] (-) TimerEvent: {} +[2.407134] (disparity_expansion) StderrLine: {'line': b'\x1b[33mCMake Warning (dev) at CMakeLists.txt:29 (find_package):\n'} +[2.407314] (disparity_expansion) StderrLine: {'line': b' Policy CMP0074 is not set: find_package uses _ROOT variables.\n'} +[2.407439] (disparity_expansion) StderrLine: {'line': b' Run "cmake --help-policy CMP0074" for policy details. Use the cmake_policy\n'} +[2.407534] (disparity_expansion) StderrLine: {'line': b' command to set the policy and suppress this warning.\n'} +[2.407625] (disparity_expansion) StderrLine: {'line': b'\n'} +[2.407715] (disparity_expansion) StderrLine: {'line': b' CMake variable PCL_ROOT is set to:\n'} +[2.407830] (disparity_expansion) StderrLine: {'line': b'\n'} +[2.407918] (disparity_expansion) StderrLine: {'line': b' /usr\n'} +[2.408006] (disparity_expansion) StderrLine: {'line': b'\n'} +[2.408095] (disparity_expansion) StderrLine: {'line': b' For compatibility, CMake is ignoring the variable.\n'} +[2.408183] (disparity_expansion) StderrLine: {'line': b'This warning is for project developers. Use -Wno-dev to suppress it.\n'} +[2.408283] (disparity_expansion) StderrLine: {'line': b'\x1b[0m\n'} +[2.425136] (disparity_expansion) StdoutLine: {'line': b'-- Configuring done\n'} +[2.447425] (disparity_expansion) StdoutLine: {'line': b'-- Generating done\n'} +[2.449570] (disparity_expansion) StdoutLine: {'line': b'-- Build files have been written to: /root/AirStack/build/disparity_expansion\n'} +[2.499253] (disparity_expansion) StdoutLine: {'line': b'[ 50%] \x1b[32mBuilding CXX object CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o\x1b[0m\n'} +[2.503277] (-) TimerEvent: {} +[2.603494] (-) TimerEvent: {} +[2.703769] (-) TimerEvent: {} +[2.804040] (-) TimerEvent: {} +[2.826462] (disparity_expansion) StderrLine: {'line': b'In file included from \x1b[01m\x1b[K/root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_conv.cpp:42\x1b[m\x1b[K:\n'} +[2.826613] (disparity_expansion) StderrLine: {'line': b'\x1b[01m\x1b[K/opt/ros/humble/include/pcl_ros/point_cloud.hpp:45:10:\x1b[m\x1b[K \x1b[01;31m\x1b[Kfatal error: \x1b[m\x1b[Kros/ros.h: No such file or directory\n'} +[2.826706] (disparity_expansion) StderrLine: {'line': b' 45 | #include \x1b[01;31m\x1b[K\x1b[m\x1b[K\n'} +[2.826793] (disparity_expansion) StderrLine: {'line': b' | \x1b[01;31m\x1b[K^~~~~~~~~~~\x1b[m\x1b[K\n'} +[2.826878] (disparity_expansion) StderrLine: {'line': b'compilation terminated.\n'} +[2.835802] (disparity_expansion) StderrLine: {'line': b'gmake[2]: *** [CMakeFiles/disparity_conv.dir/build.make:76: CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o] Error 1\n'} +[2.836130] (disparity_expansion) StderrLine: {'line': b'gmake[1]: *** [CMakeFiles/Makefile2:137: CMakeFiles/disparity_conv.dir/all] Error 2\n'} +[2.836309] (disparity_expansion) StderrLine: {'line': b'gmake: *** [Makefile:101: all] Error 2\n'} +[2.838924] (disparity_expansion) CommandEnded: {'returncode': 2} +[2.839265] (disparity_expansion) JobEnded: {'identifier': 'disparity_expansion', 'rc': 2} +[2.849326] (-) EventReactorShutdown: {} diff --git a/log/build_2024-07-25_13-07-04/logger_all.log b/log/build_2024-07-25_13-07-04/logger_all.log new file mode 100644 index 000000000..2d34c455f --- /dev/null +++ b/log/build_2024-07-25_13-07-04/logger_all.log @@ -0,0 +1,2595 @@ +[0.077s] DEBUG:colcon:Command line arguments: ['/usr/bin/colcon', 'build', '--packages-select', 'disparity_expansion'] +[0.077s] DEBUG:colcon:Parsed command line arguments: Namespace(log_base=None, log_level=None, verb_name='build', build_base='build', install_base='install', merge_install=False, symlink_install=False, test_result_base=None, continue_on_error=False, executor='parallel', parallel_workers=12, event_handlers=None, ignore_user_meta=False, metas=['./colcon.meta'], base_paths=['.'], packages_ignore=None, packages_ignore_regex=None, paths=None, packages_up_to=None, packages_up_to_regex=None, packages_above=None, packages_above_and_dependencies=None, packages_above_depth=None, packages_select_by_dep=None, packages_skip_by_dep=None, packages_skip_up_to=None, packages_select_build_failed=False, packages_skip_build_finished=False, packages_select_test_failures=False, packages_skip_test_passed=False, packages_select=['disparity_expansion'], packages_skip=None, packages_select_regex=None, packages_skip_regex=None, packages_start=None, packages_end=None, allow_overriding=[], cmake_args=None, cmake_target=None, cmake_target_skip_unavailable=False, cmake_clean_cache=False, cmake_clean_first=False, cmake_force_configure=False, ament_cmake_args=None, catkin_cmake_args=None, catkin_skip_building_tests=False, mixin_files=None, mixin=None, verb_parser=, verb_extension=, main=>, mixin_verb=('build',)) +[0.196s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) check parameters +[0.196s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) check parameters +[0.197s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) check parameters +[0.197s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) check parameters +[0.197s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) discover +[0.197s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) discover +[0.197s] INFO:colcon.colcon_core.package_discovery:Crawling recursively for packages in '/root/AirStack' +[0.197s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ignore', 'ignore_ament_install'] +[0.197s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore' +[0.197s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore_ament_install' +[0.197s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_pkg'] +[0.197s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_pkg' +[0.197s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_meta'] +[0.197s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_meta' +[0.197s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ros'] +[0.197s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ros' +[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['cmake', 'python'] +[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'cmake' +[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'python' +[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['python_setup_py'] +[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'python_setup_py' +[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extensions ['ignore', 'ignore_ament_install'] +[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'ignore' +[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(build) ignored +[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extensions ['ignore', 'ignore_ament_install'] +[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'ignore' +[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'ignore_ament_install' +[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extensions ['colcon_pkg'] +[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'colcon_pkg' +[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extensions ['colcon_meta'] +[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'colcon_meta' +[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extensions ['ros'] +[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'ros' +[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extensions ['cmake', 'python'] +[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'cmake' +[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'python' +[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extensions ['python_setup_py'] +[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'python_setup_py' +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extensions ['ignore', 'ignore_ament_install'] +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'ignore' +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'ignore_ament_install' +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extensions ['colcon_pkg'] +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'colcon_pkg' +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extensions ['colcon_meta'] +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'colcon_meta' +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extensions ['ros'] +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'ros' +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extensions ['cmake', 'python'] +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'cmake' +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'python' +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extensions ['python_setup_py'] +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'python_setup_py' +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extensions ['ignore', 'ignore_ament_install'] +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'ignore' +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'ignore_ament_install' +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extensions ['colcon_pkg'] +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'colcon_pkg' +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extensions ['colcon_meta'] +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'colcon_meta' +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extensions ['ros'] +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'ros' +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extensions ['cmake', 'python'] +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'cmake' +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'python' +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extensions ['python_setup_py'] +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'python_setup_py' +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extensions ['ignore', 'ignore_ament_install'] +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'ignore' +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'ignore_ament_install' +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extensions ['colcon_pkg'] +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'colcon_pkg' +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extensions ['colcon_meta'] +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'colcon_meta' +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extensions ['ros'] +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'ros' +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extensions ['cmake', 'python'] +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'cmake' +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'python' +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extensions ['python_setup_py'] +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'python_setup_py' +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extensions ['ignore', 'ignore_ament_install'] +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'ignore' +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'ignore_ament_install' +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extensions ['colcon_pkg'] +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'colcon_pkg' +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extensions ['colcon_meta'] +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'colcon_meta' +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extensions ['ros'] +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'ros' +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extensions ['cmake', 'python'] +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'cmake' +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'python' +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extensions ['python_setup_py'] +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'python_setup_py' +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extensions ['ignore', 'ignore_ament_install'] +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'ignore' +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'ignore_ament_install' +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extensions ['colcon_pkg'] +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'colcon_pkg' +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extensions ['colcon_meta'] +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'colcon_meta' +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extensions ['ros'] +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'ros' +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extensions ['cmake', 'python'] +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'cmake' +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'python' +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extensions ['python_setup_py'] +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'python_setup_py' +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extensions ['ignore', 'ignore_ament_install'] +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'ignore' +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'ignore_ament_install' +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extensions ['colcon_pkg'] +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'colcon_pkg' +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extensions ['colcon_meta'] +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'colcon_meta' +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extensions ['ros'] +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'ros' +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extensions ['cmake', 'python'] +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'cmake' +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'python' +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extensions ['python_setup_py'] +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'python_setup_py' +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extensions ['ignore', 'ignore_ament_install'] +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'ignore' +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'ignore_ament_install' +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extensions ['colcon_pkg'] +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'colcon_pkg' +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extensions ['colcon_meta'] +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'colcon_meta' +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extensions ['ros'] +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'ros' +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extensions ['cmake', 'python'] +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'cmake' +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'python' +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extensions ['python_setup_py'] +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'python_setup_py' +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extensions ['ignore', 'ignore_ament_install'] +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'ignore' +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'ignore_ament_install' +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extensions ['colcon_pkg'] +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'colcon_pkg' +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extensions ['colcon_meta'] +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'colcon_meta' +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extensions ['ros'] +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'ros' +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extensions ['cmake', 'python'] +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'cmake' +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'python' +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extensions ['python_setup_py'] +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'python_setup_py' +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extensions ['ignore', 'ignore_ament_install'] +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'ignore' +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(install) ignored +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extensions ['ignore', 'ignore_ament_install'] +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'ignore' +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'ignore_ament_install' +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extensions ['colcon_pkg'] +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'colcon_pkg' +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extensions ['colcon_meta'] +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'colcon_meta' +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extensions ['ros'] +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'ros' +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extensions ['cmake', 'python'] +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'cmake' +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'python' +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extensions ['python_setup_py'] +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'python_setup_py' +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(log) by extensions ['ignore', 'ignore_ament_install'] +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(log) by extension 'ignore' +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(log) ignored +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extensions ['ignore', 'ignore_ament_install'] +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'ignore' +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'ignore_ament_install' +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extensions ['colcon_pkg'] +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'colcon_pkg' +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extensions ['colcon_meta'] +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'colcon_meta' +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extensions ['ros'] +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'ros' +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extensions ['cmake', 'python'] +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'cmake' +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'python' +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extensions ['python_setup_py'] +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'python_setup_py' +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/build) by extensions ['ignore', 'ignore_ament_install'] +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/build) by extension 'ignore' +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/build) ignored +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/install) by extensions ['ignore', 'ignore_ament_install'] +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/install) by extension 'ignore' +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/install) ignored +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/log) by extensions ['ignore', 'ignore_ament_install'] +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/log) by extension 'ignore' +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/log) ignored +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extensions ['ignore', 'ignore_ament_install'] +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'ignore' +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'ignore_ament_install' +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extensions ['colcon_pkg'] +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'colcon_pkg' +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extensions ['colcon_meta'] +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'colcon_meta' +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extensions ['ros'] +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'ros' +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extensions ['cmake', 'python'] +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'cmake' +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'python' +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extensions ['python_setup_py'] +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'python_setup_py' +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extensions ['ignore', 'ignore_ament_install'] +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'ignore' +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'ignore_ament_install' +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extensions ['colcon_pkg'] +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'colcon_pkg' +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extensions ['colcon_meta'] +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'colcon_meta' +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extensions ['ros'] +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'ros' +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extensions ['cmake', 'python'] +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'cmake' +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'python' +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extensions ['python_setup_py'] +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'python_setup_py' +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extensions ['ignore', 'ignore_ament_install'] +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'ignore' +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'ignore_ament_install' +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extensions ['colcon_pkg'] +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'colcon_pkg' +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extensions ['colcon_meta'] +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'colcon_meta' +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extensions ['ros'] +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'ros' +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extensions ['cmake', 'python'] +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'cmake' +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'python' +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extensions ['python_setup_py'] +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'python_setup_py' +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extensions ['ignore', 'ignore_ament_install'] +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'ignore' +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'ignore_ament_install' +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extensions ['colcon_pkg'] +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'colcon_pkg' +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extensions ['colcon_meta'] +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'colcon_meta' +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extensions ['ros'] +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'ros' +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extensions ['cmake', 'python'] +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'cmake' +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'python' +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extensions ['python_setup_py'] +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'python_setup_py' +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extensions ['ignore', 'ignore_ament_install'] +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'ignore' +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'ignore_ament_install' +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extensions ['colcon_pkg'] +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'colcon_pkg' +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extensions ['colcon_meta'] +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'colcon_meta' +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extensions ['ros'] +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'ros' +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extensions ['cmake', 'python'] +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'cmake' +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'python' +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extensions ['python_setup_py'] +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'python_setup_py' +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extensions ['ignore', 'ignore_ament_install'] +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extension 'ignore' +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extension 'ignore_ament_install' +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extensions ['colcon_pkg'] +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extension 'colcon_pkg' +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extensions ['colcon_meta'] +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extension 'colcon_meta' +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extensions ['ros'] +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extension 'ros' +[0.215s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/controls_bringup' with type 'ros.ament_cmake' and name 'controls_bringup' +[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extensions ['ignore', 'ignore_ament_install'] +[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'ignore' +[0.215s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'ignore_ament_install' +[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extensions ['colcon_pkg'] +[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'colcon_pkg' +[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extensions ['colcon_meta'] +[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'colcon_meta' +[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extensions ['ros'] +[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'ros' +[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extensions ['cmake', 'python'] +[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'cmake' +[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'python' +[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extensions ['python_setup_py'] +[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'python_setup_py' +[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extensions ['ignore', 'ignore_ament_install'] +[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extension 'ignore' +[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extension 'ignore_ament_install' +[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extensions ['colcon_pkg'] +[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extension 'colcon_pkg' +[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extensions ['colcon_meta'] +[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extension 'colcon_meta' +[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extensions ['ros'] +[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extension 'ros' +[0.217s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm' with type 'ros.ament_cmake' and name 'mav_comm' +[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extensions ['ignore', 'ignore_ament_install'] +[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extension 'ignore' +[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extension 'ignore_ament_install' +[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extensions ['colcon_pkg'] +[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extension 'colcon_pkg' +[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extensions ['colcon_meta'] +[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extension 'colcon_meta' +[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extensions ['ros'] +[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extension 'ros' +[0.218s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs' with type 'ros.ament_cmake' and name 'mav_msgs' +[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extensions ['ignore', 'ignore_ament_install'] +[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extension 'ignore' +[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extension 'ignore_ament_install' +[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extensions ['colcon_pkg'] +[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extension 'colcon_pkg' +[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extensions ['colcon_meta'] +[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extension 'colcon_meta' +[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extensions ['ros'] +[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extension 'ros' +[0.219s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs' with type 'ros.ament_cmake' and name 'mav_planning_msgs' +[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extensions ['ignore', 'ignore_ament_install'] +[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extension 'ignore' +[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extension 'ignore_ament_install' +[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extensions ['colcon_pkg'] +[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extension 'colcon_pkg' +[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extensions ['colcon_meta'] +[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extension 'colcon_meta' +[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extensions ['ros'] +[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extension 'ros' +[0.220s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs' with type 'ros.ament_cmake' and name 'mav_state_machine_msgs' +[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extensions ['ignore', 'ignore_ament_install'] +[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extension 'ignore' +[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extension 'ignore_ament_install' +[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extensions ['colcon_pkg'] +[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extension 'colcon_pkg' +[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extensions ['colcon_meta'] +[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extension 'colcon_meta' +[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extensions ['ros'] +[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extension 'ros' +[0.220s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs' with type 'ros.ament_cmake' and name 'mav_system_msgs' +[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extensions ['ignore', 'ignore_ament_install'] +[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extension 'ignore' +[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extension 'ignore_ament_install' +[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extensions ['colcon_pkg'] +[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extension 'colcon_pkg' +[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extensions ['colcon_meta'] +[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extension 'colcon_meta' +[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extensions ['ros'] +[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extension 'ros' +[0.221s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/mavros_interface' with type 'ros.ament_cmake' and name 'mavros_interface' +[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extensions ['ignore', 'ignore_ament_install'] +[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extension 'ignore' +[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extension 'ignore_ament_install' +[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extensions ['colcon_pkg'] +[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extension 'colcon_pkg' +[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extensions ['colcon_meta'] +[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extension 'colcon_meta' +[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extensions ['ros'] +[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extension 'ros' +[0.222s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/px4_msgs' with type 'ros.ament_cmake' and name 'px4_msgs' +[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extensions ['ignore', 'ignore_ament_install'] +[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extension 'ignore' +[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extension 'ignore_ament_install' +[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extensions ['colcon_pkg'] +[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extension 'colcon_pkg' +[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extensions ['colcon_meta'] +[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extension 'colcon_meta' +[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extensions ['ros'] +[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extension 'ros' +[0.223s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/px4_ros_com' with type 'ros.ament_cmake' and name 'px4_ros_com' +[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extensions ['ignore', 'ignore_ament_install'] +[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extension 'ignore' +[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extension 'ignore_ament_install' +[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extensions ['colcon_pkg'] +[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extension 'colcon_pkg' +[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extensions ['colcon_meta'] +[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extension 'colcon_meta' +[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extensions ['ros'] +[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extension 'ros' +[0.224s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/robot_interface' with type 'ros.ament_cmake' and name 'robot_interface' +[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extensions ['ignore', 'ignore_ament_install'] +[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'ignore' +[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'ignore_ament_install' +[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extensions ['colcon_pkg'] +[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'colcon_pkg' +[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extensions ['colcon_meta'] +[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'colcon_meta' +[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extensions ['ros'] +[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'ros' +[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extensions ['cmake', 'python'] +[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'cmake' +[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'python' +[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extensions ['python_setup_py'] +[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'python_setup_py' +[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extensions ['ignore', 'ignore_ament_install'] +[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'ignore' +[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'ignore_ament_install' +[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extensions ['colcon_pkg'] +[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'colcon_pkg' +[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extensions ['colcon_meta'] +[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'colcon_meta' +[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extensions ['ros'] +[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'ros' +[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extensions ['cmake', 'python'] +[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'cmake' +[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'python' +[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extensions ['python_setup_py'] +[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'python_setup_py' +[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extensions ['ignore', 'ignore_ament_install'] +[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'ignore' +[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'ignore_ament_install' +[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extensions ['colcon_pkg'] +[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'colcon_pkg' +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extensions ['colcon_meta'] +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'colcon_meta' +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extensions ['ros'] +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'ros' +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extensions ['cmake', 'python'] +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'cmake' +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'python' +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extensions ['python_setup_py'] +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'python_setup_py' +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extensions ['ignore', 'ignore_ament_install'] +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'ignore' +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'ignore_ament_install' +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extensions ['colcon_pkg'] +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'colcon_pkg' +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extensions ['colcon_meta'] +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'colcon_meta' +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extensions ['ros'] +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'ros' +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extensions ['cmake', 'python'] +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'cmake' +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'python' +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extensions ['python_setup_py'] +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'python_setup_py' +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation) by extensions ['ignore', 'ignore_ament_install'] +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation) by extension 'ignore' +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation) ignored +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/core_local_planner) by extensions ['ignore', 'ignore_ament_install'] +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/core_local_planner) by extension 'ignore' +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/core_local_planner) ignored +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extensions ['ignore', 'ignore_ament_install'] +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extension 'ignore' +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extension 'ignore_ament_install' +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extensions ['colcon_pkg'] +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extension 'colcon_pkg' +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extensions ['colcon_meta'] +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extension 'colcon_meta' +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extensions ['ros'] +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extension 'ros' +[0.228s] DEBUG:colcon.colcon_core.package_identification:Failed to parse potential ROS package manifest in'ros_ws/src/robot/autonomy/planning/local/disparity_expansion': Error(s) in package 'ros_ws/src/robot/autonomy/planning/local/disparity_expansion/package.xml': +Error(s): +- The manifest of package "disparity_expansion" (with format version 1) must not contain the following tags: exec_depend +- Either update to a newer format or replace tags with tags. +[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extensions ['cmake', 'python'] +[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extension 'cmake' +[0.229s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extension 'python' +[0.229s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/planning/local/disparity_expansion' with type 'cmake' and name 'disparity_expansion' +[0.229s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp) by extensions ['ignore', 'ignore_ament_install'] +[0.229s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp) by extension 'ignore' +[0.229s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp) ignored +[0.229s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extensions ['ignore', 'ignore_ament_install'] +[0.229s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'ignore' +[0.229s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'ignore_ament_install' +[0.229s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extensions ['colcon_pkg'] +[0.229s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'colcon_pkg' +[0.229s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extensions ['colcon_meta'] +[0.229s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'colcon_meta' +[0.229s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extensions ['ros'] +[0.229s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'ros' +[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extensions ['cmake', 'python'] +[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'cmake' +[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'python' +[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extensions ['python_setup_py'] +[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'python_setup_py' +[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extensions ['ignore', 'ignore_ament_install'] +[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'ignore' +[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'ignore_ament_install' +[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extensions ['colcon_pkg'] +[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'colcon_pkg' +[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extensions ['colcon_meta'] +[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'colcon_meta' +[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extensions ['ros'] +[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'ros' +[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extensions ['cmake', 'python'] +[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'cmake' +[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'python' +[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extensions ['python_setup_py'] +[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'python_setup_py' +[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extensions ['ignore', 'ignore_ament_install'] +[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extension 'ignore' +[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extension 'ignore_ament_install' +[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extensions ['colcon_pkg'] +[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extension 'colcon_pkg' +[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extensions ['colcon_meta'] +[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extension 'colcon_meta' +[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extensions ['ros'] +[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extension 'ros' +[0.231s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping' with type 'ros.cmake' and name 'vdb_mapping' +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extensions ['ignore', 'ignore_ament_install'] +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'ignore' +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'ignore_ament_install' +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extensions ['colcon_pkg'] +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'colcon_pkg' +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extensions ['colcon_meta'] +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'colcon_meta' +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extensions ['ros'] +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'ros' +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extensions ['cmake', 'python'] +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'cmake' +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'python' +[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extensions ['python_setup_py'] +[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'python_setup_py' +[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extensions ['ignore', 'ignore_ament_install'] +[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extension 'ignore' +[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extension 'ignore_ament_install' +[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extensions ['colcon_pkg'] +[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extension 'colcon_pkg' +[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extensions ['colcon_meta'] +[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extension 'colcon_meta' +[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extensions ['ros'] +[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extension 'ros' +[0.232s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces' with type 'ros.ament_cmake' and name 'vdb_mapping_interfaces' +[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extensions ['ignore', 'ignore_ament_install'] +[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extension 'ignore' +[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extension 'ignore_ament_install' +[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extensions ['colcon_pkg'] +[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extension 'colcon_pkg' +[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extensions ['colcon_meta'] +[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extension 'colcon_meta' +[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extensions ['ros'] +[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extension 'ros' +[0.234s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2' with type 'ros.ament_cmake' and name 'vdb_mapping_ros2' +[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extensions ['ignore', 'ignore_ament_install'] +[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'ignore' +[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'ignore_ament_install' +[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extensions ['colcon_pkg'] +[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'colcon_pkg' +[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extensions ['colcon_meta'] +[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'colcon_meta' +[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extensions ['ros'] +[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'ros' +[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extensions ['cmake', 'python'] +[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'cmake' +[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'python' +[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extensions ['python_setup_py'] +[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'python_setup_py' +[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extensions ['ignore', 'ignore_ament_install'] +[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extension 'ignore' +[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extension 'ignore_ament_install' +[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extensions ['colcon_pkg'] +[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extension 'colcon_pkg' +[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extensions ['colcon_meta'] +[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extension 'colcon_meta' +[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extensions ['ros'] +[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extension 'ros' +[0.235s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/robot_bringup' with type 'ros.ament_cmake' and name 'robot_bringup' +[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extensions ['ignore', 'ignore_ament_install'] +[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'ignore' +[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'ignore_ament_install' +[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extensions ['colcon_pkg'] +[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'colcon_pkg' +[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extensions ['colcon_meta'] +[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'colcon_meta' +[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extensions ['ros'] +[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'ros' +[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extensions ['cmake', 'python'] +[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'cmake' +[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'python' +[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extensions ['python_setup_py'] +[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'python_setup_py' +[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extensions ['ignore', 'ignore_ament_install'] +[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'ignore' +[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'ignore_ament_install' +[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extensions ['colcon_pkg'] +[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'colcon_pkg' +[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extensions ['colcon_meta'] +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'colcon_meta' +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extensions ['ros'] +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'ros' +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extensions ['cmake', 'python'] +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'cmake' +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'python' +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extensions ['python_setup_py'] +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'python_setup_py' +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extensions ['ignore', 'ignore_ament_install'] +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'ignore' +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'ignore_ament_install' +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extensions ['colcon_pkg'] +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'colcon_pkg' +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extensions ['colcon_meta'] +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'colcon_meta' +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extensions ['ros'] +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'ros' +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extensions ['cmake', 'python'] +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'cmake' +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'python' +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extensions ['python_setup_py'] +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'python_setup_py' +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extensions ['ignore', 'ignore_ament_install'] +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'ignore' +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'ignore_ament_install' +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extensions ['colcon_pkg'] +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'colcon_pkg' +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extensions ['colcon_meta'] +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'colcon_meta' +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extensions ['ros'] +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'ros' +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extensions ['cmake', 'python'] +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'cmake' +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'python' +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extensions ['python_setup_py'] +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'python_setup_py' +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extensions ['ignore', 'ignore_ament_install'] +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'ignore' +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'ignore_ament_install' +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extensions ['colcon_pkg'] +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'colcon_pkg' +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extensions ['colcon_meta'] +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'colcon_meta' +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extensions ['ros'] +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'ros' +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extensions ['cmake', 'python'] +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'cmake' +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'python' +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extensions ['python_setup_py'] +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'python_setup_py' +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extensions ['ignore', 'ignore_ament_install'] +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'ignore' +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'ignore_ament_install' +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extensions ['colcon_pkg'] +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'colcon_pkg' +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extensions ['colcon_meta'] +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'colcon_meta' +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extensions ['ros'] +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'ros' +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extensions ['cmake', 'python'] +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'cmake' +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'python' +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extensions ['python_setup_py'] +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'python_setup_py' +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extensions ['ignore', 'ignore_ament_install'] +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'ignore' +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'ignore_ament_install' +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extensions ['colcon_pkg'] +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'colcon_pkg' +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extensions ['colcon_meta'] +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'colcon_meta' +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extensions ['ros'] +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'ros' +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extensions ['cmake', 'python'] +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'cmake' +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'python' +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extensions ['python_setup_py'] +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'python_setup_py' +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extensions ['ignore', 'ignore_ament_install'] +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'ignore' +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'ignore_ament_install' +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extensions ['colcon_pkg'] +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'colcon_pkg' +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extensions ['colcon_meta'] +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'colcon_meta' +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extensions ['ros'] +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'ros' +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extensions ['cmake', 'python'] +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'cmake' +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'python' +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extensions ['python_setup_py'] +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'python_setup_py' +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extensions ['ignore', 'ignore_ament_install'] +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'ignore' +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'ignore_ament_install' +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extensions ['colcon_pkg'] +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'colcon_pkg' +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extensions ['colcon_meta'] +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'colcon_meta' +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extensions ['ros'] +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'ros' +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extensions ['cmake', 'python'] +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'cmake' +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'python' +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extensions ['python_setup_py'] +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'python_setup_py' +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extensions ['ignore', 'ignore_ament_install'] +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'ignore' +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'ignore_ament_install' +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extensions ['colcon_pkg'] +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'colcon_pkg' +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extensions ['colcon_meta'] +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'colcon_meta' +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extensions ['ros'] +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'ros' +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extensions ['cmake', 'python'] +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'cmake' +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'python' +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extensions ['python_setup_py'] +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'python_setup_py' +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extensions ['ignore', 'ignore_ament_install'] +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'ignore' +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'ignore_ament_install' +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extensions ['colcon_pkg'] +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'colcon_pkg' +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extensions ['colcon_meta'] +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'colcon_meta' +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extensions ['ros'] +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'ros' +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extensions ['cmake', 'python'] +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'cmake' +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'python' +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extensions ['python_setup_py'] +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'python_setup_py' +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extensions ['ignore', 'ignore_ament_install'] +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'ignore' +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'ignore_ament_install' +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extensions ['colcon_pkg'] +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'colcon_pkg' +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extensions ['colcon_meta'] +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'colcon_meta' +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extensions ['ros'] +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'ros' +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extensions ['cmake', 'python'] +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'cmake' +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'python' +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extensions ['python_setup_py'] +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'python_setup_py' +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extensions ['ignore', 'ignore_ament_install'] +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'ignore' +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'ignore_ament_install' +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extensions ['colcon_pkg'] +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'colcon_pkg' +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extensions ['colcon_meta'] +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'colcon_meta' +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extensions ['ros'] +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'ros' +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extensions ['cmake', 'python'] +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'cmake' +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'python' +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extensions ['python_setup_py'] +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'python_setup_py' +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extensions ['ignore', 'ignore_ament_install'] +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'ignore' +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'ignore_ament_install' +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extensions ['colcon_pkg'] +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'colcon_pkg' +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extensions ['colcon_meta'] +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'colcon_meta' +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extensions ['ros'] +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'ros' +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extensions ['cmake', 'python'] +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'cmake' +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'python' +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extensions ['python_setup_py'] +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'python_setup_py' +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extensions ['ignore', 'ignore_ament_install'] +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'ignore' +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'ignore_ament_install' +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extensions ['colcon_pkg'] +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'colcon_pkg' +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extensions ['colcon_meta'] +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'colcon_meta' +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extensions ['ros'] +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'ros' +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extensions ['cmake', 'python'] +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'cmake' +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'python' +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extensions ['python_setup_py'] +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'python_setup_py' +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extensions ['ignore', 'ignore_ament_install'] +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'ignore' +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'ignore_ament_install' +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extensions ['colcon_pkg'] +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'colcon_pkg' +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extensions ['colcon_meta'] +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'colcon_meta' +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extensions ['ros'] +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'ros' +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extensions ['cmake', 'python'] +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'cmake' +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'python' +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extensions ['python_setup_py'] +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'python_setup_py' +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extensions ['ignore', 'ignore_ament_install'] +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'ignore' +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'ignore_ament_install' +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extensions ['colcon_pkg'] +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'colcon_pkg' +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extensions ['colcon_meta'] +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'colcon_meta' +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extensions ['ros'] +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'ros' +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extensions ['cmake', 'python'] +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'cmake' +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'python' +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extensions ['python_setup_py'] +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'python_setup_py' +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extensions ['ignore', 'ignore_ament_install'] +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'ignore' +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'ignore_ament_install' +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extensions ['colcon_pkg'] +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'colcon_pkg' +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extensions ['colcon_meta'] +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'colcon_meta' +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extensions ['ros'] +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'ros' +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extensions ['cmake', 'python'] +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'cmake' +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'python' +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extensions ['python_setup_py'] +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'python_setup_py' +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extensions ['ignore', 'ignore_ament_install'] +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'ignore' +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'ignore_ament_install' +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extensions ['colcon_pkg'] +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'colcon_pkg' +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extensions ['colcon_meta'] +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'colcon_meta' +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extensions ['ros'] +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'ros' +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extensions ['cmake', 'python'] +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'cmake' +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'python' +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extensions ['python_setup_py'] +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'python_setup_py' +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extensions ['ignore', 'ignore_ament_install'] +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'ignore' +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'ignore_ament_install' +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extensions ['colcon_pkg'] +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'colcon_pkg' +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extensions ['colcon_meta'] +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'colcon_meta' +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extensions ['ros'] +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'ros' +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extensions ['cmake', 'python'] +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'cmake' +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'python' +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extensions ['python_setup_py'] +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'python_setup_py' +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extensions ['ignore', 'ignore_ament_install'] +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'ignore' +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'ignore_ament_install' +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extensions ['colcon_pkg'] +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'colcon_pkg' +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extensions ['colcon_meta'] +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'colcon_meta' +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extensions ['ros'] +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'ros' +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extensions ['cmake', 'python'] +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'cmake' +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'python' +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extensions ['python_setup_py'] +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'python_setup_py' +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extensions ['ignore', 'ignore_ament_install'] +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'ignore' +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'ignore_ament_install' +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extensions ['colcon_pkg'] +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'colcon_pkg' +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extensions ['colcon_meta'] +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'colcon_meta' +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extensions ['ros'] +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'ros' +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extensions ['cmake', 'python'] +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'cmake' +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'python' +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extensions ['python_setup_py'] +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'python_setup_py' +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extensions ['ignore', 'ignore_ament_install'] +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'ignore' +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'ignore_ament_install' +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extensions ['colcon_pkg'] +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'colcon_pkg' +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extensions ['colcon_meta'] +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'colcon_meta' +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extensions ['ros'] +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'ros' +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extensions ['cmake', 'python'] +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'cmake' +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'python' +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extensions ['python_setup_py'] +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'python_setup_py' +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extensions ['ignore', 'ignore_ament_install'] +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'ignore' +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'ignore_ament_install' +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extensions ['colcon_pkg'] +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'colcon_pkg' +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extensions ['colcon_meta'] +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'colcon_meta' +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extensions ['ros'] +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'ros' +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extensions ['cmake', 'python'] +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'cmake' +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'python' +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extensions ['python_setup_py'] +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'python_setup_py' +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extensions ['ignore', 'ignore_ament_install'] +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'ignore' +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'ignore_ament_install' +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extensions ['colcon_pkg'] +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'colcon_pkg' +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extensions ['colcon_meta'] +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'colcon_meta' +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extensions ['ros'] +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'ros' +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extensions ['cmake', 'python'] +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'cmake' +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'python' +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extensions ['python_setup_py'] +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'python_setup_py' +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extensions ['ignore', 'ignore_ament_install'] +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'ignore' +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'ignore_ament_install' +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extensions ['colcon_pkg'] +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'colcon_pkg' +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extensions ['colcon_meta'] +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'colcon_meta' +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extensions ['ros'] +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'ros' +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extensions ['cmake', 'python'] +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'cmake' +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'python' +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extensions ['python_setup_py'] +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'python_setup_py' +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extensions ['ignore', 'ignore_ament_install'] +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'ignore' +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'ignore_ament_install' +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extensions ['colcon_pkg'] +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'colcon_pkg' +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extensions ['colcon_meta'] +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'colcon_meta' +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extensions ['ros'] +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'ros' +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extensions ['cmake', 'python'] +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'cmake' +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'python' +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extensions ['python_setup_py'] +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'python_setup_py' +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extensions ['ignore', 'ignore_ament_install'] +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'ignore' +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'ignore_ament_install' +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extensions ['colcon_pkg'] +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'colcon_pkg' +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extensions ['colcon_meta'] +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'colcon_meta' +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extensions ['ros'] +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'ros' +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extensions ['cmake', 'python'] +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'cmake' +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'python' +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extensions ['python_setup_py'] +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'python_setup_py' +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extensions ['ignore', 'ignore_ament_install'] +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'ignore' +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'ignore_ament_install' +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extensions ['colcon_pkg'] +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'colcon_pkg' +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extensions ['colcon_meta'] +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'colcon_meta' +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extensions ['ros'] +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'ros' +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extensions ['cmake', 'python'] +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'cmake' +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'python' +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extensions ['python_setup_py'] +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'python_setup_py' +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extensions ['ignore', 'ignore_ament_install'] +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'ignore' +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'ignore_ament_install' +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extensions ['colcon_pkg'] +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'colcon_pkg' +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extensions ['colcon_meta'] +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'colcon_meta' +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extensions ['ros'] +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'ros' +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extensions ['cmake', 'python'] +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'cmake' +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'python' +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extensions ['python_setup_py'] +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'python_setup_py' +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extensions ['ignore', 'ignore_ament_install'] +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'ignore' +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'ignore_ament_install' +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extensions ['colcon_pkg'] +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'colcon_pkg' +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extensions ['colcon_meta'] +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'colcon_meta' +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extensions ['ros'] +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'ros' +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extensions ['cmake', 'python'] +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'cmake' +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'python' +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extensions ['python_setup_py'] +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'python_setup_py' +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extensions ['ignore', 'ignore_ament_install'] +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'ignore' +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'ignore_ament_install' +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extensions ['colcon_pkg'] +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'colcon_pkg' +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extensions ['colcon_meta'] +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'colcon_meta' +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extensions ['ros'] +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'ros' +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extensions ['cmake', 'python'] +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'cmake' +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'python' +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extensions ['python_setup_py'] +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'python_setup_py' +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extensions ['ignore', 'ignore_ament_install'] +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'ignore' +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'ignore_ament_install' +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extensions ['colcon_pkg'] +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'colcon_pkg' +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extensions ['colcon_meta'] +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'colcon_meta' +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extensions ['ros'] +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'ros' +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extensions ['cmake', 'python'] +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'cmake' +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'python' +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extensions ['python_setup_py'] +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'python_setup_py' +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extensions ['ignore', 'ignore_ament_install'] +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'ignore' +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'ignore_ament_install' +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extensions ['colcon_pkg'] +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'colcon_pkg' +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extensions ['colcon_meta'] +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'colcon_meta' +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extensions ['ros'] +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'ros' +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extensions ['cmake', 'python'] +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'cmake' +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'python' +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extensions ['python_setup_py'] +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'python_setup_py' +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extensions ['ignore', 'ignore_ament_install'] +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'ignore' +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'ignore_ament_install' +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extensions ['colcon_pkg'] +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'colcon_pkg' +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extensions ['colcon_meta'] +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'colcon_meta' +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extensions ['ros'] +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'ros' +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extensions ['cmake', 'python'] +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'cmake' +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'python' +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extensions ['python_setup_py'] +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'python_setup_py' +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extensions ['ignore', 'ignore_ament_install'] +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'ignore' +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'ignore_ament_install' +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extensions ['colcon_pkg'] +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'colcon_pkg' +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extensions ['colcon_meta'] +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'colcon_meta' +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extensions ['ros'] +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'ros' +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extensions ['cmake', 'python'] +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'cmake' +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'python' +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extensions ['python_setup_py'] +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'python_setup_py' +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extensions ['ignore', 'ignore_ament_install'] +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'ignore' +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'ignore_ament_install' +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extensions ['colcon_pkg'] +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'colcon_pkg' +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extensions ['colcon_meta'] +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'colcon_meta' +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extensions ['ros'] +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'ros' +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extensions ['cmake', 'python'] +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'cmake' +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'python' +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extensions ['python_setup_py'] +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'python_setup_py' +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extensions ['ignore', 'ignore_ament_install'] +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'ignore' +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'ignore_ament_install' +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extensions ['colcon_pkg'] +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'colcon_pkg' +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extensions ['colcon_meta'] +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'colcon_meta' +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extensions ['ros'] +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'ros' +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extensions ['cmake', 'python'] +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'cmake' +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'python' +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extensions ['python_setup_py'] +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'python_setup_py' +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extensions ['ignore', 'ignore_ament_install'] +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'ignore' +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'ignore_ament_install' +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extensions ['colcon_pkg'] +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'colcon_pkg' +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extensions ['colcon_meta'] +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'colcon_meta' +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extensions ['ros'] +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'ros' +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extensions ['cmake', 'python'] +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'cmake' +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'python' +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extensions ['python_setup_py'] +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'python_setup_py' +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extensions ['ignore', 'ignore_ament_install'] +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'ignore' +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'ignore_ament_install' +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extensions ['colcon_pkg'] +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'colcon_pkg' +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extensions ['colcon_meta'] +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'colcon_meta' +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extensions ['ros'] +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'ros' +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extensions ['cmake', 'python'] +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'cmake' +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'python' +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extensions ['python_setup_py'] +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'python_setup_py' +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extensions ['ignore', 'ignore_ament_install'] +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'ignore' +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'ignore_ament_install' +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extensions ['colcon_pkg'] +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'colcon_pkg' +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extensions ['colcon_meta'] +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'colcon_meta' +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extensions ['ros'] +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'ros' +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extensions ['cmake', 'python'] +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'cmake' +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'python' +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extensions ['python_setup_py'] +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'python_setup_py' +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extensions ['ignore', 'ignore_ament_install'] +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'ignore' +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'ignore_ament_install' +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extensions ['colcon_pkg'] +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'colcon_pkg' +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extensions ['colcon_meta'] +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'colcon_meta' +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extensions ['ros'] +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'ros' +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extensions ['cmake', 'python'] +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'cmake' +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'python' +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extensions ['python_setup_py'] +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'python_setup_py' +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extensions ['ignore', 'ignore_ament_install'] +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'ignore' +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'ignore_ament_install' +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extensions ['colcon_pkg'] +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'colcon_pkg' +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extensions ['colcon_meta'] +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'colcon_meta' +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extensions ['ros'] +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'ros' +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extensions ['cmake', 'python'] +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'cmake' +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'python' +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extensions ['python_setup_py'] +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'python_setup_py' +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extensions ['ignore', 'ignore_ament_install'] +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'ignore' +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'ignore_ament_install' +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extensions ['colcon_pkg'] +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'colcon_pkg' +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extensions ['colcon_meta'] +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'colcon_meta' +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extensions ['ros'] +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'ros' +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extensions ['cmake', 'python'] +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'cmake' +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'python' +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extensions ['python_setup_py'] +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'python_setup_py' +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extensions ['ignore', 'ignore_ament_install'] +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'ignore' +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'ignore_ament_install' +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extensions ['colcon_pkg'] +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'colcon_pkg' +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extensions ['colcon_meta'] +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'colcon_meta' +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extensions ['ros'] +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'ros' +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extensions ['cmake', 'python'] +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'cmake' +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'python' +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extensions ['python_setup_py'] +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'python_setup_py' +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extensions ['ignore', 'ignore_ament_install'] +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'ignore' +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'ignore_ament_install' +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extensions ['colcon_pkg'] +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'colcon_pkg' +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extensions ['colcon_meta'] +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'colcon_meta' +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extensions ['ros'] +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'ros' +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extensions ['cmake', 'python'] +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'cmake' +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'python' +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extensions ['python_setup_py'] +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'python_setup_py' +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extensions ['ignore', 'ignore_ament_install'] +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'ignore' +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'ignore_ament_install' +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extensions ['colcon_pkg'] +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'colcon_pkg' +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extensions ['colcon_meta'] +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'colcon_meta' +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extensions ['ros'] +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'ros' +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extensions ['cmake', 'python'] +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'cmake' +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'python' +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extensions ['python_setup_py'] +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'python_setup_py' +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extensions ['ignore', 'ignore_ament_install'] +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'ignore' +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'ignore_ament_install' +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extensions ['colcon_pkg'] +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'colcon_pkg' +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extensions ['colcon_meta'] +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'colcon_meta' +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extensions ['ros'] +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'ros' +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extensions ['cmake', 'python'] +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'cmake' +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'python' +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extensions ['python_setup_py'] +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'python_setup_py' +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extensions ['ignore', 'ignore_ament_install'] +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'ignore' +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'ignore_ament_install' +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extensions ['colcon_pkg'] +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'colcon_pkg' +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extensions ['colcon_meta'] +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'colcon_meta' +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extensions ['ros'] +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'ros' +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extensions ['cmake', 'python'] +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'cmake' +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'python' +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extensions ['python_setup_py'] +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'python_setup_py' +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extensions ['ignore', 'ignore_ament_install'] +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'ignore' +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'ignore_ament_install' +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extensions ['colcon_pkg'] +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'colcon_pkg' +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extensions ['colcon_meta'] +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'colcon_meta' +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extensions ['ros'] +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'ros' +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extensions ['cmake', 'python'] +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'cmake' +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'python' +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extensions ['python_setup_py'] +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'python_setup_py' +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extensions ['ignore', 'ignore_ament_install'] +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'ignore' +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'ignore_ament_install' +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extensions ['colcon_pkg'] +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'colcon_pkg' +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extensions ['colcon_meta'] +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'colcon_meta' +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extensions ['ros'] +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'ros' +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extensions ['cmake', 'python'] +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'cmake' +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'python' +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extensions ['python_setup_py'] +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'python_setup_py' +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extensions ['ignore', 'ignore_ament_install'] +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'ignore' +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'ignore_ament_install' +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extensions ['colcon_pkg'] +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'colcon_pkg' +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extensions ['colcon_meta'] +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'colcon_meta' +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extensions ['ros'] +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'ros' +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extensions ['cmake', 'python'] +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'cmake' +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'python' +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extensions ['python_setup_py'] +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'python_setup_py' +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extensions ['ignore', 'ignore_ament_install'] +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'ignore' +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'ignore_ament_install' +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extensions ['colcon_pkg'] +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'colcon_pkg' +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extensions ['colcon_meta'] +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'colcon_meta' +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extensions ['ros'] +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'ros' +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extensions ['cmake', 'python'] +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'cmake' +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'python' +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extensions ['python_setup_py'] +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'python_setup_py' +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extensions ['ignore', 'ignore_ament_install'] +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'ignore' +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'ignore_ament_install' +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extensions ['colcon_pkg'] +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'colcon_pkg' +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extensions ['colcon_meta'] +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'colcon_meta' +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extensions ['ros'] +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'ros' +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extensions ['cmake', 'python'] +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'cmake' +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'python' +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extensions ['python_setup_py'] +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'python_setup_py' +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extensions ['ignore', 'ignore_ament_install'] +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'ignore' +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'ignore_ament_install' +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extensions ['colcon_pkg'] +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'colcon_pkg' +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extensions ['colcon_meta'] +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'colcon_meta' +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extensions ['ros'] +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'ros' +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extensions ['cmake', 'python'] +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'cmake' +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'python' +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extensions ['python_setup_py'] +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'python_setup_py' +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extensions ['ignore', 'ignore_ament_install'] +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'ignore' +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'ignore_ament_install' +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extensions ['colcon_pkg'] +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'colcon_pkg' +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extensions ['colcon_meta'] +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'colcon_meta' +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extensions ['ros'] +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'ros' +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extensions ['cmake', 'python'] +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'cmake' +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'python' +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extensions ['python_setup_py'] +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'python_setup_py' +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extensions ['ignore', 'ignore_ament_install'] +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'ignore' +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'ignore_ament_install' +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extensions ['colcon_pkg'] +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'colcon_pkg' +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extensions ['colcon_meta'] +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'colcon_meta' +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extensions ['ros'] +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'ros' +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extensions ['cmake', 'python'] +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'cmake' +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'python' +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extensions ['python_setup_py'] +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'python_setup_py' +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extensions ['ignore', 'ignore_ament_install'] +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'ignore' +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'ignore_ament_install' +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extensions ['colcon_pkg'] +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'colcon_pkg' +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extensions ['colcon_meta'] +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'colcon_meta' +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extensions ['ros'] +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'ros' +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extensions ['cmake', 'python'] +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'cmake' +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'python' +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extensions ['python_setup_py'] +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'python_setup_py' +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extensions ['ignore', 'ignore_ament_install'] +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'ignore' +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'ignore_ament_install' +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extensions ['colcon_pkg'] +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'colcon_pkg' +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extensions ['colcon_meta'] +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'colcon_meta' +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extensions ['ros'] +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'ros' +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extensions ['cmake', 'python'] +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'cmake' +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'python' +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extensions ['python_setup_py'] +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'python_setup_py' +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extensions ['ignore', 'ignore_ament_install'] +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'ignore' +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'ignore_ament_install' +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extensions ['colcon_pkg'] +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'colcon_pkg' +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extensions ['colcon_meta'] +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'colcon_meta' +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extensions ['ros'] +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'ros' +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extensions ['cmake', 'python'] +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'cmake' +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'python' +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extensions ['python_setup_py'] +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'python_setup_py' +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extensions ['ignore', 'ignore_ament_install'] +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'ignore' +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'ignore_ament_install' +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extensions ['colcon_pkg'] +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'colcon_pkg' +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extensions ['colcon_meta'] +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'colcon_meta' +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extensions ['ros'] +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'ros' +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extensions ['cmake', 'python'] +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'cmake' +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'python' +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extensions ['python_setup_py'] +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'python_setup_py' +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extensions ['ignore', 'ignore_ament_install'] +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'ignore' +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'ignore_ament_install' +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extensions ['colcon_pkg'] +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'colcon_pkg' +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extensions ['colcon_meta'] +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'colcon_meta' +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extensions ['ros'] +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'ros' +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extensions ['cmake', 'python'] +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'cmake' +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'python' +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extensions ['python_setup_py'] +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'python_setup_py' +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extensions ['ignore', 'ignore_ament_install'] +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'ignore' +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'ignore_ament_install' +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extensions ['colcon_pkg'] +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'colcon_pkg' +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extensions ['colcon_meta'] +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'colcon_meta' +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extensions ['ros'] +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'ros' +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extensions ['cmake', 'python'] +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'cmake' +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'python' +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extensions ['python_setup_py'] +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'python_setup_py' +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extensions ['ignore', 'ignore_ament_install'] +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'ignore' +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'ignore_ament_install' +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extensions ['colcon_pkg'] +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'colcon_pkg' +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extensions ['colcon_meta'] +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'colcon_meta' +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extensions ['ros'] +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'ros' +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extensions ['cmake', 'python'] +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'cmake' +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'python' +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extensions ['python_setup_py'] +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'python_setup_py' +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extensions ['ignore', 'ignore_ament_install'] +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'ignore' +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'ignore_ament_install' +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extensions ['colcon_pkg'] +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'colcon_pkg' +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extensions ['colcon_meta'] +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'colcon_meta' +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extensions ['ros'] +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'ros' +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extensions ['cmake', 'python'] +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'cmake' +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'python' +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extensions ['python_setup_py'] +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'python_setup_py' +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extensions ['ignore', 'ignore_ament_install'] +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'ignore' +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'ignore_ament_install' +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extensions ['colcon_pkg'] +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'colcon_pkg' +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extensions ['colcon_meta'] +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'colcon_meta' +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extensions ['ros'] +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'ros' +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extensions ['cmake', 'python'] +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'cmake' +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'python' +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extensions ['python_setup_py'] +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'python_setup_py' +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extensions ['ignore', 'ignore_ament_install'] +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'ignore' +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'ignore_ament_install' +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extensions ['colcon_pkg'] +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'colcon_pkg' +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extensions ['colcon_meta'] +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'colcon_meta' +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extensions ['ros'] +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'ros' +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extensions ['cmake', 'python'] +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'cmake' +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'python' +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extensions ['python_setup_py'] +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'python_setup_py' +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extensions ['ignore', 'ignore_ament_install'] +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'ignore' +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'ignore_ament_install' +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extensions ['colcon_pkg'] +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'colcon_pkg' +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extensions ['colcon_meta'] +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'colcon_meta' +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extensions ['ros'] +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'ros' +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extensions ['cmake', 'python'] +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'cmake' +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'python' +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extensions ['python_setup_py'] +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'python_setup_py' +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extensions ['ignore', 'ignore_ament_install'] +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'ignore' +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'ignore_ament_install' +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extensions ['colcon_pkg'] +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'colcon_pkg' +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extensions ['colcon_meta'] +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'colcon_meta' +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extensions ['ros'] +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'ros' +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extensions ['cmake', 'python'] +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'cmake' +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'python' +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extensions ['python_setup_py'] +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'python_setup_py' +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extensions ['ignore', 'ignore_ament_install'] +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'ignore' +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'ignore_ament_install' +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extensions ['colcon_pkg'] +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'colcon_pkg' +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extensions ['colcon_meta'] +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'colcon_meta' +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extensions ['ros'] +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'ros' +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extensions ['cmake', 'python'] +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'cmake' +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'python' +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extensions ['python_setup_py'] +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'python_setup_py' +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extensions ['ignore', 'ignore_ament_install'] +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'ignore' +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'ignore_ament_install' +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extensions ['colcon_pkg'] +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'colcon_pkg' +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extensions ['colcon_meta'] +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'colcon_meta' +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extensions ['ros'] +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'ros' +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extensions ['cmake', 'python'] +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'cmake' +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'python' +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extensions ['python_setup_py'] +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'python_setup_py' +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extensions ['ignore', 'ignore_ament_install'] +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'ignore' +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'ignore_ament_install' +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extensions ['colcon_pkg'] +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'colcon_pkg' +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extensions ['colcon_meta'] +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'colcon_meta' +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extensions ['ros'] +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'ros' +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extensions ['cmake', 'python'] +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'cmake' +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'python' +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extensions ['python_setup_py'] +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'python_setup_py' +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extensions ['ignore', 'ignore_ament_install'] +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'ignore' +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'ignore_ament_install' +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extensions ['colcon_pkg'] +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'colcon_pkg' +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extensions ['colcon_meta'] +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'colcon_meta' +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extensions ['ros'] +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'ros' +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extensions ['cmake', 'python'] +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'cmake' +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'python' +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extensions ['python_setup_py'] +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'python_setup_py' +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extensions ['ignore', 'ignore_ament_install'] +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'ignore' +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'ignore_ament_install' +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extensions ['colcon_pkg'] +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'colcon_pkg' +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extensions ['colcon_meta'] +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'colcon_meta' +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extensions ['ros'] +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'ros' +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extensions ['cmake', 'python'] +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'cmake' +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'python' +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extensions ['python_setup_py'] +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'python_setup_py' +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extensions ['ignore', 'ignore_ament_install'] +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'ignore' +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'ignore_ament_install' +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extensions ['colcon_pkg'] +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'colcon_pkg' +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extensions ['colcon_meta'] +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'colcon_meta' +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extensions ['ros'] +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'ros' +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extensions ['cmake', 'python'] +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'cmake' +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'python' +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extensions ['python_setup_py'] +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'python_setup_py' +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extensions ['ignore', 'ignore_ament_install'] +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'ignore' +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'ignore_ament_install' +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extensions ['colcon_pkg'] +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'colcon_pkg' +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extensions ['colcon_meta'] +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'colcon_meta' +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extensions ['ros'] +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'ros' +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extensions ['cmake', 'python'] +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'cmake' +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'python' +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extensions ['python_setup_py'] +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'python_setup_py' +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extensions ['ignore', 'ignore_ament_install'] +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'ignore' +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'ignore_ament_install' +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extensions ['colcon_pkg'] +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'colcon_pkg' +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extensions ['colcon_meta'] +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'colcon_meta' +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extensions ['ros'] +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'ros' +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extensions ['cmake', 'python'] +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'cmake' +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'python' +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extensions ['python_setup_py'] +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'python_setup_py' +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extensions ['ignore', 'ignore_ament_install'] +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'ignore' +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'ignore_ament_install' +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extensions ['colcon_pkg'] +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'colcon_pkg' +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extensions ['colcon_meta'] +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'colcon_meta' +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extensions ['ros'] +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'ros' +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extensions ['cmake', 'python'] +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'cmake' +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'python' +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extensions ['python_setup_py'] +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'python_setup_py' +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extensions ['ignore', 'ignore_ament_install'] +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'ignore' +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'ignore_ament_install' +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extensions ['colcon_pkg'] +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'colcon_pkg' +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extensions ['colcon_meta'] +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'colcon_meta' +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extensions ['ros'] +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'ros' +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extensions ['cmake', 'python'] +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'cmake' +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'python' +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extensions ['python_setup_py'] +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'python_setup_py' +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extensions ['ignore', 'ignore_ament_install'] +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'ignore' +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'ignore_ament_install' +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extensions ['colcon_pkg'] +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'colcon_pkg' +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extensions ['colcon_meta'] +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'colcon_meta' +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extensions ['ros'] +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'ros' +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extensions ['cmake', 'python'] +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'cmake' +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'python' +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extensions ['python_setup_py'] +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'python_setup_py' +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extensions ['ignore', 'ignore_ament_install'] +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'ignore' +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'ignore_ament_install' +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extensions ['colcon_pkg'] +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'colcon_pkg' +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extensions ['colcon_meta'] +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'colcon_meta' +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extensions ['ros'] +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'ros' +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extensions ['cmake', 'python'] +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'cmake' +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'python' +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extensions ['python_setup_py'] +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'python_setup_py' +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extensions ['ignore', 'ignore_ament_install'] +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'ignore' +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'ignore_ament_install' +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extensions ['colcon_pkg'] +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'colcon_pkg' +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extensions ['colcon_meta'] +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'colcon_meta' +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extensions ['ros'] +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'ros' +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extensions ['cmake', 'python'] +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'cmake' +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'python' +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extensions ['python_setup_py'] +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'python_setup_py' +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extensions ['ignore', 'ignore_ament_install'] +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'ignore' +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'ignore_ament_install' +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extensions ['colcon_pkg'] +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'colcon_pkg' +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extensions ['colcon_meta'] +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'colcon_meta' +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extensions ['ros'] +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'ros' +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extensions ['cmake', 'python'] +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'cmake' +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'python' +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extensions ['python_setup_py'] +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'python_setup_py' +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extensions ['ignore', 'ignore_ament_install'] +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'ignore' +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'ignore_ament_install' +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extensions ['colcon_pkg'] +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'colcon_pkg' +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extensions ['colcon_meta'] +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'colcon_meta' +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extensions ['ros'] +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'ros' +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extensions ['cmake', 'python'] +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'cmake' +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'python' +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extensions ['python_setup_py'] +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'python_setup_py' +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extensions ['ignore', 'ignore_ament_install'] +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'ignore' +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'ignore_ament_install' +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extensions ['colcon_pkg'] +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'colcon_pkg' +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extensions ['colcon_meta'] +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'colcon_meta' +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extensions ['ros'] +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'ros' +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extensions ['cmake', 'python'] +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'cmake' +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'python' +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extensions ['python_setup_py'] +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'python_setup_py' +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extensions ['ignore', 'ignore_ament_install'] +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'ignore' +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'ignore_ament_install' +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extensions ['colcon_pkg'] +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'colcon_pkg' +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extensions ['colcon_meta'] +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'colcon_meta' +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extensions ['ros'] +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'ros' +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extensions ['cmake', 'python'] +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'cmake' +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'python' +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extensions ['python_setup_py'] +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'python_setup_py' +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extensions ['ignore', 'ignore_ament_install'] +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'ignore' +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'ignore_ament_install' +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extensions ['colcon_pkg'] +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'colcon_pkg' +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extensions ['colcon_meta'] +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'colcon_meta' +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extensions ['ros'] +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'ros' +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extensions ['cmake', 'python'] +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'cmake' +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'python' +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extensions ['python_setup_py'] +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'python_setup_py' +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extensions ['ignore', 'ignore_ament_install'] +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'ignore' +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'ignore_ament_install' +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extensions ['colcon_pkg'] +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'colcon_pkg' +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extensions ['colcon_meta'] +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'colcon_meta' +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extensions ['ros'] +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'ros' +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extensions ['cmake', 'python'] +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'cmake' +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'python' +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extensions ['python_setup_py'] +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'python_setup_py' +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extensions ['ignore', 'ignore_ament_install'] +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'ignore' +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'ignore_ament_install' +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extensions ['colcon_pkg'] +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'colcon_pkg' +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extensions ['colcon_meta'] +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'colcon_meta' +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extensions ['ros'] +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'ros' +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extensions ['cmake', 'python'] +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'cmake' +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'python' +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extensions ['python_setup_py'] +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'python_setup_py' +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extensions ['ignore', 'ignore_ament_install'] +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'ignore' +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'ignore_ament_install' +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extensions ['colcon_pkg'] +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'colcon_pkg' +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extensions ['colcon_meta'] +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'colcon_meta' +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extensions ['ros'] +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'ros' +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extensions ['cmake', 'python'] +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'cmake' +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'python' +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extensions ['python_setup_py'] +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'python_setup_py' +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extensions ['ignore', 'ignore_ament_install'] +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'ignore' +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'ignore_ament_install' +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extensions ['colcon_pkg'] +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'colcon_pkg' +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extensions ['colcon_meta'] +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'colcon_meta' +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extensions ['ros'] +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'ros' +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extensions ['cmake', 'python'] +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'cmake' +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'python' +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extensions ['python_setup_py'] +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'python_setup_py' +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extensions ['ignore', 'ignore_ament_install'] +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'ignore' +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'ignore_ament_install' +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extensions ['colcon_pkg'] +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'colcon_pkg' +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extensions ['colcon_meta'] +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'colcon_meta' +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extensions ['ros'] +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'ros' +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extensions ['cmake', 'python'] +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'cmake' +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'python' +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extensions ['python_setup_py'] +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'python_setup_py' +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extensions ['ignore', 'ignore_ament_install'] +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'ignore' +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'ignore_ament_install' +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extensions ['colcon_pkg'] +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'colcon_pkg' +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extensions ['colcon_meta'] +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'colcon_meta' +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extensions ['ros'] +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'ros' +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extensions ['cmake', 'python'] +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'cmake' +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'python' +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extensions ['python_setup_py'] +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'python_setup_py' +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extensions ['ignore', 'ignore_ament_install'] +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'ignore' +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'ignore_ament_install' +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extensions ['colcon_pkg'] +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'colcon_pkg' +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extensions ['colcon_meta'] +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'colcon_meta' +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extensions ['ros'] +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'ros' +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extensions ['cmake', 'python'] +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'cmake' +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'python' +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extensions ['python_setup_py'] +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'python_setup_py' +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extensions ['ignore', 'ignore_ament_install'] +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'ignore' +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'ignore_ament_install' +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extensions ['colcon_pkg'] +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'colcon_pkg' +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extensions ['colcon_meta'] +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'colcon_meta' +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extensions ['ros'] +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'ros' +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extensions ['cmake', 'python'] +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'cmake' +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'python' +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extensions ['python_setup_py'] +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'python_setup_py' +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extensions ['ignore', 'ignore_ament_install'] +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'ignore' +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'ignore_ament_install' +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extensions ['colcon_pkg'] +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'colcon_pkg' +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extensions ['colcon_meta'] +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'colcon_meta' +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extensions ['ros'] +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'ros' +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extensions ['cmake', 'python'] +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'cmake' +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'python' +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extensions ['python_setup_py'] +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'python_setup_py' +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extensions ['ignore', 'ignore_ament_install'] +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'ignore' +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'ignore_ament_install' +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extensions ['colcon_pkg'] +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'colcon_pkg' +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extensions ['colcon_meta'] +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'colcon_meta' +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extensions ['ros'] +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'ros' +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extensions ['cmake', 'python'] +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'cmake' +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'python' +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extensions ['python_setup_py'] +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'python_setup_py' +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extensions ['ignore', 'ignore_ament_install'] +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'ignore' +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'ignore_ament_install' +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extensions ['colcon_pkg'] +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'colcon_pkg' +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extensions ['colcon_meta'] +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'colcon_meta' +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extensions ['ros'] +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'ros' +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extensions ['cmake', 'python'] +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'cmake' +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'python' +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extensions ['python_setup_py'] +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'python_setup_py' +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extensions ['ignore', 'ignore_ament_install'] +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'ignore' +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'ignore_ament_install' +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extensions ['colcon_pkg'] +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'colcon_pkg' +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extensions ['colcon_meta'] +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'colcon_meta' +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extensions ['ros'] +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'ros' +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extensions ['cmake', 'python'] +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'cmake' +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'python' +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extensions ['python_setup_py'] +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'python_setup_py' +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extensions ['ignore', 'ignore_ament_install'] +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'ignore' +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'ignore_ament_install' +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extensions ['colcon_pkg'] +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'colcon_pkg' +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extensions ['colcon_meta'] +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'colcon_meta' +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extensions ['ros'] +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'ros' +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extensions ['cmake', 'python'] +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'cmake' +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'python' +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extensions ['python_setup_py'] +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'python_setup_py' +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extensions ['ignore', 'ignore_ament_install'] +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'ignore' +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'ignore_ament_install' +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extensions ['colcon_pkg'] +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'colcon_pkg' +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extensions ['colcon_meta'] +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'colcon_meta' +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extensions ['ros'] +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'ros' +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extensions ['cmake', 'python'] +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'cmake' +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'python' +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extensions ['python_setup_py'] +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'python_setup_py' +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extensions ['ignore', 'ignore_ament_install'] +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'ignore' +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'ignore_ament_install' +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extensions ['colcon_pkg'] +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'colcon_pkg' +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extensions ['colcon_meta'] +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'colcon_meta' +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extensions ['ros'] +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'ros' +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extensions ['cmake', 'python'] +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'cmake' +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'python' +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extensions ['python_setup_py'] +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'python_setup_py' +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extensions ['ignore', 'ignore_ament_install'] +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'ignore' +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'ignore_ament_install' +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extensions ['colcon_pkg'] +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'colcon_pkg' +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extensions ['colcon_meta'] +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'colcon_meta' +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extensions ['ros'] +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'ros' +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extensions ['cmake', 'python'] +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'cmake' +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'python' +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extensions ['python_setup_py'] +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'python_setup_py' +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extensions ['ignore', 'ignore_ament_install'] +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'ignore' +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'ignore_ament_install' +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extensions ['colcon_pkg'] +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'colcon_pkg' +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extensions ['colcon_meta'] +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'colcon_meta' +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extensions ['ros'] +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'ros' +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extensions ['cmake', 'python'] +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'cmake' +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'python' +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extensions ['python_setup_py'] +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'python_setup_py' +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extensions ['ignore', 'ignore_ament_install'] +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'ignore' +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'ignore_ament_install' +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extensions ['colcon_pkg'] +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'colcon_pkg' +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extensions ['colcon_meta'] +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'colcon_meta' +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extensions ['ros'] +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'ros' +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extensions ['cmake', 'python'] +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'cmake' +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'python' +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extensions ['python_setup_py'] +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'python_setup_py' +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extensions ['ignore', 'ignore_ament_install'] +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'ignore' +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'ignore_ament_install' +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extensions ['colcon_pkg'] +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'colcon_pkg' +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extensions ['colcon_meta'] +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'colcon_meta' +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extensions ['ros'] +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'ros' +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extensions ['cmake', 'python'] +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'cmake' +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'python' +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extensions ['python_setup_py'] +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'python_setup_py' +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extensions ['ignore', 'ignore_ament_install'] +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'ignore' +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'ignore_ament_install' +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extensions ['colcon_pkg'] +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'colcon_pkg' +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extensions ['colcon_meta'] +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'colcon_meta' +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extensions ['ros'] +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'ros' +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extensions ['cmake', 'python'] +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'cmake' +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'python' +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extensions ['python_setup_py'] +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'python_setup_py' +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extensions ['ignore', 'ignore_ament_install'] +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'ignore' +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'ignore_ament_install' +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extensions ['colcon_pkg'] +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'colcon_pkg' +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extensions ['colcon_meta'] +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'colcon_meta' +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extensions ['ros'] +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'ros' +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extensions ['cmake', 'python'] +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'cmake' +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'python' +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extensions ['python_setup_py'] +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'python_setup_py' +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extensions ['ignore', 'ignore_ament_install'] +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'ignore' +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'ignore_ament_install' +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extensions ['colcon_pkg'] +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'colcon_pkg' +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extensions ['colcon_meta'] +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'colcon_meta' +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extensions ['ros'] +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'ros' +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extensions ['cmake', 'python'] +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'cmake' +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'python' +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extensions ['python_setup_py'] +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'python_setup_py' +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extensions ['ignore', 'ignore_ament_install'] +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'ignore' +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'ignore_ament_install' +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extensions ['colcon_pkg'] +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'colcon_pkg' +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extensions ['colcon_meta'] +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'colcon_meta' +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extensions ['ros'] +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'ros' +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extensions ['cmake', 'python'] +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'cmake' +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'python' +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extensions ['python_setup_py'] +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'python_setup_py' +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extensions ['ignore', 'ignore_ament_install'] +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'ignore' +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'ignore_ament_install' +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extensions ['colcon_pkg'] +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'colcon_pkg' +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extensions ['colcon_meta'] +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'colcon_meta' +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extensions ['ros'] +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'ros' +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extensions ['cmake', 'python'] +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'cmake' +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'python' +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extensions ['python_setup_py'] +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'python_setup_py' +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extensions ['ignore', 'ignore_ament_install'] +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'ignore' +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'ignore_ament_install' +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extensions ['colcon_pkg'] +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'colcon_pkg' +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extensions ['colcon_meta'] +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'colcon_meta' +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extensions ['ros'] +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'ros' +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extensions ['cmake', 'python'] +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'cmake' +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'python' +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extensions ['python_setup_py'] +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'python_setup_py' +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extensions ['ignore', 'ignore_ament_install'] +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'ignore' +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'ignore_ament_install' +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extensions ['colcon_pkg'] +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'colcon_pkg' +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extensions ['colcon_meta'] +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'colcon_meta' +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extensions ['ros'] +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'ros' +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extensions ['cmake', 'python'] +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'cmake' +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'python' +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extensions ['python_setup_py'] +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'python_setup_py' +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extensions ['ignore', 'ignore_ament_install'] +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'ignore' +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'ignore_ament_install' +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extensions ['colcon_pkg'] +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'colcon_pkg' +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extensions ['colcon_meta'] +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'colcon_meta' +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extensions ['ros'] +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'ros' +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extensions ['cmake', 'python'] +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'cmake' +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'python' +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extensions ['python_setup_py'] +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'python_setup_py' +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extensions ['ignore', 'ignore_ament_install'] +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'ignore' +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'ignore_ament_install' +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extensions ['colcon_pkg'] +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'colcon_pkg' +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extensions ['colcon_meta'] +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'colcon_meta' +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extensions ['ros'] +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'ros' +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extensions ['cmake', 'python'] +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'cmake' +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'python' +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extensions ['python_setup_py'] +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'python_setup_py' +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extensions ['ignore', 'ignore_ament_install'] +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'ignore' +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'ignore_ament_install' +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extensions ['colcon_pkg'] +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'colcon_pkg' +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extensions ['colcon_meta'] +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'colcon_meta' +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extensions ['ros'] +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'ros' +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extensions ['cmake', 'python'] +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'cmake' +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'python' +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extensions ['python_setup_py'] +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'python_setup_py' +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extensions ['ignore', 'ignore_ament_install'] +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'ignore' +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'ignore_ament_install' +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extensions ['colcon_pkg'] +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'colcon_pkg' +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extensions ['colcon_meta'] +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'colcon_meta' +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extensions ['ros'] +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'ros' +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extensions ['cmake', 'python'] +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'cmake' +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'python' +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extensions ['python_setup_py'] +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'python_setup_py' +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extensions ['ignore', 'ignore_ament_install'] +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'ignore' +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'ignore_ament_install' +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extensions ['colcon_pkg'] +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'colcon_pkg' +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extensions ['colcon_meta'] +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'colcon_meta' +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extensions ['ros'] +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'ros' +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extensions ['cmake', 'python'] +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'cmake' +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'python' +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extensions ['python_setup_py'] +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'python_setup_py' +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extensions ['ignore', 'ignore_ament_install'] +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'ignore' +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'ignore_ament_install' +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extensions ['colcon_pkg'] +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'colcon_pkg' +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extensions ['colcon_meta'] +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'colcon_meta' +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extensions ['ros'] +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'ros' +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extensions ['cmake', 'python'] +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'cmake' +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'python' +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extensions ['python_setup_py'] +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'python_setup_py' +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extensions ['ignore', 'ignore_ament_install'] +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'ignore' +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'ignore_ament_install' +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extensions ['colcon_pkg'] +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'colcon_pkg' +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extensions ['colcon_meta'] +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'colcon_meta' +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extensions ['ros'] +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'ros' +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extensions ['cmake', 'python'] +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'cmake' +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'python' +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extensions ['python_setup_py'] +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'python_setup_py' +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extensions ['ignore', 'ignore_ament_install'] +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'ignore' +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'ignore_ament_install' +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extensions ['colcon_pkg'] +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'colcon_pkg' +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extensions ['colcon_meta'] +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'colcon_meta' +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extensions ['ros'] +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'ros' +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extensions ['cmake', 'python'] +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'cmake' +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'python' +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extensions ['python_setup_py'] +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'python_setup_py' +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extensions ['ignore', 'ignore_ament_install'] +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'ignore' +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'ignore_ament_install' +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extensions ['colcon_pkg'] +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'colcon_pkg' +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extensions ['colcon_meta'] +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'colcon_meta' +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extensions ['ros'] +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'ros' +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extensions ['cmake', 'python'] +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'cmake' +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'python' +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extensions ['python_setup_py'] +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'python_setup_py' +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extensions ['ignore', 'ignore_ament_install'] +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'ignore' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'ignore_ament_install' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extensions ['colcon_pkg'] +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'colcon_pkg' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extensions ['colcon_meta'] +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'colcon_meta' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extensions ['ros'] +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'ros' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extensions ['cmake', 'python'] +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'cmake' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'python' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extensions ['python_setup_py'] +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'python_setup_py' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extensions ['ignore', 'ignore_ament_install'] +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'ignore' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'ignore_ament_install' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extensions ['colcon_pkg'] +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'colcon_pkg' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extensions ['colcon_meta'] +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'colcon_meta' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extensions ['ros'] +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'ros' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extensions ['cmake', 'python'] +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'cmake' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'python' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extensions ['python_setup_py'] +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'python_setup_py' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extensions ['ignore', 'ignore_ament_install'] +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'ignore' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'ignore_ament_install' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extensions ['colcon_pkg'] +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'colcon_pkg' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extensions ['colcon_meta'] +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'colcon_meta' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extensions ['ros'] +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'ros' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extensions ['cmake', 'python'] +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'cmake' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'python' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extensions ['python_setup_py'] +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'python_setup_py' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extensions ['ignore', 'ignore_ament_install'] +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'ignore' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'ignore_ament_install' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extensions ['colcon_pkg'] +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'colcon_pkg' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extensions ['colcon_meta'] +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'colcon_meta' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extensions ['ros'] +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'ros' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extensions ['cmake', 'python'] +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'cmake' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'python' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extensions ['python_setup_py'] +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'python_setup_py' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extensions ['ignore', 'ignore_ament_install'] +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'ignore' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'ignore_ament_install' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extensions ['colcon_pkg'] +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'colcon_pkg' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extensions ['colcon_meta'] +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'colcon_meta' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extensions ['ros'] +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'ros' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extensions ['cmake', 'python'] +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'cmake' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'python' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extensions ['python_setup_py'] +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'python_setup_py' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extensions ['ignore', 'ignore_ament_install'] +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'ignore' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'ignore_ament_install' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extensions ['colcon_pkg'] +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'colcon_pkg' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extensions ['colcon_meta'] +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'colcon_meta' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extensions ['ros'] +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'ros' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extensions ['cmake', 'python'] +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'cmake' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'python' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extensions ['python_setup_py'] +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'python_setup_py' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extensions ['ignore', 'ignore_ament_install'] +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'ignore' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'ignore_ament_install' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extensions ['colcon_pkg'] +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'colcon_pkg' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extensions ['colcon_meta'] +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'colcon_meta' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extensions ['ros'] +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'ros' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extensions ['cmake', 'python'] +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'cmake' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'python' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extensions ['python_setup_py'] +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'python_setup_py' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extensions ['ignore', 'ignore_ament_install'] +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'ignore' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'ignore_ament_install' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extensions ['colcon_pkg'] +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'colcon_pkg' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extensions ['colcon_meta'] +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'colcon_meta' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extensions ['ros'] +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'ros' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extensions ['cmake', 'python'] +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'cmake' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'python' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extensions ['python_setup_py'] +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'python_setup_py' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extensions ['ignore', 'ignore_ament_install'] +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'ignore' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'ignore_ament_install' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extensions ['colcon_pkg'] +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'colcon_pkg' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extensions ['colcon_meta'] +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'colcon_meta' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extensions ['ros'] +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'ros' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extensions ['cmake', 'python'] +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'cmake' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'python' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extensions ['python_setup_py'] +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'python_setup_py' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extensions ['ignore', 'ignore_ament_install'] +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'ignore' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'ignore_ament_install' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extensions ['colcon_pkg'] +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'colcon_pkg' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extensions ['colcon_meta'] +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'colcon_meta' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extensions ['ros'] +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'ros' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extensions ['cmake', 'python'] +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'cmake' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'python' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extensions ['python_setup_py'] +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'python_setup_py' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extensions ['ignore', 'ignore_ament_install'] +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'ignore' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'ignore_ament_install' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extensions ['colcon_pkg'] +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'colcon_pkg' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extensions ['colcon_meta'] +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'colcon_meta' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extensions ['ros'] +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'ros' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extensions ['cmake', 'python'] +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'cmake' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'python' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extensions ['python_setup_py'] +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'python_setup_py' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extensions ['ignore', 'ignore_ament_install'] +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'ignore' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'ignore_ament_install' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extensions ['colcon_pkg'] +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'colcon_pkg' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extensions ['colcon_meta'] +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'colcon_meta' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extensions ['ros'] +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'ros' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extensions ['cmake', 'python'] +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'cmake' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'python' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extensions ['python_setup_py'] +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'python_setup_py' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extensions ['ignore', 'ignore_ament_install'] +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'ignore' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'ignore_ament_install' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extensions ['colcon_pkg'] +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'colcon_pkg' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extensions ['colcon_meta'] +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'colcon_meta' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extensions ['ros'] +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'ros' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extensions ['cmake', 'python'] +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'cmake' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'python' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extensions ['python_setup_py'] +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'python_setup_py' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extensions ['ignore', 'ignore_ament_install'] +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'ignore' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'ignore_ament_install' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extensions ['colcon_pkg'] +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'colcon_pkg' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extensions ['colcon_meta'] +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'colcon_meta' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extensions ['ros'] +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'ros' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extensions ['cmake', 'python'] +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'cmake' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'python' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extensions ['python_setup_py'] +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'python_setup_py' +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extensions ['ignore', 'ignore_ament_install'] +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'ignore' +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'ignore_ament_install' +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extensions ['colcon_pkg'] +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'colcon_pkg' +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extensions ['colcon_meta'] +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'colcon_meta' +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extensions ['ros'] +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'ros' +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extensions ['cmake', 'python'] +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'cmake' +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'python' +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extensions ['python_setup_py'] +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'python_setup_py' +[0.495s] DEBUG:colcon.colcon_core.package_identification:Package 'simulation/dronekit-python' with type 'python' and name 'dronekit' +[0.495s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extensions ['ignore', 'ignore_ament_install'] +[0.495s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'ignore' +[0.495s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'ignore_ament_install' +[0.495s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extensions ['colcon_pkg'] +[0.495s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'colcon_pkg' +[0.495s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extensions ['colcon_meta'] +[0.495s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'colcon_meta' +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extensions ['ros'] +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'ros' +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extensions ['cmake', 'python'] +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'cmake' +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'python' +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extensions ['python_setup_py'] +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'python_setup_py' +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extensions ['ignore', 'ignore_ament_install'] +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'ignore' +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'ignore_ament_install' +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extensions ['colcon_pkg'] +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'colcon_pkg' +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extensions ['colcon_meta'] +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'colcon_meta' +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extensions ['ros'] +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'ros' +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extensions ['cmake', 'python'] +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'cmake' +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'python' +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extensions ['python_setup_py'] +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'python_setup_py' +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extensions ['ignore', 'ignore_ament_install'] +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'ignore' +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'ignore_ament_install' +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extensions ['colcon_pkg'] +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'colcon_pkg' +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extensions ['colcon_meta'] +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'colcon_meta' +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extensions ['ros'] +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'ros' +[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extensions ['cmake', 'python'] +[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'cmake' +[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'python' +[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extensions ['python_setup_py'] +[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'python_setup_py' +[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extensions ['ignore', 'ignore_ament_install'] +[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'ignore' +[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'ignore_ament_install' +[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extensions ['colcon_pkg'] +[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'colcon_pkg' +[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extensions ['colcon_meta'] +[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'colcon_meta' +[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extensions ['ros'] +[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'ros' +[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extensions ['cmake', 'python'] +[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'cmake' +[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'python' +[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extensions ['python_setup_py'] +[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'python_setup_py' +[0.497s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) using defaults +[0.497s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) discover +[0.497s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) using defaults +[0.497s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) discover +[0.497s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) using defaults +[0.521s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'controls_bringup' in 'ros_ws/src/robot/autonomy/controls/controls_bringup' +[0.521s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'dronekit' in 'simulation/dronekit-python' +[0.522s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mav_msgs' in 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs' +[0.522s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mav_state_machine_msgs' in 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs' +[0.522s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mav_system_msgs' in 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs' +[0.522s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'px4_msgs' in 'ros_ws/src/robot/autonomy/controls/px4_msgs' +[0.522s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'robot_bringup' in 'ros_ws/src/robot/robot_bringup' +[0.522s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'vdb_mapping' in 'ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping' +[0.522s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'vdb_mapping_interfaces' in 'ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces' +[0.522s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mav_planning_msgs' in 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs' +[0.522s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'px4_ros_com' in 'ros_ws/src/robot/autonomy/controls/px4_ros_com' +[0.522s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'robot_interface' in 'ros_ws/src/robot/autonomy/controls/robot_interface' +[0.522s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'vdb_mapping_ros2' in 'ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2' +[0.522s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mav_comm' in 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm' +[0.522s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mavros_interface' in 'ros_ws/src/robot/autonomy/controls/mavros_interface' +[0.522s] Level 1:colcon.colcon_core.package_discovery:discover_packages(prefix_path) check parameters +[0.522s] Level 1:colcon.colcon_core.package_discovery:discover_packages(prefix_path) discover +[0.524s] DEBUG:colcon.colcon_installed_package_information.package_discovery:Found 14 installed packages in /root/AirStack/ros_ws/install +[0.525s] DEBUG:colcon.colcon_installed_package_information.package_discovery:Found 277 installed packages in /opt/ros/humble +[0.526s] Level 1:colcon.colcon_core.package_discovery:discover_packages(prefix_path) using defaults +[0.554s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'cmake_args' from command line to 'None' +[0.554s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'cmake_target' from command line to 'None' +[0.554s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'cmake_target_skip_unavailable' from command line to 'False' +[0.554s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'cmake_clean_cache' from command line to 'False' +[0.554s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'cmake_clean_first' from command line to 'False' +[0.554s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'cmake_force_configure' from command line to 'False' +[0.555s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'ament_cmake_args' from command line to 'None' +[0.555s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'catkin_cmake_args' from command line to 'None' +[0.555s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'catkin_skip_building_tests' from command line to 'False' +[0.555s] DEBUG:colcon.colcon_core.verb:Building package 'disparity_expansion' with the following arguments: {'ament_cmake_args': None, 'build_base': '/root/AirStack/build/disparity_expansion', 'catkin_cmake_args': None, 'catkin_skip_building_tests': False, 'cmake_args': None, 'cmake_clean_cache': False, 'cmake_clean_first': False, 'cmake_force_configure': False, 'cmake_target': None, 'cmake_target_skip_unavailable': False, 'install_base': '/root/AirStack/install/disparity_expansion', 'merge_install': False, 'path': '/root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion', 'symlink_install': False, 'test_result_base': None} +[0.555s] INFO:colcon.colcon_core.executor:Executing jobs using 'parallel' executor +[0.555s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete +[0.556s] INFO:colcon.colcon_cmake.task.cmake.build:Building CMake package in '/root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion' +[0.558s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_core.shell.bat': Not used on non-Windows systems +[0.558s] INFO:colcon.colcon_core.shell:Skip shell extension 'powershell' for command environment: Not usable outside of PowerShell +[0.558s] DEBUG:colcon.colcon_core.shell:Skip shell extension 'dsv' for command environment +[0.570s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoking command in '/root/AirStack/build/disparity_expansion': /usr/bin/cmake --build /root/AirStack/build/disparity_expansion -- -j12 -l12 +[3.395s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoked command in '/root/AirStack/build/disparity_expansion' returned '2': /usr/bin/cmake --build /root/AirStack/build/disparity_expansion -- -j12 -l12 +[3.404s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:closing loop +[3.405s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:loop closed +[3.405s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete finished with '2' +[3.405s] DEBUG:colcon.colcon_core.event_reactor:joining thread +[3.411s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.notify_send': Could not find 'notify-send' +[3.411s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.terminal_notifier': Not used on non-Darwin systems +[3.411s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.win32': Not used on non-Windows systems +[3.411s] INFO:colcon.colcon_notification.desktop_notification:Sending desktop notification using 'notify2' +[3.415s] DEBUG:colcon.colcon_notification.desktop_notification.notify2:Failed to initialize notify2: org.freedesktop.DBus.Error.Spawn.ExecFailed: /usr/bin/dbus-launch terminated abnormally without any error message +[3.415s] DEBUG:colcon.colcon_core.event_reactor:joined thread +[3.416s] INFO:colcon.colcon_core.shell:Creating prefix script '/root/AirStack/install/local_setup.ps1' +[3.417s] INFO:colcon.colcon_core.shell:Creating prefix util module '/root/AirStack/install/_local_setup_util_ps1.py' +[3.419s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/root/AirStack/install/setup.ps1' +[3.421s] INFO:colcon.colcon_core.shell:Creating prefix script '/root/AirStack/install/local_setup.sh' +[3.422s] INFO:colcon.colcon_core.shell:Creating prefix util module '/root/AirStack/install/_local_setup_util_sh.py' +[3.423s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/root/AirStack/install/setup.sh' +[3.424s] INFO:colcon.colcon_core.shell:Creating prefix script '/root/AirStack/install/local_setup.bash' +[3.425s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/root/AirStack/install/setup.bash' +[3.426s] INFO:colcon.colcon_core.shell:Creating prefix script '/root/AirStack/install/local_setup.zsh' +[3.426s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/root/AirStack/install/setup.zsh' diff --git a/log/build_2024-07-25_13-14-27/disparity_expansion/command.log b/log/build_2024-07-25_13-14-27/disparity_expansion/command.log new file mode 100644 index 000000000..c661a790e --- /dev/null +++ b/log/build_2024-07-25_13-14-27/disparity_expansion/command.log @@ -0,0 +1,2 @@ +Invoking command in '/root/AirStack/build/disparity_expansion': /usr/bin/cmake --build /root/AirStack/build/disparity_expansion -- -j12 -l12 +Invoked command in '/root/AirStack/build/disparity_expansion' returned '2': /usr/bin/cmake --build /root/AirStack/build/disparity_expansion -- -j12 -l12 diff --git a/log/build_2024-07-25_13-14-27/disparity_expansion/stderr.log b/log/build_2024-07-25_13-14-27/disparity_expansion/stderr.log new file mode 100644 index 000000000..cc8ee250e --- /dev/null +++ b/log/build_2024-07-25_13-14-27/disparity_expansion/stderr.log @@ -0,0 +1,8 @@ +In file included from /root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_conv.cpp:42: +/opt/ros/humble/include/pcl_ros/point_cloud.hpp:45:10: fatal error: ros/ros.h: No such file or directory + 45 | #include  + | ^~~~~~~~~~~ +compilation terminated. +gmake[2]: *** [CMakeFiles/disparity_conv.dir/build.make:76: CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o] Error 1 +gmake[1]: *** [CMakeFiles/Makefile2:137: CMakeFiles/disparity_conv.dir/all] Error 2 +gmake: *** [Makefile:101: all] Error 2 diff --git a/log/build_2024-07-25_13-14-27/disparity_expansion/stdout.log b/log/build_2024-07-25_13-14-27/disparity_expansion/stdout.log new file mode 100644 index 000000000..286b52e2e --- /dev/null +++ b/log/build_2024-07-25_13-14-27/disparity_expansion/stdout.log @@ -0,0 +1 @@ +[ 50%] Building CXX object CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o diff --git a/log/build_2024-07-25_13-14-27/disparity_expansion/stdout_stderr.log b/log/build_2024-07-25_13-14-27/disparity_expansion/stdout_stderr.log new file mode 100644 index 000000000..09b7e19b4 --- /dev/null +++ b/log/build_2024-07-25_13-14-27/disparity_expansion/stdout_stderr.log @@ -0,0 +1,9 @@ +[ 50%] Building CXX object CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o +In file included from /root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_conv.cpp:42: +/opt/ros/humble/include/pcl_ros/point_cloud.hpp:45:10: fatal error: ros/ros.h: No such file or directory + 45 | #include  + | ^~~~~~~~~~~ +compilation terminated. +gmake[2]: *** [CMakeFiles/disparity_conv.dir/build.make:76: CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o] Error 1 +gmake[1]: *** [CMakeFiles/Makefile2:137: CMakeFiles/disparity_conv.dir/all] Error 2 +gmake: *** [Makefile:101: all] Error 2 diff --git a/log/build_2024-07-25_13-14-27/disparity_expansion/streams.log b/log/build_2024-07-25_13-14-27/disparity_expansion/streams.log new file mode 100644 index 000000000..e996f4465 --- /dev/null +++ b/log/build_2024-07-25_13-14-27/disparity_expansion/streams.log @@ -0,0 +1,11 @@ +[0.011s] Invoking command in '/root/AirStack/build/disparity_expansion': /usr/bin/cmake --build /root/AirStack/build/disparity_expansion -- -j12 -l12 +[0.073s] [ 50%] Building CXX object CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o +[0.406s] In file included from /root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_conv.cpp:42: +[0.406s] /opt/ros/humble/include/pcl_ros/point_cloud.hpp:45:10: fatal error: ros/ros.h: No such file or directory +[0.406s] 45 | #include  +[0.406s] | ^~~~~~~~~~~ +[0.406s] compilation terminated. +[0.415s] gmake[2]: *** [CMakeFiles/disparity_conv.dir/build.make:76: CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o] Error 1 +[0.416s] gmake[1]: *** [CMakeFiles/Makefile2:137: CMakeFiles/disparity_conv.dir/all] Error 2 +[0.416s] gmake: *** [Makefile:101: all] Error 2 +[0.420s] Invoked command in '/root/AirStack/build/disparity_expansion' returned '2': /usr/bin/cmake --build /root/AirStack/build/disparity_expansion -- -j12 -l12 diff --git a/log/build_2024-07-25_13-14-27/events.log b/log/build_2024-07-25_13-14-27/events.log new file mode 100644 index 000000000..faae0b6f8 --- /dev/null +++ b/log/build_2024-07-25_13-14-27/events.log @@ -0,0 +1,37 @@ +[0.000000] (-) TimerEvent: {} +[0.000278] (-) JobUnselected: {'identifier': 'controls_bringup'} +[0.000319] (-) JobUnselected: {'identifier': 'dronekit'} +[0.000351] (-) JobUnselected: {'identifier': 'mav_comm'} +[0.000393] (-) JobUnselected: {'identifier': 'mav_msgs'} +[0.000479] (-) JobUnselected: {'identifier': 'mav_planning_msgs'} +[0.000509] (-) JobUnselected: {'identifier': 'mav_state_machine_msgs'} +[0.000538] (-) JobUnselected: {'identifier': 'mav_system_msgs'} +[0.000563] (-) JobUnselected: {'identifier': 'mavros_interface'} +[0.000587] (-) JobUnselected: {'identifier': 'px4_msgs'} +[0.000638] (-) JobUnselected: {'identifier': 'px4_ros_com'} +[0.000720] (-) JobUnselected: {'identifier': 'robot_bringup'} +[0.000748] (-) JobUnselected: {'identifier': 'robot_interface'} +[0.000786] (-) JobUnselected: {'identifier': 'vdb_mapping'} +[0.000863] (-) JobUnselected: {'identifier': 'vdb_mapping_interfaces'} +[0.000888] (-) JobUnselected: {'identifier': 'vdb_mapping_ros2'} +[0.000917] (disparity_expansion) JobQueued: {'identifier': 'disparity_expansion', 'dependencies': OrderedDict()} +[0.000945] (disparity_expansion) JobStarted: {'identifier': 'disparity_expansion'} +[0.009157] (disparity_expansion) JobProgress: {'identifier': 'disparity_expansion', 'progress': 'cmake'} +[0.010372] (disparity_expansion) JobProgress: {'identifier': 'disparity_expansion', 'progress': 'build'} +[0.011511] (disparity_expansion) Command: {'cmd': ['/usr/bin/cmake', '--build', '/root/AirStack/build/disparity_expansion', '--', '-j12', '-l12'], 'cwd': '/root/AirStack/build/disparity_expansion', 'env': OrderedDict([('LESSOPEN', '| /usr/bin/lesspipe %s'), ('HOSTNAME', 'wildfire-desktop'), ('ISAACSIM_PATH', '/isaac-sim'), ('SHLVL', '1'), ('LD_LIBRARY_PATH', '/root/AirStack/ros_ws/install/vdb_mapping_interfaces/lib:/root/AirStack/ros_ws/install/vdb_mapping/lib:/root/AirStack/ros_ws/install/mavros_interface/lib:/root/AirStack/ros_ws/install/robot_interface/lib:/root/AirStack/ros_ws/install/px4_ros_com/lib:/root/AirStack/ros_ws/install/px4_msgs/lib:/root/AirStack/ros_ws/install/mav_system_msgs/lib:/root/AirStack/ros_ws/install/mav_state_machine_msgs/lib:/root/AirStack/ros_ws/install/mav_planning_msgs/lib:/root/AirStack/ros_ws/install/mav_msgs/lib:/opt/ros/humble/opt/rviz_ogre_vendor/lib:/opt/ros/humble/lib/x86_64-linux-gnu:/opt/ros/humble/lib'), ('HOME', '/root'), ('MIN_DRIVER_VERSION', '525.60.11'), ('ROS_PYTHON_VERSION', '3'), ('LC_CTYPE', 'C.UTF-8'), ('COLCON_PREFIX_PATH', '/root/AirStack/ros_ws/install'), ('ROS_DISTRO', 'humble'), ('_', '/usr/bin/colcon'), ('ROS_VERSION', '2'), ('PKG_CONFIG_PATH', '/root/AirStack/ros_ws/install/vdb_mapping/lib/x86_64-linux-gnu/pkgconfig:/root/AirStack/ros_ws/install/vdb_mapping/lib/pkgconfig'), ('NVIDIA_DRIVER_CAPABILITIES', 'all'), ('TERM', 'xterm'), ('ROS_LOCALHOST_ONLY', '0'), ('PATH', '/opt/ros/humble/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'), ('VK_DRIVER_FILES', '/etc/vulkan/icd.d/nvidia_icd.json'), ('DISPLAY', ':1'), ('LS_COLORS', 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:'), ('AMENT_PREFIX_PATH', '/root/AirStack/ros_ws/install/vdb_mapping_ros2:/root/AirStack/ros_ws/install/vdb_mapping_interfaces:/root/AirStack/ros_ws/install/mavros_interface:/root/AirStack/ros_ws/install/robot_interface:/root/AirStack/ros_ws/install/robot_bringup:/root/AirStack/ros_ws/install/px4_ros_com:/root/AirStack/ros_ws/install/px4_msgs:/root/AirStack/ros_ws/install/mav_comm:/root/AirStack/ros_ws/install/mav_system_msgs:/root/AirStack/ros_ws/install/mav_state_machine_msgs:/root/AirStack/ros_ws/install/mav_planning_msgs:/root/AirStack/ros_ws/install/mav_msgs:/root/AirStack/ros_ws/install/controls_bringup:/opt/ros/humble'), ('OMNI_PASS', 'admin'), ('LESSCLOSE', '/usr/bin/lesspipe %s %s'), ('ACCEPT_EULA', 'Y'), ('CMAKE_MODULE_PATH', '/root/AirStack/ros_ws/install/vdb_mapping/lib/cmake/vdb_mapping'), ('OMNI_SERVER', 'http://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/4.0'), ('PWD', '/root/AirStack/build/disparity_expansion'), ('OMNI_USER', 'admin'), ('PYTHONPATH', '/root/AirStack/ros_ws/install/vdb_mapping_interfaces/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/px4_ros_com/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/px4_msgs/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/mav_planning_msgs/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/mav_msgs/local/lib/python3.10/dist-packages:/opt/ros/humble/lib/python3.10/site-packages:/opt/ros/humble/local/lib/python3.10/dist-packages'), ('NVIDIA_VISIBLE_DEVICES', 'all'), ('TZ', 'America/New_York'), ('COLCON', '1'), ('CMAKE_PREFIX_PATH', '/root/AirStack/ros_ws/install/vdb_mapping_ros2:/root/AirStack/ros_ws/install/vdb_mapping_interfaces:/root/AirStack/ros_ws/install/vdb_mapping:/root/AirStack/ros_ws/install/mavros_interface:/root/AirStack/ros_ws/install/robot_interface:/root/AirStack/ros_ws/install/robot_bringup:/root/AirStack/ros_ws/install/px4_ros_com:/root/AirStack/ros_ws/install/px4_msgs:/root/AirStack/ros_ws/install/mav_comm:/root/AirStack/ros_ws/install/mav_system_msgs:/root/AirStack/ros_ws/install/mav_state_machine_msgs:/root/AirStack/ros_ws/install/mav_planning_msgs:/root/AirStack/ros_ws/install/mav_msgs:/root/AirStack/ros_ws/install/controls_bringup')]), 'shell': False} +[0.073649] (disparity_expansion) StdoutLine: {'line': b'[ 50%] \x1b[32mBuilding CXX object CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o\x1b[0m\n'} +[0.099508] (-) TimerEvent: {} +[0.199723] (-) TimerEvent: {} +[0.299922] (-) TimerEvent: {} +[0.400128] (-) TimerEvent: {} +[0.406745] (disparity_expansion) StderrLine: {'line': b'In file included from \x1b[01m\x1b[K/root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_conv.cpp:42\x1b[m\x1b[K:\n'} +[0.406916] (disparity_expansion) StderrLine: {'line': b'\x1b[01m\x1b[K/opt/ros/humble/include/pcl_ros/point_cloud.hpp:45:10:\x1b[m\x1b[K \x1b[01;31m\x1b[Kfatal error: \x1b[m\x1b[Kros/ros.h: No such file or directory\n'} +[0.407012] (disparity_expansion) StderrLine: {'line': b' 45 | #include \x1b[01;31m\x1b[K\x1b[m\x1b[K\n'} +[0.407096] (disparity_expansion) StderrLine: {'line': b' | \x1b[01;31m\x1b[K^~~~~~~~~~~\x1b[m\x1b[K\n'} +[0.407177] (disparity_expansion) StderrLine: {'line': b'compilation terminated.\n'} +[0.416269] (disparity_expansion) StderrLine: {'line': b'gmake[2]: *** [CMakeFiles/disparity_conv.dir/build.make:76: CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o] Error 1\n'} +[0.416761] (disparity_expansion) StderrLine: {'line': b'gmake[1]: *** [CMakeFiles/Makefile2:137: CMakeFiles/disparity_conv.dir/all] Error 2\n'} +[0.416946] (disparity_expansion) StderrLine: {'line': b'gmake: *** [Makefile:101: all] Error 2\n'} +[0.420716] (disparity_expansion) CommandEnded: {'returncode': 2} +[0.421050] (disparity_expansion) JobEnded: {'identifier': 'disparity_expansion', 'rc': 2} +[0.431200] (-) EventReactorShutdown: {} diff --git a/log/build_2024-07-25_13-14-27/logger_all.log b/log/build_2024-07-25_13-14-27/logger_all.log new file mode 100644 index 000000000..649231c5a --- /dev/null +++ b/log/build_2024-07-25_13-14-27/logger_all.log @@ -0,0 +1,2595 @@ +[0.077s] DEBUG:colcon:Command line arguments: ['/usr/bin/colcon', 'build', '--packages-select', 'disparity_expansion'] +[0.077s] DEBUG:colcon:Parsed command line arguments: Namespace(log_base=None, log_level=None, verb_name='build', build_base='build', install_base='install', merge_install=False, symlink_install=False, test_result_base=None, continue_on_error=False, executor='parallel', parallel_workers=12, event_handlers=None, ignore_user_meta=False, metas=['./colcon.meta'], base_paths=['.'], packages_ignore=None, packages_ignore_regex=None, paths=None, packages_up_to=None, packages_up_to_regex=None, packages_above=None, packages_above_and_dependencies=None, packages_above_depth=None, packages_select_by_dep=None, packages_skip_by_dep=None, packages_skip_up_to=None, packages_select_build_failed=False, packages_skip_build_finished=False, packages_select_test_failures=False, packages_skip_test_passed=False, packages_select=['disparity_expansion'], packages_skip=None, packages_select_regex=None, packages_skip_regex=None, packages_start=None, packages_end=None, allow_overriding=[], cmake_args=None, cmake_target=None, cmake_target_skip_unavailable=False, cmake_clean_cache=False, cmake_clean_first=False, cmake_force_configure=False, ament_cmake_args=None, catkin_cmake_args=None, catkin_skip_building_tests=False, mixin_files=None, mixin=None, verb_parser=, verb_extension=, main=>, mixin_verb=('build',)) +[0.197s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) check parameters +[0.197s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) check parameters +[0.197s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) check parameters +[0.197s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) check parameters +[0.197s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) discover +[0.197s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) discover +[0.197s] INFO:colcon.colcon_core.package_discovery:Crawling recursively for packages in '/root/AirStack' +[0.197s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ignore', 'ignore_ament_install'] +[0.197s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore' +[0.197s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore_ament_install' +[0.197s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_pkg'] +[0.198s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_pkg' +[0.198s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_meta'] +[0.198s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_meta' +[0.198s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ros'] +[0.198s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ros' +[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['cmake', 'python'] +[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'cmake' +[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'python' +[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['python_setup_py'] +[0.205s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'python_setup_py' +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extensions ['ignore', 'ignore_ament_install'] +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'ignore' +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(build) ignored +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extensions ['ignore', 'ignore_ament_install'] +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'ignore' +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'ignore_ament_install' +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extensions ['colcon_pkg'] +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'colcon_pkg' +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extensions ['colcon_meta'] +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'colcon_meta' +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extensions ['ros'] +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'ros' +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extensions ['cmake', 'python'] +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'cmake' +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'python' +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extensions ['python_setup_py'] +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'python_setup_py' +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extensions ['ignore', 'ignore_ament_install'] +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'ignore' +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'ignore_ament_install' +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extensions ['colcon_pkg'] +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'colcon_pkg' +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extensions ['colcon_meta'] +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'colcon_meta' +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extensions ['ros'] +[0.206s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'ros' +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extensions ['cmake', 'python'] +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'cmake' +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'python' +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extensions ['python_setup_py'] +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'python_setup_py' +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extensions ['ignore', 'ignore_ament_install'] +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'ignore' +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'ignore_ament_install' +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extensions ['colcon_pkg'] +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'colcon_pkg' +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extensions ['colcon_meta'] +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'colcon_meta' +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extensions ['ros'] +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'ros' +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extensions ['cmake', 'python'] +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'cmake' +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'python' +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extensions ['python_setup_py'] +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'python_setup_py' +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extensions ['ignore', 'ignore_ament_install'] +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'ignore' +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'ignore_ament_install' +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extensions ['colcon_pkg'] +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'colcon_pkg' +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extensions ['colcon_meta'] +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'colcon_meta' +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extensions ['ros'] +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'ros' +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extensions ['cmake', 'python'] +[0.207s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'cmake' +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'python' +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extensions ['python_setup_py'] +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'python_setup_py' +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extensions ['ignore', 'ignore_ament_install'] +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'ignore' +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'ignore_ament_install' +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extensions ['colcon_pkg'] +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'colcon_pkg' +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extensions ['colcon_meta'] +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'colcon_meta' +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extensions ['ros'] +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'ros' +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extensions ['cmake', 'python'] +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'cmake' +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'python' +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extensions ['python_setup_py'] +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'python_setup_py' +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extensions ['ignore', 'ignore_ament_install'] +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'ignore' +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'ignore_ament_install' +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extensions ['colcon_pkg'] +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'colcon_pkg' +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extensions ['colcon_meta'] +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'colcon_meta' +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extensions ['ros'] +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'ros' +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extensions ['cmake', 'python'] +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'cmake' +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'python' +[0.208s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extensions ['python_setup_py'] +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'python_setup_py' +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extensions ['ignore', 'ignore_ament_install'] +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'ignore' +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'ignore_ament_install' +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extensions ['colcon_pkg'] +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'colcon_pkg' +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extensions ['colcon_meta'] +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'colcon_meta' +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extensions ['ros'] +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'ros' +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extensions ['cmake', 'python'] +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'cmake' +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'python' +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extensions ['python_setup_py'] +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'python_setup_py' +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extensions ['ignore', 'ignore_ament_install'] +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'ignore' +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'ignore_ament_install' +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extensions ['colcon_pkg'] +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'colcon_pkg' +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extensions ['colcon_meta'] +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'colcon_meta' +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extensions ['ros'] +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'ros' +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extensions ['cmake', 'python'] +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'cmake' +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'python' +[0.209s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extensions ['python_setup_py'] +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'python_setup_py' +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extensions ['ignore', 'ignore_ament_install'] +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'ignore' +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'ignore_ament_install' +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extensions ['colcon_pkg'] +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'colcon_pkg' +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extensions ['colcon_meta'] +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'colcon_meta' +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extensions ['ros'] +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'ros' +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extensions ['cmake', 'python'] +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'cmake' +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'python' +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extensions ['python_setup_py'] +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'python_setup_py' +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extensions ['ignore', 'ignore_ament_install'] +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'ignore' +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(install) ignored +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extensions ['ignore', 'ignore_ament_install'] +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'ignore' +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'ignore_ament_install' +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extensions ['colcon_pkg'] +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'colcon_pkg' +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extensions ['colcon_meta'] +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'colcon_meta' +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extensions ['ros'] +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'ros' +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extensions ['cmake', 'python'] +[0.210s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'cmake' +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'python' +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extensions ['python_setup_py'] +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'python_setup_py' +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(log) by extensions ['ignore', 'ignore_ament_install'] +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(log) by extension 'ignore' +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(log) ignored +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extensions ['ignore', 'ignore_ament_install'] +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'ignore' +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'ignore_ament_install' +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extensions ['colcon_pkg'] +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'colcon_pkg' +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extensions ['colcon_meta'] +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'colcon_meta' +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extensions ['ros'] +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'ros' +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extensions ['cmake', 'python'] +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'cmake' +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'python' +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extensions ['python_setup_py'] +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'python_setup_py' +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/build) by extensions ['ignore', 'ignore_ament_install'] +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/build) by extension 'ignore' +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/build) ignored +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/install) by extensions ['ignore', 'ignore_ament_install'] +[0.211s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/install) by extension 'ignore' +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/install) ignored +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/log) by extensions ['ignore', 'ignore_ament_install'] +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/log) by extension 'ignore' +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/log) ignored +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extensions ['ignore', 'ignore_ament_install'] +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'ignore' +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'ignore_ament_install' +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extensions ['colcon_pkg'] +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'colcon_pkg' +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extensions ['colcon_meta'] +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'colcon_meta' +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extensions ['ros'] +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'ros' +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extensions ['cmake', 'python'] +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'cmake' +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'python' +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extensions ['python_setup_py'] +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'python_setup_py' +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extensions ['ignore', 'ignore_ament_install'] +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'ignore' +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'ignore_ament_install' +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extensions ['colcon_pkg'] +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'colcon_pkg' +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extensions ['colcon_meta'] +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'colcon_meta' +[0.212s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extensions ['ros'] +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'ros' +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extensions ['cmake', 'python'] +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'cmake' +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'python' +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extensions ['python_setup_py'] +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'python_setup_py' +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extensions ['ignore', 'ignore_ament_install'] +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'ignore' +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'ignore_ament_install' +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extensions ['colcon_pkg'] +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'colcon_pkg' +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extensions ['colcon_meta'] +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'colcon_meta' +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extensions ['ros'] +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'ros' +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extensions ['cmake', 'python'] +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'cmake' +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'python' +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extensions ['python_setup_py'] +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'python_setup_py' +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extensions ['ignore', 'ignore_ament_install'] +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'ignore' +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'ignore_ament_install' +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extensions ['colcon_pkg'] +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'colcon_pkg' +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extensions ['colcon_meta'] +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'colcon_meta' +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extensions ['ros'] +[0.213s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'ros' +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extensions ['cmake', 'python'] +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'cmake' +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'python' +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extensions ['python_setup_py'] +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'python_setup_py' +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extensions ['ignore', 'ignore_ament_install'] +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'ignore' +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'ignore_ament_install' +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extensions ['colcon_pkg'] +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'colcon_pkg' +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extensions ['colcon_meta'] +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'colcon_meta' +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extensions ['ros'] +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'ros' +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extensions ['cmake', 'python'] +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'cmake' +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'python' +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extensions ['python_setup_py'] +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'python_setup_py' +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extensions ['ignore', 'ignore_ament_install'] +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extension 'ignore' +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extension 'ignore_ament_install' +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extensions ['colcon_pkg'] +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extension 'colcon_pkg' +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extensions ['colcon_meta'] +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extension 'colcon_meta' +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extensions ['ros'] +[0.214s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extension 'ros' +[0.216s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/controls_bringup' with type 'ros.ament_cmake' and name 'controls_bringup' +[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extensions ['ignore', 'ignore_ament_install'] +[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'ignore' +[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'ignore_ament_install' +[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extensions ['colcon_pkg'] +[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'colcon_pkg' +[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extensions ['colcon_meta'] +[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'colcon_meta' +[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extensions ['ros'] +[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'ros' +[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extensions ['cmake', 'python'] +[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'cmake' +[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'python' +[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extensions ['python_setup_py'] +[0.216s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'python_setup_py' +[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extensions ['ignore', 'ignore_ament_install'] +[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extension 'ignore' +[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extension 'ignore_ament_install' +[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extensions ['colcon_pkg'] +[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extension 'colcon_pkg' +[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extensions ['colcon_meta'] +[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extension 'colcon_meta' +[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extensions ['ros'] +[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extension 'ros' +[0.217s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm' with type 'ros.ament_cmake' and name 'mav_comm' +[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extensions ['ignore', 'ignore_ament_install'] +[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extension 'ignore' +[0.217s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extension 'ignore_ament_install' +[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extensions ['colcon_pkg'] +[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extension 'colcon_pkg' +[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extensions ['colcon_meta'] +[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extension 'colcon_meta' +[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extensions ['ros'] +[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extension 'ros' +[0.218s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs' with type 'ros.ament_cmake' and name 'mav_msgs' +[0.218s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extensions ['ignore', 'ignore_ament_install'] +[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extension 'ignore' +[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extension 'ignore_ament_install' +[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extensions ['colcon_pkg'] +[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extension 'colcon_pkg' +[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extensions ['colcon_meta'] +[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extension 'colcon_meta' +[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extensions ['ros'] +[0.219s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extension 'ros' +[0.220s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs' with type 'ros.ament_cmake' and name 'mav_planning_msgs' +[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extensions ['ignore', 'ignore_ament_install'] +[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extension 'ignore' +[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extension 'ignore_ament_install' +[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extensions ['colcon_pkg'] +[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extension 'colcon_pkg' +[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extensions ['colcon_meta'] +[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extension 'colcon_meta' +[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extensions ['ros'] +[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extension 'ros' +[0.220s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs' with type 'ros.ament_cmake' and name 'mav_state_machine_msgs' +[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extensions ['ignore', 'ignore_ament_install'] +[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extension 'ignore' +[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extension 'ignore_ament_install' +[0.220s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extensions ['colcon_pkg'] +[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extension 'colcon_pkg' +[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extensions ['colcon_meta'] +[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extension 'colcon_meta' +[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extensions ['ros'] +[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extension 'ros' +[0.221s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs' with type 'ros.ament_cmake' and name 'mav_system_msgs' +[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extensions ['ignore', 'ignore_ament_install'] +[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extension 'ignore' +[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extension 'ignore_ament_install' +[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extensions ['colcon_pkg'] +[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extension 'colcon_pkg' +[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extensions ['colcon_meta'] +[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extension 'colcon_meta' +[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extensions ['ros'] +[0.221s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extension 'ros' +[0.222s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/mavros_interface' with type 'ros.ament_cmake' and name 'mavros_interface' +[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extensions ['ignore', 'ignore_ament_install'] +[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extension 'ignore' +[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extension 'ignore_ament_install' +[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extensions ['colcon_pkg'] +[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extension 'colcon_pkg' +[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extensions ['colcon_meta'] +[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extension 'colcon_meta' +[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extensions ['ros'] +[0.222s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extension 'ros' +[0.223s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/px4_msgs' with type 'ros.ament_cmake' and name 'px4_msgs' +[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extensions ['ignore', 'ignore_ament_install'] +[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extension 'ignore' +[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extension 'ignore_ament_install' +[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extensions ['colcon_pkg'] +[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extension 'colcon_pkg' +[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extensions ['colcon_meta'] +[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extension 'colcon_meta' +[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extensions ['ros'] +[0.223s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extension 'ros' +[0.224s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/px4_ros_com' with type 'ros.ament_cmake' and name 'px4_ros_com' +[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extensions ['ignore', 'ignore_ament_install'] +[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extension 'ignore' +[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extension 'ignore_ament_install' +[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extensions ['colcon_pkg'] +[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extension 'colcon_pkg' +[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extensions ['colcon_meta'] +[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extension 'colcon_meta' +[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extensions ['ros'] +[0.224s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extension 'ros' +[0.225s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/robot_interface' with type 'ros.ament_cmake' and name 'robot_interface' +[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extensions ['ignore', 'ignore_ament_install'] +[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'ignore' +[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'ignore_ament_install' +[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extensions ['colcon_pkg'] +[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'colcon_pkg' +[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extensions ['colcon_meta'] +[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'colcon_meta' +[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extensions ['ros'] +[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'ros' +[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extensions ['cmake', 'python'] +[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'cmake' +[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'python' +[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extensions ['python_setup_py'] +[0.225s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'python_setup_py' +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extensions ['ignore', 'ignore_ament_install'] +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'ignore' +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'ignore_ament_install' +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extensions ['colcon_pkg'] +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'colcon_pkg' +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extensions ['colcon_meta'] +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'colcon_meta' +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extensions ['ros'] +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'ros' +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extensions ['cmake', 'python'] +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'cmake' +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'python' +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extensions ['python_setup_py'] +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'python_setup_py' +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extensions ['ignore', 'ignore_ament_install'] +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'ignore' +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'ignore_ament_install' +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extensions ['colcon_pkg'] +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'colcon_pkg' +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extensions ['colcon_meta'] +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'colcon_meta' +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extensions ['ros'] +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'ros' +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extensions ['cmake', 'python'] +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'cmake' +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'python' +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extensions ['python_setup_py'] +[0.226s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'python_setup_py' +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extensions ['ignore', 'ignore_ament_install'] +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'ignore' +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'ignore_ament_install' +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extensions ['colcon_pkg'] +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'colcon_pkg' +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extensions ['colcon_meta'] +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'colcon_meta' +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extensions ['ros'] +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'ros' +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extensions ['cmake', 'python'] +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'cmake' +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'python' +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extensions ['python_setup_py'] +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'python_setup_py' +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation) by extensions ['ignore', 'ignore_ament_install'] +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation) by extension 'ignore' +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation) ignored +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/core_local_planner) by extensions ['ignore', 'ignore_ament_install'] +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/core_local_planner) by extension 'ignore' +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/core_local_planner) ignored +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extensions ['ignore', 'ignore_ament_install'] +[0.227s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extension 'ignore' +[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extension 'ignore_ament_install' +[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extensions ['colcon_pkg'] +[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extension 'colcon_pkg' +[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extensions ['colcon_meta'] +[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extension 'colcon_meta' +[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extensions ['ros'] +[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extension 'ros' +[0.228s] DEBUG:colcon.colcon_core.package_identification:Failed to parse potential ROS package manifest in'ros_ws/src/robot/autonomy/planning/local/disparity_expansion': Error(s) in package 'ros_ws/src/robot/autonomy/planning/local/disparity_expansion/package.xml': +Error(s): +- The manifest of package "disparity_expansion" (with format version 1) must not contain the following tags: exec_depend +- Either update to a newer format or replace tags with tags. +[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extensions ['cmake', 'python'] +[0.228s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extension 'cmake' +[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extension 'python' +[0.230s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/planning/local/disparity_expansion' with type 'cmake' and name 'disparity_expansion' +[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp) by extensions ['ignore', 'ignore_ament_install'] +[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp) by extension 'ignore' +[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp) ignored +[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extensions ['ignore', 'ignore_ament_install'] +[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'ignore' +[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'ignore_ament_install' +[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extensions ['colcon_pkg'] +[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'colcon_pkg' +[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extensions ['colcon_meta'] +[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'colcon_meta' +[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extensions ['ros'] +[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'ros' +[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extensions ['cmake', 'python'] +[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'cmake' +[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'python' +[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extensions ['python_setup_py'] +[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'python_setup_py' +[0.230s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extensions ['ignore', 'ignore_ament_install'] +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'ignore' +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'ignore_ament_install' +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extensions ['colcon_pkg'] +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'colcon_pkg' +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extensions ['colcon_meta'] +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'colcon_meta' +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extensions ['ros'] +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'ros' +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extensions ['cmake', 'python'] +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'cmake' +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'python' +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extensions ['python_setup_py'] +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'python_setup_py' +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extensions ['ignore', 'ignore_ament_install'] +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extension 'ignore' +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extension 'ignore_ament_install' +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extensions ['colcon_pkg'] +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extension 'colcon_pkg' +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extensions ['colcon_meta'] +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extension 'colcon_meta' +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extensions ['ros'] +[0.231s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extension 'ros' +[0.232s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping' with type 'ros.cmake' and name 'vdb_mapping' +[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extensions ['ignore', 'ignore_ament_install'] +[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'ignore' +[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'ignore_ament_install' +[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extensions ['colcon_pkg'] +[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'colcon_pkg' +[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extensions ['colcon_meta'] +[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'colcon_meta' +[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extensions ['ros'] +[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'ros' +[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extensions ['cmake', 'python'] +[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'cmake' +[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'python' +[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extensions ['python_setup_py'] +[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'python_setup_py' +[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extensions ['ignore', 'ignore_ament_install'] +[0.232s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extension 'ignore' +[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extension 'ignore_ament_install' +[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extensions ['colcon_pkg'] +[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extension 'colcon_pkg' +[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extensions ['colcon_meta'] +[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extension 'colcon_meta' +[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extensions ['ros'] +[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extension 'ros' +[0.233s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces' with type 'ros.ament_cmake' and name 'vdb_mapping_interfaces' +[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extensions ['ignore', 'ignore_ament_install'] +[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extension 'ignore' +[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extension 'ignore_ament_install' +[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extensions ['colcon_pkg'] +[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extension 'colcon_pkg' +[0.233s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extensions ['colcon_meta'] +[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extension 'colcon_meta' +[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extensions ['ros'] +[0.234s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extension 'ros' +[0.234s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2' with type 'ros.ament_cmake' and name 'vdb_mapping_ros2' +[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extensions ['ignore', 'ignore_ament_install'] +[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'ignore' +[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'ignore_ament_install' +[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extensions ['colcon_pkg'] +[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'colcon_pkg' +[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extensions ['colcon_meta'] +[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'colcon_meta' +[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extensions ['ros'] +[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'ros' +[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extensions ['cmake', 'python'] +[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'cmake' +[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'python' +[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extensions ['python_setup_py'] +[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'python_setup_py' +[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extensions ['ignore', 'ignore_ament_install'] +[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extension 'ignore' +[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extension 'ignore_ament_install' +[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extensions ['colcon_pkg'] +[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extension 'colcon_pkg' +[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extensions ['colcon_meta'] +[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extension 'colcon_meta' +[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extensions ['ros'] +[0.235s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extension 'ros' +[0.236s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/robot_bringup' with type 'ros.ament_cmake' and name 'robot_bringup' +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extensions ['ignore', 'ignore_ament_install'] +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'ignore' +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'ignore_ament_install' +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extensions ['colcon_pkg'] +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'colcon_pkg' +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extensions ['colcon_meta'] +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'colcon_meta' +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extensions ['ros'] +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'ros' +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extensions ['cmake', 'python'] +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'cmake' +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'python' +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extensions ['python_setup_py'] +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'python_setup_py' +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extensions ['ignore', 'ignore_ament_install'] +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'ignore' +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'ignore_ament_install' +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extensions ['colcon_pkg'] +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'colcon_pkg' +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extensions ['colcon_meta'] +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'colcon_meta' +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extensions ['ros'] +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'ros' +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extensions ['cmake', 'python'] +[0.236s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'cmake' +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'python' +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extensions ['python_setup_py'] +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'python_setup_py' +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extensions ['ignore', 'ignore_ament_install'] +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'ignore' +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'ignore_ament_install' +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extensions ['colcon_pkg'] +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'colcon_pkg' +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extensions ['colcon_meta'] +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'colcon_meta' +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extensions ['ros'] +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'ros' +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extensions ['cmake', 'python'] +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'cmake' +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'python' +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extensions ['python_setup_py'] +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'python_setup_py' +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extensions ['ignore', 'ignore_ament_install'] +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'ignore' +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'ignore_ament_install' +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extensions ['colcon_pkg'] +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'colcon_pkg' +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extensions ['colcon_meta'] +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'colcon_meta' +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extensions ['ros'] +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'ros' +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extensions ['cmake', 'python'] +[0.237s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'cmake' +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'python' +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extensions ['python_setup_py'] +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'python_setup_py' +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extensions ['ignore', 'ignore_ament_install'] +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'ignore' +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'ignore_ament_install' +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extensions ['colcon_pkg'] +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'colcon_pkg' +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extensions ['colcon_meta'] +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'colcon_meta' +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extensions ['ros'] +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'ros' +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extensions ['cmake', 'python'] +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'cmake' +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'python' +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extensions ['python_setup_py'] +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'python_setup_py' +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extensions ['ignore', 'ignore_ament_install'] +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'ignore' +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'ignore_ament_install' +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extensions ['colcon_pkg'] +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'colcon_pkg' +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extensions ['colcon_meta'] +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'colcon_meta' +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extensions ['ros'] +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'ros' +[0.238s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extensions ['cmake', 'python'] +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'cmake' +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'python' +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extensions ['python_setup_py'] +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'python_setup_py' +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extensions ['ignore', 'ignore_ament_install'] +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'ignore' +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'ignore_ament_install' +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extensions ['colcon_pkg'] +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'colcon_pkg' +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extensions ['colcon_meta'] +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'colcon_meta' +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extensions ['ros'] +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'ros' +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extensions ['cmake', 'python'] +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'cmake' +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'python' +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extensions ['python_setup_py'] +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'python_setup_py' +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extensions ['ignore', 'ignore_ament_install'] +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'ignore' +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'ignore_ament_install' +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extensions ['colcon_pkg'] +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'colcon_pkg' +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extensions ['colcon_meta'] +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'colcon_meta' +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extensions ['ros'] +[0.239s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'ros' +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extensions ['cmake', 'python'] +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'cmake' +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'python' +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extensions ['python_setup_py'] +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'python_setup_py' +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extensions ['ignore', 'ignore_ament_install'] +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'ignore' +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'ignore_ament_install' +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extensions ['colcon_pkg'] +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'colcon_pkg' +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extensions ['colcon_meta'] +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'colcon_meta' +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extensions ['ros'] +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'ros' +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extensions ['cmake', 'python'] +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'cmake' +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'python' +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extensions ['python_setup_py'] +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'python_setup_py' +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extensions ['ignore', 'ignore_ament_install'] +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'ignore' +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'ignore_ament_install' +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extensions ['colcon_pkg'] +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'colcon_pkg' +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extensions ['colcon_meta'] +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'colcon_meta' +[0.240s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extensions ['ros'] +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'ros' +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extensions ['cmake', 'python'] +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'cmake' +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'python' +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extensions ['python_setup_py'] +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'python_setup_py' +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extensions ['ignore', 'ignore_ament_install'] +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'ignore' +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'ignore_ament_install' +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extensions ['colcon_pkg'] +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'colcon_pkg' +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extensions ['colcon_meta'] +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'colcon_meta' +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extensions ['ros'] +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'ros' +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extensions ['cmake', 'python'] +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'cmake' +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'python' +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extensions ['python_setup_py'] +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'python_setup_py' +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extensions ['ignore', 'ignore_ament_install'] +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'ignore' +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'ignore_ament_install' +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extensions ['colcon_pkg'] +[0.241s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'colcon_pkg' +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extensions ['colcon_meta'] +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'colcon_meta' +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extensions ['ros'] +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'ros' +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extensions ['cmake', 'python'] +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'cmake' +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'python' +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extensions ['python_setup_py'] +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'python_setup_py' +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extensions ['ignore', 'ignore_ament_install'] +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'ignore' +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'ignore_ament_install' +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extensions ['colcon_pkg'] +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'colcon_pkg' +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extensions ['colcon_meta'] +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'colcon_meta' +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extensions ['ros'] +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'ros' +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extensions ['cmake', 'python'] +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'cmake' +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'python' +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extensions ['python_setup_py'] +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'python_setup_py' +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extensions ['ignore', 'ignore_ament_install'] +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'ignore' +[0.242s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'ignore_ament_install' +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extensions ['colcon_pkg'] +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'colcon_pkg' +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extensions ['colcon_meta'] +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'colcon_meta' +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extensions ['ros'] +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'ros' +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extensions ['cmake', 'python'] +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'cmake' +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'python' +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extensions ['python_setup_py'] +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'python_setup_py' +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extensions ['ignore', 'ignore_ament_install'] +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'ignore' +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'ignore_ament_install' +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extensions ['colcon_pkg'] +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'colcon_pkg' +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extensions ['colcon_meta'] +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'colcon_meta' +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extensions ['ros'] +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'ros' +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extensions ['cmake', 'python'] +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'cmake' +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'python' +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extensions ['python_setup_py'] +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'python_setup_py' +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extensions ['ignore', 'ignore_ament_install'] +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'ignore' +[0.243s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'ignore_ament_install' +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extensions ['colcon_pkg'] +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'colcon_pkg' +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extensions ['colcon_meta'] +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'colcon_meta' +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extensions ['ros'] +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'ros' +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extensions ['cmake', 'python'] +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'cmake' +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'python' +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extensions ['python_setup_py'] +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'python_setup_py' +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extensions ['ignore', 'ignore_ament_install'] +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'ignore' +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'ignore_ament_install' +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extensions ['colcon_pkg'] +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'colcon_pkg' +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extensions ['colcon_meta'] +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'colcon_meta' +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extensions ['ros'] +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'ros' +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extensions ['cmake', 'python'] +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'cmake' +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'python' +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extensions ['python_setup_py'] +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'python_setup_py' +[0.244s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extensions ['ignore', 'ignore_ament_install'] +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'ignore' +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'ignore_ament_install' +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extensions ['colcon_pkg'] +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'colcon_pkg' +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extensions ['colcon_meta'] +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'colcon_meta' +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extensions ['ros'] +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'ros' +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extensions ['cmake', 'python'] +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'cmake' +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'python' +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extensions ['python_setup_py'] +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'python_setup_py' +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extensions ['ignore', 'ignore_ament_install'] +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'ignore' +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'ignore_ament_install' +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extensions ['colcon_pkg'] +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'colcon_pkg' +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extensions ['colcon_meta'] +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'colcon_meta' +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extensions ['ros'] +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'ros' +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extensions ['cmake', 'python'] +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'cmake' +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'python' +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extensions ['python_setup_py'] +[0.245s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'python_setup_py' +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extensions ['ignore', 'ignore_ament_install'] +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'ignore' +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'ignore_ament_install' +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extensions ['colcon_pkg'] +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'colcon_pkg' +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extensions ['colcon_meta'] +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'colcon_meta' +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extensions ['ros'] +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'ros' +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extensions ['cmake', 'python'] +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'cmake' +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'python' +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extensions ['python_setup_py'] +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'python_setup_py' +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extensions ['ignore', 'ignore_ament_install'] +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'ignore' +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'ignore_ament_install' +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extensions ['colcon_pkg'] +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'colcon_pkg' +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extensions ['colcon_meta'] +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'colcon_meta' +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extensions ['ros'] +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'ros' +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extensions ['cmake', 'python'] +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'cmake' +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'python' +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extensions ['python_setup_py'] +[0.246s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'python_setup_py' +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extensions ['ignore', 'ignore_ament_install'] +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'ignore' +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'ignore_ament_install' +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extensions ['colcon_pkg'] +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'colcon_pkg' +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extensions ['colcon_meta'] +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'colcon_meta' +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extensions ['ros'] +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'ros' +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extensions ['cmake', 'python'] +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'cmake' +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'python' +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extensions ['python_setup_py'] +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'python_setup_py' +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extensions ['ignore', 'ignore_ament_install'] +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'ignore' +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'ignore_ament_install' +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extensions ['colcon_pkg'] +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'colcon_pkg' +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extensions ['colcon_meta'] +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'colcon_meta' +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extensions ['ros'] +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'ros' +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extensions ['cmake', 'python'] +[0.247s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'cmake' +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'python' +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extensions ['python_setup_py'] +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'python_setup_py' +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extensions ['ignore', 'ignore_ament_install'] +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'ignore' +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'ignore_ament_install' +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extensions ['colcon_pkg'] +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'colcon_pkg' +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extensions ['colcon_meta'] +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'colcon_meta' +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extensions ['ros'] +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'ros' +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extensions ['cmake', 'python'] +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'cmake' +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'python' +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extensions ['python_setup_py'] +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'python_setup_py' +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extensions ['ignore', 'ignore_ament_install'] +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'ignore' +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'ignore_ament_install' +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extensions ['colcon_pkg'] +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'colcon_pkg' +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extensions ['colcon_meta'] +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'colcon_meta' +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extensions ['ros'] +[0.248s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'ros' +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extensions ['cmake', 'python'] +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'cmake' +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'python' +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extensions ['python_setup_py'] +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'python_setup_py' +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extensions ['ignore', 'ignore_ament_install'] +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'ignore' +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'ignore_ament_install' +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extensions ['colcon_pkg'] +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'colcon_pkg' +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extensions ['colcon_meta'] +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'colcon_meta' +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extensions ['ros'] +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'ros' +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extensions ['cmake', 'python'] +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'cmake' +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'python' +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extensions ['python_setup_py'] +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'python_setup_py' +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extensions ['ignore', 'ignore_ament_install'] +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'ignore' +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'ignore_ament_install' +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extensions ['colcon_pkg'] +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'colcon_pkg' +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extensions ['colcon_meta'] +[0.249s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'colcon_meta' +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extensions ['ros'] +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'ros' +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extensions ['cmake', 'python'] +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'cmake' +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'python' +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extensions ['python_setup_py'] +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'python_setup_py' +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extensions ['ignore', 'ignore_ament_install'] +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'ignore' +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'ignore_ament_install' +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extensions ['colcon_pkg'] +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'colcon_pkg' +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extensions ['colcon_meta'] +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'colcon_meta' +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extensions ['ros'] +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'ros' +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extensions ['cmake', 'python'] +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'cmake' +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'python' +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extensions ['python_setup_py'] +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'python_setup_py' +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extensions ['ignore', 'ignore_ament_install'] +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'ignore' +[0.250s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'ignore_ament_install' +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extensions ['colcon_pkg'] +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'colcon_pkg' +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extensions ['colcon_meta'] +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'colcon_meta' +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extensions ['ros'] +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'ros' +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extensions ['cmake', 'python'] +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'cmake' +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'python' +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extensions ['python_setup_py'] +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'python_setup_py' +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extensions ['ignore', 'ignore_ament_install'] +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'ignore' +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'ignore_ament_install' +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extensions ['colcon_pkg'] +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'colcon_pkg' +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extensions ['colcon_meta'] +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'colcon_meta' +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extensions ['ros'] +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'ros' +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extensions ['cmake', 'python'] +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'cmake' +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'python' +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extensions ['python_setup_py'] +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'python_setup_py' +[0.251s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extensions ['ignore', 'ignore_ament_install'] +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'ignore' +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'ignore_ament_install' +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extensions ['colcon_pkg'] +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'colcon_pkg' +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extensions ['colcon_meta'] +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'colcon_meta' +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extensions ['ros'] +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'ros' +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extensions ['cmake', 'python'] +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'cmake' +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'python' +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extensions ['python_setup_py'] +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'python_setup_py' +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extensions ['ignore', 'ignore_ament_install'] +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'ignore' +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'ignore_ament_install' +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extensions ['colcon_pkg'] +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'colcon_pkg' +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extensions ['colcon_meta'] +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'colcon_meta' +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extensions ['ros'] +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'ros' +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extensions ['cmake', 'python'] +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'cmake' +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'python' +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extensions ['python_setup_py'] +[0.252s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'python_setup_py' +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extensions ['ignore', 'ignore_ament_install'] +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'ignore' +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'ignore_ament_install' +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extensions ['colcon_pkg'] +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'colcon_pkg' +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extensions ['colcon_meta'] +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'colcon_meta' +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extensions ['ros'] +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'ros' +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extensions ['cmake', 'python'] +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'cmake' +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'python' +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extensions ['python_setup_py'] +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'python_setup_py' +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extensions ['ignore', 'ignore_ament_install'] +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'ignore' +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'ignore_ament_install' +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extensions ['colcon_pkg'] +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'colcon_pkg' +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extensions ['colcon_meta'] +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'colcon_meta' +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extensions ['ros'] +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'ros' +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extensions ['cmake', 'python'] +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'cmake' +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'python' +[0.253s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extensions ['python_setup_py'] +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'python_setup_py' +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extensions ['ignore', 'ignore_ament_install'] +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'ignore' +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'ignore_ament_install' +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extensions ['colcon_pkg'] +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'colcon_pkg' +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extensions ['colcon_meta'] +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'colcon_meta' +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extensions ['ros'] +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'ros' +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extensions ['cmake', 'python'] +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'cmake' +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'python' +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extensions ['python_setup_py'] +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'python_setup_py' +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extensions ['ignore', 'ignore_ament_install'] +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'ignore' +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'ignore_ament_install' +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extensions ['colcon_pkg'] +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'colcon_pkg' +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extensions ['colcon_meta'] +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'colcon_meta' +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extensions ['ros'] +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'ros' +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extensions ['cmake', 'python'] +[0.254s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'cmake' +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'python' +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extensions ['python_setup_py'] +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'python_setup_py' +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extensions ['ignore', 'ignore_ament_install'] +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'ignore' +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'ignore_ament_install' +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extensions ['colcon_pkg'] +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'colcon_pkg' +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extensions ['colcon_meta'] +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'colcon_meta' +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extensions ['ros'] +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'ros' +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extensions ['cmake', 'python'] +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'cmake' +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'python' +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extensions ['python_setup_py'] +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'python_setup_py' +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extensions ['ignore', 'ignore_ament_install'] +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'ignore' +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'ignore_ament_install' +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extensions ['colcon_pkg'] +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'colcon_pkg' +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extensions ['colcon_meta'] +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'colcon_meta' +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extensions ['ros'] +[0.255s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'ros' +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extensions ['cmake', 'python'] +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'cmake' +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'python' +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extensions ['python_setup_py'] +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'python_setup_py' +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extensions ['ignore', 'ignore_ament_install'] +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'ignore' +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'ignore_ament_install' +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extensions ['colcon_pkg'] +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'colcon_pkg' +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extensions ['colcon_meta'] +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'colcon_meta' +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extensions ['ros'] +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'ros' +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extensions ['cmake', 'python'] +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'cmake' +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'python' +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extensions ['python_setup_py'] +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'python_setup_py' +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extensions ['ignore', 'ignore_ament_install'] +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'ignore' +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'ignore_ament_install' +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extensions ['colcon_pkg'] +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'colcon_pkg' +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extensions ['colcon_meta'] +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'colcon_meta' +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extensions ['ros'] +[0.256s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'ros' +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extensions ['cmake', 'python'] +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'cmake' +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'python' +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extensions ['python_setup_py'] +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'python_setup_py' +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extensions ['ignore', 'ignore_ament_install'] +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'ignore' +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'ignore_ament_install' +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extensions ['colcon_pkg'] +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'colcon_pkg' +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extensions ['colcon_meta'] +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'colcon_meta' +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extensions ['ros'] +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'ros' +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extensions ['cmake', 'python'] +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'cmake' +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'python' +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extensions ['python_setup_py'] +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'python_setup_py' +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extensions ['ignore', 'ignore_ament_install'] +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'ignore' +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'ignore_ament_install' +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extensions ['colcon_pkg'] +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'colcon_pkg' +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extensions ['colcon_meta'] +[0.257s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'colcon_meta' +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extensions ['ros'] +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'ros' +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extensions ['cmake', 'python'] +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'cmake' +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'python' +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extensions ['python_setup_py'] +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'python_setup_py' +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extensions ['ignore', 'ignore_ament_install'] +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'ignore' +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'ignore_ament_install' +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extensions ['colcon_pkg'] +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'colcon_pkg' +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extensions ['colcon_meta'] +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'colcon_meta' +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extensions ['ros'] +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'ros' +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extensions ['cmake', 'python'] +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'cmake' +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'python' +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extensions ['python_setup_py'] +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'python_setup_py' +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extensions ['ignore', 'ignore_ament_install'] +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'ignore' +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'ignore_ament_install' +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extensions ['colcon_pkg'] +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'colcon_pkg' +[0.258s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extensions ['colcon_meta'] +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'colcon_meta' +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extensions ['ros'] +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'ros' +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extensions ['cmake', 'python'] +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'cmake' +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'python' +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extensions ['python_setup_py'] +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'python_setup_py' +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extensions ['ignore', 'ignore_ament_install'] +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'ignore' +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'ignore_ament_install' +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extensions ['colcon_pkg'] +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'colcon_pkg' +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extensions ['colcon_meta'] +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'colcon_meta' +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extensions ['ros'] +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'ros' +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extensions ['cmake', 'python'] +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'cmake' +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'python' +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extensions ['python_setup_py'] +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'python_setup_py' +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extensions ['ignore', 'ignore_ament_install'] +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'ignore' +[0.259s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'ignore_ament_install' +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extensions ['colcon_pkg'] +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'colcon_pkg' +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extensions ['colcon_meta'] +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'colcon_meta' +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extensions ['ros'] +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'ros' +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extensions ['cmake', 'python'] +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'cmake' +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'python' +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extensions ['python_setup_py'] +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'python_setup_py' +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extensions ['ignore', 'ignore_ament_install'] +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'ignore' +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'ignore_ament_install' +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extensions ['colcon_pkg'] +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'colcon_pkg' +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extensions ['colcon_meta'] +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'colcon_meta' +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extensions ['ros'] +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'ros' +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extensions ['cmake', 'python'] +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'cmake' +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'python' +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extensions ['python_setup_py'] +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'python_setup_py' +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extensions ['ignore', 'ignore_ament_install'] +[0.260s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'ignore' +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'ignore_ament_install' +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extensions ['colcon_pkg'] +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'colcon_pkg' +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extensions ['colcon_meta'] +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'colcon_meta' +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extensions ['ros'] +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'ros' +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extensions ['cmake', 'python'] +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'cmake' +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'python' +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extensions ['python_setup_py'] +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'python_setup_py' +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extensions ['ignore', 'ignore_ament_install'] +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'ignore' +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'ignore_ament_install' +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extensions ['colcon_pkg'] +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'colcon_pkg' +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extensions ['colcon_meta'] +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'colcon_meta' +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extensions ['ros'] +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'ros' +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extensions ['cmake', 'python'] +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'cmake' +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'python' +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extensions ['python_setup_py'] +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'python_setup_py' +[0.261s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extensions ['ignore', 'ignore_ament_install'] +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'ignore' +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'ignore_ament_install' +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extensions ['colcon_pkg'] +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'colcon_pkg' +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extensions ['colcon_meta'] +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'colcon_meta' +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extensions ['ros'] +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'ros' +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extensions ['cmake', 'python'] +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'cmake' +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'python' +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extensions ['python_setup_py'] +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'python_setup_py' +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extensions ['ignore', 'ignore_ament_install'] +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'ignore' +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'ignore_ament_install' +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extensions ['colcon_pkg'] +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'colcon_pkg' +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extensions ['colcon_meta'] +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'colcon_meta' +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extensions ['ros'] +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'ros' +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extensions ['cmake', 'python'] +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'cmake' +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'python' +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extensions ['python_setup_py'] +[0.262s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'python_setup_py' +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extensions ['ignore', 'ignore_ament_install'] +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'ignore' +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'ignore_ament_install' +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extensions ['colcon_pkg'] +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'colcon_pkg' +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extensions ['colcon_meta'] +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'colcon_meta' +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extensions ['ros'] +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'ros' +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extensions ['cmake', 'python'] +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'cmake' +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'python' +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extensions ['python_setup_py'] +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'python_setup_py' +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extensions ['ignore', 'ignore_ament_install'] +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'ignore' +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'ignore_ament_install' +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extensions ['colcon_pkg'] +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'colcon_pkg' +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extensions ['colcon_meta'] +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'colcon_meta' +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extensions ['ros'] +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'ros' +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extensions ['cmake', 'python'] +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'cmake' +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'python' +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extensions ['python_setup_py'] +[0.263s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'python_setup_py' +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extensions ['ignore', 'ignore_ament_install'] +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'ignore' +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'ignore_ament_install' +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extensions ['colcon_pkg'] +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'colcon_pkg' +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extensions ['colcon_meta'] +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'colcon_meta' +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extensions ['ros'] +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'ros' +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extensions ['cmake', 'python'] +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'cmake' +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'python' +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extensions ['python_setup_py'] +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'python_setup_py' +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extensions ['ignore', 'ignore_ament_install'] +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'ignore' +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'ignore_ament_install' +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extensions ['colcon_pkg'] +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'colcon_pkg' +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extensions ['colcon_meta'] +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'colcon_meta' +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extensions ['ros'] +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'ros' +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extensions ['cmake', 'python'] +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'cmake' +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'python' +[0.264s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extensions ['python_setup_py'] +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'python_setup_py' +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extensions ['ignore', 'ignore_ament_install'] +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'ignore' +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'ignore_ament_install' +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extensions ['colcon_pkg'] +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'colcon_pkg' +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extensions ['colcon_meta'] +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'colcon_meta' +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extensions ['ros'] +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'ros' +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extensions ['cmake', 'python'] +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'cmake' +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'python' +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extensions ['python_setup_py'] +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'python_setup_py' +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extensions ['ignore', 'ignore_ament_install'] +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'ignore' +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'ignore_ament_install' +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extensions ['colcon_pkg'] +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'colcon_pkg' +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extensions ['colcon_meta'] +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'colcon_meta' +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extensions ['ros'] +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'ros' +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extensions ['cmake', 'python'] +[0.265s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'cmake' +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'python' +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extensions ['python_setup_py'] +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'python_setup_py' +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extensions ['ignore', 'ignore_ament_install'] +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'ignore' +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'ignore_ament_install' +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extensions ['colcon_pkg'] +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'colcon_pkg' +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extensions ['colcon_meta'] +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'colcon_meta' +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extensions ['ros'] +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'ros' +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extensions ['cmake', 'python'] +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'cmake' +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'python' +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extensions ['python_setup_py'] +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'python_setup_py' +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extensions ['ignore', 'ignore_ament_install'] +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'ignore' +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'ignore_ament_install' +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extensions ['colcon_pkg'] +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'colcon_pkg' +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extensions ['colcon_meta'] +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'colcon_meta' +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extensions ['ros'] +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'ros' +[0.266s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extensions ['cmake', 'python'] +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'cmake' +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'python' +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extensions ['python_setup_py'] +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'python_setup_py' +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extensions ['ignore', 'ignore_ament_install'] +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'ignore' +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'ignore_ament_install' +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extensions ['colcon_pkg'] +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'colcon_pkg' +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extensions ['colcon_meta'] +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'colcon_meta' +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extensions ['ros'] +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'ros' +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extensions ['cmake', 'python'] +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'cmake' +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'python' +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extensions ['python_setup_py'] +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'python_setup_py' +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extensions ['ignore', 'ignore_ament_install'] +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'ignore' +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'ignore_ament_install' +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extensions ['colcon_pkg'] +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'colcon_pkg' +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extensions ['colcon_meta'] +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'colcon_meta' +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extensions ['ros'] +[0.267s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'ros' +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extensions ['cmake', 'python'] +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'cmake' +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'python' +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extensions ['python_setup_py'] +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'python_setup_py' +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extensions ['ignore', 'ignore_ament_install'] +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'ignore' +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'ignore_ament_install' +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extensions ['colcon_pkg'] +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'colcon_pkg' +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extensions ['colcon_meta'] +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'colcon_meta' +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extensions ['ros'] +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'ros' +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extensions ['cmake', 'python'] +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'cmake' +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'python' +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extensions ['python_setup_py'] +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'python_setup_py' +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extensions ['ignore', 'ignore_ament_install'] +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'ignore' +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'ignore_ament_install' +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extensions ['colcon_pkg'] +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'colcon_pkg' +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extensions ['colcon_meta'] +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'colcon_meta' +[0.268s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extensions ['ros'] +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'ros' +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extensions ['cmake', 'python'] +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'cmake' +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'python' +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extensions ['python_setup_py'] +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'python_setup_py' +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extensions ['ignore', 'ignore_ament_install'] +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'ignore' +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'ignore_ament_install' +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extensions ['colcon_pkg'] +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'colcon_pkg' +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extensions ['colcon_meta'] +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'colcon_meta' +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extensions ['ros'] +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'ros' +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extensions ['cmake', 'python'] +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'cmake' +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'python' +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extensions ['python_setup_py'] +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'python_setup_py' +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extensions ['ignore', 'ignore_ament_install'] +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'ignore' +[0.269s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'ignore_ament_install' +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extensions ['colcon_pkg'] +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'colcon_pkg' +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extensions ['colcon_meta'] +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'colcon_meta' +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extensions ['ros'] +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'ros' +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extensions ['cmake', 'python'] +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'cmake' +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'python' +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extensions ['python_setup_py'] +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'python_setup_py' +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extensions ['ignore', 'ignore_ament_install'] +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'ignore' +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'ignore_ament_install' +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extensions ['colcon_pkg'] +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'colcon_pkg' +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extensions ['colcon_meta'] +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'colcon_meta' +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extensions ['ros'] +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'ros' +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extensions ['cmake', 'python'] +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'cmake' +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'python' +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extensions ['python_setup_py'] +[0.270s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'python_setup_py' +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extensions ['ignore', 'ignore_ament_install'] +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'ignore' +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'ignore_ament_install' +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extensions ['colcon_pkg'] +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'colcon_pkg' +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extensions ['colcon_meta'] +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'colcon_meta' +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extensions ['ros'] +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'ros' +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extensions ['cmake', 'python'] +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'cmake' +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'python' +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extensions ['python_setup_py'] +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'python_setup_py' +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extensions ['ignore', 'ignore_ament_install'] +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'ignore' +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'ignore_ament_install' +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extensions ['colcon_pkg'] +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'colcon_pkg' +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extensions ['colcon_meta'] +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'colcon_meta' +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extensions ['ros'] +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'ros' +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extensions ['cmake', 'python'] +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'cmake' +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'python' +[0.271s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extensions ['python_setup_py'] +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'python_setup_py' +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extensions ['ignore', 'ignore_ament_install'] +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'ignore' +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'ignore_ament_install' +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extensions ['colcon_pkg'] +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'colcon_pkg' +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extensions ['colcon_meta'] +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'colcon_meta' +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extensions ['ros'] +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'ros' +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extensions ['cmake', 'python'] +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'cmake' +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'python' +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extensions ['python_setup_py'] +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'python_setup_py' +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extensions ['ignore', 'ignore_ament_install'] +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'ignore' +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'ignore_ament_install' +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extensions ['colcon_pkg'] +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'colcon_pkg' +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extensions ['colcon_meta'] +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'colcon_meta' +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extensions ['ros'] +[0.272s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'ros' +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extensions ['cmake', 'python'] +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'cmake' +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'python' +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extensions ['python_setup_py'] +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'python_setup_py' +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extensions ['ignore', 'ignore_ament_install'] +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'ignore' +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'ignore_ament_install' +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extensions ['colcon_pkg'] +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'colcon_pkg' +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extensions ['colcon_meta'] +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'colcon_meta' +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extensions ['ros'] +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'ros' +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extensions ['cmake', 'python'] +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'cmake' +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'python' +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extensions ['python_setup_py'] +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'python_setup_py' +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extensions ['ignore', 'ignore_ament_install'] +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'ignore' +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'ignore_ament_install' +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extensions ['colcon_pkg'] +[0.273s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'colcon_pkg' +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extensions ['colcon_meta'] +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'colcon_meta' +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extensions ['ros'] +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'ros' +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extensions ['cmake', 'python'] +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'cmake' +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'python' +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extensions ['python_setup_py'] +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'python_setup_py' +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extensions ['ignore', 'ignore_ament_install'] +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'ignore' +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'ignore_ament_install' +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extensions ['colcon_pkg'] +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'colcon_pkg' +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extensions ['colcon_meta'] +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'colcon_meta' +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extensions ['ros'] +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'ros' +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extensions ['cmake', 'python'] +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'cmake' +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'python' +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extensions ['python_setup_py'] +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'python_setup_py' +[0.274s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extensions ['ignore', 'ignore_ament_install'] +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'ignore' +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'ignore_ament_install' +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extensions ['colcon_pkg'] +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'colcon_pkg' +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extensions ['colcon_meta'] +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'colcon_meta' +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extensions ['ros'] +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'ros' +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extensions ['cmake', 'python'] +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'cmake' +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'python' +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extensions ['python_setup_py'] +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'python_setup_py' +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extensions ['ignore', 'ignore_ament_install'] +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'ignore' +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'ignore_ament_install' +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extensions ['colcon_pkg'] +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'colcon_pkg' +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extensions ['colcon_meta'] +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'colcon_meta' +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extensions ['ros'] +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'ros' +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extensions ['cmake', 'python'] +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'cmake' +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'python' +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extensions ['python_setup_py'] +[0.275s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'python_setup_py' +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extensions ['ignore', 'ignore_ament_install'] +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'ignore' +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'ignore_ament_install' +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extensions ['colcon_pkg'] +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'colcon_pkg' +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extensions ['colcon_meta'] +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'colcon_meta' +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extensions ['ros'] +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'ros' +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extensions ['cmake', 'python'] +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'cmake' +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'python' +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extensions ['python_setup_py'] +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'python_setup_py' +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extensions ['ignore', 'ignore_ament_install'] +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'ignore' +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'ignore_ament_install' +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extensions ['colcon_pkg'] +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'colcon_pkg' +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extensions ['colcon_meta'] +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'colcon_meta' +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extensions ['ros'] +[0.276s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'ros' +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extensions ['cmake', 'python'] +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'cmake' +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'python' +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extensions ['python_setup_py'] +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'python_setup_py' +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extensions ['ignore', 'ignore_ament_install'] +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'ignore' +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'ignore_ament_install' +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extensions ['colcon_pkg'] +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'colcon_pkg' +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extensions ['colcon_meta'] +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'colcon_meta' +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extensions ['ros'] +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'ros' +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extensions ['cmake', 'python'] +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'cmake' +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'python' +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extensions ['python_setup_py'] +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'python_setup_py' +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extensions ['ignore', 'ignore_ament_install'] +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'ignore' +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'ignore_ament_install' +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extensions ['colcon_pkg'] +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'colcon_pkg' +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extensions ['colcon_meta'] +[0.277s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'colcon_meta' +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extensions ['ros'] +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'ros' +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extensions ['cmake', 'python'] +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'cmake' +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'python' +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extensions ['python_setup_py'] +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'python_setup_py' +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extensions ['ignore', 'ignore_ament_install'] +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'ignore' +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'ignore_ament_install' +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extensions ['colcon_pkg'] +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'colcon_pkg' +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extensions ['colcon_meta'] +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'colcon_meta' +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extensions ['ros'] +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'ros' +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extensions ['cmake', 'python'] +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'cmake' +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'python' +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extensions ['python_setup_py'] +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'python_setup_py' +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extensions ['ignore', 'ignore_ament_install'] +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'ignore' +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'ignore_ament_install' +[0.278s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extensions ['colcon_pkg'] +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'colcon_pkg' +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extensions ['colcon_meta'] +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'colcon_meta' +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extensions ['ros'] +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'ros' +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extensions ['cmake', 'python'] +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'cmake' +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'python' +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extensions ['python_setup_py'] +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'python_setup_py' +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extensions ['ignore', 'ignore_ament_install'] +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'ignore' +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'ignore_ament_install' +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extensions ['colcon_pkg'] +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'colcon_pkg' +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extensions ['colcon_meta'] +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'colcon_meta' +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extensions ['ros'] +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'ros' +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extensions ['cmake', 'python'] +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'cmake' +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'python' +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extensions ['python_setup_py'] +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'python_setup_py' +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extensions ['ignore', 'ignore_ament_install'] +[0.279s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'ignore' +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'ignore_ament_install' +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extensions ['colcon_pkg'] +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'colcon_pkg' +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extensions ['colcon_meta'] +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'colcon_meta' +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extensions ['ros'] +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'ros' +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extensions ['cmake', 'python'] +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'cmake' +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'python' +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extensions ['python_setup_py'] +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'python_setup_py' +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extensions ['ignore', 'ignore_ament_install'] +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'ignore' +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'ignore_ament_install' +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extensions ['colcon_pkg'] +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'colcon_pkg' +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extensions ['colcon_meta'] +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'colcon_meta' +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extensions ['ros'] +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'ros' +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extensions ['cmake', 'python'] +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'cmake' +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'python' +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extensions ['python_setup_py'] +[0.280s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'python_setup_py' +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extensions ['ignore', 'ignore_ament_install'] +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'ignore' +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'ignore_ament_install' +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extensions ['colcon_pkg'] +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'colcon_pkg' +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extensions ['colcon_meta'] +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'colcon_meta' +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extensions ['ros'] +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'ros' +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extensions ['cmake', 'python'] +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'cmake' +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'python' +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extensions ['python_setup_py'] +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'python_setup_py' +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extensions ['ignore', 'ignore_ament_install'] +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'ignore' +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'ignore_ament_install' +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extensions ['colcon_pkg'] +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'colcon_pkg' +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extensions ['colcon_meta'] +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'colcon_meta' +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extensions ['ros'] +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'ros' +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extensions ['cmake', 'python'] +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'cmake' +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'python' +[0.281s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extensions ['python_setup_py'] +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'python_setup_py' +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extensions ['ignore', 'ignore_ament_install'] +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'ignore' +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'ignore_ament_install' +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extensions ['colcon_pkg'] +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'colcon_pkg' +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extensions ['colcon_meta'] +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'colcon_meta' +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extensions ['ros'] +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'ros' +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extensions ['cmake', 'python'] +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'cmake' +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'python' +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extensions ['python_setup_py'] +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'python_setup_py' +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extensions ['ignore', 'ignore_ament_install'] +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'ignore' +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'ignore_ament_install' +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extensions ['colcon_pkg'] +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'colcon_pkg' +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extensions ['colcon_meta'] +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'colcon_meta' +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extensions ['ros'] +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'ros' +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extensions ['cmake', 'python'] +[0.282s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'cmake' +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'python' +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extensions ['python_setup_py'] +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'python_setup_py' +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extensions ['ignore', 'ignore_ament_install'] +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'ignore' +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'ignore_ament_install' +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extensions ['colcon_pkg'] +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'colcon_pkg' +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extensions ['colcon_meta'] +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'colcon_meta' +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extensions ['ros'] +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'ros' +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extensions ['cmake', 'python'] +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'cmake' +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'python' +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extensions ['python_setup_py'] +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'python_setup_py' +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extensions ['ignore', 'ignore_ament_install'] +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'ignore' +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'ignore_ament_install' +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extensions ['colcon_pkg'] +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'colcon_pkg' +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extensions ['colcon_meta'] +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'colcon_meta' +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extensions ['ros'] +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'ros' +[0.283s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extensions ['cmake', 'python'] +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'cmake' +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'python' +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extensions ['python_setup_py'] +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'python_setup_py' +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extensions ['ignore', 'ignore_ament_install'] +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'ignore' +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'ignore_ament_install' +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extensions ['colcon_pkg'] +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'colcon_pkg' +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extensions ['colcon_meta'] +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'colcon_meta' +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extensions ['ros'] +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'ros' +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extensions ['cmake', 'python'] +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'cmake' +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'python' +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extensions ['python_setup_py'] +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'python_setup_py' +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extensions ['ignore', 'ignore_ament_install'] +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'ignore' +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'ignore_ament_install' +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extensions ['colcon_pkg'] +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'colcon_pkg' +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extensions ['colcon_meta'] +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'colcon_meta' +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extensions ['ros'] +[0.284s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'ros' +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extensions ['cmake', 'python'] +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'cmake' +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'python' +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extensions ['python_setup_py'] +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'python_setup_py' +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extensions ['ignore', 'ignore_ament_install'] +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'ignore' +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'ignore_ament_install' +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extensions ['colcon_pkg'] +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'colcon_pkg' +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extensions ['colcon_meta'] +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'colcon_meta' +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extensions ['ros'] +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'ros' +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extensions ['cmake', 'python'] +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'cmake' +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'python' +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extensions ['python_setup_py'] +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'python_setup_py' +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extensions ['ignore', 'ignore_ament_install'] +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'ignore' +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'ignore_ament_install' +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extensions ['colcon_pkg'] +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'colcon_pkg' +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extensions ['colcon_meta'] +[0.285s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'colcon_meta' +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extensions ['ros'] +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'ros' +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extensions ['cmake', 'python'] +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'cmake' +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'python' +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extensions ['python_setup_py'] +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'python_setup_py' +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extensions ['ignore', 'ignore_ament_install'] +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'ignore' +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'ignore_ament_install' +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extensions ['colcon_pkg'] +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'colcon_pkg' +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extensions ['colcon_meta'] +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'colcon_meta' +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extensions ['ros'] +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'ros' +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extensions ['cmake', 'python'] +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'cmake' +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'python' +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extensions ['python_setup_py'] +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'python_setup_py' +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extensions ['ignore', 'ignore_ament_install'] +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'ignore' +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'ignore_ament_install' +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extensions ['colcon_pkg'] +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'colcon_pkg' +[0.286s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extensions ['colcon_meta'] +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'colcon_meta' +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extensions ['ros'] +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'ros' +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extensions ['cmake', 'python'] +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'cmake' +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'python' +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extensions ['python_setup_py'] +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'python_setup_py' +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extensions ['ignore', 'ignore_ament_install'] +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'ignore' +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'ignore_ament_install' +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extensions ['colcon_pkg'] +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'colcon_pkg' +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extensions ['colcon_meta'] +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'colcon_meta' +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extensions ['ros'] +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'ros' +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extensions ['cmake', 'python'] +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'cmake' +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'python' +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extensions ['python_setup_py'] +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'python_setup_py' +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extensions ['ignore', 'ignore_ament_install'] +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'ignore' +[0.287s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'ignore_ament_install' +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extensions ['colcon_pkg'] +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'colcon_pkg' +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extensions ['colcon_meta'] +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'colcon_meta' +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extensions ['ros'] +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'ros' +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extensions ['cmake', 'python'] +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'cmake' +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'python' +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extensions ['python_setup_py'] +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'python_setup_py' +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extensions ['ignore', 'ignore_ament_install'] +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'ignore' +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'ignore_ament_install' +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extensions ['colcon_pkg'] +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'colcon_pkg' +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extensions ['colcon_meta'] +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'colcon_meta' +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extensions ['ros'] +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'ros' +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extensions ['cmake', 'python'] +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'cmake' +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'python' +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extensions ['python_setup_py'] +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'python_setup_py' +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extensions ['ignore', 'ignore_ament_install'] +[0.288s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'ignore' +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'ignore_ament_install' +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extensions ['colcon_pkg'] +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'colcon_pkg' +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extensions ['colcon_meta'] +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'colcon_meta' +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extensions ['ros'] +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'ros' +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extensions ['cmake', 'python'] +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'cmake' +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'python' +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extensions ['python_setup_py'] +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'python_setup_py' +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extensions ['ignore', 'ignore_ament_install'] +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'ignore' +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'ignore_ament_install' +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extensions ['colcon_pkg'] +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'colcon_pkg' +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extensions ['colcon_meta'] +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'colcon_meta' +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extensions ['ros'] +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'ros' +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extensions ['cmake', 'python'] +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'cmake' +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'python' +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extensions ['python_setup_py'] +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'python_setup_py' +[0.289s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extensions ['ignore', 'ignore_ament_install'] +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'ignore' +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'ignore_ament_install' +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extensions ['colcon_pkg'] +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'colcon_pkg' +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extensions ['colcon_meta'] +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'colcon_meta' +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extensions ['ros'] +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'ros' +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extensions ['cmake', 'python'] +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'cmake' +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'python' +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extensions ['python_setup_py'] +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'python_setup_py' +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extensions ['ignore', 'ignore_ament_install'] +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'ignore' +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'ignore_ament_install' +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extensions ['colcon_pkg'] +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'colcon_pkg' +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extensions ['colcon_meta'] +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'colcon_meta' +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extensions ['ros'] +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'ros' +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extensions ['cmake', 'python'] +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'cmake' +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'python' +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extensions ['python_setup_py'] +[0.290s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'python_setup_py' +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extensions ['ignore', 'ignore_ament_install'] +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'ignore' +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'ignore_ament_install' +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extensions ['colcon_pkg'] +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'colcon_pkg' +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extensions ['colcon_meta'] +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'colcon_meta' +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extensions ['ros'] +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'ros' +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extensions ['cmake', 'python'] +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'cmake' +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'python' +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extensions ['python_setup_py'] +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'python_setup_py' +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extensions ['ignore', 'ignore_ament_install'] +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'ignore' +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'ignore_ament_install' +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extensions ['colcon_pkg'] +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'colcon_pkg' +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extensions ['colcon_meta'] +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'colcon_meta' +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extensions ['ros'] +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'ros' +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extensions ['cmake', 'python'] +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'cmake' +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'python' +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extensions ['python_setup_py'] +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'python_setup_py' +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extensions ['ignore', 'ignore_ament_install'] +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'ignore' +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'ignore_ament_install' +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extensions ['colcon_pkg'] +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'colcon_pkg' +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extensions ['colcon_meta'] +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'colcon_meta' +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extensions ['ros'] +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'ros' +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extensions ['cmake', 'python'] +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'cmake' +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'python' +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extensions ['python_setup_py'] +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'python_setup_py' +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extensions ['ignore', 'ignore_ament_install'] +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'ignore' +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'ignore_ament_install' +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extensions ['colcon_pkg'] +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'colcon_pkg' +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extensions ['colcon_meta'] +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'colcon_meta' +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extensions ['ros'] +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'ros' +[0.292s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extensions ['cmake', 'python'] +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'cmake' +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'python' +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extensions ['python_setup_py'] +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'python_setup_py' +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extensions ['ignore', 'ignore_ament_install'] +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'ignore' +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'ignore_ament_install' +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extensions ['colcon_pkg'] +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'colcon_pkg' +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extensions ['colcon_meta'] +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'colcon_meta' +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extensions ['ros'] +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'ros' +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extensions ['cmake', 'python'] +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'cmake' +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'python' +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extensions ['python_setup_py'] +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'python_setup_py' +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extensions ['ignore', 'ignore_ament_install'] +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'ignore' +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'ignore_ament_install' +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extensions ['colcon_pkg'] +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'colcon_pkg' +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extensions ['colcon_meta'] +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'colcon_meta' +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extensions ['ros'] +[0.293s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'ros' +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extensions ['cmake', 'python'] +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'cmake' +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'python' +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extensions ['python_setup_py'] +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'python_setup_py' +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extensions ['ignore', 'ignore_ament_install'] +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'ignore' +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'ignore_ament_install' +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extensions ['colcon_pkg'] +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'colcon_pkg' +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extensions ['colcon_meta'] +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'colcon_meta' +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extensions ['ros'] +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'ros' +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extensions ['cmake', 'python'] +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'cmake' +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'python' +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extensions ['python_setup_py'] +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'python_setup_py' +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extensions ['ignore', 'ignore_ament_install'] +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'ignore' +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'ignore_ament_install' +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extensions ['colcon_pkg'] +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'colcon_pkg' +[0.294s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extensions ['colcon_meta'] +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'colcon_meta' +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extensions ['ros'] +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'ros' +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extensions ['cmake', 'python'] +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'cmake' +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'python' +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extensions ['python_setup_py'] +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'python_setup_py' +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extensions ['ignore', 'ignore_ament_install'] +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'ignore' +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'ignore_ament_install' +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extensions ['colcon_pkg'] +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'colcon_pkg' +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extensions ['colcon_meta'] +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'colcon_meta' +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extensions ['ros'] +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'ros' +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extensions ['cmake', 'python'] +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'cmake' +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'python' +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extensions ['python_setup_py'] +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'python_setup_py' +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extensions ['ignore', 'ignore_ament_install'] +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'ignore' +[0.295s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'ignore_ament_install' +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extensions ['colcon_pkg'] +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'colcon_pkg' +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extensions ['colcon_meta'] +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'colcon_meta' +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extensions ['ros'] +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'ros' +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extensions ['cmake', 'python'] +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'cmake' +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'python' +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extensions ['python_setup_py'] +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'python_setup_py' +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extensions ['ignore', 'ignore_ament_install'] +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'ignore' +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'ignore_ament_install' +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extensions ['colcon_pkg'] +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'colcon_pkg' +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extensions ['colcon_meta'] +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'colcon_meta' +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extensions ['ros'] +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'ros' +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extensions ['cmake', 'python'] +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'cmake' +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'python' +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extensions ['python_setup_py'] +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'python_setup_py' +[0.296s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extensions ['ignore', 'ignore_ament_install'] +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'ignore' +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'ignore_ament_install' +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extensions ['colcon_pkg'] +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'colcon_pkg' +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extensions ['colcon_meta'] +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'colcon_meta' +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extensions ['ros'] +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'ros' +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extensions ['cmake', 'python'] +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'cmake' +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'python' +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extensions ['python_setup_py'] +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'python_setup_py' +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extensions ['ignore', 'ignore_ament_install'] +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'ignore' +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'ignore_ament_install' +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extensions ['colcon_pkg'] +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'colcon_pkg' +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extensions ['colcon_meta'] +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'colcon_meta' +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extensions ['ros'] +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'ros' +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extensions ['cmake', 'python'] +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'cmake' +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'python' +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extensions ['python_setup_py'] +[0.297s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'python_setup_py' +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extensions ['ignore', 'ignore_ament_install'] +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'ignore' +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'ignore_ament_install' +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extensions ['colcon_pkg'] +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'colcon_pkg' +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extensions ['colcon_meta'] +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'colcon_meta' +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extensions ['ros'] +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'ros' +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extensions ['cmake', 'python'] +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'cmake' +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'python' +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extensions ['python_setup_py'] +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'python_setup_py' +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extensions ['ignore', 'ignore_ament_install'] +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'ignore' +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'ignore_ament_install' +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extensions ['colcon_pkg'] +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'colcon_pkg' +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extensions ['colcon_meta'] +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'colcon_meta' +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extensions ['ros'] +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'ros' +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extensions ['cmake', 'python'] +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'cmake' +[0.298s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'python' +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extensions ['python_setup_py'] +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'python_setup_py' +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extensions ['ignore', 'ignore_ament_install'] +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'ignore' +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'ignore_ament_install' +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extensions ['colcon_pkg'] +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'colcon_pkg' +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extensions ['colcon_meta'] +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'colcon_meta' +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extensions ['ros'] +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'ros' +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extensions ['cmake', 'python'] +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'cmake' +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'python' +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extensions ['python_setup_py'] +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'python_setup_py' +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extensions ['ignore', 'ignore_ament_install'] +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'ignore' +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'ignore_ament_install' +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extensions ['colcon_pkg'] +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'colcon_pkg' +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extensions ['colcon_meta'] +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'colcon_meta' +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extensions ['ros'] +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'ros' +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extensions ['cmake', 'python'] +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'cmake' +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'python' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extensions ['python_setup_py'] +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'python_setup_py' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extensions ['ignore', 'ignore_ament_install'] +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'ignore' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'ignore_ament_install' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extensions ['colcon_pkg'] +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'colcon_pkg' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extensions ['colcon_meta'] +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'colcon_meta' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extensions ['ros'] +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'ros' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extensions ['cmake', 'python'] +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'cmake' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'python' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extensions ['python_setup_py'] +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'python_setup_py' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extensions ['ignore', 'ignore_ament_install'] +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'ignore' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'ignore_ament_install' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extensions ['colcon_pkg'] +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'colcon_pkg' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extensions ['colcon_meta'] +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'colcon_meta' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extensions ['ros'] +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'ros' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extensions ['cmake', 'python'] +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'cmake' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'python' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extensions ['python_setup_py'] +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'python_setup_py' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extensions ['ignore', 'ignore_ament_install'] +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'ignore' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'ignore_ament_install' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extensions ['colcon_pkg'] +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'colcon_pkg' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extensions ['colcon_meta'] +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'colcon_meta' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extensions ['ros'] +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'ros' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extensions ['cmake', 'python'] +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'cmake' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'python' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extensions ['python_setup_py'] +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'python_setup_py' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extensions ['ignore', 'ignore_ament_install'] +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'ignore' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'ignore_ament_install' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extensions ['colcon_pkg'] +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'colcon_pkg' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extensions ['colcon_meta'] +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'colcon_meta' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extensions ['ros'] +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'ros' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extensions ['cmake', 'python'] +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'cmake' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'python' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extensions ['python_setup_py'] +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'python_setup_py' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extensions ['ignore', 'ignore_ament_install'] +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'ignore' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'ignore_ament_install' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extensions ['colcon_pkg'] +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'colcon_pkg' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extensions ['colcon_meta'] +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'colcon_meta' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extensions ['ros'] +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'ros' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extensions ['cmake', 'python'] +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'cmake' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'python' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extensions ['python_setup_py'] +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'python_setup_py' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extensions ['ignore', 'ignore_ament_install'] +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'ignore' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'ignore_ament_install' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extensions ['colcon_pkg'] +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'colcon_pkg' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extensions ['colcon_meta'] +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'colcon_meta' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extensions ['ros'] +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'ros' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extensions ['cmake', 'python'] +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'cmake' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'python' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extensions ['python_setup_py'] +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'python_setup_py' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extensions ['ignore', 'ignore_ament_install'] +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'ignore' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'ignore_ament_install' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extensions ['colcon_pkg'] +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'colcon_pkg' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extensions ['colcon_meta'] +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'colcon_meta' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extensions ['ros'] +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'ros' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extensions ['cmake', 'python'] +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'cmake' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'python' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extensions ['python_setup_py'] +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'python_setup_py' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extensions ['ignore', 'ignore_ament_install'] +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'ignore' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'ignore_ament_install' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extensions ['colcon_pkg'] +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'colcon_pkg' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extensions ['colcon_meta'] +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'colcon_meta' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extensions ['ros'] +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'ros' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extensions ['cmake', 'python'] +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'cmake' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'python' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extensions ['python_setup_py'] +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'python_setup_py' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extensions ['ignore', 'ignore_ament_install'] +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'ignore' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'ignore_ament_install' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extensions ['colcon_pkg'] +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'colcon_pkg' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extensions ['colcon_meta'] +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'colcon_meta' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extensions ['ros'] +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'ros' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extensions ['cmake', 'python'] +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'cmake' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'python' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extensions ['python_setup_py'] +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'python_setup_py' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extensions ['ignore', 'ignore_ament_install'] +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'ignore' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'ignore_ament_install' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extensions ['colcon_pkg'] +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'colcon_pkg' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extensions ['colcon_meta'] +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'colcon_meta' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extensions ['ros'] +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'ros' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extensions ['cmake', 'python'] +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'cmake' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'python' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extensions ['python_setup_py'] +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'python_setup_py' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extensions ['ignore', 'ignore_ament_install'] +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'ignore' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'ignore_ament_install' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extensions ['colcon_pkg'] +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'colcon_pkg' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extensions ['colcon_meta'] +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'colcon_meta' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extensions ['ros'] +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'ros' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extensions ['cmake', 'python'] +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'cmake' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'python' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extensions ['python_setup_py'] +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'python_setup_py' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extensions ['ignore', 'ignore_ament_install'] +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'ignore' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'ignore_ament_install' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extensions ['colcon_pkg'] +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'colcon_pkg' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extensions ['colcon_meta'] +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'colcon_meta' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extensions ['ros'] +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'ros' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extensions ['cmake', 'python'] +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'cmake' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'python' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extensions ['python_setup_py'] +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'python_setup_py' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extensions ['ignore', 'ignore_ament_install'] +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'ignore' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'ignore_ament_install' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extensions ['colcon_pkg'] +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'colcon_pkg' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extensions ['colcon_meta'] +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'colcon_meta' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extensions ['ros'] +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'ros' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extensions ['cmake', 'python'] +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'cmake' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'python' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extensions ['python_setup_py'] +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'python_setup_py' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extensions ['ignore', 'ignore_ament_install'] +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'ignore' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'ignore_ament_install' +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extensions ['colcon_pkg'] +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'colcon_pkg' +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extensions ['colcon_meta'] +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'colcon_meta' +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extensions ['ros'] +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'ros' +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extensions ['cmake', 'python'] +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'cmake' +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'python' +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extensions ['python_setup_py'] +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'python_setup_py' +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extensions ['ignore', 'ignore_ament_install'] +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'ignore' +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'ignore_ament_install' +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extensions ['colcon_pkg'] +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'colcon_pkg' +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extensions ['colcon_meta'] +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'colcon_meta' +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extensions ['ros'] +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'ros' +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extensions ['cmake', 'python'] +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'cmake' +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'python' +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extensions ['python_setup_py'] +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'python_setup_py' +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extensions ['ignore', 'ignore_ament_install'] +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'ignore' +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'ignore_ament_install' +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extensions ['colcon_pkg'] +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'colcon_pkg' +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extensions ['colcon_meta'] +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'colcon_meta' +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extensions ['ros'] +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'ros' +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extensions ['cmake', 'python'] +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'cmake' +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'python' +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extensions ['python_setup_py'] +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'python_setup_py' +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extensions ['ignore', 'ignore_ament_install'] +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'ignore' +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'ignore_ament_install' +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extensions ['colcon_pkg'] +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'colcon_pkg' +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extensions ['colcon_meta'] +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'colcon_meta' +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extensions ['ros'] +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'ros' +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extensions ['cmake', 'python'] +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'cmake' +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'python' +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extensions ['python_setup_py'] +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'python_setup_py' +[0.495s] DEBUG:colcon.colcon_core.package_identification:Package 'simulation/dronekit-python' with type 'python' and name 'dronekit' +[0.495s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extensions ['ignore', 'ignore_ament_install'] +[0.495s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'ignore' +[0.495s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'ignore_ament_install' +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extensions ['colcon_pkg'] +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'colcon_pkg' +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extensions ['colcon_meta'] +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'colcon_meta' +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extensions ['ros'] +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'ros' +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extensions ['cmake', 'python'] +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'cmake' +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'python' +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extensions ['python_setup_py'] +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'python_setup_py' +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extensions ['ignore', 'ignore_ament_install'] +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'ignore' +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'ignore_ament_install' +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extensions ['colcon_pkg'] +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'colcon_pkg' +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extensions ['colcon_meta'] +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'colcon_meta' +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extensions ['ros'] +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'ros' +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extensions ['cmake', 'python'] +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'cmake' +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'python' +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extensions ['python_setup_py'] +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'python_setup_py' +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extensions ['ignore', 'ignore_ament_install'] +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'ignore' +[0.496s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'ignore_ament_install' +[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extensions ['colcon_pkg'] +[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'colcon_pkg' +[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extensions ['colcon_meta'] +[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'colcon_meta' +[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extensions ['ros'] +[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'ros' +[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extensions ['cmake', 'python'] +[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'cmake' +[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'python' +[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extensions ['python_setup_py'] +[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'python_setup_py' +[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extensions ['ignore', 'ignore_ament_install'] +[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'ignore' +[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'ignore_ament_install' +[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extensions ['colcon_pkg'] +[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'colcon_pkg' +[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extensions ['colcon_meta'] +[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'colcon_meta' +[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extensions ['ros'] +[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'ros' +[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extensions ['cmake', 'python'] +[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'cmake' +[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'python' +[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extensions ['python_setup_py'] +[0.497s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'python_setup_py' +[0.497s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) using defaults +[0.497s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) discover +[0.497s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) using defaults +[0.497s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) discover +[0.497s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) using defaults +[0.520s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'controls_bringup' in 'ros_ws/src/robot/autonomy/controls/controls_bringup' +[0.520s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'dronekit' in 'simulation/dronekit-python' +[0.520s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mav_msgs' in 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs' +[0.520s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mav_state_machine_msgs' in 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs' +[0.520s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mav_system_msgs' in 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs' +[0.520s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'px4_msgs' in 'ros_ws/src/robot/autonomy/controls/px4_msgs' +[0.520s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'robot_bringup' in 'ros_ws/src/robot/robot_bringup' +[0.520s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'vdb_mapping' in 'ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping' +[0.520s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'vdb_mapping_interfaces' in 'ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces' +[0.520s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mav_planning_msgs' in 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs' +[0.520s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'px4_ros_com' in 'ros_ws/src/robot/autonomy/controls/px4_ros_com' +[0.520s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'robot_interface' in 'ros_ws/src/robot/autonomy/controls/robot_interface' +[0.520s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'vdb_mapping_ros2' in 'ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2' +[0.521s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mav_comm' in 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm' +[0.521s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mavros_interface' in 'ros_ws/src/robot/autonomy/controls/mavros_interface' +[0.521s] Level 1:colcon.colcon_core.package_discovery:discover_packages(prefix_path) check parameters +[0.521s] Level 1:colcon.colcon_core.package_discovery:discover_packages(prefix_path) discover +[0.523s] DEBUG:colcon.colcon_installed_package_information.package_discovery:Found 14 installed packages in /root/AirStack/ros_ws/install +[0.524s] DEBUG:colcon.colcon_installed_package_information.package_discovery:Found 277 installed packages in /opt/ros/humble +[0.525s] Level 1:colcon.colcon_core.package_discovery:discover_packages(prefix_path) using defaults +[0.553s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'cmake_args' from command line to 'None' +[0.553s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'cmake_target' from command line to 'None' +[0.553s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'cmake_target_skip_unavailable' from command line to 'False' +[0.553s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'cmake_clean_cache' from command line to 'False' +[0.553s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'cmake_clean_first' from command line to 'False' +[0.553s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'cmake_force_configure' from command line to 'False' +[0.553s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'ament_cmake_args' from command line to 'None' +[0.553s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'catkin_cmake_args' from command line to 'None' +[0.553s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'catkin_skip_building_tests' from command line to 'False' +[0.554s] DEBUG:colcon.colcon_core.verb:Building package 'disparity_expansion' with the following arguments: {'ament_cmake_args': None, 'build_base': '/root/AirStack/build/disparity_expansion', 'catkin_cmake_args': None, 'catkin_skip_building_tests': False, 'cmake_args': None, 'cmake_clean_cache': False, 'cmake_clean_first': False, 'cmake_force_configure': False, 'cmake_target': None, 'cmake_target_skip_unavailable': False, 'install_base': '/root/AirStack/install/disparity_expansion', 'merge_install': False, 'path': '/root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion', 'symlink_install': False, 'test_result_base': None} +[0.554s] INFO:colcon.colcon_core.executor:Executing jobs using 'parallel' executor +[0.554s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete +[0.554s] INFO:colcon.colcon_cmake.task.cmake.build:Building CMake package in '/root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion' +[0.557s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_core.shell.bat': Not used on non-Windows systems +[0.557s] INFO:colcon.colcon_core.shell:Skip shell extension 'powershell' for command environment: Not usable outside of PowerShell +[0.557s] DEBUG:colcon.colcon_core.shell:Skip shell extension 'dsv' for command environment +[0.567s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoking command in '/root/AirStack/build/disparity_expansion': /usr/bin/cmake --build /root/AirStack/build/disparity_expansion -- -j12 -l12 +[0.976s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoked command in '/root/AirStack/build/disparity_expansion' returned '2': /usr/bin/cmake --build /root/AirStack/build/disparity_expansion -- -j12 -l12 +[0.985s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:closing loop +[0.986s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:loop closed +[0.986s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete finished with '2' +[0.986s] DEBUG:colcon.colcon_core.event_reactor:joining thread +[0.993s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.notify_send': Could not find 'notify-send' +[0.993s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.terminal_notifier': Not used on non-Darwin systems +[0.993s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.win32': Not used on non-Windows systems +[0.993s] INFO:colcon.colcon_notification.desktop_notification:Sending desktop notification using 'notify2' +[0.997s] DEBUG:colcon.colcon_notification.desktop_notification.notify2:Failed to initialize notify2: org.freedesktop.DBus.Error.Spawn.ExecFailed: /usr/bin/dbus-launch terminated abnormally without any error message +[0.997s] DEBUG:colcon.colcon_core.event_reactor:joined thread +[0.998s] INFO:colcon.colcon_core.shell:Creating prefix script '/root/AirStack/install/local_setup.ps1' +[0.999s] INFO:colcon.colcon_core.shell:Creating prefix util module '/root/AirStack/install/_local_setup_util_ps1.py' +[1.001s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/root/AirStack/install/setup.ps1' +[1.004s] INFO:colcon.colcon_core.shell:Creating prefix script '/root/AirStack/install/local_setup.sh' +[1.004s] INFO:colcon.colcon_core.shell:Creating prefix util module '/root/AirStack/install/_local_setup_util_sh.py' +[1.005s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/root/AirStack/install/setup.sh' +[1.007s] INFO:colcon.colcon_core.shell:Creating prefix script '/root/AirStack/install/local_setup.bash' +[1.007s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/root/AirStack/install/setup.bash' +[1.008s] INFO:colcon.colcon_core.shell:Creating prefix script '/root/AirStack/install/local_setup.zsh' +[1.008s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/root/AirStack/install/setup.zsh' diff --git a/log/latest b/log/latest new file mode 120000 index 000000000..b57d247c7 --- /dev/null +++ b/log/latest @@ -0,0 +1 @@ +latest_build \ No newline at end of file diff --git a/log/latest_build b/log/latest_build new file mode 120000 index 000000000..9328f039d --- /dev/null +++ b/log/latest_build @@ -0,0 +1 @@ +build_2024-07-25_13-14-27 \ No newline at end of file diff --git a/ros_ws/src/perception_pcl b/ros_ws/src/perception_pcl new file mode 160000 index 000000000..f12792180 --- /dev/null +++ b/ros_ws/src/perception_pcl @@ -0,0 +1 @@ +Subproject commit f127921808b1c6fb6237a7e4cf19d16b85a0e43b diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/CMakeLists.txt b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/CMakeLists.txt index b02c766ef..6162a26cc 100644 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/CMakeLists.txt +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/CMakeLists.txt @@ -1,27 +1,43 @@ -cmake_minimum_required(VERSION 2.8.3) +cmake_minimum_required(VERSION 3.5) project(disparity_expansion) ## Find catkin macros and libraries ## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz) ## is used, also find other catkin packages -find_package(catkin REQUIRED COMPONENTS - cv_bridge - image_geometry - image_transport - roscpp - std_msgs - tf -) +#find_package(catkin REQUIRED COMPONENTS +# cv_bridge +# image_geometry +# image_transport +# roscpp +# std_msgs +# tf +#) +find_package(ament_cmake REQUIRED) +find_package(rclcpp REQUIRED) +find_package(cv_bridge REQUIRED) +find_package(image_geometry REQUIRED) +find_package(image_transport REQUIRED) +find_package(sensor_msgs REQUIRED) +find_package(std_msgs REQUIRED) +find_package(tf2 REQUIRED) +find_package(pcl_ros REQUIRED) +find_package(stereo_msgs REQUIRED) +find_package(message_filters REQUIRED) +find_package(visualization_msgs REQUIRED) +find_package(pcl_conversions REQUIRED) # CONFIGURE OPENCV find_package(OpenCV REQUIRED) # CONFIGURE PCL -find_package(PCL 1.7 REQUIRED) +find_package(PCL 1.12 REQUIRED) +set(CMAKE_CXX_STANDARD 14) +set(CMAKE_CXX_STANDARD_REQUIRED ON) ## System dependencies are found with CMake's conventions # find_package(Boost REQUIRED COMPONENTS system) +message(STATUS "PCL_INCLUDE_DIRS: ${PCL_INCLUDE_DIRS}") ## Uncomment this if the package has a setup.py. This macro ensures ## modules and global scripts declared therein get installed @@ -88,16 +104,33 @@ find_package(PCL 1.7 REQUIRED) ## LIBRARIES: libraries you create in this project that dependent projects also need ## CATKIN_DEPENDS: catkin_packages dependent projects also need ## DEPENDS: system dependencies of this project that dependent projects also need -catkin_package( - INCLUDE_DIRS +#catkin_package( +# INCLUDE_DIRS # include - ${catkin_INCLUDE_DIRS} +# ${catkin_INCLUDE_DIRS} +# ${OpenCV_INCLUDE_DIRS} +# ${PCL_INCLUDE_DIRS} + +include_directories( + ${rclcpp_INCLUDE_DIRS} + ${rcl_interfaces_INCLUDE_DIRS} + ${cv_bridge_INCLUDE_DIRS} + ${image_geometry_INCLUDE_DIRS} + ${image_transport_INCLUDE_DIRS} + ${sensor_msgs_INCLUDE_DIRS} + ${std_msgs_INCLUDE_DIRS} + ${tf2_INCLUDE_DIRS} + ${pcl_ros_INCLUDE_DIRS} ${OpenCV_INCLUDE_DIRS} ${PCL_INCLUDE_DIRS} + ${pcl_conversions_INCLUDE_DIRS} +) + + # LIBRARIES disparity_expansion # CATKIN_DEPENDS cv_bridge image_geometry image_transport roscpp std_msgs tf # DEPENDS system_lib -) +#) ########### ## Build ## @@ -109,7 +142,7 @@ set(CMAKE_BUILD_TYPE Release) ## Your package locations should be listed before other locations # include_directories(include) include_directories( - ${catkin_INCLUDE_DIRS} +# ${catkin_INCLUDE_DIRS} ${PCL_INCLUDE_DIRS} ) @@ -123,14 +156,57 @@ add_executable (disparity_expansion src/disparity_expansion.cpp) target_link_libraries(disparity_expansion ${OpenCV_LIBS} ${catkin_LIBRARIES} ) +ament_target_dependencies(disparity_expansion + rclcpp + rcl_interfaces + cv_bridge + image_geometry + image_transport + sensor_msgs + std_msgs + tf2 + pcl_conversions + message_filters + visualization_msgs + stereo_msgs +) add_executable (disparity_conv src/disparity_conv.cpp) target_link_libraries(disparity_conv ${OpenCV_LIBS} ${catkin_LIBRARIES} ) +ament_target_dependencies(disparity_conv + rclcpp + rcl_interfaces + cv_bridge + image_geometry + image_transport + sensor_msgs + std_msgs + tf2 + pcl_conversions + message_filters +) + add_executable (disparity_pcd src/disparity_pcd.cpp) target_link_libraries(disparity_pcd ${OpenCV_LIBS} ${catkin_LIBRARIES} ) +ament_target_dependencies(disparity_pcd + rclcpp + rcl_interfaces + cv_bridge + image_geometry + image_transport + sensor_msgs + std_msgs + tf2 + pcl_conversions + message_filters +) + + +install(TARGETS disparity_expansion + RUNTIME DESTINATION bin) ## Add cmake target dependencies of the executable/library ## as an example, message headers may need to be generated before nodes # add_dependencies(disparity_expansion_node disparity_expansion_generate_messages_cpp) diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/COLCON_IGNORE b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/COLCON_IGNORE deleted file mode 100644 index 8b1378917..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/COLCON_IGNORE +++ /dev/null @@ -1 +0,0 @@ - diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/package.xml b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/package.xml index f7fc7834e..432b7d484 100644 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/package.xml +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/package.xml @@ -39,19 +39,34 @@ - catkin + ament_cmake + rclcpp cv_bridge image_geometry image_transport - roscpp + sensor_msgs std_msgs - tf - cv_bridge - image_geometry - image_transport - roscpp - std_msgs - tf + tf2 + pcl_conversions + visualization_msgs + message_filters + stereo_msgs + OpenCV + PCL + + rclcpp + cv_bridge + image_geometry + image_transport + sensor_msgs + std_msgs + tf2 + pcl_conversions + visualization_msgs + message_filters + stereo_msgs + OpenCV + PCL @@ -59,4 +74,4 @@ - \ No newline at end of file + diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_conv.cpp b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_conv.cpp index 5a715ad01..f1fa4b31b 100644 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_conv.cpp +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_conv.cpp @@ -1,76 +1,108 @@ /* -* Copyright (c) 2016 Carnegie Mellon University, Author -* -* For License information please see the LICENSE file in the root directory. -* -*/ + * Copyright (c) 2016 Carnegie Mellon University, Author + * + * For License information please see the LICENSE file in the root directory. + * + */ + +// Postprocessing of disparity image. +/* -//Postprocessing of disparity image. -#include "ros/ros.h" -#include "sensor_msgs/Image.h" -#include "sensor_msgs/CameraInfo.h" -#include "std_msgs/Header.h" #include -#include "opencv2/core/core.hpp" -#include #include -#include #include -#include +#include +#include #include #include -#include -#include +#include +#include #include + +#include +#include +#include + +#include "opencv2/core/core.hpp" +#include "ros/ros.h" +#include "sensor_msgs/CameraInfo.h" +#include "sensor_msgs/Image.h" +#include "std_msgs/Header.h" + +*/ + +#include +#include + +#include +#include +#include + +#include "opencv2/core/core.hpp" +#include "rclcpp/rclcpp.hpp" +#include "sensor_msgs/msg/camera_info.hpp" +#include "sensor_msgs/msg/image.hpp" +#include "std_msgs/msg/header.hpp" +// #include #include +#include #include +#include + +#include +#include +#include +#include +#include +#include +#include +class disparity_conv : public rclcpp::Node { + public: + disparity_conv(const rclcpp::NodeOptions& options = rclcpp::NodeOptions()); + void callback(const sensor_msgs::msg::Image::ConstSharedPtr &msg_disp, + const sensor_msgs::msg::Image::ConstSharedPtr &msg_image); -class disparity_conv{ -public: - disparity_conv(ros::NodeHandle& nh); - ros::Subscriber cam_info_sub_; - ros::Subscriber disparity_sub_; - ros::Publisher disparity_conv_pub_; - ros::Publisher filtered_image_pub_; + private: + rclcpp::Subscription::SharedPtr cam_info_sub_; + rclcpp::Subscription::SharedPtr disparity_sub_; + rclcpp::Publisher::SharedPtr disparity_conv_pub_; + rclcpp::Publisher::SharedPtr filtered_image_pub_; double baseline; - void stereoDisparityCb(const sensor_msgs::Image::ConstPtr &msg_disp); - void callback(const sensor_msgs::Image::ConstPtr &msg_disp, const sensor_msgs::Image::ConstPtr &msg_image); + void stereoDisparityCb(const sensor_msgs::msg::Image::ConstSharedPtr &msg_disp); + // void callback(const sensor_msgs::msg::Image::SharedPtr msg_disp, + // const sensor_msgs::msg::Image::SharedPtr msg_image); - double fx_,fy_,cx_,cy_; - unsigned int width,height; + double fx_, fy_, cx_, cy_; + unsigned int width, height; cv::Mat prev_disp; bool first; }; -void disparity_conv::stereoDisparityCb(const sensor_msgs::Image::ConstPtr &msg_disp){ - ROS_INFO_ONCE("Disparity CB"); +// ########################################################################################################### +// ########################################################################################################### +void disparity_conv::stereoDisparityCb(const sensor_msgs::msg::Image::ConstSharedPtr &msg_disp) { + RCLCPP_INFO_ONCE(this->get_logger(), "Disparity CB"); - ros::Time start = ros::Time::now(); + rclcpp::Time start = this->get_clock()->now(); cv_bridge::CvImageConstPtr cv_ptrdisparity; - cv_bridge::CvImagePtr di_msg(new cv_bridge::CvImage()); - + // cv_bridge::CvImagePtr di_msg(new cv_bridge::CvImage()); + cv_bridge::CvImagePtr di_msg = std::make_shared(); cv::Mat disparity32F; - disparity32F = cv::Mat::zeros(msg_disp->height,msg_disp->width,CV_32FC1); - try - { + disparity32F = cv::Mat::zeros(msg_disp->height, msg_disp->width, CV_32FC1); + try { cv_ptrdisparity = cv_bridge::toCvShare(msg_disp); - cv_ptrdisparity->image.convertTo(disparity32F,CV_32F); - } - catch (cv_bridge::Exception& e) - { - ROS_ERROR("cv_bridge exception: %s", e.what()); + cv_ptrdisparity->image.convertTo(disparity32F, CV_32F); + } catch (cv_bridge::Exception& e) { + RCLCPP_ERROR(this->get_logger(), "cv_bridge exception: %s", e.what()); return; } - cv::Mat mask = disparity32F == 4095.0; - disparity32F.setTo(NAN,mask); //setting invalid entries tp 0 or NAN - disparity32F = disparity32F/16.0;// actual disparities are obtained here as floats - - + disparity32F.setTo(NAN, mask); // setting invalid entries tp 0 or NAN + disparity32F = disparity32F / 16.0; // actual disparities are obtained here as floats // if(cv_ptrdisparity->image.type()!=CV_32F) // { @@ -93,156 +125,161 @@ void disparity_conv::stereoDisparityCb(const sensor_msgs::Image::ConstPtr &msg_d // } int filt_mode = 2; - if(filt_mode == 1) - { + if (filt_mode == 1) { int dilation_size = 3; - cv::Mat disparity32F_filtered,disparity32F_filtered2; - cv::Mat element = cv::getStructuringElement( cv::MORPH_RECT, - cv::Size( 2*dilation_size + 1, 2*dilation_size+1 ), - cv::Point( dilation_size, dilation_size ) ); - cv::erode(disparity32F,disparity32F_filtered,element, cv::Point(-1, -1), 2); - // cv::dilate(disparity32F_filtered2,disparity32F_filtered,element, cv::Point(-1, -1), 20); - - disparity32F_filtered.convertTo(disparity32F_filtered2,CV_8U); - - - disparity32F_filtered.copyTo(di_msg->image,disparity32F_filtered2); - } - else if (filt_mode == 2) { + cv::Mat disparity32F_filtered, disparity32F_filtered2; + cv::Mat element = cv::getStructuringElement( + cv::MORPH_RECT, cv::Size(2 * dilation_size + 1, 2 * dilation_size + 1), + cv::Point(dilation_size, dilation_size)); + cv::erode(disparity32F, disparity32F_filtered, element, cv::Point(-1, -1), 2); + // cv::dilate(disparity32F_filtered2,disparity32F_filtered,element, cv::Point(-1, -1), + // 20); + + disparity32F_filtered.convertTo(disparity32F_filtered2, CV_8U); + + disparity32F_filtered.copyTo(di_msg->image, disparity32F_filtered2); + } else if (filt_mode == 2) { int kernel_size = 5; double sig = 1, th = 0, lm = 1.0, gm = 0.02, ps = 0; - cv::Mat kernel = cv::getGaborKernel(cv::Size(kernel_size,kernel_size), sig, th, lm, gm, ps); + cv::Mat kernel = + cv::getGaborKernel(cv::Size(kernel_size, kernel_size), sig, th, lm, gm, ps); cv::filter2D(disparity32F, di_msg->image, CV_32F, kernel); - } - else - { + } else { disparity32F.copyTo(di_msg->image); } - di_msg->header = msg_disp->header; + di_msg->header = msg_disp->header; di_msg->encoding = sensor_msgs::image_encodings::TYPE_32FC1; -// ROS_INFO("Time: %f \t%f",(ros::Time::now()-start).toSec(),1/(ros::Time::now()-start).toSec()); - disparity_conv_pub_.publish(di_msg->toImageMsg()); + // ROS_INFO("Time: %f + // \t%f",(ros::Time::now()-start).toSec(),1/(ros::Time::now()-start).toSec()); + disparity_conv_pub_->publish(*(di_msg->toImageMsg())); return; } -void disparity_conv::callback(const sensor_msgs::Image::ConstPtr &msg_disp, const sensor_msgs::Image::ConstPtr &msg_image) -{ - ROS_INFO_ONCE("Disparity CB 2"); - ros::Time start = ros::Time::now(); +// #################################################################################################################### +// ################################################################################################################### + +void disparity_conv::callback(const sensor_msgs::msg::Image::ConstSharedPtr &msg_disp, + const sensor_msgs::msg::Image::ConstSharedPtr &msg_image) { + RCLCPP_INFO_ONCE(this->get_logger(), "Callback triggered"); + + rclcpp::Time start = this->get_clock()->now(); cv_bridge::CvImageConstPtr cv_ptrdisparity; cv_bridge::CvImageConstPtr cv_ptrImage; - cv_bridge::CvImagePtr di_msg(new cv_bridge::CvImage()); + // cv_bridge::CvImagePtr di_msg(new cv_bridge::CvImage()); + cv_bridge::CvImagePtr di_msg = std::make_shared(); cv::Mat disparity32F, image32F; - disparity32F = cv::Mat::zeros(msg_disp->height,msg_disp->width,CV_32FC1); - image32F = cv::Mat::zeros(msg_image->height,msg_image->width,CV_32FC1); + disparity32F = cv::Mat::zeros(msg_disp->height, msg_disp->width, CV_32FC1); + image32F = cv::Mat::zeros(msg_image->height, msg_image->width, CV_32FC1); - try - { + try { cv_ptrdisparity = cv_bridge::toCvShare(msg_disp); - if(1)//speckle filter + if (1) // speckle filter { cv::Mat speckleFiltered; - cv_ptrdisparity->image.convertTo(speckleFiltered,CV_16SC1); - cv::filterSpeckles(speckleFiltered,4095,100,4); - - speckleFiltered.convertTo(disparity32F,CV_32F); - } - else - cv_ptrdisparity->image.convertTo(disparity32F,CV_32F); - cv_ptrImage= cv_bridge::toCvShare(msg_image); - cv_ptrImage->image.convertTo(image32F,CV_32F); - } - catch (cv_bridge::Exception& e) - { - ROS_ERROR("cv_bridge exception: %s", e.what()); + cv_ptrdisparity->image.convertTo(speckleFiltered, CV_16SC1); + cv::filterSpeckles(speckleFiltered, 4095, 100, 4); + + speckleFiltered.convertTo(disparity32F, CV_32F); + } else + cv_ptrdisparity->image.convertTo(disparity32F, CV_32F); + cv_ptrImage = cv_bridge::toCvShare(msg_image); + cv_ptrImage->image.convertTo(image32F, CV_32F); + } catch (cv_bridge::Exception& e) { + RCLCPP_ERROR(this->get_logger(), "cv_bridge exception: %s", e.what()); return; } - cv::Mat mask = disparity32F == 4095.0; - disparity32F.setTo(NAN,mask); //setting invalid entries to 0 or NAN - disparity32F = disparity32F/16.0;// actual disparities are obtained here as floats + disparity32F.setTo(NAN, mask); // setting invalid entries to 0 or NAN + disparity32F = disparity32F / 16.0; // actual disparities are obtained here as floats int filt_mode = 3; if (filt_mode == 2) { int kernel_size = 150; double sig = 1, th = 0, lm = 1.0, gm = 0.02, ps = 0; - cv::Mat kernel = cv::getGaborKernel(cv::Size(kernel_size,kernel_size), sig, th, lm, gm, ps); + cv::Mat kernel = + cv::getGaborKernel(cv::Size(kernel_size, kernel_size), sig, th, lm, gm, ps); cv::filter2D(image32F, di_msg->image, CV_32F, kernel); - } - else if(filt_mode == 3) - { - cv::GaussianBlur( image32F, image32F, cv::Size(3,3), 0, 0, cv::BORDER_DEFAULT ); - cv::Sobel( image32F, di_msg->image, CV_32FC1, 1, 0, 3, 1, 0, cv::BORDER_DEFAULT ); -// di_msg->image.copyTo(image32F); -// cv::convertScaleAbs( image32F, di_msg->image ); + } else if (filt_mode == 3) { + cv::GaussianBlur(image32F, image32F, cv::Size(3, 3), 0, 0, cv::BORDER_DEFAULT); + cv::Sobel(image32F, di_msg->image, CV_32FC1, 1, 0, 3, 1, 0, cv::BORDER_DEFAULT); + // di_msg->image.copyTo(image32F); + // cv::convertScaleAbs( image32F, di_msg->image ); di_msg->image = cv::abs(di_msg->image); - cv::Mat kernel = cv::Mat::ones(1,2,CV_32FC1);//15 + cv::Mat kernel = cv::Mat::ones(1, 2, CV_32FC1); // 15 cv::Mat acc; - cv::filter2D(di_msg->image,acc, CV_32FC1, kernel); - mask = acc > 10.0;//2 + cv::filter2D(di_msg->image, acc, CV_32FC1, kernel); + mask = acc > 10.0; // 2 di_msg->image.setTo(NAN); - if(0)//dilate + if (0) // dilate { int dilation_size = 2; - cv::Mat disparity32F_filtered,disparity32F_filtered2; - disparity32F.copyTo(disparity32F_filtered,mask); - cv::Mat element = cv::getStructuringElement( cv::MORPH_RECT, - cv::Size( 2*dilation_size + 1, 2*dilation_size+1 ), - cv::Point( dilation_size, dilation_size ) ); -// cv::erode(disparity32F_filtered2,disparity32F_filtered,element, cv::Point(-1, -1), 2); - cv::dilate(disparity32F_filtered,disparity32F_filtered2,element, cv::Point(-1, -1), 2); - disparity32F_filtered2.convertTo(disparity32F_filtered,CV_8U); - disparity32F.copyTo(di_msg->image,disparity32F_filtered); - } - else - disparity32F.copyTo(di_msg->image,mask); - } - else - { + cv::Mat disparity32F_filtered, disparity32F_filtered2; + disparity32F.copyTo(disparity32F_filtered, mask); + cv::Mat element = cv::getStructuringElement( + cv::MORPH_RECT, cv::Size(2 * dilation_size + 1, 2 * dilation_size + 1), + cv::Point(dilation_size, dilation_size)); + // cv::erode(disparity32F_filtered2,disparity32F_filtered,element, + // cv::Point(-1, -1), 2); + cv::dilate(disparity32F_filtered, disparity32F_filtered2, element, cv::Point(-1, -1), + 2); + disparity32F_filtered2.convertTo(disparity32F_filtered, CV_8U); + disparity32F.copyTo(di_msg->image, disparity32F_filtered); + } else + disparity32F.copyTo(di_msg->image, mask); + } else { disparity32F.copyTo(di_msg->image); } - //TEMPORAL DIFFERENCING FILTER + // TEMPORAL DIFFERENCING FILTER cv::Mat mask2; - if(0) - { - if(first) - { + if (0) { + if (first) { disparity32F.copyTo(prev_disp); first = false; } cv::Mat diff; cv::absdiff(disparity32F, prev_disp, diff); mask2 = diff < 80.0; - disparity32F.copyTo(di_msg->image,mask2); + disparity32F.copyTo(di_msg->image, mask2); disparity32F.copyTo(prev_disp); -// disparity32F.copyTo(di_msg->image,mask); + // disparity32F.copyTo(di_msg->image,mask); } - - di_msg->header = msg_disp->header; + di_msg->header = msg_disp->header; di_msg->encoding = sensor_msgs::image_encodings::TYPE_32FC1; -// ROS_INFO("Time: %f \t%f",(ros::Time::now()-start).toSec(),1/(ros::Time::now()-start).toSec()); - disparity_conv_pub_.publish(di_msg->toImageMsg()); - image32F.convertTo(image32F,CV_8U); + // ROS_INFO("Time: %f + // \t%f",(ros::Time::now()-start).toSec(),1/(ros::Time::now()-start).toSec()); + disparity_conv_pub_->publish(*(di_msg->toImageMsg())); + image32F.convertTo(image32F, CV_8U); di_msg->encoding = sensor_msgs::image_encodings::TYPE_8UC1; di_msg->image.setTo(0.0); - image32F.copyTo(di_msg->image,mask); - filtered_image_pub_.publish(di_msg->toImageMsg()); + image32F.copyTo(di_msg->image, mask); + filtered_image_pub_->publish(*(di_msg->toImageMsg())); return; } -disparity_conv::disparity_conv(ros::NodeHandle& nh){ - disparity_conv_pub_ = nh.advertise("/nerian_sp1/disparity_map_32F", 10); - filtered_image_pub_ = nh.advertise("/nerian_sp1/left/image_filtered_sky", 10); - ROS_INFO("into constr"); -// disparity_sub_ = nh.subscribe("/nerian_sp1/disparity_map", 1,&disparity_conv::stereoDisparityCb,this); +// ############################################################################################################################################# +// ############################################################################################################################################ +disparity_conv::disparity_conv(const rclcpp::NodeOptions& options) + : Node("disparity_conv", options) +{ + disparity_conv_pub_ = + this->create_publisher("/nerian_sp1/disparity_map_32F", 10); + filtered_image_pub_ = + this->create_publisher("/nerian_sp1/left/image_filtered_sky", 10); + + RCLCPP_INFO(this->get_logger(), "into constr"); + // disparity_conv_pub_ = nh.advertise("/nerian_sp1/disparity_map_32F", 10); + // filtered_image_pub_ = nh.advertise("/nerian_sp1/left/image_filtered_sky", + // 10); ROS_INFO("into constr"); + // disparity_sub_ = nh.subscribe("/nerian_sp1/disparity_map", + // 1,&disparity_conv::stereoDisparityCb,this); // Q-Matrix // [1.0 0.0 0.0 -317.20617294311523, @@ -259,16 +296,27 @@ disparity_conv::disparity_conv(ros::NodeHandle& nh){ first = true; } -int main(int argc, char** argv) -{ - ros::init(argc, argv, "disparity_conv"); +int main(int argc, char** argv) { + rclcpp::init(argc, argv); // cv::initModule_nonfree();//THIS LINE IS IMPORTANT for using surf and sift features of opencv - ros::NodeHandle nh; - disparity_conv d(nh); - message_filters::Subscriber disp_sub(nh, "/nerian_sp1/disparity_map", 1); - message_filters::Subscriber image_sub(nh, "/nerian_sp1/left/image_raw", 1); - message_filters::TimeSynchronizer sync(disp_sub, image_sub, 10); - sync.registerCallback(boost::bind(&disparity_conv::callback,&d, _1, _2)); - ros::spin(); + auto node = std::make_shared(rclcpp::NodeOptions()); + + using SyncPolicy = message_filters::sync_policies::ApproximateTime; + + auto disp_sub = std::make_shared>( + node.get(), "/nerian_sp1/disparity_map", rmw_qos_profile_default); + auto image_sub = std::make_shared>( + node.get(), "/nerian_sp1/left/image_raw", rmw_qos_profile_default); + + auto sync = std::make_shared>(SyncPolicy(10), + *disp_sub, *image_sub); + + sync->registerCallback( + std::bind(&disparity_conv::callback, node, std::placeholders::_1, std::placeholders::_2)); + + rclcpp::spin(node); + + rclcpp::shutdown(); return 0; } diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_expansion.cpp b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_expansion.cpp index 997101331..a4ecc3da2 100755 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_expansion.cpp +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_expansion.cpp @@ -6,6 +6,7 @@ */ //Applies C-Space expansion on disparity images. +/* #include "ros/ros.h" #include "sensor_msgs/Image.h" #include "sensor_msgs/CameraInfo.h" @@ -26,27 +27,68 @@ #include #include #include +*/ + #define SCALE 2.0 // num_units/pixel //#define lut_max_disparity_ 165 // units +#include +#include +#include +#include +#include +#include +#include + +#include "opencv2/core/core.hpp" +#include "rclcpp/rclcpp.hpp" +#include "sensor_msgs/msg/camera_info.hpp" +#include "sensor_msgs/msg/image.hpp" +#include "std_msgs/msg/header.hpp" +// #include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +//#define SCALE 2.0 // num_units/pixel +//#define lut_max_disparity_ 165 // units //#define robot_radius_ 2.0 // in meters //for 2times Robsize = 0.0173 at 40m //15 = 0.0677 #define DEPTH_ERROR_COEFF 0.0177 +//#define robot_radius_ 2.0 // in meters +//for 2times Robsize = 0.0173 at 40m +//15 = 0.0677/ +//#define DEPTH_ERROR_COEFF 0.0177 typedef pcl::PointCloud PointCloud; -class disparity_expansion{ +class disparity_expansion : public rclcpp::Node +{ + public: - disparity_expansion(ros::NodeHandle& nh); + disparity_expansion(const rclcpp::NodeOptions & options = rclcpp::NodeOptions()); - ros::Publisher expansion_cloud_pub; - ros::Publisher expanded_disparity_fg_pub; - ros::Publisher expanded_disparity_bg_pub; - ros::Publisher expansion_poly_pub; - ros::Subscriber subs_; - ros::Subscriber cam_info_sub_; - ros::Subscriber disparity_sub_; + rclcpp::Publisher::SharedPtr expansion_cloud_pub; + rclcpp::Publisher::SharedPtr expanded_disparity_fg_pub; + rclcpp::Publisher::SharedPtr expanded_disparity_bg_pub; + rclcpp::Publisher::SharedPtr expansion_poly_pub; + rclcpp::Subscription::SharedPtr cam_info_sub_; + rclcpp::Subscription::SharedPtr disparity_sub_; double baseline; double downsample_scale; @@ -54,38 +96,41 @@ class disparity_expansion{ bool got_cam_info; image_geometry::PinholeCameraModel model_; - void getCamInfo(const sensor_msgs::CameraInfo::ConstPtr &msg_info); - void stereoDisparityCb(const stereo_msgs::DisparityImage::ConstPtr &msg_disp);//sensor_msgs::Image::ConstPtr &msg_disp); + void getCamInfo(const sensor_msgs::msg::CameraInfo::ConstSharedPtr &msg_info); + void stereoDisparityCb(const stereo_msgs::msg::DisparityImage::ConstSharedPtr &msg_disp); void generateExpansionLUT(); struct cell { - unsigned int idx1; - unsigned int idx2; + unsigned int idx1; + unsigned int idx2; }; - int lut_max_disparity_;// 165 // units - double robot_radius_;// 2.0 // in meters + int lut_max_disparity_; + double robot_radius_; double padding_; double bg_multiplier_; double pixel_error_; - cell table_u[200][640];//[640]; - cell table_v[200][480];//[512]; + cell table_u[200][640]; + cell table_v[200][480]; double table_d[200]; - double fx_,fy_,cx_,cy_; - unsigned int width,height; + double fx_, fy_, cx_, cy_; + unsigned int width, height; }; +//################################################################################################################################################################################ +//################################################################################################################################################################################ + void disparity_expansion::generateExpansionLUT() { bool debug = false; if(debug) { - ROS_WARN("Expansion LUT Debug disabled creation"); + RCLCPP_WARN(this->get_logger(), "Expansion LUT Debug disabled creation"); LUT_ready = true; } if(LUT_ready) { - ROS_ERROR("LUT all ready"); + RCLCPP_ERROR(this->get_logger(),"LUT all ready"); // sleep(1); return; } @@ -93,7 +138,7 @@ void disparity_expansion::generateExpansionLUT() double center_y = cy_; double constant_x = 1.0 / fx_; double constant_y = 1.0 / fy_; - ROS_INFO("Fx Fy Cx Cy: %f %f , %f %f \nW H Baseline: %d %d %f",fx_,fy_,cx_,cy_,width,height,baseline); + RCLCPP_INFO(this->get_logger(),"Fx Fy Cx Cy: %f %f , %f %f \nW H Baseline: %d %d %f",fx_,fy_,cx_,cy_,width,height,baseline); double r = robot_radius_;//expansion radius in cm int u1,u2,v1,v2; double x,y,z; @@ -125,7 +170,7 @@ void disparity_expansion::generateExpansionLUT() v2 = fy_*r2/z + center_y; if((v2-v1)<0) - ROS_ERROR("Something MESSED %d %d %d",v1,v2,disp_idx); + RCLCPP_ERROR(this->get_logger(),"Something MESSED %d %d %d",v1,v2,disp_idx); if(v1 < 0) v1 = 0; if(v1 > (height-1)) v1 = height-1; @@ -150,7 +195,7 @@ void disparity_expansion::generateExpansionLUT() u2 = fx_*r2/z + center_x; if((u2-u1)<0) - ROS_ERROR("Something MESSED %d %d %d",u1,u2,disp_idx); + RCLCPP_ERROR(this->get_logger(), "Something MESSED %d %d %d",u1,u2,disp_idx); if(u1 < 0) u1 = 0; if(u1 > (width-1)) u1 = width-1; @@ -168,40 +213,54 @@ void disparity_expansion::generateExpansionLUT() // int d = 199; // ROS_ERROR("window disp_idx u1 u2 \t %d \t%d \t%d",u,table_u[d][u].idx1,table_u[d][u].idx2); // } - ROS_WARN("Expansion LUT created: LUT MAX: %d , ROBOT SIZE: %f",lut_max_disparity_/2,robot_radius_); + RCLCPP_WARN(this->get_logger(), "Expansion LUT created: LUT MAX: %d , ROBOT SIZE: %f",lut_max_disparity_/2,robot_radius_); LUT_ready = true; } -void disparity_expansion::getCamInfo(const sensor_msgs::CameraInfo::ConstPtr& msg_info) +//################################################################################################################ +//################################################################################################################ +void disparity_expansion::getCamInfo(const sensor_msgs::msg::CameraInfo::ConstSharedPtr &msg_info) { if(got_cam_info) return; model_.fromCameraInfo ( msg_info ); - ROS_INFO_ONCE("Cam Info Recvd Fx Fy Cx Cy: %f %f , %f %f",model_.fx(),model_.fy(),model_.cx(),model_.cy()); + RCLCPP_INFO_ONCE(this->get_logger(), "Cam Info Recvd Fx Fy Cx Cy: %f %f , %f %f",model_.fx(),model_.fy(),model_.cx(),model_.cy()); cx_ = model_.cx()/downsample_scale; cy_ = model_.cy()/downsample_scale; fx_ = fy_ = model_.fx()/downsample_scale; width = msg_info->width/downsample_scale; height = msg_info->height/downsample_scale; - baseline = -msg_info->P[3]/msg_info->P[0]; + baseline = -msg_info->p[3]/msg_info->p[0]; baseline *=downsample_scale; generateExpansionLUT(); got_cam_info = true; } -void disparity_expansion::stereoDisparityCb(const stereo_msgs::DisparityImage::ConstPtr &msg_disp){//sensor_msgs::Image::ConstPtr &msg_disp){ +void disparity_expansion::stereoDisparityCb(const stereo_msgs::msg::DisparityImage::ConstSharedPtr &msg_disp){//sensor_msgs::Image::ConstPtr &msg_disp){ // ROS_INFO("Disparity CB"); // dimage = *msg_disp; std::cout << "hello" << std::endl; if(!LUT_ready) { - ROS_INFO_THROTTLE(1,"LUT not ready yet, not processing disparity"); + auto& clk = *this->get_clock(); + RCLCPP_INFO_THROTTLE(this->get_logger(),clk, 1,"LUT not ready yet, not processing disparity"); return; } // generateExpansionLUT(); - +//################################################################################# + auto img_msg = std::make_shared(); + img_msg->header = msg_disp->header; + img_msg->height = msg_disp->image.height; + img_msg->width = msg_disp->image.width; + img_msg->encoding = msg_disp->image.encoding; + img_msg->is_bigendian = msg_disp->image.is_bigendian; + img_msg->step = msg_disp->image.step; + img_msg->data = msg_disp->image.data; +//#########################################################3 + +// auto disparity_img_msg = msg_disp->image; cv_bridge::CvImagePtr fg_msg(new cv_bridge::CvImage()); cv_bridge::CvImagePtr bg_msg(new cv_bridge::CvImage()); @@ -209,11 +268,11 @@ void disparity_expansion::stereoDisparityCb(const stereo_msgs::DisparityImage::C cv_bridge::CvImageConstPtr cv_ptrdisparity; try { - cv_ptrdisparity = cv_bridge::toCvShare(sensor_msgs::ImageConstPtr(new sensor_msgs::Image(msg_disp->image))); + cv_ptrdisparity = cv_bridge::toCvShare(img_msg, sensor_msgs::image_encodings::TYPE_32FC1); } catch (cv_bridge::Exception& e) { - ROS_ERROR("cv_bridge exception: %s", e.what()); + RCLCPP_ERROR(this->get_logger(),"cv_bridge exception: %s", e.what()); return; } cv::Mat disparity32F = cv_ptrdisparity->image; @@ -249,7 +308,7 @@ void disparity_expansion::stereoDisparityCb(const stereo_msgs::DisparityImage::C } catch (cv_bridge::Exception& e) { - ROS_ERROR("cv_bridge exception: %s", e.what()); + RCLCPP_ERROR(this->get_logger(),"cv_bridge exception: %s", e.what()); return; } @@ -270,10 +329,10 @@ void disparity_expansion::stereoDisparityCb(const stereo_msgs::DisparityImage::C // if ( di_msg->encoding == sensor_msgs::image_encodings::TYPE_32FC1 ) { - ROS_INFO_ONCE("IMG TYPE 32FC, GOOD"); + RCLCPP_INFO_ONCE(this->get_logger(), "IMG TYPE 32FC, GOOD"); // int row_step = dimage.step / sizeof ( float ); // const float* disparity_row = reinterpret_cast ( &dimage.data[0] ); - ros::Time start = ros::Time::now(); + rclcpp::Time start = this->get_clock()->now(); float padding = padding_; @@ -282,7 +341,7 @@ void disparity_expansion::stereoDisparityCb(const stereo_msgs::DisparityImage::C for ( int u = ( int ) width - 1; u >= 0; u-=1 ) { float disparity_value = disparity32F.at(v,u);//disparity_row[v * row_step + u];// + 0.5; - if(!isnan(double(disparity_value)) && ((int(disparity_value*SCALE)+1) < lut_max_disparity_) && ((int(disparity_value*SCALE)+1) > 0))//expand + if(!std::isnan(double(disparity_value)) && ((int(disparity_value*SCALE)+1) < lut_max_disparity_) && ((int(disparity_value*SCALE)+1) > 0))//expand { // disparity_value = disparity32F.at(v,u)+0.5; unsigned int u1 = table_u[int(disparity_value*SCALE)+1][u].idx1; @@ -357,7 +416,13 @@ void disparity_expansion::stereoDisparityCb(const stereo_msgs::DisparityImage::C u = u_temp+1; } else - ROS_ERROR_THROTTLE(1,"BAD disparity during expansion: %f",disparity_value); + RCLCPP_ERROR_THROTTLE( + this->get_logger(), + *this->get_clock(), + 1, + "BAD disparity during expansion: %f", + disparity_value + ); } } @@ -370,7 +435,7 @@ void disparity_expansion::stereoDisparityCb(const stereo_msgs::DisparityImage::C for ( int v = ( int ) height - 1; v >= 0; v-=1 ) { float disparity_value = disparity32F.at(v,u) + pixel_error_;//disparity_row[v * row_step + u];// + 0.5; - if(!isnan(double(disparity_value)) && ((int(disparity_value*SCALE)+1) < lut_max_disparity_) && ((int(disparity_value*SCALE)+1) > 0))//expand + if(!std::isnan(double(disparity_value)) && ((int(disparity_value*SCALE)+1) < lut_max_disparity_) && ((int(disparity_value*SCALE)+1) > 0))//expand { unsigned int v1 = table_v[int(disparity_value*SCALE)+1][v].idx1; unsigned int v2 = table_v[int(disparity_value*SCALE)+1][v].idx2; @@ -437,7 +502,13 @@ void disparity_expansion::stereoDisparityCb(const stereo_msgs::DisparityImage::C v = v_temp+1; } else - ROS_ERROR_THROTTLE(1,"BAD disparity during expansion: %f",disparity_value); + RCLCPP_ERROR_THROTTLE( + this->get_logger(), + *this->get_clock(), + 1, + "BAD disparity during expansion: %f", + disparity_value +); } } @@ -445,28 +516,30 @@ void disparity_expansion::stereoDisparityCb(const stereo_msgs::DisparityImage::C bg_msg->image = disparity_bg; - ROS_INFO("Time: %f \t%f",(ros::Time::now()-start).toSec(),1/(ros::Time::now()-start).toSec()); + RCLCPP_INFO(this->get_logger(), "Time: %f \t%f", (this->get_clock()->now() -start).seconds(),1/(this->get_clock()->now()-start).seconds()); - expanded_disparity_fg_pub.publish(fg_msg->toImageMsg()); - expanded_disparity_bg_pub.publish(bg_msg->toImageMsg()); + expanded_disparity_fg_pub->publish(*(fg_msg->toImageMsg())); + expanded_disparity_bg_pub->publish(*(bg_msg->toImageMsg())); - if(expansion_poly_pub.getNumSubscribers() > 0 )//create expansion PCD + if(expansion_poly_pub->get_subscription_count() > 0 )//create expansion PCD { - visualization_msgs::MarkerArray marker_arr; - visualization_msgs::Marker marker; + visualization_msgs::msg::MarkerArray marker_arr; + visualization_msgs::msg::Marker marker; marker.header = msg_disp->header; marker.ns = "occ_space"; marker.id = 0; - marker.type = visualization_msgs::Marker::LINE_STRIP; + marker.type = visualization_msgs::msg::Marker::LINE_STRIP; // marker.mesh_resource = "package://gazebo_robot_description/meshes/octorotor/riverine_octo_m.dae"; - marker.lifetime = ros::Duration(0.5); - marker.action = visualization_msgs::Marker::ADD; + marker.lifetime = rclcpp::Duration::from_seconds(0.5); + marker.action = visualization_msgs::msg::Marker::ADD; marker.pose.position.x =0;//xyz_centroid[0]; marker.pose.position.y =0;//xyz_centroid[1]; marker.pose.position.z =0;//xyz_centroid[2]; - tf::quaternionTFToMsg(tf::createQuaternionFromRPY(0.0,0.0,0.0), marker.pose.orientation); + tf2::Quaternion q; + q.setRPY(0.0, 0.0, 0.0); + marker.pose.orientation = tf2::toMsg(q); // marker.pose.orientation.w = 1; float marker_scale = 0.51; marker.scale.x = marker_scale; @@ -477,7 +550,7 @@ void disparity_expansion::stereoDisparityCb(const stereo_msgs::DisparityImage::C marker.color.g = 0.0; marker.color.b = 0.0; - geometry_msgs::PolygonStamped poly; + geometry_msgs::msg::PolygonStamped poly; poly.header = msg_disp->header; int v = 120; float prev_depth = 0.0; @@ -488,11 +561,11 @@ void disparity_expansion::stereoDisparityCb(const stereo_msgs::DisparityImage::C float depth_value = baseline * fx_ / fg_msg->image.at(v,u);//free_msg->image.at(v,u)[0]; float depth_diff = fabs(depth_value-prev_depth); prev_depth = depth_value; - if(!isnan(depth_value) && !isinf(depth_value) && depth_diff < 0.5) + if(!std::isnan(depth_value) && !std::isinf(depth_value) && depth_diff < 0.5) { marker.color.r = 1.0 * (fg_msg->image.at(v,u)-pixel_error_)/fg_msg->image.at(v,u); marker.color.g = 1.0 * (pixel_error_)/fg_msg->image.at(v,u); - geometry_msgs::Point gm_p; + geometry_msgs::msg::Point gm_p; gm_p.x = ( u - center_x ) * depth_value * constant_x; gm_p.y = ( v - center_y ) * depth_value * constant_y; gm_p.z = depth_value; @@ -515,10 +588,10 @@ void disparity_expansion::stereoDisparityCb(const stereo_msgs::DisparityImage::C } } marker_arr.markers.push_back(marker); - expansion_poly_pub.publish(marker_arr); + expansion_poly_pub->publish(marker_arr); } - if(expansion_cloud_pub.getNumSubscribers() > 0 )//create expansion PCD + if(expansion_cloud_pub->get_subscription_count() > 0 )//create expansion PCD { PointCloud::Ptr cloud (new PointCloud); cloud->header.frame_id = msg_disp->header.frame_id; @@ -585,57 +658,69 @@ void disparity_expansion::stereoDisparityCb(const stereo_msgs::DisparityImage::C } } cloud->width = point_counter; - cloud->header.seq = msg_disp->header.seq; - cloud->header.stamp = pcl_conversions::toPCL(msg_disp->header.stamp); +//######################################################################################################## + + //Timestamp structure has changed cannot convert to uint64 + cloud->header.stamp = rclcpp::Time(msg_disp->header.stamp).nanoseconds(); + cloud->header.stamp = pcl_conversions::toPCL(rclcpp::Time(msg_disp->header.stamp)); + //cloud->header.stamp = msg_disp->header.stamp; + //cloud->header.stamp = pcl_conversions::toPCL(msg_disp->header.stamp); - sensor_msgs::PointCloud2 cloud_PC2; + sensor_msgs::msg::PointCloud2 cloud_PC2; pcl::toROSMsg(*cloud,cloud_PC2); - expansion_cloud_pub.publish(cloud_PC2); + expansion_cloud_pub->publish(cloud_PC2); } } } return; } -disparity_expansion::disparity_expansion(ros::NodeHandle& nh){ - expansion_cloud_pub = nh.advertise("/expansion/cloud_fg", 10); - expansion_poly_pub = nh.advertise("/expansion/occ_marker", 10); - expanded_disparity_fg_pub = nh.advertise("/narrow_stereo/left/expanded_disparity_fg", 10); - expanded_disparity_bg_pub = nh.advertise("/narrow_stereo/left/expanded_disparity_bg", 10); - ROS_INFO("into constr with nodehandle %s",nh.getNamespace().c_str()); - LUT_ready = false; - got_cam_info = false; - cam_info_sub_ = nh.subscribe("/narrow_stereo/right/camera_info", 1,&disparity_expansion::getCamInfo,this); - disparity_sub_ = nh.subscribe("/narrow_stereo/disparity", 1,&disparity_expansion::stereoDisparityCb,this); - - nh.param("robot_radius", robot_radius_, 2.0); - nh.param("lut_max_disparity", lut_max_disparity_, 164); - nh.param("padding", padding_, 2.0); - nh.param("bg_multiplier", bg_multiplier_, 5.0); - nh.param("sensor_pixel_error", pixel_error_, 0.5); - -// Q-Matrix -// [1.0 0.0 0.0 -317.20617294311523, -// 0.0 1.0 0.0 -233.2914752960205, -// 0.0 0.0 0.0 307.4838344732113, -// 0.0 0.0 1.7930881143612616 -0.0] - - cx_ = 317.20617294311523; - cy_ = 233.2914752960205; - fx_ = fy_ = 307.4838344732113; - baseline = 0.5576007548439765; - width = 640; - height = 480; - downsample_scale = 2.0; -// generateExpansionLUT(); -} + disparity_expansion::disparity_expansion(const rclcpp::NodeOptions & options) + : Node("disparity_expansion", options) + { + expansion_cloud_pub = this->create_publisher("/expansion/cloud_fg", 10); + expansion_poly_pub = this->create_publisher("/expansion/occ_marker", 10); + expanded_disparity_fg_pub = this->create_publisher("/narrow_stereo/left/expanded_disparity_fg", 10); + expanded_disparity_bg_pub = this->create_publisher("/narrow_stereo/left/expanded_disparity_bg", 10); + + RCLCPP_INFO(this->get_logger(), "into constr with node name %s", this->get_name()); + LUT_ready = false; + got_cam_info = false; + + cam_info_sub_ = this->create_subscription( + "/narrow_stereo/right/camera_info", 1, + std::bind(&disparity_expansion::getCamInfo, this, std::placeholders::_1)); + + disparity_sub_ = this->create_subscription( + "/narrow_stereo/disparity", 1, + std::bind(&disparity_expansion::stereoDisparityCb, this, std::placeholders::_1)); + + this->declare_parameter("robot_radius", 2.0); + this->declare_parameter("lut_max_disparity", 164); + this->declare_parameter("padding", 2.0); + this->declare_parameter("bg_multiplier", 5.0); + this->declare_parameter("sensor_pixel_error", 0.5); + + this->get_parameter("robot_radius", robot_radius_); + this->get_parameter("lut_max_disparity", lut_max_disparity_); + this->get_parameter("padding", padding_); + this->get_parameter("bg_multiplier", bg_multiplier_); + this->get_parameter("sensor_pixel_error", pixel_error_); + + cx_ = 317.20617294311523; + cy_ = 233.2914752960205; + fx_ = fy_ = 307.4838344732113; + baseline = 0.5576007548439765; + width = 640; + height = 480; + downsample_scale = 2.0; + } int main(int argc, char** argv) { - ros::init(argc, argv, "disparity_expansion"); - // cv::initModule_nonfree();//THIS LINE IS IMPORTANT for using surf and sift features of opencv - ros::NodeHandle nh("~"); - disparity_expansion d(nh); - ros::spin(); + rclcpp::init(argc, argv); + auto node = std::make_shared(); + rclcpp::spin(node); + rclcpp::shutdown(); return 0; } diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_pcd.cpp b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_pcd.cpp index 85d6f4184..86de95c87 100644 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_pcd.cpp +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/src/disparity_pcd.cpp @@ -6,6 +6,7 @@ */ //Outputs a point cloud using disparity images. +/* #include "ros/ros.h" #include "sensor_msgs/Image.h" #include "sensor_msgs/CameraInfo.h" @@ -24,48 +25,85 @@ #include #include #include +*/ + +#include +#include +#include +#include +//#include +#include +#include + +#include "opencv2/core/core.hpp" +#include "rclcpp/rclcpp.hpp" +#include "sensor_msgs/msg/camera_info.hpp" +#include "sensor_msgs/msg/image.hpp" +#include "std_msgs/msg/header.hpp" +// #include +#include +#include +#include +#include + +//#include +//#include +//#include +//#include +#include +#include +#include +#include +#include +#include +#include +#include typedef pcl::PointCloud PointCloud; -class disparity_pcd{ +class disparity_pcd : public rclcpp::Node +{ public: - disparity_pcd(ros::NodeHandle& nh); - ros::Subscriber cam_info_sub_; - ros::Subscriber disparity_sub_; - ros::Publisher disparity_pcd_pub_; + disparity_pcd(const rclcpp::NodeOptions & options = rclcpp::NodeOptions()); + //ros::Subscriber cam_info_sub_; + //ros::Subscriber disparity_sub_; + //ros::Publisher disparity_pcd_pub_; + rclcpp::Subscription::SharedPtr cam_info_sub_; + rclcpp::Subscription::SharedPtr disparity_sub_; + rclcpp::Publisher::SharedPtr disparity_pcd_pub_; double baseline; double downsample_scale; bool got_cam_info; - void stereoDisparityCb(const sensor_msgs::Image::ConstPtr &msg_disp); - void callback(const sensor_msgs::Image::ConstPtr &msg_disp, const sensor_msgs::Image::ConstPtr &msg_image); - void getCamInfo(const sensor_msgs::CameraInfo::ConstPtr &msg_info); + void stereoDisparityCb(const sensor_msgs::msg::Image::ConstSharedPtr msg_disp); + void callback(const sensor_msgs::msg::Image::ConstSharedPtr msg_disp, const sensor_msgs::msg::Image::ConstSharedPtr msg_image); + void getCamInfo(const sensor_msgs::msg::CameraInfo::ConstSharedPtr msg_info); double fx_,fy_,cx_,cy_; unsigned int width,height; }; -void disparity_pcd::getCamInfo(const sensor_msgs::CameraInfo::ConstPtr& msg_info) +void disparity_pcd::getCamInfo(const sensor_msgs::msg::CameraInfo::ConstSharedPtr msg_info) { if(got_cam_info) return; image_geometry::PinholeCameraModel model_;model_.fromCameraInfo ( msg_info ); - ROS_INFO_ONCE("Cam Info Recvd Fx Fy Cx Cy: %f %f , %f %f",model_.fx(),model_.fy(),model_.cx(),model_.cy()); + RCLCPP_INFO_ONCE(this->get_logger(), "Cam Info Recvd Fx Fy Cx Cy: %f %f , %f %f",model_.fx(),model_.fy(),model_.cx(),model_.cy()); cx_ = model_.cx()/downsample_scale; cy_ = model_.cy()/downsample_scale; fx_ = fy_ = model_.fx()/downsample_scale; width = msg_info->width/downsample_scale; height = msg_info->height/downsample_scale; - baseline = -msg_info->P[3]/msg_info->P[0]; + baseline = -msg_info->p[3]/msg_info->p[0]; baseline *=downsample_scale; got_cam_info = true; } -void disparity_pcd::stereoDisparityCb(const sensor_msgs::Image::ConstPtr &msg_disp){ - ROS_INFO_ONCE("Disparity CB"); +void disparity_pcd::stereoDisparityCb(const sensor_msgs::msg::Image::ConstSharedPtr msg_disp){ + RCLCPP_INFO_ONCE(this->get_logger(),"Disparity CB"); - ros::Time start = ros::Time::now(); + rclcpp::Time start = this->get_clock()->now(); cv_bridge::CvImageConstPtr cv_ptrdisparity; cv_bridge::CvImagePtr di_msg(new cv_bridge::CvImage()); @@ -78,11 +116,11 @@ void disparity_pcd::stereoDisparityCb(const sensor_msgs::Image::ConstPtr &msg_di } catch (cv_bridge::Exception& e) { - ROS_ERROR("cv_bridge exception: %s", e.what()); + RCLCPP_ERROR(this->get_logger(), "cv_bridge exception: %s", e.what()); return; } - if(disparity_pcd_pub_.getNumSubscribers() > 0 )//create expansion PCD + if(disparity_pcd_pub_->get_subscription_count() > 0 )//create expansion PCD { PointCloud::Ptr cloud (new PointCloud); cloud->header.frame_id = msg_disp->header.frame_id; @@ -112,28 +150,30 @@ void disparity_pcd::stereoDisparityCb(const sensor_msgs::Image::ConstPtr &msg_di } } cloud->width = point_counter; - cloud->header.seq = msg_disp->header.seq; - cloud->header.stamp = pcl_conversions::toPCL(msg_disp->header.stamp); + //cloud->header.seq = msg_disp->header.seq; + cloud->header.stamp = rclcpp::Time(msg_disp->header.stamp).nanoseconds(); + cloud->header.stamp = pcl_conversions::toPCL(rclcpp::Time(msg_disp->header.stamp)); + - sensor_msgs::PointCloud2 cloud_PC2; + sensor_msgs::msg::PointCloud2 cloud_PC2; pcl::toROSMsg(*cloud,cloud_PC2); - disparity_pcd_pub_.publish(cloud_PC2); + disparity_pcd_pub_->publish(cloud_PC2); } // ROS_INFO("Time: %f \t%f",(ros::Time::now()-start).toSec(),1/(ros::Time::now()-start).toSec()); return; } -void disparity_pcd::callback(const sensor_msgs::Image::ConstPtr &msg_disp, const sensor_msgs::Image::ConstPtr &msg_image) +void disparity_pcd::callback(const sensor_msgs::msg::Image::ConstSharedPtr msg_disp, const sensor_msgs::msg::Image::ConstSharedPtr msg_image) { if(!got_cam_info) { - ROS_INFO_THROTTLE(1,"Cam Info not received, not processing"); + RCLCPP_INFO_THROTTLE(this->get_logger(),*this->get_clock(),1,"Cam Info not received, not processing"); return; } - ROS_INFO_ONCE("Disparity CB"); + RCLCPP_INFO_ONCE(this->get_logger(),"Disparity CB"); - ros::Time start = ros::Time::now(); + rclcpp::Time start = this->get_clock()->now(); cv_bridge::CvImageConstPtr cv_ptrdisparity; cv_bridge::CvImageConstPtr cv_ptrImage; cv_bridge::CvImagePtr di_msg(new cv_bridge::CvImage()); @@ -151,11 +191,11 @@ void disparity_pcd::callback(const sensor_msgs::Image::ConstPtr &msg_disp, const } catch (cv_bridge::Exception& e) { - ROS_ERROR("cv_bridge exception: %s", e.what()); + RCLCPP_ERROR(this->get_logger(),"cv_bridge exception: %s", e.what()); return; } - if(disparity_pcd_pub_.getNumSubscribers() > 0 )//create expansion PCD + if(disparity_pcd_pub_->get_subscription_count() > 0 )//create expansion PCD { PointCloud::Ptr cloud (new PointCloud); cloud->header.frame_id = msg_disp->header.frame_id; @@ -185,23 +225,33 @@ void disparity_pcd::callback(const sensor_msgs::Image::ConstPtr &msg_disp, const } } cloud->width = point_counter; - cloud->header.seq = msg_disp->header.seq; - cloud->header.stamp = pcl_conversions::toPCL(msg_disp->header.stamp); + //cloud->header.seq = msg_disp->header.seq; + //cloud->header.stamp = pcl_conversions::toPCL(msg_disp->header.stamp); + cloud->header.stamp = rclcpp::Time(msg_disp->header.stamp).nanoseconds(); + cloud->header.stamp = pcl_conversions::toPCL(rclcpp::Time(msg_disp->header.stamp)); - sensor_msgs::PointCloud2 cloud_PC2; + sensor_msgs::msg::PointCloud2 cloud_PC2; pcl::toROSMsg(*cloud,cloud_PC2); - disparity_pcd_pub_.publish(cloud_PC2); + disparity_pcd_pub_->publish(cloud_PC2); } // ROS_INFO("Time: %f \t%f",(ros::Time::now()-start).toSec(),1/(ros::Time::now()-start).toSec()); return; } -disparity_pcd::disparity_pcd(ros::NodeHandle& nh){ - disparity_pcd_pub_ = nh.advertise("/pcd", 10); - cam_info_sub_ = nh.subscribe("/nerian_sp1/right/camera_info", 1,&disparity_pcd::getCamInfo,this); - nh.param("downsample_scale", downsample_scale, 1.0); - ROS_INFO("into constr"); +disparity_pcd::disparity_pcd(const rclcpp::NodeOptions & options) +: Node("disparity_pcd", options) +{ + disparity_pcd_pub_ = this->create_publisher("/pcd", 10); + //cam_info_sub_ = nh.subscribe("/nerian_sp1/right/camera_info", 1,&disparity_pcd::getCamInfo,this); + cam_info_sub_ = this->create_subscription("/nerian_sp1/right/camera_info", 10, std::bind(&disparity_pcd::getCamInfo, this, std::placeholders::_1)); + + //nh.param("downsample_scale", downsample_scale, 1.0); + //ROS_INFO("into constr"); + this->declare_parameter("downsample_scale", 1.0); + this->get_parameter("downsample_scale", downsample_scale); + + RCLCPP_INFO(this->get_logger(), "into constr"); // disparity_sub_ = nh.subscribe("/disparity", 1,&disparity_pcd::stereoDisparityCb,this); // Q-Matrix @@ -218,18 +268,43 @@ disparity_pcd::disparity_pcd(ros::NodeHandle& nh){ got_cam_info = false; // width = 640; // height = 480; + +// auto disp_sub_ = std::make_shared>(node.get(), "/disparity", 10); +// auto image_sub_ = std::make_shared>(shared_from_this(), "/nerian_sp1/left/image_raw", 10); + +// auto sync = std::make_shared>(*disp_sub_, *image_sub_, 10); +// sync->registerCallback(std::bind(&disparity_pcd::callback, this, std::placeholders::_1, std::placeholders::_2)); } int main(int argc, char** argv) { - ros::init(argc, argv, "disparity_pcd"); + rclcpp::init(argc, argv); // cv::initModule_nonfree();//THIS LINE IS IMPORTANT for using surf and sift features of opencv - ros::NodeHandle nh("~"); - disparity_pcd d(nh); - message_filters::Subscriber disp_sub(nh, "/disparity", 1); - message_filters::Subscriber image_sub(nh, "/nerian_sp1/left/image_raw", 1); - message_filters::TimeSynchronizer sync(disp_sub, image_sub, 10); - sync.registerCallback(boost::bind(&disparity_pcd::callback,&d, _1, _2)); - ros::spin(); + //ros::NodeHandle nh("~"); + auto node = std::make_shared(rclcpp::NodeOptions()); + + using SyncPolicy = message_filters::sync_policies::ApproximateTime; + auto disp_sub = std::make_shared>( + node.get(), "/nerian_sp1/disparity_map", rmw_qos_profile_default); + auto image_sub = std::make_shared>( + node.get(), "/nerian_sp1/left/image_raw", rmw_qos_profile_default); + + auto sync = std::make_shared>(SyncPolicy(10), + *disp_sub, *image_sub); + + sync->registerCallback( + std::bind(&disparity_pcd::callback, node, std::placeholders::_1, std::placeholders::_2)); + + + //disparity_pcd d(nh); + //message_filters::Subscriber disp_sub(nh, "/disparity", 1); + //message_filters::Subscriber image_sub(nh, "/nerian_sp1/left/image_raw", 1); + //message_filters::TimeSynchronizer sync(disp_sub, image_sub, 10); + //sync.registerCallback(boost::bind(&disparity_pcd::callback,&d, _1, _2)); + + rclcpp::spin(node); + rclcpp::shutdown(); + return 0; } diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/include/disparity_graph/disparity_graph.h b/ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/include/disparity_graph/disparity_graph.h index 129bec471..eaff2f0bf 100644 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/include/disparity_graph/disparity_graph.h +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/include/disparity_graph/disparity_graph.h @@ -14,6 +14,7 @@ * @author: Geetesh Dubey * */ +/* #include #include "sensor_msgs/Image.h" #include "sensor_msgs/image_encodings.h" @@ -46,12 +47,42 @@ #include "visualization_msgs/MarkerArray.h" #include +*/ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + typedef pcl::PointCloud PointCloud; namespace nabla { namespace disparity_graph { -class disparity_graph { +class disparity_graph : public rclcpp::Node { private: struct node { @@ -59,49 +90,60 @@ class disparity_graph { //sensor_msgs::Image Im_bg; cv_bridge::CvImagePtr Im_fg; cv_bridge::CvImagePtr Im_bg; - std_msgs::Header header; - tf::Transform w2s_tf; - tf::Transform s2w_tf; + std_msgs::msg::Header header; + tf2::Transform w2s_tf; + tf2::Transform s2w_tf; }; public: - void disp_cb(const sensor_msgs::Image::ConstPtr &disp_fg, - const sensor_msgs::Image::ConstPtr &disp_bg); + void disp_cb(const sensor_msgs::msg::Image::ConstPtr &disp_fg, + const sensor_msgs::msg::Image::ConstPtr &disp_bg); std::deque disp_graph; size_t graph_size; double thresh_; - tf::TransformListener listener; + //tf::TransformListener listener; + std::shared_ptr tf_buffer_; + std::shared_ptr tf_listener_; std::string sensor_frame, fixed_frame, stabilized_frame; - visualization_msgs::Marker marker; - ros::Publisher disparity_graph_marker_pub; + visualization_msgs::msg::Marker marker; + //ros::Publisher disparity_graph_marker_pub; + rclcpp::Publisher::SharedPtr disparity_graph_marker_pub; disparity_graph(); - ros::Timer timer1; + rclcpp::TimerBase::SharedPtr timer1; double angle_tol, displacement_tol; bool first; bool got_cam_info; double fx_,fy_,cx_,cy_,baseline_,downsample_scale; unsigned int width_,height_; - ros::Subscriber cam_info_sub_; - boost::mutex io_mutex; - message_filters::Subscriber disp_fg_sub_, disp_bg_sub_; + //ros::Subscriber cam_info_sub_; + rclcpp::Subscription::SharedPtr cam_info_sub_; + //boost::mutex io_mutex; + std::mutex io_mutex; + message_filters::Subscriber disp_fg_sub_, disp_bg_sub_; typedef message_filters::sync_policies::ExactTime ExactPolicy; typedef message_filters::Synchronizer ExactSync; - boost::shared_ptr exact_sync_; - void getCamInfo(const sensor_msgs::CameraInfo::ConstPtr &msg_info); - bool isStateValidDepth_pose(geometry_msgs::PoseStamped checked_state, double thresh, double& occupancy); - bool getStateCost(geometry_msgs::Pose checked_state, double &cost); + std::shared_ptr exact_sync_; + void getCamInfo(const sensor_msgs::msg::CameraInfo::ConstSharedPtr &msg_info); + bool isStateValidDepth_pose(geometry_msgs::msg::PoseStamped checked_state, double thresh, double& occupancy); + bool getStateCost(geometry_msgs::msg::Pose checked_state, double &cost); //TEST PCD PointCloud pcd_checked_states; - void pcd_test(const ros::TimerEvent &event); + rclcpp::TimerBase::SharedPtr pcd_test_timer; + rclcpp::TimerBase::SharedPtr pcd_test3_timer; + rclcpp::TimerBase::SharedPtr pcd_test4_timer; + + void pcd_test(); //void pcd_test2(const ros::TimerEvent &event); - void pcd_test3(const ros::TimerEvent& event); - void pcd_test4(const ros::TimerEvent &event); - void clear_graph(void) { boost::mutex::scoped_lock lock(io_mutex); disp_graph.clear(); first = true; ROS_ERROR_STREAM("<<< DISP GRAPH CLEARED >>>"); }; - ros::Publisher pcdPub, occPub_; + void pcd_test3(); + void pcd_test4(); + void clear_graph() { std::lock_guard lock(io_mutex); disp_graph.clear(); first = true; RCLCPP_ERROR(this->get_logger(), "<<< DISP GRAPH CLEARED >>>"); }; + //ros::Publisher pcdPub, occPub_; + rclcpp::Publisher::SharedPtr pcdPub, occPub_; //nav_msgs::OccupancyGrid occ_map; - ros::Publisher expansion_poly_pub; + //ros::Publisher expansion_poly_pub; + rclcpp::Publisher::SharedPtr expansion_poly_pub; float orig_z; }; diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/src/disparity_graph.cpp b/ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/src/disparity_graph.cpp index 39415db72..cddf6399b 100644 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/src/disparity_graph.cpp +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/src/disparity_graph.cpp @@ -27,23 +27,36 @@ using namespace nabla::disparity_graph; -disparity_graph::disparity_graph() { - ros::NodeHandle priv_nh("~/disparity_graph"); - ros::NodeHandle global_nh("/oa"); - graph_size = 10; - angle_tol = /*cos*/(30.0); - displacement_tol = 01.5; +disparity_graph::disparity_graph(const rclcpp::NodeOptions & options) +: Node("disparity_graph", options) +{ + //ros::NodeHandle priv_nh("~/disparity_graph"); + //ros::NodeHandle global_nh("/oa"); + //graph_size = 10; + //angle_tol = /*cos*/(30.0); + //displacement_tol = 01.5; + this->declare_parameter("graph_size", 10); + this->declare_parameter("angle_tolerance", 30.0); + this->declare_parameter("displacement_tolerance", 1.5); + + graph_size = this->get_parameter("graph_size").as_int(); + angle_tol = this->get_parameter("angle_tolerance").as_double() * M_PI / 180.0; + displacement_tol = this->get_parameter("displacement_tolerance").as_double(); + first = true; got_cam_info = false; fixed_frame = "world"; stabilized_frame = "base_frame_stabilized"; - disparity_graph_marker_pub = priv_nh.advertise("disparity_marker", 10); + + //disparity_graph_marker_pub = priv_nh.advertise("disparity_marker", 10); + disparity_graph_marker_pub = this->create_publisher("disparity_marker", 10); + marker.header.frame_id = fixed_frame; marker.header.stamp = ros::Time::now(); marker.ns = "disparityGraph"; marker.id = 0; - marker.type = visualization_msgs::Marker::ARROW; - marker.action = visualization_msgs::Marker::ADD; + marker.type = visualization_msgs::msg::Marker::ARROW; + marker.action = visualization_msgs::msg::Marker::ADD; marker.pose.position.x = 1; marker.pose.position.y = 1; marker.pose.position.z = 1; @@ -61,33 +74,51 @@ disparity_graph::disparity_graph() { //downsample_scale =4.0; //baseline_ = 0.5576007548439765; - global_nh.param("baseline", baseline_, 0.10);//0.5576007548439765; - global_nh.param("downsample_scale", downsample_scale, 1.0); - global_nh.param("low_occ_thresh", thresh_, 0.9); - int igraph_size = graph_size; - priv_nh.param("graph_size", igraph_size, igraph_size); - graph_size = igraph_size; - priv_nh.param("displacement_tolerance", displacement_tol, displacement_tol); - priv_nh.param("angle_tolerance", angle_tol, angle_tol); - angle_tol = angle_tol * M_PI/180.0; - - ROS_ERROR("disparity_graph NS: %s",priv_nh.getNamespace().c_str()); + + //global_nh.param("baseline", baseline_, 0.10);//0.5576007548439765; + //global_nh.param("downsample_scale", downsample_scale, 1.0); + //global_nh.param("low_occ_thresh", thresh_, 0.9); + this->declare_parameter("baseline", 0.10); + this->declare_parameter("downsample_scale", 1.0); + this->declare_parameter("low_occ_thresh", 0.9); + + //int igraph_size = graph_size; + //priv_nh.param("graph_size", igraph_size, igraph_size); + //graph_size = igraph_size; + //priv_nh.param("displacement_tolerance", displacement_tol, displacement_tol); + //priv_nh.param("angle_tolerance", angle_tol, angle_tol); + + //angle_tol = angle_tol * M_PI/180.0; + + //graph_size = this->get_parameter("graph_size").as_int(); + //angle_tol = this->get_parameter("angle_tolerance").as_double() * M_PI / 180.0; + //displacement_tol = this->get_parameter("displacement_tolerance").as_double(); + baseline_ = this->get_parameter("baseline").as_double(); + downsample_scale = this->get_parameter("downsample_scale").as_double(); + thresh_ = this->get_parameter("low_occ_thresh").as_double(); + + RCLCPP_ERROR(this->get_logger(), "disparity_graph NS: %s",priv_nh.getNamespace().c_str()); // right_info_sub_.subscribe(nh, right_info_topic, 1); - disp_fg_sub_.subscribe(priv_nh,"/ceye/left/expanded_disparity_fg",1); - disp_bg_sub_.subscribe(priv_nh,"/ceye/left/expanded_disparity_bg",1); - - exact_sync_.reset(new ExactSync(ExactPolicy(5),disp_fg_sub_,disp_bg_sub_) ); - exact_sync_->registerCallback(boost::bind(&disparity_graph::disp_cb, this, _1, _2)); - cam_info_sub_ = priv_nh.subscribe("/nerian_sp1/right/camera_info", 1,&disparity_graph::getCamInfo,this); - timer1 = priv_nh.createTimer(ros::Duration(0.20), &disparity_graph::pcd_test4,this); - + disp_fg_sub_.subscribe(this,"/ceye/left/expanded_disparity_fg", rclcpp::QoS(5).get_rmw_qos_profile()); + disp_bg_sub_.subscribe(this ,"/ceye/left/expanded_disparity_bg", rclcpp::QoS(5).get_rmw_qos_profile()); + + //exact_sync_.reset(new ExactSync(ExactPolicy(5),disp_fg_sub_,disp_bg_sub_) ); + //exact_sync_->registerCallback(boost::bind(&disparity_graph::disp_cb, this, _1, _2)); + exact_sync_ = std::make_shared(ExactPolicy(5), disp_fg_sub_, disp_bg_sub_); + exact_sync_->registerCallback(std::bind(&disparity_graph::disp_cb, this, std::placeholders::_1, std::placeholders::_2)); + + //cam_info_sub_ = priv_nh.subscribe("/nerian_sp1/right/camera_info", 1,&disparity_graph::getCamInfo,this); + cam_info_sub_ = this->create_subscription("/nerian_sp1/right/camera_info", 10, std::bind(&disparity_graph::getCamInfo, this, std::placeholders::_1)); + //timer1 = priv_nh.createTimer(ros::Duration(0.20), &disparity_graph::pcd_test4,this); + timer1 = this->create_wall_timer(std::chrono::milliseconds(200), std::bind(&disparity_graph::pcd_test4, this)); + pcd_checked_states.header.frame_id=fixed_frame; pcd_checked_states.height = 1; pcd_checked_states.width =0; pcd_checked_states.is_dense = false; - pcdPub = priv_nh.advertise("/graph_pcd",10); - expansion_poly_pub = priv_nh.advertise("/expansion/graph_occ_marker", 10); + pcdPub = this->create_publisher("/graph_pcd",10); + expansion_poly_pub = this->create_publisher("/expansion/graph_occ_marker", 10); /* //Occupancy Map @@ -106,20 +137,20 @@ disparity_graph::disparity_graph() { } void disparity_graph::pcd_test(const ros::TimerEvent& event) { - if (pcdPub.getNumSubscribers() == 0) { + if (pcdPub->get_subscription_count() == 0) { return; } for(uint i =0; i lock(io_mutex); //cv_depth_fg = cv_bridge::toCvCopy(disp_graph.at(i).Im_fg,sensor_msgs::image_encodings::TYPE_32FC1); //cv_depth_bg = cv_bridge::toCvCopy(disp_graph.at(i).Im_bg,sensor_msgs::image_encodings::TYPE_32FC1); w2s_tf = disp_graph.at(i).w2s_tf; @@ -287,9 +318,9 @@ void disparity_graph::pcd_test4(const ros::TimerEvent& event) { pcd_checked_states.clear(); pcl::fromPCLPointCloud2(*cloud_filtered,pcd_checked_states);*/ - sensor_msgs::PointCloud2 cloud_PC2; + sensor_msgs::msg::PointCloud2 cloud_PC2; pcl::toROSMsg(pcd_checked_states,cloud_PC2); - pcdPub.publish(cloud_PC2); + pcdPub->publish(cloud_PC2); pcd_checked_states.points.clear(); pcd_checked_states.width = 0; } @@ -330,10 +361,10 @@ void disparity_graph::pcd_test2(const ros::TimerEvent& event) { void disparity_graph::pcd_test3(const ros::TimerEvent& event) { /* create expansion PCD */ - if (expansion_poly_pub.getNumSubscribers() > 0 ) { + if (expansion_poly_pub->get_subscription_count() > 0 ) { cv_bridge::CvImagePtr cv_depth_fg,cv_depth_bg; - visualization_msgs::MarkerArray marker_arr; - visualization_msgs::Marker marker; + visualization_msgs::msg::MarkerArray marker_arr; + visualization_msgs::msg::Marker marker; //marker.header = msg_disp->header; marker.ns = "occ_space"; marker.id = 0; @@ -344,7 +375,10 @@ void disparity_graph::pcd_test3(const ros::TimerEvent& event) { marker.pose.position.y =0;//xyz_centroid[1]; marker.pose.position.z =0;//xyz_centroid[2]; - tf::quaternionTFToMsg(tf::createQuaternionFromRPY(0.0,0.0,0.0), marker.pose.orientation); + //tf::quaternionTFToMsg(tf::createQuaternionFromRPY(0.0,0.0,0.0), marker.pose.orientation); + tf2::Quaternion q; + q.setRPY(0.0, 0.0, 0.0); + marker.pose.orientation = tf2::toMsg(q); // marker.pose.orientation.w = 1; float marker_scale = 0.1; marker.scale.x = marker_scale; @@ -369,7 +403,7 @@ void disparity_graph::pcd_test3(const ros::TimerEvent& event) { float depth_diff = fabs(depth_value-prev_depth); prev_depth = depth_value; if (!std::isnan(depth_value) && !std::isinf(depth_value) && depth_diff < 0.5) { - geometry_msgs::Point gm_p; + geometry_msgs::msg::Point gm_p; gm_p.x = ( u - cx_ ) * depth_value / fx_; gm_p.y = ( v - cy_ ) * depth_value / fy_; gm_p.z = depth_value; @@ -389,33 +423,39 @@ void disparity_graph::pcd_test3(const ros::TimerEvent& event) { } } marker_arr.markers.push_back(marker); - expansion_poly_pub.publish(marker_arr); + expansion_poly_pub->publish(marker_arr); } } -void disparity_graph::disp_cb(const sensor_msgs::Image::ConstPtr &disp_fg, - const sensor_msgs::Image::ConstPtr &disp_bg) { +void disparity_graph::disp_cb(const sensor_msgs::msg::Image::ConstSharedPtr &disp_fg, + const sensor_msgs::msg::Image::ConstSharedPtr &disp_bg) { // ROS_INFO("Recvd Disp,size %d",disp_graph.size()); - ROS_INFO("Recvd disp stamp: %lf",ros::Duration(ros::Time::now() - disp_fg->header.stamp).toSec()); + RCLCPP_INFO(this->get_logger(), "Recvd disp stamp: %lf", (this->now() - disp_fg->header.stamp).seconds()); sensor_frame = disp_fg->header.frame_id; - listener.waitForTransform(sensor_frame, - fixed_frame, - disp_fg->header.stamp, ros::Duration(0.10)); +// listener.waitForTransform(sensor_frame, +// fixed_frame, +// disp_fg->header.stamp, ros::Duration(0.10)); +// tf::StampedTransform transform; + + geometry_msgs::msg::TransformStamped transform_stamped; - tf::StampedTransform transform; try { - listener.lookupTransform(sensor_frame, - fixed_frame, - disp_fg->header.stamp, transform); - } catch (tf::TransformException &ex) { - ROS_ERROR("DG disp_cb %s",ex.what()); + // listener.lookupTransform(sensor_frame, + // fixed_frame, + // disp_fg->header.stamp, transform); + transform_stamped = tf_buffer_->lookupTransform( + fixed_frame, sensor_frame, + tf2_ros::fromMsg(disp_fg->header.stamp), + tf2::durationFromSec(0.10)); + } catch (tf2::TransformException &ex) { + RCLCPP_ERROR(this->get_logger(), "DG disp_cb %s",ex.what()); // ros::Duration(1.0).sleep(); // continue; return; } - boost::mutex::scoped_lock lock(io_mutex); + std::lock_guard lock(io_mutex); if (first) { first = false; node n; @@ -423,20 +463,21 @@ void disparity_graph::disp_cb(const sensor_msgs::Image::ConstPtr &disp_fg, n.Im_fg = cv_bridge::toCvCopy(disp_fg,sensor_msgs::image_encodings::TYPE_32FC1); n.Im_bg = cv_bridge::toCvCopy(disp_bg,sensor_msgs::image_encodings::TYPE_32FC1); } catch (std::exception ex) { - ROS_ERROR("\n\n\n\n\n\t\t\tDEQUE ERR\n\n\n\n: %s",ex.what()); + RCLCPP_ERROR(this->get_logger(),"\n\n\n\n\n\t\t\tDEQUE ERR\n\n\n\n: %s",ex.what()); return; } // n.Im_fg = *disp_fg; // n.Im_bg = *disp_bg; n.header = disp_bg->header; - n.w2s_tf= transform; - n.s2w_tf= transform.inverse(); + //n.w2s_tf= transform; + n.w2s_tf= tf2::transformToEigen(transform_stamped.transform); + n.s2w_tf= n.w2s_tf.inverse(); disp_graph.push_front(n); disp_graph.push_back(n); } else { //Check for similar tf nodes //tf::Vector3 curr_a =transform.inverse().getRotation().normalize().getAxis().normalize(); - tf::Vector3 curr_p =transform.inverse().getOrigin(); + tf2::Vector3 curr_p =tf2::transformToEigen(transform_stamped.transform).inverse().translation(); std::deque::iterator it,end; it = disp_graph.begin(); end = disp_graph.end()-1; @@ -453,7 +494,7 @@ void disparity_graph::disp_cb(const sensor_msgs::Image::ConstPtr &disp_fg, n.Im_fg = cv_bridge::toCvCopy(disp_fg,sensor_msgs::image_encodings::TYPE_32FC1); n.Im_bg = cv_bridge::toCvCopy(disp_bg,sensor_msgs::image_encodings::TYPE_32FC1); } catch(std::exception ex) { - ROS_ERROR("\n\n\n\n\n\t\t\tDEQUE ERR\n\n\n\n: %s",ex.what()); + RCLCPP_ERROR(this->get_logger(), "\n\n\n\n\n\t\t\tDEQUE ERR\n\n\n\n: %s",ex.what()); return; } // n.Im_fg = *disp_fg; @@ -463,7 +504,7 @@ void disparity_graph::disp_cb(const sensor_msgs::Image::ConstPtr &disp_fg, n.s2w_tf= transform.inverse(); //pose in graph is too close in angle to the current graph if (fabs(diff_a)>=angle_tol || fabs(diff_p)>displacement_tol) { - ROS_ERROR("Adding new node size %d", (int)disp_graph.size()); + RCLCPP_ERROR(this->get_logger(), "Adding new node size %d", (int)disp_graph.size()); if (disp_graph.size() >= graph_size) { disp_graph.erase(end); } diff --git a/simulation/gaz_sim.py b/simulation/gaz_sim.py new file mode 100644 index 000000000..d5ae8a09b --- /dev/null +++ b/simulation/gaz_sim.py @@ -0,0 +1,101 @@ +#!/usr/bin/env python3 + +import sys +import time +import dronekit +import os +import math +import gz.math7 + +from gz.msgs10.boolean_pb2 import Boolean +from gz.msgs10.header_pb2 import Header +from gz.msgs10.pose_pb2 import Pose +from gz.msgs10.quaternion_pb2 import Quaternion +from gz.msgs10.vector3d_pb2 import Vector3d +from gz.transport13 import Node + +from AscentAeroSystems.ascent_sitl_launch_tool import AscentSitlLaunchTool + +script_dir = os.path.dirname(os.path.realpath(__file__)) + "/AscentAeroSystems" +sitl_tool = AscentSitlLaunchTool(script_dir) +sitl_tool.launch() + +world_name = "dron" +model_name = "drone" +#world_name = "empty" +#model_name = "box" +connection = "udp:127.0.0.1:14552" +timeout_ms = 9999 +update_rate_hz = 30.0 +pose_offset_x = 0.0 +pose_offset_y = 0.0 +pose_offset_z = 0.17 +def transform_ardupilot_to_gazebo(pose): + wldAToWldG = gz.math7.Pose3d(0, 0, 0, -math.pi, 0, 0) + bdyAToBdyG = gz.math7.Pose3d(0, 0, 0, -math.pi, 0, 0) + wldGToBdyG = wldAToWldG.inverse() * pose * bdyAToBdyG + return wldGToBdyG +def main(): + connection_string = "udp:127.0.0.1:14552" + print("Connecting to vehicle on: {}".format(connection_string)) + vehicle = dronekit.connect(connection_string, wait_ready=True, baud=57600) + print("Vehicle connected: {}".format(vehicle)) + try: + # create a transport node + node = Node() + # set service details + service = "/world/{}/set_pose".format(world_name) + reqtype = "gz.msgs10.Pose" + reptype = "gz.msgs10.Boolean" + timeout = 30 + # configure update loop + now_s = time.time() + start_time_s = now_s + # update_rate_hz = 1.0 + update_period_s = 1.0 / update_rate_hz + last_update_time_s = now_s + sim_time_s = now_s - start_time_s + while True: + now_s = time.time() + time_s = now_s - start_time_s + if now_s - last_update_time_s >= update_period_s: + last_update_time_s = now_s + # check we have valid data + if ((vehicle.location.local_frame.north is not None) + and (vehicle.attitude.roll is not None)): + # ardupilot pose + wldAToBdyA = gz.math7.Pose3d( + vehicle.location.local_frame.north, + vehicle.location.local_frame.east, + vehicle.location.local_frame.down, + vehicle.attitude.roll, + vehicle.attitude.pitch, + vehicle.attitude.yaw) + # ignition pose + wldGToBdyG = transform_ardupilot_to_gazebo(wldAToBdyA) + print("[{}] ned_xyz: {:.3f} {:.3f} {:.3f}, ned_rpy {:.3f} {:.3f} {:.3f}".format( + sim_time_s, wldAToBdyA.x(), wldAToBdyA.y(), wldAToBdyA.z(), + wldAToBdyA.roll(), wldAToBdyA.pitch(), wldAToBdyA.yaw())) + # create request message + vector3d_msg = Vector3d() + vector3d_msg.x = wldGToBdyG.x() + pose_offset_x + vector3d_msg.y = wldGToBdyG.y() + pose_offset_y + vector3d_msg.z = wldGToBdyG.z() + pose_offset_z + quat_msg = Quaternion() + quat_msg.x = wldGToBdyG.rot().x() + quat_msg.y = wldGToBdyG.rot().y() + quat_msg.z = wldGToBdyG.rot().z() + quat_msg.w = wldGToBdyG.rot().w() + pose_msg = Pose() + pose_msg.name = model_name + pose_msg.position.CopyFrom(vector3d_msg) + pose_msg.orientation.CopyFrom(quat_msg) + # submit request (blocking) + result = node.request(service, pose_msg, Pose, Boolean, timeout_ms) + if not result: + print("[{:.1f}] update failed".format(time_s)) + except KeyboardInterrupt: + pass + vehicle.close() +if __name__ == "__main__": + main() From 7c5ff3c10e8e728410e6030aa8cf9af8e3dd7846 Mon Sep 17 00:00:00 2001 From: Robbi Exley Date: Wed, 31 Jul 2024 11:40:18 -0400 Subject: [PATCH 03/50] update format package.xml --- .../autonomy/planning/local/disparity_expansion/package.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/package.xml b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/package.xml index 432b7d484..4740c6007 100644 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/package.xml +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/package.xml @@ -1,5 +1,5 @@ - + disparity_expansion 0.0.0 The disparity_expansion package From 8b7b3167e83829f489f9996503204683bafb2d93 Mon Sep 17 00:00:00 2001 From: Robbi Exley Date: Wed, 31 Jul 2024 15:21:59 -0400 Subject: [PATCH 04/50] Updated Disparity Expansion Cmake/Package.xml --- docker/Dockerfile | 11 + install/disparity_expansion/.catkin | 0 .../colcon-core/packages/disparity_expansion | 1 + .../share/disparity_expansion/hook/path.dsv | 1 + .../share/disparity_expansion/hook/path.ps1 | 3 + .../share/disparity_expansion/hook/path.sh | 3 + .../hook/pkg_config_path.dsv | 1 + .../hook/pkg_config_path.ps1 | 3 + .../hook/pkg_config_path.sh | 3 + .../hook/pkg_config_path_multiarch.dsv | 1 + .../hook/pkg_config_path_multiarch.ps1 | 3 + .../hook/pkg_config_path_multiarch.sh | 3 + .../hook/pythonscriptspath.dsv | 1 + .../hook/pythonscriptspath.ps1 | 3 + .../hook/pythonscriptspath.sh | 3 + .../hook/ros_package_path.dsv | 1 + .../hook/ros_package_path.ps1 | 3 + .../hook/ros_package_path.sh | 3 + .../share/disparity_expansion/package.bash | 31 + .../share/disparity_expansion/package.dsv | 15 + .../share/disparity_expansion/package.ps1 | 119 + .../share/disparity_expansion/package.sh | 90 + .../share/disparity_expansion/package.zsh | 42 + .../disparity_expansion/command.log | 6 + .../disparity_expansion/stderr.log | 18 + .../disparity_expansion/stdout.log | 44 + .../disparity_expansion/stdout_stderr.log | 62 + .../disparity_expansion/streams.log | 68 + log/build_2024-07-31_12-58-12/events.log | 280 ++ log/build_2024-07-31_12-58-12/logger_all.log | 2688 +++++++++++++++++ log/latest_build | 2 +- .../local/disparity_expansion/CMakeLists.txt | 15 +- .../launch/disparity_expansion.launch | 10 - .../launch/disparity_expansion.xml | 10 + .../launch/disparity_gazebo.launch | 26 +- ...disparity_pcd.launch => disparity_pcd.xml} | 12 +- .../local/disparity_expansion/package.xml | 3 +- 37 files changed, 3555 insertions(+), 33 deletions(-) create mode 100644 install/disparity_expansion/.catkin create mode 100644 install/disparity_expansion/share/colcon-core/packages/disparity_expansion create mode 100644 install/disparity_expansion/share/disparity_expansion/hook/path.dsv create mode 100644 install/disparity_expansion/share/disparity_expansion/hook/path.ps1 create mode 100644 install/disparity_expansion/share/disparity_expansion/hook/path.sh create mode 100644 install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path.dsv create mode 100644 install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path.ps1 create mode 100644 install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path.sh create mode 100644 install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path_multiarch.dsv create mode 100644 install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path_multiarch.ps1 create mode 100644 install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path_multiarch.sh create mode 100644 install/disparity_expansion/share/disparity_expansion/hook/pythonscriptspath.dsv create mode 100644 install/disparity_expansion/share/disparity_expansion/hook/pythonscriptspath.ps1 create mode 100644 install/disparity_expansion/share/disparity_expansion/hook/pythonscriptspath.sh create mode 100644 install/disparity_expansion/share/disparity_expansion/hook/ros_package_path.dsv create mode 100644 install/disparity_expansion/share/disparity_expansion/hook/ros_package_path.ps1 create mode 100644 install/disparity_expansion/share/disparity_expansion/hook/ros_package_path.sh create mode 100644 install/disparity_expansion/share/disparity_expansion/package.bash create mode 100644 install/disparity_expansion/share/disparity_expansion/package.dsv create mode 100644 install/disparity_expansion/share/disparity_expansion/package.ps1 create mode 100644 install/disparity_expansion/share/disparity_expansion/package.sh create mode 100644 install/disparity_expansion/share/disparity_expansion/package.zsh create mode 100644 log/build_2024-07-31_12-58-12/disparity_expansion/command.log create mode 100644 log/build_2024-07-31_12-58-12/disparity_expansion/stderr.log create mode 100644 log/build_2024-07-31_12-58-12/disparity_expansion/stdout.log create mode 100644 log/build_2024-07-31_12-58-12/disparity_expansion/stdout_stderr.log create mode 100644 log/build_2024-07-31_12-58-12/disparity_expansion/streams.log create mode 100644 log/build_2024-07-31_12-58-12/events.log create mode 100644 log/build_2024-07-31_12-58-12/logger_all.log delete mode 100644 ros_ws/src/robot/autonomy/planning/local/disparity_expansion/launch/disparity_expansion.launch create mode 100644 ros_ws/src/robot/autonomy/planning/local/disparity_expansion/launch/disparity_expansion.xml rename ros_ws/src/robot/autonomy/planning/local/disparity_expansion/launch/{disparity_pcd.launch => disparity_pcd.xml} (51%) diff --git a/docker/Dockerfile b/docker/Dockerfile index 37a543b49..1adcf428f 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -46,6 +46,17 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ kmod lsof libfuse-dev iproute2 tcpdump xterm \ python3-dev python3-opencv python3-wxgtk4.0 python3-pip python3-matplotlib python3-lxml python3-pygame \ && rm -rf /var/lib/apt/lists/* +# Package dependencies +# perform ROS dependency installation for our workspace. +#COPY ros_ws/src /tmp/ros_ws/src +#RUN rosdep install --from-paths /tmp/ros_ws/src --ignore-src -r -y && rm -rf /tmp/ros_ws + +# Install Gazebo Harmonic +RUN apt-get update && apt-get install -y lsb-release gnupg +RUN curl https://packages.osrfoundation.org/gazebo.gpg --output /usr/share/keyrings/pkgs-osrf-archive-keyring.gpg +RUN echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/pkgs-osrf-archive-keyring.gpg] http://packages.osrfoundation.org/gazebo/ubuntu-stable $(lsb_release -cs) main" | tee /etc/apt/sources.list.d/gazebo-stable.list > /dev/null +RUN apt-get update +RUN apt-get install -y gz-harmonic # package vdb_mapping # Build and install patched version of OpenVDB (see https://github.com/SteveMacenski/spatio_temporal_voxel_layer/issues/232). Hopefully this gets fixed in the future. diff --git a/install/disparity_expansion/.catkin b/install/disparity_expansion/.catkin new file mode 100644 index 000000000..e69de29bb diff --git a/install/disparity_expansion/share/colcon-core/packages/disparity_expansion b/install/disparity_expansion/share/colcon-core/packages/disparity_expansion new file mode 100644 index 000000000..d0b404c3e --- /dev/null +++ b/install/disparity_expansion/share/colcon-core/packages/disparity_expansion @@ -0,0 +1 @@ +OpenCV:PCL:cv_bridge:image_geometry:image_transport:message_filters:pcl_conversions:rclcpp:sensor_msgs:std_msgs:stereo_msgs:tf2:visualization_msgs \ No newline at end of file diff --git a/install/disparity_expansion/share/disparity_expansion/hook/path.dsv b/install/disparity_expansion/share/disparity_expansion/hook/path.dsv new file mode 100644 index 000000000..95435e0c2 --- /dev/null +++ b/install/disparity_expansion/share/disparity_expansion/hook/path.dsv @@ -0,0 +1 @@ +prepend-non-duplicate;PATH;bin diff --git a/install/disparity_expansion/share/disparity_expansion/hook/path.ps1 b/install/disparity_expansion/share/disparity_expansion/hook/path.ps1 new file mode 100644 index 000000000..0b980efa4 --- /dev/null +++ b/install/disparity_expansion/share/disparity_expansion/hook/path.ps1 @@ -0,0 +1,3 @@ +# generated from colcon_powershell/shell/template/hook_prepend_value.ps1.em + +colcon_prepend_unique_value PATH "$env:COLCON_CURRENT_PREFIX\bin" diff --git a/install/disparity_expansion/share/disparity_expansion/hook/path.sh b/install/disparity_expansion/share/disparity_expansion/hook/path.sh new file mode 100644 index 000000000..295266d6f --- /dev/null +++ b/install/disparity_expansion/share/disparity_expansion/hook/path.sh @@ -0,0 +1,3 @@ +# generated from colcon_core/shell/template/hook_prepend_value.sh.em + +_colcon_prepend_unique_value PATH "$COLCON_CURRENT_PREFIX/bin" diff --git a/install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path.dsv b/install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path.dsv new file mode 100644 index 000000000..858288c51 --- /dev/null +++ b/install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path.dsv @@ -0,0 +1 @@ +prepend-non-duplicate;PKG_CONFIG_PATH;lib/pkgconfig diff --git a/install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path.ps1 b/install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path.ps1 new file mode 100644 index 000000000..5b098df4d --- /dev/null +++ b/install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path.ps1 @@ -0,0 +1,3 @@ +# generated from colcon_powershell/shell/template/hook_prepend_value.ps1.em + +colcon_prepend_unique_value PKG_CONFIG_PATH "$env:COLCON_CURRENT_PREFIX\lib/pkgconfig" diff --git a/install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path.sh b/install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path.sh new file mode 100644 index 000000000..e452798d4 --- /dev/null +++ b/install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path.sh @@ -0,0 +1,3 @@ +# generated from colcon_core/shell/template/hook_prepend_value.sh.em + +_colcon_prepend_unique_value PKG_CONFIG_PATH "$COLCON_CURRENT_PREFIX/lib/pkgconfig" diff --git a/install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path_multiarch.dsv b/install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path_multiarch.dsv new file mode 100644 index 000000000..720ef6488 --- /dev/null +++ b/install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path_multiarch.dsv @@ -0,0 +1 @@ +prepend-non-duplicate;PKG_CONFIG_PATH;lib/x86_64-linux-gnu/pkgconfig diff --git a/install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path_multiarch.ps1 b/install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path_multiarch.ps1 new file mode 100644 index 000000000..498c167b8 --- /dev/null +++ b/install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path_multiarch.ps1 @@ -0,0 +1,3 @@ +# generated from colcon_powershell/shell/template/hook_prepend_value.ps1.em + +colcon_prepend_unique_value PKG_CONFIG_PATH "$env:COLCON_CURRENT_PREFIX\lib/x86_64-linux-gnu/pkgconfig" diff --git a/install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path_multiarch.sh b/install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path_multiarch.sh new file mode 100644 index 000000000..ed2d31792 --- /dev/null +++ b/install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path_multiarch.sh @@ -0,0 +1,3 @@ +# generated from colcon_core/shell/template/hook_prepend_value.sh.em + +_colcon_prepend_unique_value PKG_CONFIG_PATH "$COLCON_CURRENT_PREFIX/lib/x86_64-linux-gnu/pkgconfig" diff --git a/install/disparity_expansion/share/disparity_expansion/hook/pythonscriptspath.dsv b/install/disparity_expansion/share/disparity_expansion/hook/pythonscriptspath.dsv new file mode 100644 index 000000000..95435e0c2 --- /dev/null +++ b/install/disparity_expansion/share/disparity_expansion/hook/pythonscriptspath.dsv @@ -0,0 +1 @@ +prepend-non-duplicate;PATH;bin diff --git a/install/disparity_expansion/share/disparity_expansion/hook/pythonscriptspath.ps1 b/install/disparity_expansion/share/disparity_expansion/hook/pythonscriptspath.ps1 new file mode 100644 index 000000000..0b980efa4 --- /dev/null +++ b/install/disparity_expansion/share/disparity_expansion/hook/pythonscriptspath.ps1 @@ -0,0 +1,3 @@ +# generated from colcon_powershell/shell/template/hook_prepend_value.ps1.em + +colcon_prepend_unique_value PATH "$env:COLCON_CURRENT_PREFIX\bin" diff --git a/install/disparity_expansion/share/disparity_expansion/hook/pythonscriptspath.sh b/install/disparity_expansion/share/disparity_expansion/hook/pythonscriptspath.sh new file mode 100644 index 000000000..295266d6f --- /dev/null +++ b/install/disparity_expansion/share/disparity_expansion/hook/pythonscriptspath.sh @@ -0,0 +1,3 @@ +# generated from colcon_core/shell/template/hook_prepend_value.sh.em + +_colcon_prepend_unique_value PATH "$COLCON_CURRENT_PREFIX/bin" diff --git a/install/disparity_expansion/share/disparity_expansion/hook/ros_package_path.dsv b/install/disparity_expansion/share/disparity_expansion/hook/ros_package_path.dsv new file mode 100644 index 000000000..86df3c371 --- /dev/null +++ b/install/disparity_expansion/share/disparity_expansion/hook/ros_package_path.dsv @@ -0,0 +1 @@ +prepend-non-duplicate;ROS_PACKAGE_PATH;share diff --git a/install/disparity_expansion/share/disparity_expansion/hook/ros_package_path.ps1 b/install/disparity_expansion/share/disparity_expansion/hook/ros_package_path.ps1 new file mode 100644 index 000000000..541e60204 --- /dev/null +++ b/install/disparity_expansion/share/disparity_expansion/hook/ros_package_path.ps1 @@ -0,0 +1,3 @@ +# generated from colcon_powershell/shell/template/hook_prepend_value.ps1.em + +colcon_prepend_unique_value ROS_PACKAGE_PATH "$env:COLCON_CURRENT_PREFIX\share" diff --git a/install/disparity_expansion/share/disparity_expansion/hook/ros_package_path.sh b/install/disparity_expansion/share/disparity_expansion/hook/ros_package_path.sh new file mode 100644 index 000000000..e142311ad --- /dev/null +++ b/install/disparity_expansion/share/disparity_expansion/hook/ros_package_path.sh @@ -0,0 +1,3 @@ +# generated from colcon_core/shell/template/hook_prepend_value.sh.em + +_colcon_prepend_unique_value ROS_PACKAGE_PATH "$COLCON_CURRENT_PREFIX/share" diff --git a/install/disparity_expansion/share/disparity_expansion/package.bash b/install/disparity_expansion/share/disparity_expansion/package.bash new file mode 100644 index 000000000..617eaab32 --- /dev/null +++ b/install/disparity_expansion/share/disparity_expansion/package.bash @@ -0,0 +1,31 @@ +# generated from colcon_bash/shell/template/package.bash.em + +# This script extends the environment for this package. + +# a bash script is able to determine its own path if necessary +if [ -z "$COLCON_CURRENT_PREFIX" ]; then + # the prefix is two levels up from the package specific share directory + _colcon_package_bash_COLCON_CURRENT_PREFIX="$(builtin cd "`dirname "${BASH_SOURCE[0]}"`/../.." > /dev/null && pwd)" +else + _colcon_package_bash_COLCON_CURRENT_PREFIX="$COLCON_CURRENT_PREFIX" +fi + +# function to source another script with conditional trace output +# first argument: the path of the script +# additional arguments: arguments to the script +_colcon_package_bash_source_script() { + if [ -f "$1" ]; then + if [ -n "$COLCON_TRACE" ]; then + echo "# . \"$1\"" + fi + . "$@" + else + echo "not found: \"$1\"" 1>&2 + fi +} + +# source sh script of this package +_colcon_package_bash_source_script "$_colcon_package_bash_COLCON_CURRENT_PREFIX/share/disparity_expansion/package.sh" + +unset _colcon_package_bash_source_script +unset _colcon_package_bash_COLCON_CURRENT_PREFIX diff --git a/install/disparity_expansion/share/disparity_expansion/package.dsv b/install/disparity_expansion/share/disparity_expansion/package.dsv new file mode 100644 index 000000000..e94fb59fa --- /dev/null +++ b/install/disparity_expansion/share/disparity_expansion/package.dsv @@ -0,0 +1,15 @@ +source;share/disparity_expansion/hook/path.ps1 +source;share/disparity_expansion/hook/path.dsv +source;share/disparity_expansion/hook/path.sh +source;share/disparity_expansion/hook/pythonscriptspath.ps1 +source;share/disparity_expansion/hook/pythonscriptspath.dsv +source;share/disparity_expansion/hook/pythonscriptspath.sh +source;share/disparity_expansion/hook/ros_package_path.ps1 +source;share/disparity_expansion/hook/ros_package_path.dsv +source;share/disparity_expansion/hook/ros_package_path.sh +source;share/disparity_expansion/hook/pkg_config_path.ps1 +source;share/disparity_expansion/hook/pkg_config_path.dsv +source;share/disparity_expansion/hook/pkg_config_path.sh +source;share/disparity_expansion/hook/pkg_config_path_multiarch.ps1 +source;share/disparity_expansion/hook/pkg_config_path_multiarch.dsv +source;share/disparity_expansion/hook/pkg_config_path_multiarch.sh diff --git a/install/disparity_expansion/share/disparity_expansion/package.ps1 b/install/disparity_expansion/share/disparity_expansion/package.ps1 new file mode 100644 index 000000000..9151dbb60 --- /dev/null +++ b/install/disparity_expansion/share/disparity_expansion/package.ps1 @@ -0,0 +1,119 @@ +# generated from colcon_powershell/shell/template/package.ps1.em + +# function to append a value to a variable +# which uses colons as separators +# duplicates as well as leading separators are avoided +# first argument: the name of the result variable +# second argument: the value to be prepended +function colcon_append_unique_value { + param ( + $_listname, + $_value + ) + + # get values from variable + if (Test-Path Env:$_listname) { + $_values=(Get-Item env:$_listname).Value + } else { + $_values="" + } + $_duplicate="" + # start with no values + $_all_values="" + # iterate over existing values in the variable + if ($_values) { + $_values.Split(";") | ForEach { + # not an empty string + if ($_) { + # not a duplicate of _value + if ($_ -eq $_value) { + $_duplicate="1" + } + if ($_all_values) { + $_all_values="${_all_values};$_" + } else { + $_all_values="$_" + } + } + } + } + # append only non-duplicates + if (!$_duplicate) { + # avoid leading separator + if ($_all_values) { + $_all_values="${_all_values};${_value}" + } else { + $_all_values="${_value}" + } + } + + # export the updated variable + Set-Item env:\$_listname -Value "$_all_values" +} + +# function to prepend a value to a variable +# which uses colons as separators +# duplicates as well as trailing separators are avoided +# first argument: the name of the result variable +# second argument: the value to be prepended +function colcon_prepend_unique_value { + param ( + $_listname, + $_value + ) + + # get values from variable + if (Test-Path Env:$_listname) { + $_values=(Get-Item env:$_listname).Value + } else { + $_values="" + } + # start with the new value + $_all_values="$_value" + # iterate over existing values in the variable + if ($_values) { + $_values.Split(";") | ForEach { + # not an empty string + if ($_) { + # not a duplicate of _value + if ($_ -ne $_value) { + # keep non-duplicate values + $_all_values="${_all_values};$_" + } + } + } + } + # export the updated variable + Set-Item env:\$_listname -Value "$_all_values" +} + +# function to source another script with conditional trace output +# first argument: the path of the script +# additional arguments: arguments to the script +function colcon_package_source_powershell_script { + param ( + $_colcon_package_source_powershell_script + ) + # source script with conditional trace output + if (Test-Path $_colcon_package_source_powershell_script) { + if ($env:COLCON_TRACE) { + echo ". '$_colcon_package_source_powershell_script'" + } + . "$_colcon_package_source_powershell_script" + } else { + Write-Error "not found: '$_colcon_package_source_powershell_script'" + } +} + + +# a powershell script is able to determine its own path +# the prefix is two levels up from the package specific share directory +$env:COLCON_CURRENT_PREFIX=(Get-Item $PSCommandPath).Directory.Parent.Parent.FullName + +colcon_package_source_powershell_script "$env:COLCON_CURRENT_PREFIX\share/disparity_expansion/hook/path.ps1" +colcon_package_source_powershell_script "$env:COLCON_CURRENT_PREFIX\share/disparity_expansion/hook/pythonscriptspath.ps1" +colcon_package_source_powershell_script "$env:COLCON_CURRENT_PREFIX\share/disparity_expansion/hook/ros_package_path.ps1" +colcon_package_source_powershell_script "$env:COLCON_CURRENT_PREFIX\share/disparity_expansion/hook/pkg_config_path.ps1" +colcon_package_source_powershell_script "$env:COLCON_CURRENT_PREFIX\share/disparity_expansion/hook/pkg_config_path_multiarch.ps1" + +Remove-Item Env:\COLCON_CURRENT_PREFIX diff --git a/install/disparity_expansion/share/disparity_expansion/package.sh b/install/disparity_expansion/share/disparity_expansion/package.sh new file mode 100644 index 000000000..3b38d0cd3 --- /dev/null +++ b/install/disparity_expansion/share/disparity_expansion/package.sh @@ -0,0 +1,90 @@ +# generated from colcon_core/shell/template/package.sh.em + +# This script extends the environment for this package. + +# function to prepend a value to a variable +# which uses colons as separators +# duplicates as well as trailing separators are avoided +# first argument: the name of the result variable +# second argument: the value to be prepended +_colcon_prepend_unique_value() { + # arguments + _listname="$1" + _value="$2" + + # get values from variable + eval _values=\"\$$_listname\" + # backup the field separator + _colcon_prepend_unique_value_IFS=$IFS + IFS=":" + # start with the new value + _all_values="$_value" + # workaround SH_WORD_SPLIT not being set in zsh + if [ "$(command -v colcon_zsh_convert_to_array)" ]; then + colcon_zsh_convert_to_array _values + fi + # iterate over existing values in the variable + for _item in $_values; do + # ignore empty strings + if [ -z "$_item" ]; then + continue + fi + # ignore duplicates of _value + if [ "$_item" = "$_value" ]; then + continue + fi + # keep non-duplicate values + _all_values="$_all_values:$_item" + done + unset _item + # restore the field separator + IFS=$_colcon_prepend_unique_value_IFS + unset _colcon_prepend_unique_value_IFS + # export the updated variable + eval export $_listname=\"$_all_values\" + unset _all_values + unset _values + + unset _value + unset _listname +} + +# since a plain shell script can't determine its own path when being sourced +# either use the provided COLCON_CURRENT_PREFIX +# or fall back to the build time prefix (if it exists) +_colcon_package_sh_COLCON_CURRENT_PREFIX="/root/AirStack/install/disparity_expansion" +if [ -z "$COLCON_CURRENT_PREFIX" ]; then + if [ ! -d "$_colcon_package_sh_COLCON_CURRENT_PREFIX" ]; then + echo "The build time path \"$_colcon_package_sh_COLCON_CURRENT_PREFIX\" doesn't exist. Either source a script for a different shell or set the environment variable \"COLCON_CURRENT_PREFIX\" explicitly." 1>&2 + unset _colcon_package_sh_COLCON_CURRENT_PREFIX + return 1 + fi + COLCON_CURRENT_PREFIX="$_colcon_package_sh_COLCON_CURRENT_PREFIX" +fi +unset _colcon_package_sh_COLCON_CURRENT_PREFIX + +# function to source another script with conditional trace output +# first argument: the path of the script +# additional arguments: arguments to the script +_colcon_package_sh_source_script() { + if [ -f "$1" ]; then + if [ -n "$COLCON_TRACE" ]; then + echo "# . \"$1\"" + fi + . "$@" + else + echo "not found: \"$1\"" 1>&2 + fi +} + +# source sh hooks +_colcon_package_sh_source_script "$COLCON_CURRENT_PREFIX/share/disparity_expansion/hook/path.sh" +_colcon_package_sh_source_script "$COLCON_CURRENT_PREFIX/share/disparity_expansion/hook/pythonscriptspath.sh" +_colcon_package_sh_source_script "$COLCON_CURRENT_PREFIX/share/disparity_expansion/hook/ros_package_path.sh" +_colcon_package_sh_source_script "$COLCON_CURRENT_PREFIX/share/disparity_expansion/hook/pkg_config_path.sh" +_colcon_package_sh_source_script "$COLCON_CURRENT_PREFIX/share/disparity_expansion/hook/pkg_config_path_multiarch.sh" + +unset _colcon_package_sh_source_script +unset COLCON_CURRENT_PREFIX + +# do not unset _colcon_prepend_unique_value since it might be used by non-primary shell hooks diff --git a/install/disparity_expansion/share/disparity_expansion/package.zsh b/install/disparity_expansion/share/disparity_expansion/package.zsh new file mode 100644 index 000000000..461b6a087 --- /dev/null +++ b/install/disparity_expansion/share/disparity_expansion/package.zsh @@ -0,0 +1,42 @@ +# generated from colcon_zsh/shell/template/package.zsh.em + +# This script extends the environment for this package. + +# a zsh script is able to determine its own path if necessary +if [ -z "$COLCON_CURRENT_PREFIX" ]; then + # the prefix is two levels up from the package specific share directory + _colcon_package_zsh_COLCON_CURRENT_PREFIX="$(builtin cd -q "`dirname "${(%):-%N}"`/../.." > /dev/null && pwd)" +else + _colcon_package_zsh_COLCON_CURRENT_PREFIX="$COLCON_CURRENT_PREFIX" +fi + +# function to source another script with conditional trace output +# first argument: the path of the script +# additional arguments: arguments to the script +_colcon_package_zsh_source_script() { + if [ -f "$1" ]; then + if [ -n "$COLCON_TRACE" ]; then + echo "# . \"$1\"" + fi + . "$@" + else + echo "not found: \"$1\"" 1>&2 + fi +} + +# function to convert array-like strings into arrays +# to workaround SH_WORD_SPLIT not being set +colcon_zsh_convert_to_array() { + local _listname=$1 + local _dollar="$" + local _split="{=" + local _to_array="(\"$_dollar$_split$_listname}\")" + eval $_listname=$_to_array +} + +# source sh script of this package +_colcon_package_zsh_source_script "$_colcon_package_zsh_COLCON_CURRENT_PREFIX/share/disparity_expansion/package.sh" +unset convert_zsh_to_array + +unset _colcon_package_zsh_source_script +unset _colcon_package_zsh_COLCON_CURRENT_PREFIX diff --git a/log/build_2024-07-31_12-58-12/disparity_expansion/command.log b/log/build_2024-07-31_12-58-12/disparity_expansion/command.log new file mode 100644 index 000000000..20957526d --- /dev/null +++ b/log/build_2024-07-31_12-58-12/disparity_expansion/command.log @@ -0,0 +1,6 @@ +Invoking command in '/root/AirStack/build/disparity_expansion': /usr/bin/cmake /root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion -DCATKIN_INSTALL_INTO_PREFIX_ROOT=0 -DCMAKE_INSTALL_PREFIX=/root/AirStack/install/disparity_expansion +Invoked command in '/root/AirStack/build/disparity_expansion' returned '0': /usr/bin/cmake /root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion -DCATKIN_INSTALL_INTO_PREFIX_ROOT=0 -DCMAKE_INSTALL_PREFIX=/root/AirStack/install/disparity_expansion +Invoking command in '/root/AirStack/build/disparity_expansion': /usr/bin/cmake --build /root/AirStack/build/disparity_expansion -- -j12 -l12 +Invoked command in '/root/AirStack/build/disparity_expansion' returned '0': /usr/bin/cmake --build /root/AirStack/build/disparity_expansion -- -j12 -l12 +Invoking command in '/root/AirStack/build/disparity_expansion': /usr/bin/cmake --install /root/AirStack/build/disparity_expansion +Invoked command in '/root/AirStack/build/disparity_expansion' returned '0': /usr/bin/cmake --install /root/AirStack/build/disparity_expansion diff --git a/log/build_2024-07-31_12-58-12/disparity_expansion/stderr.log b/log/build_2024-07-31_12-58-12/disparity_expansion/stderr.log new file mode 100644 index 000000000..5b7c74a8d --- /dev/null +++ b/log/build_2024-07-31_12-58-12/disparity_expansion/stderr.log @@ -0,0 +1,18 @@ +CMake Warning (dev) at CMakeLists.txt:33 (find_package): + Policy CMP0074 is not set: find_package uses _ROOT variables. + Run "cmake --help-policy CMP0074" for policy details. Use the cmake_policy + command to set the policy and suppress this warning. + + CMake variable PCL_ROOT is set to: + + /usr + + For compatibility, CMake is ignoring the variable. +This warning is for project developers. Use -Wno-dev to suppress it. + +CMake Warning: + Manually-specified variables were not used by the project: + + CATKIN_INSTALL_INTO_PREFIX_ROOT + + diff --git a/log/build_2024-07-31_12-58-12/disparity_expansion/stdout.log b/log/build_2024-07-31_12-58-12/disparity_expansion/stdout.log new file mode 100644 index 000000000..427208012 --- /dev/null +++ b/log/build_2024-07-31_12-58-12/disparity_expansion/stdout.log @@ -0,0 +1,44 @@ +-- Found ament_cmake: 1.3.9 (/opt/ros/humble/share/ament_cmake/cmake) +-- Found rclcpp: 16.0.9 (/opt/ros/humble/share/rclcpp/cmake) +-- Found rosidl_generator_c: 3.1.5 (/opt/ros/humble/share/rosidl_generator_c/cmake) +-- Found rosidl_adapter: 3.1.5 (/opt/ros/humble/share/rosidl_adapter/cmake) +-- Found rosidl_generator_cpp: 3.1.5 (/opt/ros/humble/share/rosidl_generator_cpp/cmake) +-- Using all available rosidl_typesupport_c: rosidl_typesupport_fastrtps_c;rosidl_typesupport_introspection_c +-- Using all available rosidl_typesupport_cpp: rosidl_typesupport_fastrtps_cpp;rosidl_typesupport_introspection_cpp +-- Found rmw_implementation_cmake: 6.1.2 (/opt/ros/humble/share/rmw_implementation_cmake/cmake) +-- Found rmw_fastrtps_cpp: 6.2.6 (/opt/ros/humble/share/rmw_fastrtps_cpp/cmake) +-- Using RMW implementation 'rmw_fastrtps_cpp' as default +-- Found cv_bridge: 3.2.1 (/opt/ros/humble/share/cv_bridge/cmake) +-- Found image_geometry: 3.2.1 (/opt/ros/humble/share/image_geometry/cmake) +-- Found image_transport: 3.1.9 (/opt/ros/humble/share/image_transport/cmake) +-- Found tf2: 0.25.7 (/opt/ros/humble/share/tf2/cmake) +-- Found pcl_ros: 2.6.1 (/root/AirStack/ros_ws/install/pcl_ros/share/pcl_ros/cmake) +-- Found eigen3_cmake_module: 0.1.1 (/opt/ros/humble/share/eigen3_cmake_module/cmake) +-- Ensuring Eigen3 include directory is part of orocos-kdl CMake target +-- Eigen found (include: /usr/include/eigen3, version: 3.4.0) +-- FLANN found (include: /usr/include, lib: /usr/lib/x86_64-linux-gnu/libflann_cpp.so) +-- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) +-- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb) +-- Eigen found (include: /usr/include/eigen3, version: 3.4.0) +-- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) +-- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb) +-- Found Qhull version 8.0.2 +-- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) +-- Found stereo_msgs: 4.2.4 (/opt/ros/humble/share/stereo_msgs/cmake) +-- Found visualization_msgs: 4.2.4 (/opt/ros/humble/share/visualization_msgs/cmake) +-- PCL_INCLUDE_DIRS: /usr/include/pcl-1.12 +-- Configuring done +-- Generating done +-- Build files have been written to: /root/AirStack/build/disparity_expansion +[ 16%] Building CXX object CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o +[ 33%] Building CXX object CMakeFiles/disparity_expansion.dir/src/disparity_expansion.cpp.o +[ 50%] Building CXX object CMakeFiles/disparity_pcd.dir/src/disparity_pcd.cpp.o +[ 66%] Linking CXX executable disparity_conv +[ 66%] Built target disparity_conv +[ 83%] Linking CXX executable disparity_expansion +[ 83%] Built target disparity_expansion +[100%] Linking CXX executable disparity_pcd +[100%] Built target disparity_pcd +-- Install configuration: "Release" +-- Installing: /root/AirStack/install/disparity_expansion/bin/disparity_expansion +-- Set runtime path of "/root/AirStack/install/disparity_expansion/bin/disparity_expansion" to "" diff --git a/log/build_2024-07-31_12-58-12/disparity_expansion/stdout_stderr.log b/log/build_2024-07-31_12-58-12/disparity_expansion/stdout_stderr.log new file mode 100644 index 000000000..d7fc5e3f2 --- /dev/null +++ b/log/build_2024-07-31_12-58-12/disparity_expansion/stdout_stderr.log @@ -0,0 +1,62 @@ +-- Found ament_cmake: 1.3.9 (/opt/ros/humble/share/ament_cmake/cmake) +-- Found rclcpp: 16.0.9 (/opt/ros/humble/share/rclcpp/cmake) +-- Found rosidl_generator_c: 3.1.5 (/opt/ros/humble/share/rosidl_generator_c/cmake) +-- Found rosidl_adapter: 3.1.5 (/opt/ros/humble/share/rosidl_adapter/cmake) +-- Found rosidl_generator_cpp: 3.1.5 (/opt/ros/humble/share/rosidl_generator_cpp/cmake) +-- Using all available rosidl_typesupport_c: rosidl_typesupport_fastrtps_c;rosidl_typesupport_introspection_c +-- Using all available rosidl_typesupport_cpp: rosidl_typesupport_fastrtps_cpp;rosidl_typesupport_introspection_cpp +-- Found rmw_implementation_cmake: 6.1.2 (/opt/ros/humble/share/rmw_implementation_cmake/cmake) +-- Found rmw_fastrtps_cpp: 6.2.6 (/opt/ros/humble/share/rmw_fastrtps_cpp/cmake) +-- Using RMW implementation 'rmw_fastrtps_cpp' as default +-- Found cv_bridge: 3.2.1 (/opt/ros/humble/share/cv_bridge/cmake) +-- Found image_geometry: 3.2.1 (/opt/ros/humble/share/image_geometry/cmake) +-- Found image_transport: 3.1.9 (/opt/ros/humble/share/image_transport/cmake) +-- Found tf2: 0.25.7 (/opt/ros/humble/share/tf2/cmake) +-- Found pcl_ros: 2.6.1 (/root/AirStack/ros_ws/install/pcl_ros/share/pcl_ros/cmake) +-- Found eigen3_cmake_module: 0.1.1 (/opt/ros/humble/share/eigen3_cmake_module/cmake) +-- Ensuring Eigen3 include directory is part of orocos-kdl CMake target +-- Eigen found (include: /usr/include/eigen3, version: 3.4.0) +-- FLANN found (include: /usr/include, lib: /usr/lib/x86_64-linux-gnu/libflann_cpp.so) +-- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) +-- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb) +-- Eigen found (include: /usr/include/eigen3, version: 3.4.0) +-- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) +-- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb) +-- Found Qhull version 8.0.2 +-- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) +-- Found stereo_msgs: 4.2.4 (/opt/ros/humble/share/stereo_msgs/cmake) +-- Found visualization_msgs: 4.2.4 (/opt/ros/humble/share/visualization_msgs/cmake) +CMake Warning (dev) at CMakeLists.txt:33 (find_package): + Policy CMP0074 is not set: find_package uses _ROOT variables. + Run "cmake --help-policy CMP0074" for policy details. Use the cmake_policy + command to set the policy and suppress this warning. + + CMake variable PCL_ROOT is set to: + + /usr + + For compatibility, CMake is ignoring the variable. +This warning is for project developers. Use -Wno-dev to suppress it. + +-- PCL_INCLUDE_DIRS: /usr/include/pcl-1.12 +-- Configuring done +-- Generating done +CMake Warning: + Manually-specified variables were not used by the project: + + CATKIN_INSTALL_INTO_PREFIX_ROOT + + +-- Build files have been written to: /root/AirStack/build/disparity_expansion +[ 16%] Building CXX object CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o +[ 33%] Building CXX object CMakeFiles/disparity_expansion.dir/src/disparity_expansion.cpp.o +[ 50%] Building CXX object CMakeFiles/disparity_pcd.dir/src/disparity_pcd.cpp.o +[ 66%] Linking CXX executable disparity_conv +[ 66%] Built target disparity_conv +[ 83%] Linking CXX executable disparity_expansion +[ 83%] Built target disparity_expansion +[100%] Linking CXX executable disparity_pcd +[100%] Built target disparity_pcd +-- Install configuration: "Release" +-- Installing: /root/AirStack/install/disparity_expansion/bin/disparity_expansion +-- Set runtime path of "/root/AirStack/install/disparity_expansion/bin/disparity_expansion" to "" diff --git a/log/build_2024-07-31_12-58-12/disparity_expansion/streams.log b/log/build_2024-07-31_12-58-12/disparity_expansion/streams.log new file mode 100644 index 000000000..410c71bff --- /dev/null +++ b/log/build_2024-07-31_12-58-12/disparity_expansion/streams.log @@ -0,0 +1,68 @@ +[0.013s] Invoking command in '/root/AirStack/build/disparity_expansion': /usr/bin/cmake /root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion -DCATKIN_INSTALL_INTO_PREFIX_ROOT=0 -DCMAKE_INSTALL_PREFIX=/root/AirStack/install/disparity_expansion +[0.031s] -- Found ament_cmake: 1.3.9 (/opt/ros/humble/share/ament_cmake/cmake) +[0.155s] -- Found rclcpp: 16.0.9 (/opt/ros/humble/share/rclcpp/cmake) +[0.181s] -- Found rosidl_generator_c: 3.1.5 (/opt/ros/humble/share/rosidl_generator_c/cmake) +[0.184s] -- Found rosidl_adapter: 3.1.5 (/opt/ros/humble/share/rosidl_adapter/cmake) +[0.189s] -- Found rosidl_generator_cpp: 3.1.5 (/opt/ros/humble/share/rosidl_generator_cpp/cmake) +[0.198s] -- Using all available rosidl_typesupport_c: rosidl_typesupport_fastrtps_c;rosidl_typesupport_introspection_c +[0.212s] -- Using all available rosidl_typesupport_cpp: rosidl_typesupport_fastrtps_cpp;rosidl_typesupport_introspection_cpp +[0.262s] -- Found rmw_implementation_cmake: 6.1.2 (/opt/ros/humble/share/rmw_implementation_cmake/cmake) +[0.263s] -- Found rmw_fastrtps_cpp: 6.2.6 (/opt/ros/humble/share/rmw_fastrtps_cpp/cmake) +[0.442s] -- Using RMW implementation 'rmw_fastrtps_cpp' as default +[0.577s] -- Found cv_bridge: 3.2.1 (/opt/ros/humble/share/cv_bridge/cmake) +[0.697s] -- Found image_geometry: 3.2.1 (/opt/ros/humble/share/image_geometry/cmake) +[0.709s] -- Found image_transport: 3.1.9 (/opt/ros/humble/share/image_transport/cmake) +[0.757s] -- Found tf2: 0.25.7 (/opt/ros/humble/share/tf2/cmake) +[0.766s] -- Found pcl_ros: 2.6.1 (/root/AirStack/ros_ws/install/pcl_ros/share/pcl_ros/cmake) +[1.286s] -- Found eigen3_cmake_module: 0.1.1 (/opt/ros/humble/share/eigen3_cmake_module/cmake) +[1.287s] -- Ensuring Eigen3 include directory is part of orocos-kdl CMake target +[1.322s] -- Eigen found (include: /usr/include/eigen3, version: 3.4.0) +[1.377s] -- FLANN found (include: /usr/include, lib: /usr/lib/x86_64-linux-gnu/libflann_cpp.so) +[1.817s] -- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) +[1.828s] -- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb) +[1.998s] -- Eigen found (include: /usr/include/eigen3, version: 3.4.0) +[2.009s] -- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) +[2.020s] -- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb) +[2.185s] -- Found Qhull version 8.0.2 +[2.353s] -- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) +[2.528s] -- Found stereo_msgs: 4.2.4 (/opt/ros/humble/share/stereo_msgs/cmake) +[2.606s] -- Found visualization_msgs: 4.2.4 (/opt/ros/humble/share/visualization_msgs/cmake) +[2.714s] CMake Warning (dev) at CMakeLists.txt:33 (find_package): +[2.714s] Policy CMP0074 is not set: find_package uses _ROOT variables. +[2.714s] Run "cmake --help-policy CMP0074" for policy details. Use the cmake_policy +[2.714s] command to set the policy and suppress this warning. +[2.714s] +[2.714s] CMake variable PCL_ROOT is set to: +[2.714s] +[2.714s] /usr +[2.715s] +[2.715s] For compatibility, CMake is ignoring the variable. +[2.715s] This warning is for project developers. Use -Wno-dev to suppress it. +[2.715s]  +[2.725s] -- PCL_INCLUDE_DIRS: /usr/include/pcl-1.12 +[2.870s] -- Configuring done +[2.929s] -- Generating done +[2.931s] CMake Warning: +[2.932s] Manually-specified variables were not used by the project: +[2.932s] +[2.932s] CATKIN_INSTALL_INTO_PREFIX_ROOT +[2.932s] +[2.932s]  +[2.932s] -- Build files have been written to: /root/AirStack/build/disparity_expansion +[2.944s] Invoked command in '/root/AirStack/build/disparity_expansion' returned '0': /usr/bin/cmake /root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion -DCATKIN_INSTALL_INTO_PREFIX_ROOT=0 -DCMAKE_INSTALL_PREFIX=/root/AirStack/install/disparity_expansion +[2.947s] Invoking command in '/root/AirStack/build/disparity_expansion': /usr/bin/cmake --build /root/AirStack/build/disparity_expansion -- -j12 -l12 +[3.022s] [ 16%] Building CXX object CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o +[3.026s] [ 33%] Building CXX object CMakeFiles/disparity_expansion.dir/src/disparity_expansion.cpp.o +[3.027s] [ 50%] Building CXX object CMakeFiles/disparity_pcd.dir/src/disparity_pcd.cpp.o +[15.594s] [ 66%] Linking CXX executable disparity_conv +[16.175s] [ 66%] Built target disparity_conv +[16.934s] [ 83%] Linking CXX executable disparity_expansion +[17.334s] [ 83%] Built target disparity_expansion +[18.068s] [100%] Linking CXX executable disparity_pcd +[18.465s] [100%] Built target disparity_pcd +[18.478s] Invoked command in '/root/AirStack/build/disparity_expansion' returned '0': /usr/bin/cmake --build /root/AirStack/build/disparity_expansion -- -j12 -l12 +[18.586s] Invoking command in '/root/AirStack/build/disparity_expansion': /usr/bin/cmake --install /root/AirStack/build/disparity_expansion +[18.597s] -- Install configuration: "Release" +[18.597s] -- Installing: /root/AirStack/install/disparity_expansion/bin/disparity_expansion +[18.600s] -- Set runtime path of "/root/AirStack/install/disparity_expansion/bin/disparity_expansion" to "" +[18.602s] Invoked command in '/root/AirStack/build/disparity_expansion' returned '0': /usr/bin/cmake --install /root/AirStack/build/disparity_expansion diff --git a/log/build_2024-07-31_12-58-12/events.log b/log/build_2024-07-31_12-58-12/events.log new file mode 100644 index 000000000..fa7052f6b --- /dev/null +++ b/log/build_2024-07-31_12-58-12/events.log @@ -0,0 +1,280 @@ +[0.000000] (-) TimerEvent: {} +[0.000161] (-) JobUnselected: {'identifier': 'controls_bringup'} +[0.000251] (-) JobUnselected: {'identifier': 'dronekit'} +[0.000279] (-) JobUnselected: {'identifier': 'mav_comm'} +[0.000303] (-) JobUnselected: {'identifier': 'mav_msgs'} +[0.000325] (-) JobUnselected: {'identifier': 'mav_planning_msgs'} +[0.000351] (-) JobUnselected: {'identifier': 'mav_state_machine_msgs'} +[0.000375] (-) JobUnselected: {'identifier': 'mav_system_msgs'} +[0.000399] (-) JobUnselected: {'identifier': 'mavros_interface'} +[0.000426] (-) JobUnselected: {'identifier': 'pcl_conversions'} +[0.000465] (-) JobUnselected: {'identifier': 'pcl_ros'} +[0.000489] (-) JobUnselected: {'identifier': 'perception_pcl'} +[0.000511] (-) JobUnselected: {'identifier': 'px4_msgs'} +[0.000536] (-) JobUnselected: {'identifier': 'px4_ros_com'} +[0.000561] (-) JobUnselected: {'identifier': 'robot_bringup'} +[0.000586] (-) JobUnselected: {'identifier': 'robot_interface'} +[0.000674] (-) JobUnselected: {'identifier': 'vdb_mapping'} +[0.000701] (-) JobUnselected: {'identifier': 'vdb_mapping_interfaces'} +[0.000726] (-) JobUnselected: {'identifier': 'vdb_mapping_ros2'} +[0.000753] (disparity_expansion) JobQueued: {'identifier': 'disparity_expansion', 'dependencies': OrderedDict([('pcl_conversions', '/root/AirStack/install/pcl_conversions')])} +[0.000804] (disparity_expansion) JobStarted: {'identifier': 'disparity_expansion'} +[0.011065] (disparity_expansion) JobProgress: {'identifier': 'disparity_expansion', 'progress': 'cmake'} +[0.012783] (disparity_expansion) Command: {'cmd': ['/usr/bin/cmake', '/root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion', '-DCATKIN_INSTALL_INTO_PREFIX_ROOT=0', '-DCMAKE_INSTALL_PREFIX=/root/AirStack/install/disparity_expansion'], 'cwd': '/root/AirStack/build/disparity_expansion', 'env': OrderedDict([('LESSOPEN', '| /usr/bin/lesspipe %s'), ('HOSTNAME', 'wildfire-desktop'), ('ISAACSIM_PATH', '/isaac-sim'), ('SHLVL', '1'), ('LD_LIBRARY_PATH', '/root/AirStack/ros_ws/install/vdb_mapping_interfaces/lib:/root/AirStack/ros_ws/install/vdb_mapping/lib:/root/AirStack/ros_ws/install/mavros_interface/lib:/root/AirStack/ros_ws/install/robot_interface/lib:/root/AirStack/ros_ws/install/px4_ros_com/lib:/root/AirStack/ros_ws/install/px4_msgs/lib:/root/AirStack/ros_ws/install/pcl_ros/lib:/root/AirStack/ros_ws/install/mav_system_msgs/lib:/root/AirStack/ros_ws/install/mav_state_machine_msgs/lib:/root/AirStack/ros_ws/install/mav_planning_msgs/lib:/root/AirStack/ros_ws/install/mav_msgs/lib:/opt/ros/humble/opt/rviz_ogre_vendor/lib:/opt/ros/humble/lib/x86_64-linux-gnu:/opt/ros/humble/lib'), ('HOME', '/root'), ('MIN_DRIVER_VERSION', '525.60.11'), ('ROS_PYTHON_VERSION', '3'), ('LC_CTYPE', 'C.UTF-8'), ('COLCON_PREFIX_PATH', '/root/AirStack/ros_ws/install'), ('ROS_DISTRO', 'humble'), ('_', '/usr/bin/colcon'), ('ROS_VERSION', '2'), ('PKG_CONFIG_PATH', '/root/AirStack/ros_ws/install/vdb_mapping/lib/x86_64-linux-gnu/pkgconfig:/root/AirStack/ros_ws/install/vdb_mapping/lib/pkgconfig'), ('NVIDIA_DRIVER_CAPABILITIES', 'all'), ('TERM', 'xterm'), ('ROS_LOCALHOST_ONLY', '0'), ('PATH', '/opt/ros/humble/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'), ('VK_DRIVER_FILES', '/etc/vulkan/icd.d/nvidia_icd.json'), ('DISPLAY', ':1'), ('LS_COLORS', 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:'), ('AMENT_PREFIX_PATH', '/root/AirStack/ros_ws/install/vdb_mapping_ros2:/root/AirStack/ros_ws/install/vdb_mapping_interfaces:/root/AirStack/ros_ws/install/mavros_interface:/root/AirStack/ros_ws/install/robot_interface:/root/AirStack/ros_ws/install/robot_bringup:/root/AirStack/ros_ws/install/px4_ros_com:/root/AirStack/ros_ws/install/px4_msgs:/root/AirStack/ros_ws/install/perception_pcl:/root/AirStack/ros_ws/install/pcl_ros:/root/AirStack/ros_ws/install/pcl_conversions:/root/AirStack/ros_ws/install/mav_comm:/root/AirStack/ros_ws/install/mav_system_msgs:/root/AirStack/ros_ws/install/mav_state_machine_msgs:/root/AirStack/ros_ws/install/mav_planning_msgs:/root/AirStack/ros_ws/install/mav_msgs:/root/AirStack/ros_ws/install/controls_bringup:/opt/ros/humble'), ('OMNI_PASS', 'admin'), ('LESSCLOSE', '/usr/bin/lesspipe %s %s'), ('ACCEPT_EULA', 'Y'), ('CMAKE_MODULE_PATH', '/root/AirStack/ros_ws/install/vdb_mapping/lib/cmake/vdb_mapping'), ('OMNI_SERVER', 'http://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/4.0'), ('PWD', '/root/AirStack/build/disparity_expansion'), ('OMNI_USER', 'admin'), ('PYTHONPATH', '/root/AirStack/ros_ws/install/vdb_mapping_interfaces/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/px4_ros_com/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/px4_msgs/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/mav_planning_msgs/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/mav_msgs/local/lib/python3.10/dist-packages:/opt/ros/humble/lib/python3.10/site-packages:/opt/ros/humble/local/lib/python3.10/dist-packages'), ('NVIDIA_VISIBLE_DEVICES', 'all'), ('TZ', 'America/New_York'), ('COLCON', '1'), ('CMAKE_PREFIX_PATH', '/root/AirStack/ros_ws/install/vdb_mapping_ros2:/root/AirStack/ros_ws/install/vdb_mapping_interfaces:/root/AirStack/ros_ws/install/vdb_mapping:/root/AirStack/ros_ws/install/mavros_interface:/root/AirStack/ros_ws/install/robot_interface:/root/AirStack/ros_ws/install/robot_bringup:/root/AirStack/ros_ws/install/px4_ros_com:/root/AirStack/ros_ws/install/px4_msgs:/root/AirStack/ros_ws/install/perception_pcl:/root/AirStack/ros_ws/install/pcl_ros:/root/AirStack/ros_ws/install/pcl_conversions:/root/AirStack/ros_ws/install/mav_comm:/root/AirStack/ros_ws/install/mav_system_msgs:/root/AirStack/ros_ws/install/mav_state_machine_msgs:/root/AirStack/ros_ws/install/mav_planning_msgs:/root/AirStack/ros_ws/install/mav_msgs:/root/AirStack/ros_ws/install/controls_bringup')]), 'shell': False} +[0.032120] (disparity_expansion) StdoutLine: {'line': b'-- Found ament_cmake: 1.3.9 (/opt/ros/humble/share/ament_cmake/cmake)\n'} +[0.099391] (-) TimerEvent: {} +[0.155954] (disparity_expansion) StdoutLine: {'line': b'-- Found rclcpp: 16.0.9 (/opt/ros/humble/share/rclcpp/cmake)\n'} +[0.182164] (disparity_expansion) StdoutLine: {'line': b'-- Found rosidl_generator_c: 3.1.5 (/opt/ros/humble/share/rosidl_generator_c/cmake)\n'} +[0.184444] (disparity_expansion) StdoutLine: {'line': b'-- Found rosidl_adapter: 3.1.5 (/opt/ros/humble/share/rosidl_adapter/cmake)\n'} +[0.189299] (disparity_expansion) StdoutLine: {'line': b'-- Found rosidl_generator_cpp: 3.1.5 (/opt/ros/humble/share/rosidl_generator_cpp/cmake)\n'} +[0.199193] (disparity_expansion) StdoutLine: {'line': b'-- Using all available rosidl_typesupport_c: rosidl_typesupport_fastrtps_c;rosidl_typesupport_introspection_c\n'} +[0.199457] (-) TimerEvent: {} +[0.213002] (disparity_expansion) StdoutLine: {'line': b'-- Using all available rosidl_typesupport_cpp: rosidl_typesupport_fastrtps_cpp;rosidl_typesupport_introspection_cpp\n'} +[0.262717] (disparity_expansion) StdoutLine: {'line': b'-- Found rmw_implementation_cmake: 6.1.2 (/opt/ros/humble/share/rmw_implementation_cmake/cmake)\n'} +[0.263876] (disparity_expansion) StdoutLine: {'line': b'-- Found rmw_fastrtps_cpp: 6.2.6 (/opt/ros/humble/share/rmw_fastrtps_cpp/cmake)\n'} +[0.299739] (-) TimerEvent: {} +[0.399935] (-) TimerEvent: {} +[0.443001] (disparity_expansion) StdoutLine: {'line': b"-- Using RMW implementation 'rmw_fastrtps_cpp' as default\n"} +[0.500009] (-) TimerEvent: {} +[0.577429] (disparity_expansion) StdoutLine: {'line': b'-- Found cv_bridge: 3.2.1 (/opt/ros/humble/share/cv_bridge/cmake)\n'} +[0.600081] (-) TimerEvent: {} +[0.697769] (disparity_expansion) StdoutLine: {'line': b'-- Found image_geometry: 3.2.1 (/opt/ros/humble/share/image_geometry/cmake)\n'} +[0.700518] (-) TimerEvent: {} +[0.709755] (disparity_expansion) StdoutLine: {'line': b'-- Found image_transport: 3.1.9 (/opt/ros/humble/share/image_transport/cmake)\n'} +[0.757697] (disparity_expansion) StdoutLine: {'line': b'-- Found tf2: 0.25.7 (/opt/ros/humble/share/tf2/cmake)\n'} +[0.766602] (disparity_expansion) StdoutLine: {'line': b'-- Found pcl_ros: 2.6.1 (/root/AirStack/ros_ws/install/pcl_ros/share/pcl_ros/cmake)\n'} +[0.800623] (-) TimerEvent: {} +[0.901097] (-) TimerEvent: {} +[1.001342] (-) TimerEvent: {} +[1.101711] (-) TimerEvent: {} +[1.201925] (-) TimerEvent: {} +[1.286346] (disparity_expansion) StdoutLine: {'line': b'-- Found eigen3_cmake_module: 0.1.1 (/opt/ros/humble/share/eigen3_cmake_module/cmake)\n'} +[1.287358] (disparity_expansion) StdoutLine: {'line': b'-- Ensuring Eigen3 include directory is part of orocos-kdl CMake target\n'} +[1.302030] (-) TimerEvent: {} +[1.322727] (disparity_expansion) StdoutLine: {'line': b'-- Eigen found (include: /usr/include/eigen3, version: 3.4.0)\n'} +[1.377387] (disparity_expansion) StdoutLine: {'line': b'-- FLANN found (include: /usr/include, lib: /usr/lib/x86_64-linux-gnu/libflann_cpp.so)\n'} +[1.402113] (-) TimerEvent: {} +[1.502336] (-) TimerEvent: {} +[1.602563] (-) TimerEvent: {} +[1.702832] (-) TimerEvent: {} +[1.803091] (-) TimerEvent: {} +[1.817963] (disparity_expansion) StdoutLine: {'line': b'-- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb)\n'} +[1.828250] (disparity_expansion) StdoutLine: {'line': b'-- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb)\n'} +[1.903183] (-) TimerEvent: {} +[1.998485] (disparity_expansion) StdoutLine: {'line': b'-- Eigen found (include: /usr/include/eigen3, version: 3.4.0)\n'} +[2.003276] (-) TimerEvent: {} +[2.009436] (disparity_expansion) StdoutLine: {'line': b'-- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb)\n'} +[2.020444] (disparity_expansion) StdoutLine: {'line': b'-- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/x86_64-linux-gnu/libOpenNI2.so;libusb::libusb)\n'} +[2.103366] (-) TimerEvent: {} +[2.186171] (disparity_expansion) StdoutLine: {'line': b'-- Found Qhull version 8.0.2\n'} +[2.203453] (-) TimerEvent: {} +[2.303706] (-) TimerEvent: {} +[2.353701] (disparity_expansion) StdoutLine: {'line': b'-- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb)\n'} +[2.403781] (-) TimerEvent: {} +[2.504008] (-) TimerEvent: {} +[2.528919] (disparity_expansion) StdoutLine: {'line': b'-- Found stereo_msgs: 4.2.4 (/opt/ros/humble/share/stereo_msgs/cmake)\n'} +[2.604108] (-) TimerEvent: {} +[2.606261] (disparity_expansion) StdoutLine: {'line': b'-- Found visualization_msgs: 4.2.4 (/opt/ros/humble/share/visualization_msgs/cmake)\n'} +[2.704188] (-) TimerEvent: {} +[2.714376] (disparity_expansion) StderrLine: {'line': b'\x1b[33mCMake Warning (dev) at CMakeLists.txt:33 (find_package):\n'} +[2.714574] (disparity_expansion) StderrLine: {'line': b' Policy CMP0074 is not set: find_package uses _ROOT variables.\n'} +[2.714695] (disparity_expansion) StderrLine: {'line': b' Run "cmake --help-policy CMP0074" for policy details. Use the cmake_policy\n'} +[2.714798] (disparity_expansion) StderrLine: {'line': b' command to set the policy and suppress this warning.\n'} +[2.714896] (disparity_expansion) StderrLine: {'line': b'\n'} +[2.714994] (disparity_expansion) StderrLine: {'line': b' CMake variable PCL_ROOT is set to:\n'} +[2.715094] (disparity_expansion) StderrLine: {'line': b'\n'} +[2.715191] (disparity_expansion) StderrLine: {'line': b' /usr\n'} +[2.715286] (disparity_expansion) StderrLine: {'line': b'\n'} +[2.715383] (disparity_expansion) StderrLine: {'line': b' For compatibility, CMake is ignoring the variable.\n'} +[2.715482] (disparity_expansion) StderrLine: {'line': b'This warning is for project developers. Use -Wno-dev to suppress it.\n'} +[2.715579] (disparity_expansion) StderrLine: {'line': b'\x1b[0m\n'} +[2.725898] (disparity_expansion) StdoutLine: {'line': b'-- PCL_INCLUDE_DIRS: /usr/include/pcl-1.12\n'} +[2.804260] (-) TimerEvent: {} +[2.871077] (disparity_expansion) StdoutLine: {'line': b'-- Configuring done\n'} +[2.904368] (-) TimerEvent: {} +[2.929713] (disparity_expansion) StdoutLine: {'line': b'-- Generating done\n'} +[2.932176] (disparity_expansion) StderrLine: {'line': b'\x1b[33mCMake Warning:\n'} +[2.932308] (disparity_expansion) StderrLine: {'line': b' Manually-specified variables were not used by the project:\n'} +[2.932402] (disparity_expansion) StderrLine: {'line': b'\n'} +[2.932488] (disparity_expansion) StderrLine: {'line': b' CATKIN_INSTALL_INTO_PREFIX_ROOT\n'} +[2.932573] (disparity_expansion) StderrLine: {'line': b'\n'} +[2.932656] (disparity_expansion) StderrLine: {'line': b'\x1b[0m\n'} +[2.932884] (disparity_expansion) StdoutLine: {'line': b'-- Build files have been written to: /root/AirStack/build/disparity_expansion\n'} +[2.944829] (disparity_expansion) CommandEnded: {'returncode': 0} +[2.945629] (disparity_expansion) JobProgress: {'identifier': 'disparity_expansion', 'progress': 'build'} +[2.946953] (disparity_expansion) Command: {'cmd': ['/usr/bin/cmake', '--build', '/root/AirStack/build/disparity_expansion', '--', '-j12', '-l12'], 'cwd': '/root/AirStack/build/disparity_expansion', 'env': OrderedDict([('LESSOPEN', '| /usr/bin/lesspipe %s'), ('HOSTNAME', 'wildfire-desktop'), ('ISAACSIM_PATH', '/isaac-sim'), ('SHLVL', '1'), ('LD_LIBRARY_PATH', '/root/AirStack/ros_ws/install/vdb_mapping_interfaces/lib:/root/AirStack/ros_ws/install/vdb_mapping/lib:/root/AirStack/ros_ws/install/mavros_interface/lib:/root/AirStack/ros_ws/install/robot_interface/lib:/root/AirStack/ros_ws/install/px4_ros_com/lib:/root/AirStack/ros_ws/install/px4_msgs/lib:/root/AirStack/ros_ws/install/pcl_ros/lib:/root/AirStack/ros_ws/install/mav_system_msgs/lib:/root/AirStack/ros_ws/install/mav_state_machine_msgs/lib:/root/AirStack/ros_ws/install/mav_planning_msgs/lib:/root/AirStack/ros_ws/install/mav_msgs/lib:/opt/ros/humble/opt/rviz_ogre_vendor/lib:/opt/ros/humble/lib/x86_64-linux-gnu:/opt/ros/humble/lib'), ('HOME', '/root'), ('MIN_DRIVER_VERSION', '525.60.11'), ('ROS_PYTHON_VERSION', '3'), ('LC_CTYPE', 'C.UTF-8'), ('COLCON_PREFIX_PATH', '/root/AirStack/ros_ws/install'), ('ROS_DISTRO', 'humble'), ('_', '/usr/bin/colcon'), ('ROS_VERSION', '2'), ('PKG_CONFIG_PATH', '/root/AirStack/ros_ws/install/vdb_mapping/lib/x86_64-linux-gnu/pkgconfig:/root/AirStack/ros_ws/install/vdb_mapping/lib/pkgconfig'), ('NVIDIA_DRIVER_CAPABILITIES', 'all'), ('TERM', 'xterm'), ('ROS_LOCALHOST_ONLY', '0'), ('PATH', '/opt/ros/humble/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'), ('VK_DRIVER_FILES', '/etc/vulkan/icd.d/nvidia_icd.json'), ('DISPLAY', ':1'), ('LS_COLORS', 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:'), ('AMENT_PREFIX_PATH', '/root/AirStack/ros_ws/install/vdb_mapping_ros2:/root/AirStack/ros_ws/install/vdb_mapping_interfaces:/root/AirStack/ros_ws/install/mavros_interface:/root/AirStack/ros_ws/install/robot_interface:/root/AirStack/ros_ws/install/robot_bringup:/root/AirStack/ros_ws/install/px4_ros_com:/root/AirStack/ros_ws/install/px4_msgs:/root/AirStack/ros_ws/install/perception_pcl:/root/AirStack/ros_ws/install/pcl_ros:/root/AirStack/ros_ws/install/pcl_conversions:/root/AirStack/ros_ws/install/mav_comm:/root/AirStack/ros_ws/install/mav_system_msgs:/root/AirStack/ros_ws/install/mav_state_machine_msgs:/root/AirStack/ros_ws/install/mav_planning_msgs:/root/AirStack/ros_ws/install/mav_msgs:/root/AirStack/ros_ws/install/controls_bringup:/opt/ros/humble'), ('OMNI_PASS', 'admin'), ('LESSCLOSE', '/usr/bin/lesspipe %s %s'), ('ACCEPT_EULA', 'Y'), ('CMAKE_MODULE_PATH', '/root/AirStack/ros_ws/install/vdb_mapping/lib/cmake/vdb_mapping'), ('OMNI_SERVER', 'http://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/4.0'), ('PWD', '/root/AirStack/build/disparity_expansion'), ('OMNI_USER', 'admin'), ('PYTHONPATH', '/root/AirStack/ros_ws/install/vdb_mapping_interfaces/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/px4_ros_com/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/px4_msgs/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/mav_planning_msgs/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/mav_msgs/local/lib/python3.10/dist-packages:/opt/ros/humble/lib/python3.10/site-packages:/opt/ros/humble/local/lib/python3.10/dist-packages'), ('NVIDIA_VISIBLE_DEVICES', 'all'), ('TZ', 'America/New_York'), ('COLCON', '1'), ('CMAKE_PREFIX_PATH', '/root/AirStack/ros_ws/install/vdb_mapping_ros2:/root/AirStack/ros_ws/install/vdb_mapping_interfaces:/root/AirStack/ros_ws/install/vdb_mapping:/root/AirStack/ros_ws/install/mavros_interface:/root/AirStack/ros_ws/install/robot_interface:/root/AirStack/ros_ws/install/robot_bringup:/root/AirStack/ros_ws/install/px4_ros_com:/root/AirStack/ros_ws/install/px4_msgs:/root/AirStack/ros_ws/install/perception_pcl:/root/AirStack/ros_ws/install/pcl_ros:/root/AirStack/ros_ws/install/pcl_conversions:/root/AirStack/ros_ws/install/mav_comm:/root/AirStack/ros_ws/install/mav_system_msgs:/root/AirStack/ros_ws/install/mav_state_machine_msgs:/root/AirStack/ros_ws/install/mav_planning_msgs:/root/AirStack/ros_ws/install/mav_msgs:/root/AirStack/ros_ws/install/controls_bringup')]), 'shell': False} +[3.004468] (-) TimerEvent: {} +[3.022578] (disparity_expansion) StdoutLine: {'line': b'[ 16%] \x1b[32mBuilding CXX object CMakeFiles/disparity_conv.dir/src/disparity_conv.cpp.o\x1b[0m\n'} +[3.026808] (disparity_expansion) StdoutLine: {'line': b'[ 33%] \x1b[32mBuilding CXX object CMakeFiles/disparity_expansion.dir/src/disparity_expansion.cpp.o\x1b[0m\n'} +[3.027904] (disparity_expansion) StdoutLine: {'line': b'[ 50%] \x1b[32mBuilding CXX object CMakeFiles/disparity_pcd.dir/src/disparity_pcd.cpp.o\x1b[0m\n'} +[3.104573] (-) TimerEvent: {} +[3.204844] (-) TimerEvent: {} +[3.305089] (-) TimerEvent: {} +[3.405392] (-) TimerEvent: {} +[3.505687] (-) TimerEvent: {} +[3.605979] (-) TimerEvent: {} +[3.706257] (-) TimerEvent: {} +[3.806551] (-) TimerEvent: {} +[3.906821] (-) TimerEvent: {} +[4.007103] (-) TimerEvent: {} +[4.107396] (-) TimerEvent: {} +[4.207681] (-) TimerEvent: {} +[4.307978] (-) TimerEvent: {} +[4.408296] (-) TimerEvent: {} +[4.508611] (-) TimerEvent: {} +[4.608914] (-) TimerEvent: {} +[4.709201] (-) TimerEvent: {} +[4.809478] (-) TimerEvent: {} +[4.909755] (-) TimerEvent: {} +[5.010033] (-) TimerEvent: {} +[5.110317] (-) TimerEvent: {} +[5.210586] (-) TimerEvent: {} +[5.310868] (-) TimerEvent: {} +[5.411140] (-) TimerEvent: {} +[5.511428] (-) TimerEvent: {} +[5.611708] (-) TimerEvent: {} +[5.712001] (-) TimerEvent: {} +[5.812292] (-) TimerEvent: {} +[5.912575] (-) TimerEvent: {} +[6.012865] (-) TimerEvent: {} +[6.113139] (-) TimerEvent: {} +[6.213382] (-) TimerEvent: {} +[6.313666] (-) TimerEvent: {} +[6.413945] (-) TimerEvent: {} +[6.514230] (-) TimerEvent: {} +[6.614510] (-) TimerEvent: {} +[6.714788] (-) TimerEvent: {} +[6.815076] (-) TimerEvent: {} +[6.915367] (-) TimerEvent: {} +[7.015654] (-) TimerEvent: {} +[7.115936] (-) TimerEvent: {} +[7.216205] (-) TimerEvent: {} +[7.316483] (-) TimerEvent: {} +[7.416776] (-) TimerEvent: {} +[7.517056] (-) TimerEvent: {} +[7.617344] (-) TimerEvent: {} +[7.717620] (-) TimerEvent: {} +[7.817896] (-) TimerEvent: {} +[7.918181] (-) TimerEvent: {} +[8.018471] (-) TimerEvent: {} +[8.118747] (-) TimerEvent: {} +[8.219022] (-) TimerEvent: {} +[8.319301] (-) TimerEvent: {} +[8.419564] (-) TimerEvent: {} +[8.519836] (-) TimerEvent: {} +[8.620090] (-) TimerEvent: {} +[8.720376] (-) TimerEvent: {} +[8.820686] (-) TimerEvent: {} +[8.920987] (-) TimerEvent: {} +[9.021291] (-) TimerEvent: {} +[9.121596] (-) TimerEvent: {} +[9.221887] (-) TimerEvent: {} +[9.322194] (-) TimerEvent: {} +[9.422500] (-) TimerEvent: {} +[9.522814] (-) TimerEvent: {} +[9.623111] (-) TimerEvent: {} +[9.723399] (-) TimerEvent: {} +[9.823703] (-) TimerEvent: {} +[9.924009] (-) TimerEvent: {} +[10.024301] (-) TimerEvent: {} +[10.124591] (-) TimerEvent: {} +[10.224871] (-) TimerEvent: {} +[10.325158] (-) TimerEvent: {} +[10.425444] (-) TimerEvent: {} +[10.525712] (-) TimerEvent: {} +[10.625981] (-) TimerEvent: {} +[10.726246] (-) TimerEvent: {} +[10.826535] (-) TimerEvent: {} +[10.926842] (-) TimerEvent: {} +[11.027139] (-) TimerEvent: {} +[11.127407] (-) TimerEvent: {} +[11.227674] (-) TimerEvent: {} +[11.327975] (-) TimerEvent: {} +[11.428274] (-) TimerEvent: {} +[11.528570] (-) TimerEvent: {} +[11.628857] (-) TimerEvent: {} +[11.729128] (-) TimerEvent: {} +[11.829398] (-) TimerEvent: {} +[11.929667] (-) TimerEvent: {} +[12.029951] (-) TimerEvent: {} +[12.130265] (-) TimerEvent: {} +[12.230522] (-) TimerEvent: {} +[12.330785] (-) TimerEvent: {} +[12.431052] (-) TimerEvent: {} +[12.531328] (-) TimerEvent: {} +[12.631596] (-) TimerEvent: {} +[12.731853] (-) TimerEvent: {} +[12.832112] (-) TimerEvent: {} +[12.932371] (-) TimerEvent: {} +[13.032634] (-) TimerEvent: {} +[13.132897] (-) TimerEvent: {} +[13.233156] (-) TimerEvent: {} +[13.333413] (-) TimerEvent: {} +[13.433686] (-) TimerEvent: {} +[13.533955] (-) TimerEvent: {} +[13.634216] (-) TimerEvent: {} +[13.734474] (-) TimerEvent: {} +[13.834735] (-) TimerEvent: {} +[13.934998] (-) TimerEvent: {} +[14.035260] (-) TimerEvent: {} +[14.135525] (-) TimerEvent: {} +[14.235788] (-) TimerEvent: {} +[14.336058] (-) TimerEvent: {} +[14.436326] (-) TimerEvent: {} +[14.536587] (-) TimerEvent: {} +[14.636855] (-) TimerEvent: {} +[14.737120] (-) TimerEvent: {} +[14.837392] (-) TimerEvent: {} +[14.937659] (-) TimerEvent: {} +[15.037915] (-) TimerEvent: {} +[15.138179] (-) TimerEvent: {} +[15.238439] (-) TimerEvent: {} +[15.338700] (-) TimerEvent: {} +[15.438967] (-) TimerEvent: {} +[15.539240] (-) TimerEvent: {} +[15.594905] (disparity_expansion) StdoutLine: {'line': b'[ 66%] \x1b[32m\x1b[1mLinking CXX executable disparity_conv\x1b[0m\n'} +[15.639350] (-) TimerEvent: {} +[15.739652] (-) TimerEvent: {} +[15.839949] (-) TimerEvent: {} +[15.940243] (-) TimerEvent: {} +[16.040515] (-) TimerEvent: {} +[16.140788] (-) TimerEvent: {} +[16.175579] (disparity_expansion) StdoutLine: {'line': b'[ 66%] Built target disparity_conv\n'} +[16.240883] (-) TimerEvent: {} +[16.341165] (-) TimerEvent: {} +[16.441446] (-) TimerEvent: {} +[16.541701] (-) TimerEvent: {} +[16.641953] (-) TimerEvent: {} +[16.742208] (-) TimerEvent: {} +[16.842466] (-) TimerEvent: {} +[16.934654] (disparity_expansion) StdoutLine: {'line': b'[ 83%] \x1b[32m\x1b[1mLinking CXX executable disparity_expansion\x1b[0m\n'} +[16.942538] (-) TimerEvent: {} +[17.042781] (-) TimerEvent: {} +[17.143056] (-) TimerEvent: {} +[17.243325] (-) TimerEvent: {} +[17.334456] (disparity_expansion) StdoutLine: {'line': b'[ 83%] Built target disparity_expansion\n'} +[17.343395] (-) TimerEvent: {} +[17.443613] (-) TimerEvent: {} +[17.543805] (-) TimerEvent: {} +[17.643995] (-) TimerEvent: {} +[17.744185] (-) TimerEvent: {} +[17.844375] (-) TimerEvent: {} +[17.944557] (-) TimerEvent: {} +[18.044744] (-) TimerEvent: {} +[18.068522] (disparity_expansion) StdoutLine: {'line': b'[100%] \x1b[32m\x1b[1mLinking CXX executable disparity_pcd\x1b[0m\n'} +[18.144854] (-) TimerEvent: {} +[18.245145] (-) TimerEvent: {} +[18.345452] (-) TimerEvent: {} +[18.445757] (-) TimerEvent: {} +[18.465738] (disparity_expansion) StdoutLine: {'line': b'[100%] Built target disparity_pcd\n'} +[18.478758] (disparity_expansion) CommandEnded: {'returncode': 0} +[18.545831] (-) TimerEvent: {} +[18.572983] (disparity_expansion) JobProgress: {'identifier': 'disparity_expansion', 'progress': 'install'} +[18.586029] (disparity_expansion) Command: {'cmd': ['/usr/bin/cmake', '--install', '/root/AirStack/build/disparity_expansion'], 'cwd': '/root/AirStack/build/disparity_expansion', 'env': OrderedDict([('LESSOPEN', '| /usr/bin/lesspipe %s'), ('HOSTNAME', 'wildfire-desktop'), ('ISAACSIM_PATH', '/isaac-sim'), ('SHLVL', '1'), ('LD_LIBRARY_PATH', '/root/AirStack/ros_ws/install/vdb_mapping_interfaces/lib:/root/AirStack/ros_ws/install/vdb_mapping/lib:/root/AirStack/ros_ws/install/mavros_interface/lib:/root/AirStack/ros_ws/install/robot_interface/lib:/root/AirStack/ros_ws/install/px4_ros_com/lib:/root/AirStack/ros_ws/install/px4_msgs/lib:/root/AirStack/ros_ws/install/pcl_ros/lib:/root/AirStack/ros_ws/install/mav_system_msgs/lib:/root/AirStack/ros_ws/install/mav_state_machine_msgs/lib:/root/AirStack/ros_ws/install/mav_planning_msgs/lib:/root/AirStack/ros_ws/install/mav_msgs/lib:/opt/ros/humble/opt/rviz_ogre_vendor/lib:/opt/ros/humble/lib/x86_64-linux-gnu:/opt/ros/humble/lib'), ('HOME', '/root'), ('MIN_DRIVER_VERSION', '525.60.11'), ('ROS_PYTHON_VERSION', '3'), ('LC_CTYPE', 'C.UTF-8'), ('COLCON_PREFIX_PATH', '/root/AirStack/ros_ws/install'), ('ROS_DISTRO', 'humble'), ('_', '/usr/bin/colcon'), ('ROS_VERSION', '2'), ('PKG_CONFIG_PATH', '/root/AirStack/ros_ws/install/vdb_mapping/lib/x86_64-linux-gnu/pkgconfig:/root/AirStack/ros_ws/install/vdb_mapping/lib/pkgconfig'), ('NVIDIA_DRIVER_CAPABILITIES', 'all'), ('TERM', 'xterm'), ('ROS_LOCALHOST_ONLY', '0'), ('PATH', '/opt/ros/humble/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'), ('VK_DRIVER_FILES', '/etc/vulkan/icd.d/nvidia_icd.json'), ('DISPLAY', ':1'), ('LS_COLORS', 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:'), ('AMENT_PREFIX_PATH', '/root/AirStack/ros_ws/install/vdb_mapping_ros2:/root/AirStack/ros_ws/install/vdb_mapping_interfaces:/root/AirStack/ros_ws/install/mavros_interface:/root/AirStack/ros_ws/install/robot_interface:/root/AirStack/ros_ws/install/robot_bringup:/root/AirStack/ros_ws/install/px4_ros_com:/root/AirStack/ros_ws/install/px4_msgs:/root/AirStack/ros_ws/install/perception_pcl:/root/AirStack/ros_ws/install/pcl_ros:/root/AirStack/ros_ws/install/pcl_conversions:/root/AirStack/ros_ws/install/mav_comm:/root/AirStack/ros_ws/install/mav_system_msgs:/root/AirStack/ros_ws/install/mav_state_machine_msgs:/root/AirStack/ros_ws/install/mav_planning_msgs:/root/AirStack/ros_ws/install/mav_msgs:/root/AirStack/ros_ws/install/controls_bringup:/opt/ros/humble'), ('OMNI_PASS', 'admin'), ('LESSCLOSE', '/usr/bin/lesspipe %s %s'), ('ACCEPT_EULA', 'Y'), ('CMAKE_MODULE_PATH', '/root/AirStack/ros_ws/install/vdb_mapping/lib/cmake/vdb_mapping'), ('OMNI_SERVER', 'http://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/4.0'), ('PWD', '/root/AirStack/build/disparity_expansion'), ('OMNI_USER', 'admin'), ('PYTHONPATH', '/root/AirStack/ros_ws/install/vdb_mapping_interfaces/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/px4_ros_com/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/px4_msgs/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/mav_planning_msgs/local/lib/python3.10/dist-packages:/root/AirStack/ros_ws/install/mav_msgs/local/lib/python3.10/dist-packages:/opt/ros/humble/lib/python3.10/site-packages:/opt/ros/humble/local/lib/python3.10/dist-packages'), ('NVIDIA_VISIBLE_DEVICES', 'all'), ('TZ', 'America/New_York'), ('COLCON', '1'), ('CMAKE_PREFIX_PATH', '/root/AirStack/ros_ws/install/vdb_mapping_ros2:/root/AirStack/ros_ws/install/vdb_mapping_interfaces:/root/AirStack/ros_ws/install/vdb_mapping:/root/AirStack/ros_ws/install/mavros_interface:/root/AirStack/ros_ws/install/robot_interface:/root/AirStack/ros_ws/install/robot_bringup:/root/AirStack/ros_ws/install/px4_ros_com:/root/AirStack/ros_ws/install/px4_msgs:/root/AirStack/ros_ws/install/perception_pcl:/root/AirStack/ros_ws/install/pcl_ros:/root/AirStack/ros_ws/install/pcl_conversions:/root/AirStack/ros_ws/install/mav_comm:/root/AirStack/ros_ws/install/mav_system_msgs:/root/AirStack/ros_ws/install/mav_state_machine_msgs:/root/AirStack/ros_ws/install/mav_planning_msgs:/root/AirStack/ros_ws/install/mav_msgs:/root/AirStack/ros_ws/install/controls_bringup')]), 'shell': False} +[18.597696] (disparity_expansion) StdoutLine: {'line': b'-- Install configuration: "Release"\n'} +[18.597901] (disparity_expansion) StdoutLine: {'line': b'-- Installing: /root/AirStack/install/disparity_expansion/bin/disparity_expansion\n'} +[18.600446] (disparity_expansion) StdoutLine: {'line': b'-- Set runtime path of "/root/AirStack/install/disparity_expansion/bin/disparity_expansion" to ""\n'} +[18.602592] (disparity_expansion) CommandEnded: {'returncode': 0} +[18.645913] (-) TimerEvent: {} +[18.673273] (disparity_expansion) JobEnded: {'identifier': 'disparity_expansion', 'rc': 0} +[18.674102] (-) EventReactorShutdown: {} diff --git a/log/build_2024-07-31_12-58-12/logger_all.log b/log/build_2024-07-31_12-58-12/logger_all.log new file mode 100644 index 000000000..bf2f97cb4 --- /dev/null +++ b/log/build_2024-07-31_12-58-12/logger_all.log @@ -0,0 +1,2688 @@ +[0.161s] DEBUG:colcon:Command line arguments: ['/usr/bin/colcon', 'build', '--packages-select', 'disparity_expansion'] +[0.161s] DEBUG:colcon:Parsed command line arguments: Namespace(log_base=None, log_level=None, verb_name='build', build_base='build', install_base='install', merge_install=False, symlink_install=False, test_result_base=None, continue_on_error=False, executor='parallel', parallel_workers=12, event_handlers=None, ignore_user_meta=False, metas=['./colcon.meta'], base_paths=['.'], packages_ignore=None, packages_ignore_regex=None, paths=None, packages_up_to=None, packages_up_to_regex=None, packages_above=None, packages_above_and_dependencies=None, packages_above_depth=None, packages_select_by_dep=None, packages_skip_by_dep=None, packages_skip_up_to=None, packages_select_build_failed=False, packages_skip_build_finished=False, packages_select_test_failures=False, packages_skip_test_passed=False, packages_select=['disparity_expansion'], packages_skip=None, packages_select_regex=None, packages_skip_regex=None, packages_start=None, packages_end=None, allow_overriding=[], cmake_args=None, cmake_target=None, cmake_target_skip_unavailable=False, cmake_clean_cache=False, cmake_clean_first=False, cmake_force_configure=False, ament_cmake_args=None, catkin_cmake_args=None, catkin_skip_building_tests=False, mixin_files=None, mixin=None, verb_parser=, verb_extension=, main=>, mixin_verb=('build',)) +[0.290s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) check parameters +[0.291s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) check parameters +[0.291s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) check parameters +[0.291s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) check parameters +[0.291s] Level 1:colcon.colcon_core.package_discovery:discover_packages(colcon_meta) discover +[0.291s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) discover +[0.291s] INFO:colcon.colcon_core.package_discovery:Crawling recursively for packages in '/root/AirStack' +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ignore', 'ignore_ament_install'] +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore' +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ignore_ament_install' +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_pkg'] +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_pkg' +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['colcon_meta'] +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'colcon_meta' +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['ros'] +[0.291s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'ros' +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['cmake', 'python'] +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'cmake' +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'python' +[0.299s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extensions ['python_setup_py'] +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(.) by extension 'python_setup_py' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extensions ['ignore', 'ignore_ament_install'] +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(build) by extension 'ignore' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(build) ignored +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extensions ['ignore', 'ignore_ament_install'] +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'ignore' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'ignore_ament_install' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extensions ['colcon_pkg'] +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'colcon_pkg' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extensions ['colcon_meta'] +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'colcon_meta' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extensions ['ros'] +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'ros' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extensions ['cmake', 'python'] +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'cmake' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'python' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extensions ['python_setup_py'] +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(docker) by extension 'python_setup_py' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extensions ['ignore', 'ignore_ament_install'] +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'ignore' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'ignore_ament_install' +[0.300s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extensions ['colcon_pkg'] +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'colcon_pkg' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extensions ['colcon_meta'] +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'colcon_meta' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extensions ['ros'] +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'ros' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extensions ['cmake', 'python'] +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'cmake' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'python' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extensions ['python_setup_py'] +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs) by extension 'python_setup_py' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extensions ['ignore', 'ignore_ament_install'] +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'ignore' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'ignore_ament_install' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extensions ['colcon_pkg'] +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'colcon_pkg' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extensions ['colcon_meta'] +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'colcon_meta' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extensions ['ros'] +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'ros' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extensions ['cmake', 'python'] +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'cmake' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'python' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extensions ['python_setup_py'] +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs/assets) by extension 'python_setup_py' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extensions ['ignore', 'ignore_ament_install'] +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'ignore' +[0.301s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'ignore_ament_install' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extensions ['colcon_pkg'] +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'colcon_pkg' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extensions ['colcon_meta'] +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'colcon_meta' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extensions ['ros'] +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'ros' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extensions ['cmake', 'python'] +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'cmake' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'python' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extensions ['python_setup_py'] +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide) by extension 'python_setup_py' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extensions ['ignore', 'ignore_ament_install'] +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'ignore' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'ignore_ament_install' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extensions ['colcon_pkg'] +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'colcon_pkg' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extensions ['colcon_meta'] +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'colcon_meta' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extensions ['ros'] +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'ros' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extensions ['cmake', 'python'] +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'cmake' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'python' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extensions ['python_setup_py'] +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/developer_guide/autonomy) by extension 'python_setup_py' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extensions ['ignore', 'ignore_ament_install'] +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'ignore' +[0.302s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'ignore_ament_install' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extensions ['colcon_pkg'] +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'colcon_pkg' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extensions ['colcon_meta'] +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'colcon_meta' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extensions ['ros'] +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'ros' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extensions ['cmake', 'python'] +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'cmake' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'python' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extensions ['python_setup_py'] +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/stylesheets) by extension 'python_setup_py' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extensions ['ignore', 'ignore_ament_install'] +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'ignore' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'ignore_ament_install' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extensions ['colcon_pkg'] +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'colcon_pkg' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extensions ['colcon_meta'] +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'colcon_meta' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extensions ['ros'] +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'ros' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extensions ['cmake', 'python'] +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'cmake' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'python' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extensions ['python_setup_py'] +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide) by extension 'python_setup_py' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extensions ['ignore', 'ignore_ament_install'] +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'ignore' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'ignore_ament_install' +[0.303s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extensions ['colcon_pkg'] +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'colcon_pkg' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extensions ['colcon_meta'] +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'colcon_meta' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extensions ['ros'] +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'ros' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extensions ['cmake', 'python'] +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'cmake' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'python' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extensions ['python_setup_py'] +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(docs/user_guide/tutorials) by extension 'python_setup_py' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extensions ['ignore', 'ignore_ament_install'] +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'ignore' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'ignore_ament_install' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extensions ['colcon_pkg'] +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'colcon_pkg' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extensions ['colcon_meta'] +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'colcon_meta' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extensions ['ros'] +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'ros' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extensions ['cmake', 'python'] +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'cmake' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'python' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extensions ['python_setup_py'] +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(experiments) by extension 'python_setup_py' +[0.304s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extensions ['ignore', 'ignore_ament_install'] +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(install) by extension 'ignore' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(install) ignored +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extensions ['ignore', 'ignore_ament_install'] +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'ignore' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'ignore_ament_install' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extensions ['colcon_pkg'] +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'colcon_pkg' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extensions ['colcon_meta'] +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'colcon_meta' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extensions ['ros'] +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'ros' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extensions ['cmake', 'python'] +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'cmake' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'python' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extensions ['python_setup_py'] +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(installation) by extension 'python_setup_py' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(log) by extensions ['ignore', 'ignore_ament_install'] +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(log) by extension 'ignore' +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(log) ignored +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extensions ['ignore', 'ignore_ament_install'] +[0.305s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'ignore' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'ignore_ament_install' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extensions ['colcon_pkg'] +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'colcon_pkg' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extensions ['colcon_meta'] +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'colcon_meta' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extensions ['ros'] +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'ros' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extensions ['cmake', 'python'] +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'cmake' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'python' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extensions ['python_setup_py'] +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws) by extension 'python_setup_py' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/build) by extensions ['ignore', 'ignore_ament_install'] +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/build) by extension 'ignore' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/build) ignored +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/install) by extensions ['ignore', 'ignore_ament_install'] +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/install) by extension 'ignore' +[0.306s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/install) ignored +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/log) by extensions ['ignore', 'ignore_ament_install'] +[0.307s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/log) by extension 'ignore' +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/log) ignored +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extensions ['ignore', 'ignore_ament_install'] +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'ignore' +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'ignore_ament_install' +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extensions ['colcon_pkg'] +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'colcon_pkg' +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extensions ['colcon_meta'] +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'colcon_meta' +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extensions ['ros'] +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'ros' +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extensions ['cmake', 'python'] +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'cmake' +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'python' +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extensions ['python_setup_py'] +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src) by extension 'python_setup_py' +[0.308s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/build) by extensions ['ignore', 'ignore_ament_install'] +[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/build) by extension 'ignore' +[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/build) ignored +[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extensions ['ignore', 'ignore_ament_install'] +[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'ignore' +[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'ignore_ament_install' +[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extensions ['colcon_pkg'] +[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'colcon_pkg' +[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extensions ['colcon_meta'] +[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'colcon_meta' +[0.309s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extensions ['ros'] +[0.310s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'ros' +[0.310s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extensions ['cmake', 'python'] +[0.310s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'cmake' +[0.310s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'python' +[0.310s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extensions ['python_setup_py'] +[0.310s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/ground_control_station) by extension 'python_setup_py' +[0.310s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/install) by extensions ['ignore', 'ignore_ament_install'] +[0.310s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/install) by extension 'ignore' +[0.310s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/install) ignored +[0.311s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/log) by extensions ['ignore', 'ignore_ament_install'] +[0.311s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/log) by extension 'ignore' +[0.311s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/log) ignored +[0.311s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl) by extensions ['ignore', 'ignore_ament_install'] +[0.311s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl) by extension 'ignore' +[0.311s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl) by extension 'ignore_ament_install' +[0.311s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl) by extensions ['colcon_pkg'] +[0.311s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl) by extension 'colcon_pkg' +[0.311s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl) by extensions ['colcon_meta'] +[0.311s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl) by extension 'colcon_meta' +[0.311s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl) by extensions ['ros'] +[0.311s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl) by extension 'ros' +[0.311s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl) by extensions ['cmake', 'python'] +[0.311s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl) by extension 'cmake' +[0.311s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl) by extension 'python' +[0.311s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl) by extensions ['python_setup_py'] +[0.311s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl) by extension 'python_setup_py' +[0.311s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/pcl_conversions) by extensions ['ignore', 'ignore_ament_install'] +[0.311s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/pcl_conversions) by extension 'ignore' +[0.311s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/pcl_conversions) by extension 'ignore_ament_install' +[0.311s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/pcl_conversions) by extensions ['colcon_pkg'] +[0.311s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/pcl_conversions) by extension 'colcon_pkg' +[0.311s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/pcl_conversions) by extensions ['colcon_meta'] +[0.311s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/pcl_conversions) by extension 'colcon_meta' +[0.311s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/pcl_conversions) by extensions ['ros'] +[0.312s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/pcl_conversions) by extension 'ros' +[0.314s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/perception_pcl/pcl_conversions' with type 'ros.ament_cmake' and name 'pcl_conversions' +[0.314s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/pcl_ros) by extensions ['ignore', 'ignore_ament_install'] +[0.314s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/pcl_ros) by extension 'ignore' +[0.314s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/pcl_ros) by extension 'ignore_ament_install' +[0.314s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/pcl_ros) by extensions ['colcon_pkg'] +[0.314s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/pcl_ros) by extension 'colcon_pkg' +[0.314s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/pcl_ros) by extensions ['colcon_meta'] +[0.314s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/pcl_ros) by extension 'colcon_meta' +[0.314s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/pcl_ros) by extensions ['ros'] +[0.314s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/pcl_ros) by extension 'ros' +[0.315s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/perception_pcl/pcl_ros' with type 'ros.ament_cmake' and name 'pcl_ros' +[0.315s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/perception_pcl) by extensions ['ignore', 'ignore_ament_install'] +[0.315s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/perception_pcl) by extension 'ignore' +[0.315s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/perception_pcl) by extension 'ignore_ament_install' +[0.315s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/perception_pcl) by extensions ['colcon_pkg'] +[0.315s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/perception_pcl) by extension 'colcon_pkg' +[0.316s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/perception_pcl) by extensions ['colcon_meta'] +[0.316s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/perception_pcl) by extension 'colcon_meta' +[0.316s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/perception_pcl) by extensions ['ros'] +[0.316s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/perception_pcl/perception_pcl) by extension 'ros' +[0.316s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/perception_pcl/perception_pcl' with type 'ros.ament_cmake' and name 'perception_pcl' +[0.316s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extensions ['ignore', 'ignore_ament_install'] +[0.316s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'ignore' +[0.316s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'ignore_ament_install' +[0.316s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extensions ['colcon_pkg'] +[0.316s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'colcon_pkg' +[0.316s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extensions ['colcon_meta'] +[0.316s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'colcon_meta' +[0.316s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extensions ['ros'] +[0.316s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'ros' +[0.316s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extensions ['cmake', 'python'] +[0.316s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'cmake' +[0.316s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'python' +[0.316s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extensions ['python_setup_py'] +[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot) by extension 'python_setup_py' +[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extensions ['ignore', 'ignore_ament_install'] +[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'ignore' +[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'ignore_ament_install' +[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extensions ['colcon_pkg'] +[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'colcon_pkg' +[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extensions ['colcon_meta'] +[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'colcon_meta' +[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extensions ['ros'] +[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'ros' +[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extensions ['cmake', 'python'] +[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'cmake' +[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'python' +[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extensions ['python_setup_py'] +[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy) by extension 'python_setup_py' +[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extensions ['ignore', 'ignore_ament_install'] +[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'ignore' +[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'ignore_ament_install' +[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extensions ['colcon_pkg'] +[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'colcon_pkg' +[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extensions ['colcon_meta'] +[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'colcon_meta' +[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extensions ['ros'] +[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'ros' +[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extensions ['cmake', 'python'] +[0.317s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'cmake' +[0.318s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'python' +[0.318s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extensions ['python_setup_py'] +[0.318s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls) by extension 'python_setup_py' +[0.318s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extensions ['ignore', 'ignore_ament_install'] +[0.318s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extension 'ignore' +[0.318s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extension 'ignore_ament_install' +[0.318s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extensions ['colcon_pkg'] +[0.318s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extension 'colcon_pkg' +[0.318s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extensions ['colcon_meta'] +[0.318s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extension 'colcon_meta' +[0.319s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extensions ['ros'] +[0.319s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/controls_bringup) by extension 'ros' +[0.319s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/controls_bringup' with type 'ros.ament_cmake' and name 'controls_bringup' +[0.319s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extensions ['ignore', 'ignore_ament_install'] +[0.319s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'ignore' +[0.319s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'ignore_ament_install' +[0.319s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extensions ['colcon_pkg'] +[0.319s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'colcon_pkg' +[0.319s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extensions ['colcon_meta'] +[0.319s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'colcon_meta' +[0.319s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extensions ['ros'] +[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'ros' +[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extensions ['cmake', 'python'] +[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'cmake' +[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'python' +[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extensions ['python_setup_py'] +[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm) by extension 'python_setup_py' +[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extensions ['ignore', 'ignore_ament_install'] +[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extension 'ignore' +[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extension 'ignore_ament_install' +[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extensions ['colcon_pkg'] +[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extension 'colcon_pkg' +[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extensions ['colcon_meta'] +[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extension 'colcon_meta' +[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extensions ['ros'] +[0.320s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm) by extension 'ros' +[0.321s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm' with type 'ros.ament_cmake' and name 'mav_comm' +[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extensions ['ignore', 'ignore_ament_install'] +[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extension 'ignore' +[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extension 'ignore_ament_install' +[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extensions ['colcon_pkg'] +[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extension 'colcon_pkg' +[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extensions ['colcon_meta'] +[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extension 'colcon_meta' +[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extensions ['ros'] +[0.321s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs) by extension 'ros' +[0.322s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs' with type 'ros.ament_cmake' and name 'mav_msgs' +[0.322s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extensions ['ignore', 'ignore_ament_install'] +[0.322s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extension 'ignore' +[0.322s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extension 'ignore_ament_install' +[0.323s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extensions ['colcon_pkg'] +[0.323s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extension 'colcon_pkg' +[0.323s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extensions ['colcon_meta'] +[0.323s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extension 'colcon_meta' +[0.323s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extensions ['ros'] +[0.323s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs) by extension 'ros' +[0.324s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs' with type 'ros.ament_cmake' and name 'mav_planning_msgs' +[0.324s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extensions ['ignore', 'ignore_ament_install'] +[0.324s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extension 'ignore' +[0.324s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extension 'ignore_ament_install' +[0.324s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extensions ['colcon_pkg'] +[0.324s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extension 'colcon_pkg' +[0.324s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extensions ['colcon_meta'] +[0.324s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extension 'colcon_meta' +[0.324s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extensions ['ros'] +[0.324s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs) by extension 'ros' +[0.325s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs' with type 'ros.ament_cmake' and name 'mav_state_machine_msgs' +[0.325s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extensions ['ignore', 'ignore_ament_install'] +[0.325s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extension 'ignore' +[0.325s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extension 'ignore_ament_install' +[0.325s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extensions ['colcon_pkg'] +[0.325s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extension 'colcon_pkg' +[0.325s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extensions ['colcon_meta'] +[0.325s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extension 'colcon_meta' +[0.325s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extensions ['ros'] +[0.325s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs) by extension 'ros' +[0.326s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs' with type 'ros.ament_cmake' and name 'mav_system_msgs' +[0.326s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extensions ['ignore', 'ignore_ament_install'] +[0.326s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extension 'ignore' +[0.326s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extension 'ignore_ament_install' +[0.326s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extensions ['colcon_pkg'] +[0.326s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extension 'colcon_pkg' +[0.326s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extensions ['colcon_meta'] +[0.326s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extension 'colcon_meta' +[0.326s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extensions ['ros'] +[0.326s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/mavros_interface) by extension 'ros' +[0.327s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/mavros_interface' with type 'ros.ament_cmake' and name 'mavros_interface' +[0.327s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extensions ['ignore', 'ignore_ament_install'] +[0.327s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extension 'ignore' +[0.327s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extension 'ignore_ament_install' +[0.327s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extensions ['colcon_pkg'] +[0.327s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extension 'colcon_pkg' +[0.327s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extensions ['colcon_meta'] +[0.327s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extension 'colcon_meta' +[0.327s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extensions ['ros'] +[0.327s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_msgs) by extension 'ros' +[0.328s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/px4_msgs' with type 'ros.ament_cmake' and name 'px4_msgs' +[0.328s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extensions ['ignore', 'ignore_ament_install'] +[0.328s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extension 'ignore' +[0.328s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extension 'ignore_ament_install' +[0.328s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extensions ['colcon_pkg'] +[0.328s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extension 'colcon_pkg' +[0.328s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extensions ['colcon_meta'] +[0.328s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extension 'colcon_meta' +[0.328s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extensions ['ros'] +[0.328s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/px4_ros_com) by extension 'ros' +[0.329s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/px4_ros_com' with type 'ros.ament_cmake' and name 'px4_ros_com' +[0.329s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extensions ['ignore', 'ignore_ament_install'] +[0.329s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extension 'ignore' +[0.329s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extension 'ignore_ament_install' +[0.329s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extensions ['colcon_pkg'] +[0.329s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extension 'colcon_pkg' +[0.329s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extensions ['colcon_meta'] +[0.329s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extension 'colcon_meta' +[0.329s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extensions ['ros'] +[0.329s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/controls/robot_interface) by extension 'ros' +[0.330s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/controls/robot_interface' with type 'ros.ament_cmake' and name 'robot_interface' +[0.330s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extensions ['ignore', 'ignore_ament_install'] +[0.330s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'ignore' +[0.330s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'ignore_ament_install' +[0.330s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extensions ['colcon_pkg'] +[0.330s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'colcon_pkg' +[0.330s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extensions ['colcon_meta'] +[0.330s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'colcon_meta' +[0.330s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extensions ['ros'] +[0.330s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'ros' +[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extensions ['cmake', 'python'] +[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'cmake' +[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'python' +[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extensions ['python_setup_py'] +[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/perception) by extension 'python_setup_py' +[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extensions ['ignore', 'ignore_ament_install'] +[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'ignore' +[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'ignore_ament_install' +[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extensions ['colcon_pkg'] +[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'colcon_pkg' +[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extensions ['colcon_meta'] +[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'colcon_meta' +[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extensions ['ros'] +[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'ros' +[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extensions ['cmake', 'python'] +[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'cmake' +[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'python' +[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extensions ['python_setup_py'] +[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning) by extension 'python_setup_py' +[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extensions ['ignore', 'ignore_ament_install'] +[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'ignore' +[0.331s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'ignore_ament_install' +[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extensions ['colcon_pkg'] +[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'colcon_pkg' +[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extensions ['colcon_meta'] +[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'colcon_meta' +[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extensions ['ros'] +[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'ros' +[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extensions ['cmake', 'python'] +[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'cmake' +[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'python' +[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extensions ['python_setup_py'] +[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/global) by extension 'python_setup_py' +[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extensions ['ignore', 'ignore_ament_install'] +[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'ignore' +[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'ignore_ament_install' +[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extensions ['colcon_pkg'] +[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'colcon_pkg' +[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extensions ['colcon_meta'] +[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'colcon_meta' +[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extensions ['ros'] +[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'ros' +[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extensions ['cmake', 'python'] +[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'cmake' +[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'python' +[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extensions ['python_setup_py'] +[0.332s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local) by extension 'python_setup_py' +[0.333s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation) by extensions ['ignore', 'ignore_ament_install'] +[0.333s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation) by extension 'ignore' +[0.333s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/core_disparity_map_representation) ignored +[0.333s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/core_local_planner) by extensions ['ignore', 'ignore_ament_install'] +[0.333s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/core_local_planner) by extension 'ignore' +[0.333s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/core_local_planner) ignored +[0.333s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extensions ['ignore', 'ignore_ament_install'] +[0.333s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extension 'ignore' +[0.333s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extension 'ignore_ament_install' +[0.333s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extensions ['colcon_pkg'] +[0.333s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extension 'colcon_pkg' +[0.333s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extensions ['colcon_meta'] +[0.333s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extension 'colcon_meta' +[0.333s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extensions ['ros'] +[0.333s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_expansion) by extension 'ros' +[0.334s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/planning/local/disparity_expansion' with type 'ros.catkin' and name 'disparity_expansion' +[0.334s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp) by extensions ['ignore', 'ignore_ament_install'] +[0.334s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp) by extension 'ignore' +[0.334s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp) ignored +[0.334s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extensions ['ignore', 'ignore_ament_install'] +[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'ignore' +[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'ignore_ament_install' +[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extensions ['colcon_pkg'] +[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'colcon_pkg' +[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extensions ['colcon_meta'] +[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'colcon_meta' +[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extensions ['ros'] +[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'ros' +[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extensions ['cmake', 'python'] +[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'cmake' +[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'python' +[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extensions ['python_setup_py'] +[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model) by extension 'python_setup_py' +[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extensions ['ignore', 'ignore_ament_install'] +[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'ignore' +[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'ignore_ament_install' +[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extensions ['colcon_pkg'] +[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'colcon_pkg' +[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extensions ['colcon_meta'] +[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'colcon_meta' +[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extensions ['ros'] +[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'ros' +[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extensions ['cmake', 'python'] +[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'cmake' +[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'python' +[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extensions ['python_setup_py'] +[0.335s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping) by extension 'python_setup_py' +[0.336s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extensions ['ignore', 'ignore_ament_install'] +[0.336s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extension 'ignore' +[0.336s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extension 'ignore_ament_install' +[0.336s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extensions ['colcon_pkg'] +[0.336s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extension 'colcon_pkg' +[0.336s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extensions ['colcon_meta'] +[0.336s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extension 'colcon_meta' +[0.336s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extensions ['ros'] +[0.336s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping) by extension 'ros' +[0.337s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping' with type 'ros.cmake' and name 'vdb_mapping' +[0.337s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extensions ['ignore', 'ignore_ament_install'] +[0.337s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'ignore' +[0.337s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'ignore_ament_install' +[0.337s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extensions ['colcon_pkg'] +[0.337s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'colcon_pkg' +[0.337s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extensions ['colcon_meta'] +[0.337s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'colcon_meta' +[0.337s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extensions ['ros'] +[0.337s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'ros' +[0.337s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extensions ['cmake', 'python'] +[0.337s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'cmake' +[0.337s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'python' +[0.337s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extensions ['python_setup_py'] +[0.337s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2) by extension 'python_setup_py' +[0.337s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extensions ['ignore', 'ignore_ament_install'] +[0.337s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extension 'ignore' +[0.337s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extension 'ignore_ament_install' +[0.337s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extensions ['colcon_pkg'] +[0.338s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extension 'colcon_pkg' +[0.338s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extensions ['colcon_meta'] +[0.338s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extension 'colcon_meta' +[0.338s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extensions ['ros'] +[0.338s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces) by extension 'ros' +[0.338s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces' with type 'ros.ament_cmake' and name 'vdb_mapping_interfaces' +[0.338s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extensions ['ignore', 'ignore_ament_install'] +[0.338s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extension 'ignore' +[0.338s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extension 'ignore_ament_install' +[0.338s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extensions ['colcon_pkg'] +[0.338s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extension 'colcon_pkg' +[0.339s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extensions ['colcon_meta'] +[0.339s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extension 'colcon_meta' +[0.339s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extensions ['ros'] +[0.339s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2) by extension 'ros' +[0.340s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2' with type 'ros.ament_cmake' and name 'vdb_mapping_ros2' +[0.340s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extensions ['ignore', 'ignore_ament_install'] +[0.340s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'ignore' +[0.340s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'ignore_ament_install' +[0.340s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extensions ['colcon_pkg'] +[0.340s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'colcon_pkg' +[0.340s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extensions ['colcon_meta'] +[0.340s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'colcon_meta' +[0.340s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extensions ['ros'] +[0.340s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'ros' +[0.340s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extensions ['cmake', 'python'] +[0.340s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'cmake' +[0.340s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'python' +[0.340s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extensions ['python_setup_py'] +[0.340s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/logging) by extension 'python_setup_py' +[0.340s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extensions ['ignore', 'ignore_ament_install'] +[0.341s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extension 'ignore' +[0.341s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extension 'ignore_ament_install' +[0.341s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extensions ['colcon_pkg'] +[0.341s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extension 'colcon_pkg' +[0.341s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extensions ['colcon_meta'] +[0.341s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extension 'colcon_meta' +[0.341s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extensions ['ros'] +[0.341s] Level 1:colcon.colcon_core.package_identification:_identify(ros_ws/src/robot/robot_bringup) by extension 'ros' +[0.341s] DEBUG:colcon.colcon_core.package_identification:Package 'ros_ws/src/robot/robot_bringup' with type 'ros.ament_cmake' and name 'robot_bringup' +[0.341s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extensions ['ignore', 'ignore_ament_install'] +[0.341s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'ignore' +[0.341s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'ignore_ament_install' +[0.341s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extensions ['colcon_pkg'] +[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'colcon_pkg' +[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extensions ['colcon_meta'] +[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'colcon_meta' +[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extensions ['ros'] +[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'ros' +[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extensions ['cmake', 'python'] +[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'cmake' +[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'python' +[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extensions ['python_setup_py'] +[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(simulation) by extension 'python_setup_py' +[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extensions ['ignore', 'ignore_ament_install'] +[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'ignore' +[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'ignore_ament_install' +[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extensions ['colcon_pkg'] +[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'colcon_pkg' +[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extensions ['colcon_meta'] +[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'colcon_meta' +[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extensions ['ros'] +[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'ros' +[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extensions ['cmake', 'python'] +[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'cmake' +[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'python' +[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extensions ['python_setup_py'] +[0.342s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems) by extension 'python_setup_py' +[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extensions ['ignore', 'ignore_ament_install'] +[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'ignore' +[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'ignore_ament_install' +[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extensions ['colcon_pkg'] +[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'colcon_pkg' +[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extensions ['colcon_meta'] +[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'colcon_meta' +[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extensions ['ros'] +[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'ros' +[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extensions ['cmake', 'python'] +[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'cmake' +[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'python' +[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extensions ['python_setup_py'] +[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage) by extension 'python_setup_py' +[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extensions ['ignore', 'ignore_ament_install'] +[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'ignore' +[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'ignore_ament_install' +[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extensions ['colcon_pkg'] +[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'colcon_pkg' +[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extensions ['colcon_meta'] +[0.343s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'colcon_meta' +[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extensions ['ros'] +[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'ros' +[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extensions ['cmake', 'python'] +[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'cmake' +[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'python' +[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extensions ['python_setup_py'] +[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux) by extension 'python_setup_py' +[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extensions ['ignore', 'ignore_ament_install'] +[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'ignore' +[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'ignore_ament_install' +[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extensions ['colcon_pkg'] +[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'colcon_pkg' +[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extensions ['colcon_meta'] +[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'colcon_meta' +[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extensions ['ros'] +[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'ros' +[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extensions ['cmake', 'python'] +[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'cmake' +[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'python' +[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extensions ['python_setup_py'] +[0.344s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt) by extension 'python_setup_py' +[0.345s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extensions ['ignore', 'ignore_ament_install'] +[0.345s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'ignore' +[0.345s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'ignore_ament_install' +[0.345s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extensions ['colcon_pkg'] +[0.345s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'colcon_pkg' +[0.345s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extensions ['colcon_meta'] +[0.345s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'colcon_meta' +[0.345s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extensions ['ros'] +[0.345s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'ros' +[0.345s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extensions ['cmake', 'python'] +[0.345s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'cmake' +[0.345s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'python' +[0.345s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extensions ['python_setup_py'] +[0.345s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/libs) by extension 'python_setup_py' +[0.345s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extensions ['ignore', 'ignore_ament_install'] +[0.345s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'ignore' +[0.345s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'ignore_ament_install' +[0.345s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extensions ['colcon_pkg'] +[0.345s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'colcon_pkg' +[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extensions ['colcon_meta'] +[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'colcon_meta' +[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extensions ['ros'] +[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'ros' +[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extensions ['cmake', 'python'] +[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'cmake' +[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'python' +[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extensions ['python_setup_py'] +[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins) by extension 'python_setup_py' +[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extensions ['ignore', 'ignore_ament_install'] +[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'ignore' +[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'ignore_ament_install' +[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extensions ['colcon_pkg'] +[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'colcon_pkg' +[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extensions ['colcon_meta'] +[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'colcon_meta' +[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extensions ['ros'] +[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'ros' +[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extensions ['cmake', 'python'] +[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'cmake' +[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'python' +[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extensions ['python_setup_py'] +[0.346s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/bearer) by extension 'python_setup_py' +[0.347s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extensions ['ignore', 'ignore_ament_install'] +[0.347s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'ignore' +[0.347s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'ignore_ament_install' +[0.347s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extensions ['colcon_pkg'] +[0.347s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'colcon_pkg' +[0.347s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extensions ['colcon_meta'] +[0.347s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'colcon_meta' +[0.347s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extensions ['ros'] +[0.347s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'ros' +[0.347s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extensions ['cmake', 'python'] +[0.347s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'cmake' +[0.347s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'python' +[0.347s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extensions ['python_setup_py'] +[0.347s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/geoservices) by extension 'python_setup_py' +[0.347s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extensions ['ignore', 'ignore_ament_install'] +[0.347s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'ignore' +[0.347s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'ignore_ament_install' +[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extensions ['colcon_pkg'] +[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'colcon_pkg' +[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extensions ['colcon_meta'] +[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'colcon_meta' +[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extensions ['ros'] +[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'ros' +[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extensions ['cmake', 'python'] +[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'cmake' +[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'python' +[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extensions ['python_setup_py'] +[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/iconengines) by extension 'python_setup_py' +[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extensions ['ignore', 'ignore_ament_install'] +[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'ignore' +[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'ignore_ament_install' +[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extensions ['colcon_pkg'] +[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'colcon_pkg' +[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extensions ['colcon_meta'] +[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'colcon_meta' +[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extensions ['ros'] +[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'ros' +[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extensions ['cmake', 'python'] +[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'cmake' +[0.348s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'python' +[0.349s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extensions ['python_setup_py'] +[0.349s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/imageformats) by extension 'python_setup_py' +[0.349s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extensions ['ignore', 'ignore_ament_install'] +[0.349s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'ignore' +[0.349s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'ignore_ament_install' +[0.349s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extensions ['colcon_pkg'] +[0.349s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'colcon_pkg' +[0.349s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extensions ['colcon_meta'] +[0.349s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'colcon_meta' +[0.349s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extensions ['ros'] +[0.349s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'ros' +[0.349s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extensions ['cmake', 'python'] +[0.349s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'cmake' +[0.349s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'python' +[0.349s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extensions ['python_setup_py'] +[0.349s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforminputcontexts) by extension 'python_setup_py' +[0.349s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extensions ['ignore', 'ignore_ament_install'] +[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'ignore' +[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'ignore_ament_install' +[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extensions ['colcon_pkg'] +[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'colcon_pkg' +[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extensions ['colcon_meta'] +[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'colcon_meta' +[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extensions ['ros'] +[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'ros' +[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extensions ['cmake', 'python'] +[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'cmake' +[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'python' +[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extensions ['python_setup_py'] +[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/platforms) by extension 'python_setup_py' +[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extensions ['ignore', 'ignore_ament_install'] +[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'ignore' +[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'ignore_ament_install' +[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extensions ['colcon_pkg'] +[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'colcon_pkg' +[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extensions ['colcon_meta'] +[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'colcon_meta' +[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extensions ['ros'] +[0.350s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'ros' +[0.351s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extensions ['cmake', 'python'] +[0.351s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'cmake' +[0.351s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'python' +[0.351s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extensions ['python_setup_py'] +[0.351s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/position) by extension 'python_setup_py' +[0.351s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extensions ['ignore', 'ignore_ament_install'] +[0.351s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'ignore' +[0.351s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'ignore_ament_install' +[0.351s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extensions ['colcon_pkg'] +[0.351s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'colcon_pkg' +[0.351s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extensions ['colcon_meta'] +[0.351s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'colcon_meta' +[0.351s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extensions ['ros'] +[0.351s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'ros' +[0.351s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extensions ['cmake', 'python'] +[0.351s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'cmake' +[0.351s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'python' +[0.351s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extensions ['python_setup_py'] +[0.351s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/sqldrivers) by extension 'python_setup_py' +[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extensions ['ignore', 'ignore_ament_install'] +[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'ignore' +[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'ignore_ament_install' +[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extensions ['colcon_pkg'] +[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'colcon_pkg' +[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extensions ['colcon_meta'] +[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'colcon_meta' +[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extensions ['ros'] +[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'ros' +[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extensions ['cmake', 'python'] +[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'cmake' +[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'python' +[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extensions ['python_setup_py'] +[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/texttospeech) by extension 'python_setup_py' +[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extensions ['ignore', 'ignore_ament_install'] +[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'ignore' +[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'ignore_ament_install' +[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extensions ['colcon_pkg'] +[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'colcon_pkg' +[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extensions ['colcon_meta'] +[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'colcon_meta' +[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extensions ['ros'] +[0.352s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'ros' +[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extensions ['cmake', 'python'] +[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'cmake' +[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'python' +[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extensions ['python_setup_py'] +[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/plugins/xcbglintegrations) by extension 'python_setup_py' +[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extensions ['ignore', 'ignore_ament_install'] +[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'ignore' +[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'ignore_ament_install' +[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extensions ['colcon_pkg'] +[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'colcon_pkg' +[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extensions ['colcon_meta'] +[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'colcon_meta' +[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extensions ['ros'] +[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'ros' +[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extensions ['cmake', 'python'] +[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'cmake' +[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'python' +[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extensions ['python_setup_py'] +[0.353s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml) by extension 'python_setup_py' +[0.354s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extensions ['ignore', 'ignore_ament_install'] +[0.354s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'ignore' +[0.354s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'ignore_ament_install' +[0.354s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extensions ['colcon_pkg'] +[0.354s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'colcon_pkg' +[0.354s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extensions ['colcon_meta'] +[0.354s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'colcon_meta' +[0.354s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extensions ['ros'] +[0.354s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'ros' +[0.354s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extensions ['cmake', 'python'] +[0.354s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'cmake' +[0.354s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'python' +[0.354s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extensions ['python_setup_py'] +[0.354s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt) by extension 'python_setup_py' +[0.354s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extensions ['ignore', 'ignore_ament_install'] +[0.354s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'ignore' +[0.354s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'ignore_ament_install' +[0.354s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extensions ['colcon_pkg'] +[0.354s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'colcon_pkg' +[0.354s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extensions ['colcon_meta'] +[0.354s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'colcon_meta' +[0.355s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extensions ['ros'] +[0.355s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'ros' +[0.355s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extensions ['cmake', 'python'] +[0.355s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'cmake' +[0.355s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'python' +[0.355s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extensions ['python_setup_py'] +[0.355s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/WebSockets) by extension 'python_setup_py' +[0.355s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extensions ['ignore', 'ignore_ament_install'] +[0.355s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'ignore' +[0.355s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'ignore_ament_install' +[0.355s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extensions ['colcon_pkg'] +[0.355s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'colcon_pkg' +[0.355s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extensions ['colcon_meta'] +[0.355s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'colcon_meta' +[0.355s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extensions ['ros'] +[0.355s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'ros' +[0.355s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extensions ['cmake', 'python'] +[0.355s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'cmake' +[0.355s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'python' +[0.355s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extensions ['python_setup_py'] +[0.355s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs) by extension 'python_setup_py' +[0.356s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extensions ['ignore', 'ignore_ament_install'] +[0.356s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'ignore' +[0.356s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'ignore_ament_install' +[0.356s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extensions ['colcon_pkg'] +[0.356s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'colcon_pkg' +[0.356s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extensions ['colcon_meta'] +[0.356s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'colcon_meta' +[0.356s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extensions ['ros'] +[0.356s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'ros' +[0.356s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extensions ['cmake', 'python'] +[0.356s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'cmake' +[0.356s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'python' +[0.356s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extensions ['python_setup_py'] +[0.356s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/animation) by extension 'python_setup_py' +[0.356s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extensions ['ignore', 'ignore_ament_install'] +[0.356s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'ignore' +[0.356s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'ignore_ament_install' +[0.356s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extensions ['colcon_pkg'] +[0.357s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'colcon_pkg' +[0.357s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extensions ['colcon_meta'] +[0.357s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'colcon_meta' +[0.357s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extensions ['ros'] +[0.357s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'ros' +[0.357s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extensions ['cmake', 'python'] +[0.357s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'cmake' +[0.357s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'python' +[0.357s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extensions ['python_setup_py'] +[0.357s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/calendar) by extension 'python_setup_py' +[0.357s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extensions ['ignore', 'ignore_ament_install'] +[0.357s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'ignore' +[0.357s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'ignore_ament_install' +[0.357s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extensions ['colcon_pkg'] +[0.357s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'colcon_pkg' +[0.357s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extensions ['colcon_meta'] +[0.357s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'colcon_meta' +[0.357s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extensions ['ros'] +[0.357s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'ros' +[0.357s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extensions ['cmake', 'python'] +[0.357s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'cmake' +[0.357s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'python' +[0.357s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extensions ['python_setup_py'] +[0.358s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/folderlistmodel) by extension 'python_setup_py' +[0.358s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extensions ['ignore', 'ignore_ament_install'] +[0.358s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'ignore' +[0.358s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'ignore_ament_install' +[0.358s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extensions ['colcon_pkg'] +[0.358s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'colcon_pkg' +[0.358s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extensions ['colcon_meta'] +[0.358s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'colcon_meta' +[0.358s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extensions ['ros'] +[0.358s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'ros' +[0.358s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extensions ['cmake', 'python'] +[0.358s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'cmake' +[0.358s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'python' +[0.358s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extensions ['python_setup_py'] +[0.358s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/location) by extension 'python_setup_py' +[0.358s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extensions ['ignore', 'ignore_ament_install'] +[0.358s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'ignore' +[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'ignore_ament_install' +[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extensions ['colcon_pkg'] +[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'colcon_pkg' +[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extensions ['colcon_meta'] +[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'colcon_meta' +[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extensions ['ros'] +[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'ros' +[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extensions ['cmake', 'python'] +[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'cmake' +[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'python' +[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extensions ['python_setup_py'] +[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/lottieqt) by extension 'python_setup_py' +[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extensions ['ignore', 'ignore_ament_install'] +[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'ignore' +[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'ignore_ament_install' +[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extensions ['colcon_pkg'] +[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'colcon_pkg' +[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extensions ['colcon_meta'] +[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'colcon_meta' +[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extensions ['ros'] +[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'ros' +[0.359s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extensions ['cmake', 'python'] +[0.360s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'cmake' +[0.360s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'python' +[0.360s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extensions ['python_setup_py'] +[0.360s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/platform) by extension 'python_setup_py' +[0.360s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extensions ['ignore', 'ignore_ament_install'] +[0.360s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'ignore' +[0.360s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'ignore_ament_install' +[0.360s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extensions ['colcon_pkg'] +[0.360s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'colcon_pkg' +[0.360s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extensions ['colcon_meta'] +[0.360s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'colcon_meta' +[0.360s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extensions ['ros'] +[0.360s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'ros' +[0.360s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extensions ['cmake', 'python'] +[0.360s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'cmake' +[0.360s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'python' +[0.360s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extensions ['python_setup_py'] +[0.360s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/qmlmodels) by extension 'python_setup_py' +[0.361s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extensions ['ignore', 'ignore_ament_install'] +[0.361s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'ignore' +[0.361s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'ignore_ament_install' +[0.361s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extensions ['colcon_pkg'] +[0.361s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'colcon_pkg' +[0.361s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extensions ['colcon_meta'] +[0.361s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'colcon_meta' +[0.361s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extensions ['ros'] +[0.361s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'ros' +[0.361s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extensions ['cmake', 'python'] +[0.361s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'cmake' +[0.361s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'python' +[0.361s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extensions ['python_setup_py'] +[0.361s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/settings) by extension 'python_setup_py' +[0.361s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extensions ['ignore', 'ignore_ament_install'] +[0.361s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'ignore' +[0.361s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'ignore_ament_install' +[0.361s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extensions ['colcon_pkg'] +[0.361s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'colcon_pkg' +[0.361s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extensions ['colcon_meta'] +[0.361s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'colcon_meta' +[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extensions ['ros'] +[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'ros' +[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extensions ['cmake', 'python'] +[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'cmake' +[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'python' +[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extensions ['python_setup_py'] +[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/sharedimage) by extension 'python_setup_py' +[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extensions ['ignore', 'ignore_ament_install'] +[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'ignore' +[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'ignore_ament_install' +[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extensions ['colcon_pkg'] +[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'colcon_pkg' +[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extensions ['colcon_meta'] +[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'colcon_meta' +[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extensions ['ros'] +[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'ros' +[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extensions ['cmake', 'python'] +[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'cmake' +[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'python' +[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extensions ['python_setup_py'] +[0.362s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/labs/wavefrontmesh) by extension 'python_setup_py' +[0.363s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extensions ['ignore', 'ignore_ament_install'] +[0.363s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'ignore' +[0.363s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'ignore_ament_install' +[0.363s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extensions ['colcon_pkg'] +[0.363s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'colcon_pkg' +[0.363s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extensions ['colcon_meta'] +[0.363s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'colcon_meta' +[0.363s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extensions ['ros'] +[0.363s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'ros' +[0.363s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extensions ['cmake', 'python'] +[0.363s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'cmake' +[0.363s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'python' +[0.363s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extensions ['python_setup_py'] +[0.363s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test) by extension 'python_setup_py' +[0.363s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extensions ['ignore', 'ignore_ament_install'] +[0.363s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'ignore' +[0.363s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'ignore_ament_install' +[0.363s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extensions ['colcon_pkg'] +[0.363s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'colcon_pkg' +[0.363s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extensions ['colcon_meta'] +[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'colcon_meta' +[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extensions ['ros'] +[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'ros' +[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extensions ['cmake', 'python'] +[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'cmake' +[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'python' +[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extensions ['python_setup_py'] +[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt/test/qtestroot) by extension 'python_setup_py' +[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extensions ['ignore', 'ignore_ament_install'] +[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'ignore' +[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'ignore_ament_install' +[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extensions ['colcon_pkg'] +[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'colcon_pkg' +[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extensions ['colcon_meta'] +[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'colcon_meta' +[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extensions ['ros'] +[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'ros' +[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extensions ['cmake', 'python'] +[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'cmake' +[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'python' +[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extensions ['python_setup_py'] +[0.364s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D) by extension 'python_setup_py' +[0.365s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extensions ['ignore', 'ignore_ament_install'] +[0.365s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'ignore' +[0.365s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'ignore_ament_install' +[0.365s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extensions ['colcon_pkg'] +[0.365s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'colcon_pkg' +[0.365s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extensions ['colcon_meta'] +[0.365s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'colcon_meta' +[0.365s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extensions ['ros'] +[0.365s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'ros' +[0.365s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extensions ['cmake', 'python'] +[0.365s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'cmake' +[0.365s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'python' +[0.365s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extensions ['python_setup_py'] +[0.365s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Animation) by extension 'python_setup_py' +[0.365s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extensions ['ignore', 'ignore_ament_install'] +[0.365s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'ignore' +[0.365s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'ignore_ament_install' +[0.365s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extensions ['colcon_pkg'] +[0.365s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'colcon_pkg' +[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extensions ['colcon_meta'] +[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'colcon_meta' +[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extensions ['ros'] +[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'ros' +[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extensions ['cmake', 'python'] +[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'cmake' +[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'python' +[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extensions ['python_setup_py'] +[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Core) by extension 'python_setup_py' +[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extensions ['ignore', 'ignore_ament_install'] +[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'ignore' +[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'ignore_ament_install' +[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extensions ['colcon_pkg'] +[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'colcon_pkg' +[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extensions ['colcon_meta'] +[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'colcon_meta' +[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extensions ['ros'] +[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'ros' +[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extensions ['cmake', 'python'] +[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'cmake' +[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'python' +[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extensions ['python_setup_py'] +[0.366s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Extras) by extension 'python_setup_py' +[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extensions ['ignore', 'ignore_ament_install'] +[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'ignore' +[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'ignore_ament_install' +[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extensions ['colcon_pkg'] +[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'colcon_pkg' +[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extensions ['colcon_meta'] +[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'colcon_meta' +[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extensions ['ros'] +[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'ros' +[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extensions ['cmake', 'python'] +[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'cmake' +[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'python' +[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extensions ['python_setup_py'] +[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Input) by extension 'python_setup_py' +[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extensions ['ignore', 'ignore_ament_install'] +[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'ignore' +[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'ignore_ament_install' +[0.367s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extensions ['colcon_pkg'] +[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'colcon_pkg' +[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extensions ['colcon_meta'] +[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'colcon_meta' +[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extensions ['ros'] +[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'ros' +[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extensions ['cmake', 'python'] +[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'cmake' +[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'python' +[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extensions ['python_setup_py'] +[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Logic) by extension 'python_setup_py' +[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extensions ['ignore', 'ignore_ament_install'] +[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'ignore' +[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'ignore_ament_install' +[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extensions ['colcon_pkg'] +[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'colcon_pkg' +[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extensions ['colcon_meta'] +[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'colcon_meta' +[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extensions ['ros'] +[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'ros' +[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extensions ['cmake', 'python'] +[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'cmake' +[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'python' +[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extensions ['python_setup_py'] +[0.368s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/Qt3D/Render) by extension 'python_setup_py' +[0.369s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extensions ['ignore', 'ignore_ament_install'] +[0.369s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'ignore' +[0.369s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'ignore_ament_install' +[0.369s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extensions ['colcon_pkg'] +[0.369s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'colcon_pkg' +[0.369s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extensions ['colcon_meta'] +[0.369s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'colcon_meta' +[0.369s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extensions ['ros'] +[0.369s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'ros' +[0.369s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extensions ['cmake', 'python'] +[0.369s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'cmake' +[0.369s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'python' +[0.369s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extensions ['python_setup_py'] +[0.369s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtBluetooth) by extension 'python_setup_py' +[0.369s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extensions ['ignore', 'ignore_ament_install'] +[0.369s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'ignore' +[0.369s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'ignore_ament_install' +[0.370s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extensions ['colcon_pkg'] +[0.370s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'colcon_pkg' +[0.370s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extensions ['colcon_meta'] +[0.370s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'colcon_meta' +[0.370s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extensions ['ros'] +[0.370s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'ros' +[0.370s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extensions ['cmake', 'python'] +[0.370s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'cmake' +[0.370s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'python' +[0.370s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extensions ['python_setup_py'] +[0.370s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts) by extension 'python_setup_py' +[0.370s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extensions ['ignore', 'ignore_ament_install'] +[0.370s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'ignore' +[0.370s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'ignore_ament_install' +[0.370s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extensions ['colcon_pkg'] +[0.370s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'colcon_pkg' +[0.370s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extensions ['colcon_meta'] +[0.370s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'colcon_meta' +[0.370s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extensions ['ros'] +[0.370s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'ros' +[0.370s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extensions ['cmake', 'python'] +[0.370s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'cmake' +[0.370s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'python' +[0.370s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extensions ['python_setup_py'] +[0.370s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer) by extension 'python_setup_py' +[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extensions ['ignore', 'ignore_ament_install'] +[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'ignore' +[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'ignore_ament_install' +[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extensions ['colcon_pkg'] +[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'colcon_pkg' +[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extensions ['colcon_meta'] +[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'colcon_meta' +[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extensions ['ros'] +[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'ros' +[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extensions ['cmake', 'python'] +[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'cmake' +[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'python' +[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extensions ['python_setup_py'] +[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/default) by extension 'python_setup_py' +[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extensions ['ignore', 'ignore_ament_install'] +[0.371s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'ignore' +[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'ignore_ament_install' +[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extensions ['colcon_pkg'] +[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'colcon_pkg' +[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extensions ['colcon_meta'] +[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'colcon_meta' +[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extensions ['ros'] +[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'ros' +[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extensions ['cmake', 'python'] +[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'cmake' +[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'python' +[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extensions ['python_setup_py'] +[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtCharts/designer/images) by extension 'python_setup_py' +[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extensions ['ignore', 'ignore_ament_install'] +[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'ignore' +[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'ignore_ament_install' +[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extensions ['colcon_pkg'] +[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'colcon_pkg' +[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extensions ['colcon_meta'] +[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'colcon_meta' +[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extensions ['ros'] +[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'ros' +[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extensions ['cmake', 'python'] +[0.372s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'cmake' +[0.373s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'python' +[0.373s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extensions ['python_setup_py'] +[0.373s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization) by extension 'python_setup_py' +[0.373s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extensions ['ignore', 'ignore_ament_install'] +[0.373s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'ignore' +[0.373s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'ignore_ament_install' +[0.373s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extensions ['colcon_pkg'] +[0.373s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'colcon_pkg' +[0.373s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extensions ['colcon_meta'] +[0.373s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'colcon_meta' +[0.373s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extensions ['ros'] +[0.373s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'ros' +[0.373s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extensions ['cmake', 'python'] +[0.373s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'cmake' +[0.373s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'python' +[0.373s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extensions ['python_setup_py'] +[0.373s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer) by extension 'python_setup_py' +[0.373s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extensions ['ignore', 'ignore_ament_install'] +[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'ignore' +[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'ignore_ament_install' +[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extensions ['colcon_pkg'] +[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'colcon_pkg' +[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extensions ['colcon_meta'] +[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'colcon_meta' +[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extensions ['ros'] +[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'ros' +[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extensions ['cmake', 'python'] +[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'cmake' +[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'python' +[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extensions ['python_setup_py'] +[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/default) by extension 'python_setup_py' +[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extensions ['ignore', 'ignore_ament_install'] +[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'ignore' +[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'ignore_ament_install' +[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extensions ['colcon_pkg'] +[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'colcon_pkg' +[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extensions ['colcon_meta'] +[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'colcon_meta' +[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extensions ['ros'] +[0.374s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'ros' +[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extensions ['cmake', 'python'] +[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'cmake' +[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'python' +[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extensions ['python_setup_py'] +[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtDataVisualization/designer/images) by extension 'python_setup_py' +[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extensions ['ignore', 'ignore_ament_install'] +[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'ignore' +[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'ignore_ament_install' +[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extensions ['colcon_pkg'] +[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'colcon_pkg' +[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extensions ['colcon_meta'] +[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'colcon_meta' +[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extensions ['ros'] +[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'ros' +[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extensions ['cmake', 'python'] +[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'cmake' +[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'python' +[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extensions ['python_setup_py'] +[0.375s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGamepad) by extension 'python_setup_py' +[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extensions ['ignore', 'ignore_ament_install'] +[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'ignore' +[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'ignore_ament_install' +[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extensions ['colcon_pkg'] +[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'colcon_pkg' +[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extensions ['colcon_meta'] +[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'colcon_meta' +[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extensions ['ros'] +[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'ros' +[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extensions ['cmake', 'python'] +[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'cmake' +[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'python' +[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extensions ['python_setup_py'] +[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects) by extension 'python_setup_py' +[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extensions ['ignore', 'ignore_ament_install'] +[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'ignore' +[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'ignore_ament_install' +[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extensions ['colcon_pkg'] +[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'colcon_pkg' +[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extensions ['colcon_meta'] +[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'colcon_meta' +[0.376s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extensions ['ros'] +[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'ros' +[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extensions ['cmake', 'python'] +[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'cmake' +[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'python' +[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extensions ['python_setup_py'] +[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtGraphicalEffects/private) by extension 'python_setup_py' +[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extensions ['ignore', 'ignore_ament_install'] +[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'ignore' +[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'ignore_ament_install' +[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extensions ['colcon_pkg'] +[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'colcon_pkg' +[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extensions ['colcon_meta'] +[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'colcon_meta' +[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extensions ['ros'] +[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'ros' +[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extensions ['cmake', 'python'] +[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'cmake' +[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'python' +[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extensions ['python_setup_py'] +[0.377s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtLocation) by extension 'python_setup_py' +[0.378s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extensions ['ignore', 'ignore_ament_install'] +[0.378s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'ignore' +[0.378s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'ignore_ament_install' +[0.378s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extensions ['colcon_pkg'] +[0.378s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'colcon_pkg' +[0.378s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extensions ['colcon_meta'] +[0.378s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'colcon_meta' +[0.378s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extensions ['ros'] +[0.378s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'ros' +[0.378s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extensions ['cmake', 'python'] +[0.378s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'cmake' +[0.378s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'python' +[0.378s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extensions ['python_setup_py'] +[0.378s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtMultimedia) by extension 'python_setup_py' +[0.378s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extensions ['ignore', 'ignore_ament_install'] +[0.378s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'ignore' +[0.378s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'ignore_ament_install' +[0.378s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extensions ['colcon_pkg'] +[0.378s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'colcon_pkg' +[0.378s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extensions ['colcon_meta'] +[0.378s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'colcon_meta' +[0.378s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extensions ['ros'] +[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'ros' +[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extensions ['cmake', 'python'] +[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'cmake' +[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'python' +[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extensions ['python_setup_py'] +[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtNfc) by extension 'python_setup_py' +[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extensions ['ignore', 'ignore_ament_install'] +[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'ignore' +[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'ignore_ament_install' +[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extensions ['colcon_pkg'] +[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'colcon_pkg' +[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extensions ['colcon_meta'] +[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'colcon_meta' +[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extensions ['ros'] +[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'ros' +[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extensions ['cmake', 'python'] +[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'cmake' +[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'python' +[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extensions ['python_setup_py'] +[0.379s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPositioning) by extension 'python_setup_py' +[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extensions ['ignore', 'ignore_ament_install'] +[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'ignore' +[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'ignore_ament_install' +[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extensions ['colcon_pkg'] +[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'colcon_pkg' +[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extensions ['colcon_meta'] +[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'colcon_meta' +[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extensions ['ros'] +[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'ros' +[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extensions ['cmake', 'python'] +[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'cmake' +[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'python' +[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extensions ['python_setup_py'] +[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtPurchasing) by extension 'python_setup_py' +[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extensions ['ignore', 'ignore_ament_install'] +[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'ignore' +[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'ignore_ament_install' +[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extensions ['colcon_pkg'] +[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'colcon_pkg' +[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extensions ['colcon_meta'] +[0.380s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'colcon_meta' +[0.381s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extensions ['ros'] +[0.381s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'ros' +[0.381s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extensions ['cmake', 'python'] +[0.381s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'cmake' +[0.381s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'python' +[0.381s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extensions ['python_setup_py'] +[0.381s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml) by extension 'python_setup_py' +[0.381s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extensions ['ignore', 'ignore_ament_install'] +[0.381s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'ignore' +[0.381s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'ignore_ament_install' +[0.381s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extensions ['colcon_pkg'] +[0.381s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'colcon_pkg' +[0.381s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extensions ['colcon_meta'] +[0.381s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'colcon_meta' +[0.381s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extensions ['ros'] +[0.381s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'ros' +[0.381s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extensions ['cmake', 'python'] +[0.381s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'cmake' +[0.381s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'python' +[0.381s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extensions ['python_setup_py'] +[0.381s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/Models.2) by extension 'python_setup_py' +[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extensions ['ignore', 'ignore_ament_install'] +[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'ignore' +[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'ignore_ament_install' +[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extensions ['colcon_pkg'] +[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'colcon_pkg' +[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extensions ['colcon_meta'] +[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'colcon_meta' +[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extensions ['ros'] +[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'ros' +[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extensions ['cmake', 'python'] +[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'cmake' +[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'python' +[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extensions ['python_setup_py'] +[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/RemoteObjects) by extension 'python_setup_py' +[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extensions ['ignore', 'ignore_ament_install'] +[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'ignore' +[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'ignore_ament_install' +[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extensions ['colcon_pkg'] +[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'colcon_pkg' +[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extensions ['colcon_meta'] +[0.382s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'colcon_meta' +[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extensions ['ros'] +[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'ros' +[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extensions ['cmake', 'python'] +[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'cmake' +[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'python' +[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extensions ['python_setup_py'] +[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/StateMachine) by extension 'python_setup_py' +[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extensions ['ignore', 'ignore_ament_install'] +[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'ignore' +[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'ignore_ament_install' +[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extensions ['colcon_pkg'] +[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'colcon_pkg' +[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extensions ['colcon_meta'] +[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'colcon_meta' +[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extensions ['ros'] +[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'ros' +[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extensions ['cmake', 'python'] +[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'cmake' +[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'python' +[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extensions ['python_setup_py'] +[0.383s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQml/WorkerScript.2) by extension 'python_setup_py' +[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extensions ['ignore', 'ignore_ament_install'] +[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'ignore' +[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'ignore_ament_install' +[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extensions ['colcon_pkg'] +[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'colcon_pkg' +[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extensions ['colcon_meta'] +[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'colcon_meta' +[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extensions ['ros'] +[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'ros' +[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extensions ['cmake', 'python'] +[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'cmake' +[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'python' +[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extensions ['python_setup_py'] +[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick) by extension 'python_setup_py' +[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extensions ['ignore', 'ignore_ament_install'] +[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'ignore' +[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'ignore_ament_install' +[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extensions ['colcon_pkg'] +[0.384s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'colcon_pkg' +[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extensions ['colcon_meta'] +[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'colcon_meta' +[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extensions ['ros'] +[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'ros' +[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extensions ['cmake', 'python'] +[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'cmake' +[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'python' +[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extensions ['python_setup_py'] +[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls) by extension 'python_setup_py' +[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extensions ['ignore', 'ignore_ament_install'] +[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'ignore' +[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'ignore_ament_install' +[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extensions ['colcon_pkg'] +[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'colcon_pkg' +[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extensions ['colcon_meta'] +[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'colcon_meta' +[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extensions ['ros'] +[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'ros' +[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extensions ['cmake', 'python'] +[0.385s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'cmake' +[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'python' +[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extensions ['python_setup_py'] +[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Private) by extension 'python_setup_py' +[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extensions ['ignore', 'ignore_ament_install'] +[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'ignore' +[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'ignore_ament_install' +[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extensions ['colcon_pkg'] +[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'colcon_pkg' +[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extensions ['colcon_meta'] +[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'colcon_meta' +[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extensions ['ros'] +[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'ros' +[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extensions ['cmake', 'python'] +[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'cmake' +[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'python' +[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extensions ['python_setup_py'] +[0.386s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles) by extension 'python_setup_py' +[0.387s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extensions ['ignore', 'ignore_ament_install'] +[0.387s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'ignore' +[0.387s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'ignore_ament_install' +[0.387s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extensions ['colcon_pkg'] +[0.387s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'colcon_pkg' +[0.387s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extensions ['colcon_meta'] +[0.387s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'colcon_meta' +[0.387s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extensions ['ros'] +[0.387s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'ros' +[0.387s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extensions ['cmake', 'python'] +[0.387s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'cmake' +[0.387s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'python' +[0.387s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extensions ['python_setup_py'] +[0.387s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base) by extension 'python_setup_py' +[0.387s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extensions ['ignore', 'ignore_ament_install'] +[0.387s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'ignore' +[0.387s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'ignore_ament_install' +[0.387s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extensions ['colcon_pkg'] +[0.387s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'colcon_pkg' +[0.387s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extensions ['colcon_meta'] +[0.387s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'colcon_meta' +[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extensions ['ros'] +[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'ros' +[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extensions ['cmake', 'python'] +[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'cmake' +[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'python' +[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extensions ['python_setup_py'] +[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Base/images) by extension 'python_setup_py' +[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extensions ['ignore', 'ignore_ament_install'] +[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'ignore' +[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'ignore_ament_install' +[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extensions ['colcon_pkg'] +[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'colcon_pkg' +[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extensions ['colcon_meta'] +[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'colcon_meta' +[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extensions ['ros'] +[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'ros' +[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extensions ['cmake', 'python'] +[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'cmake' +[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'python' +[0.388s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extensions ['python_setup_py'] +[0.389s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Desktop) by extension 'python_setup_py' +[0.389s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extensions ['ignore', 'ignore_ament_install'] +[0.389s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'ignore' +[0.389s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'ignore_ament_install' +[0.389s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extensions ['colcon_pkg'] +[0.389s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'colcon_pkg' +[0.389s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extensions ['colcon_meta'] +[0.389s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'colcon_meta' +[0.389s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extensions ['ros'] +[0.389s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'ros' +[0.389s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extensions ['cmake', 'python'] +[0.389s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'cmake' +[0.389s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'python' +[0.389s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extensions ['python_setup_py'] +[0.389s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls/Styles/Flat) by extension 'python_setup_py' +[0.389s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extensions ['ignore', 'ignore_ament_install'] +[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'ignore' +[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'ignore_ament_install' +[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extensions ['colcon_pkg'] +[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'colcon_pkg' +[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extensions ['colcon_meta'] +[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'colcon_meta' +[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extensions ['ros'] +[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'ros' +[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extensions ['cmake', 'python'] +[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'cmake' +[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'python' +[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extensions ['python_setup_py'] +[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2) by extension 'python_setup_py' +[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extensions ['ignore', 'ignore_ament_install'] +[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'ignore' +[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'ignore_ament_install' +[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extensions ['colcon_pkg'] +[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'colcon_pkg' +[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extensions ['colcon_meta'] +[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'colcon_meta' +[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extensions ['ros'] +[0.390s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'ros' +[0.391s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extensions ['cmake', 'python'] +[0.391s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'cmake' +[0.391s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'python' +[0.391s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extensions ['python_setup_py'] +[0.391s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Fusion) by extension 'python_setup_py' +[0.391s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extensions ['ignore', 'ignore_ament_install'] +[0.391s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'ignore' +[0.391s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'ignore_ament_install' +[0.391s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extensions ['colcon_pkg'] +[0.391s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'colcon_pkg' +[0.391s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extensions ['colcon_meta'] +[0.391s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'colcon_meta' +[0.391s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extensions ['ros'] +[0.391s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'ros' +[0.391s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extensions ['cmake', 'python'] +[0.391s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'cmake' +[0.391s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'python' +[0.391s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extensions ['python_setup_py'] +[0.391s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Imagine) by extension 'python_setup_py' +[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extensions ['ignore', 'ignore_ament_install'] +[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'ignore' +[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'ignore_ament_install' +[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extensions ['colcon_pkg'] +[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'colcon_pkg' +[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extensions ['colcon_meta'] +[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'colcon_meta' +[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extensions ['ros'] +[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'ros' +[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extensions ['cmake', 'python'] +[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'cmake' +[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'python' +[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extensions ['python_setup_py'] +[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Material) by extension 'python_setup_py' +[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extensions ['ignore', 'ignore_ament_install'] +[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'ignore' +[0.392s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'ignore_ament_install' +[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extensions ['colcon_pkg'] +[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'colcon_pkg' +[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extensions ['colcon_meta'] +[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'colcon_meta' +[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extensions ['ros'] +[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'ros' +[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extensions ['cmake', 'python'] +[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'cmake' +[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'python' +[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extensions ['python_setup_py'] +[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/Universal) by extension 'python_setup_py' +[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extensions ['ignore', 'ignore_ament_install'] +[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'ignore' +[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'ignore_ament_install' +[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extensions ['colcon_pkg'] +[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'colcon_pkg' +[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extensions ['colcon_meta'] +[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'colcon_meta' +[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extensions ['ros'] +[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'ros' +[0.393s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extensions ['cmake', 'python'] +[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'cmake' +[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'python' +[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extensions ['python_setup_py'] +[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer) by extension 'python_setup_py' +[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extensions ['ignore', 'ignore_ament_install'] +[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'ignore' +[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'ignore_ament_install' +[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extensions ['colcon_pkg'] +[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'colcon_pkg' +[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extensions ['colcon_meta'] +[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'colcon_meta' +[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extensions ['ros'] +[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'ros' +[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extensions ['cmake', 'python'] +[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'cmake' +[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'python' +[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extensions ['python_setup_py'] +[0.394s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Controls.2/designer/images) by extension 'python_setup_py' +[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extensions ['ignore', 'ignore_ament_install'] +[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'ignore' +[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'ignore_ament_install' +[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extensions ['colcon_pkg'] +[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'colcon_pkg' +[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extensions ['colcon_meta'] +[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'colcon_meta' +[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extensions ['ros'] +[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'ros' +[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extensions ['cmake', 'python'] +[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'cmake' +[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'python' +[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extensions ['python_setup_py'] +[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs) by extension 'python_setup_py' +[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extensions ['ignore', 'ignore_ament_install'] +[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'ignore' +[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'ignore_ament_install' +[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extensions ['colcon_pkg'] +[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'colcon_pkg' +[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extensions ['colcon_meta'] +[0.395s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'colcon_meta' +[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extensions ['ros'] +[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'ros' +[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extensions ['cmake', 'python'] +[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'cmake' +[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'python' +[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extensions ['python_setup_py'] +[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/Private) by extension 'python_setup_py' +[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extensions ['ignore', 'ignore_ament_install'] +[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'ignore' +[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'ignore_ament_install' +[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extensions ['colcon_pkg'] +[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'colcon_pkg' +[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extensions ['colcon_meta'] +[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'colcon_meta' +[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extensions ['ros'] +[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'ros' +[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extensions ['cmake', 'python'] +[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'cmake' +[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'python' +[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extensions ['python_setup_py'] +[0.396s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/images) by extension 'python_setup_py' +[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extensions ['ignore', 'ignore_ament_install'] +[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'ignore' +[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'ignore_ament_install' +[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extensions ['colcon_pkg'] +[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'colcon_pkg' +[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extensions ['colcon_meta'] +[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'colcon_meta' +[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extensions ['ros'] +[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'ros' +[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extensions ['cmake', 'python'] +[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'cmake' +[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'python' +[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extensions ['python_setup_py'] +[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Dialogs/qml) by extension 'python_setup_py' +[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extensions ['ignore', 'ignore_ament_install'] +[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'ignore' +[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'ignore_ament_install' +[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extensions ['colcon_pkg'] +[0.397s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'colcon_pkg' +[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extensions ['colcon_meta'] +[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'colcon_meta' +[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extensions ['ros'] +[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'ros' +[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extensions ['cmake', 'python'] +[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'cmake' +[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'python' +[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extensions ['python_setup_py'] +[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras) by extension 'python_setup_py' +[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extensions ['ignore', 'ignore_ament_install'] +[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'ignore' +[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'ignore_ament_install' +[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extensions ['colcon_pkg'] +[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'colcon_pkg' +[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extensions ['colcon_meta'] +[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'colcon_meta' +[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extensions ['ros'] +[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'ros' +[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extensions ['cmake', 'python'] +[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'cmake' +[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'python' +[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extensions ['python_setup_py'] +[0.398s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/Private) by extension 'python_setup_py' +[0.399s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extensions ['ignore', 'ignore_ament_install'] +[0.399s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'ignore' +[0.399s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'ignore_ament_install' +[0.399s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extensions ['colcon_pkg'] +[0.399s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'colcon_pkg' +[0.399s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extensions ['colcon_meta'] +[0.399s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'colcon_meta' +[0.399s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extensions ['ros'] +[0.399s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'ros' +[0.399s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extensions ['cmake', 'python'] +[0.399s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'cmake' +[0.399s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'python' +[0.399s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extensions ['python_setup_py'] +[0.399s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer) by extension 'python_setup_py' +[0.399s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extensions ['ignore', 'ignore_ament_install'] +[0.399s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'ignore' +[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'ignore_ament_install' +[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extensions ['colcon_pkg'] +[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'colcon_pkg' +[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extensions ['colcon_meta'] +[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'colcon_meta' +[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extensions ['ros'] +[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'ros' +[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extensions ['cmake', 'python'] +[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'cmake' +[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'python' +[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extensions ['python_setup_py'] +[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Extras/designer/images) by extension 'python_setup_py' +[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extensions ['ignore', 'ignore_ament_install'] +[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'ignore' +[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'ignore_ament_install' +[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extensions ['colcon_pkg'] +[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'colcon_pkg' +[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extensions ['colcon_meta'] +[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'colcon_meta' +[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extensions ['ros'] +[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'ros' +[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extensions ['cmake', 'python'] +[0.400s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'cmake' +[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'python' +[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extensions ['python_setup_py'] +[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Layouts) by extension 'python_setup_py' +[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extensions ['ignore', 'ignore_ament_install'] +[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'ignore' +[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'ignore_ament_install' +[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extensions ['colcon_pkg'] +[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'colcon_pkg' +[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extensions ['colcon_meta'] +[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'colcon_meta' +[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extensions ['ros'] +[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'ros' +[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extensions ['cmake', 'python'] +[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'cmake' +[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'python' +[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extensions ['python_setup_py'] +[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/LocalStorage) by extension 'python_setup_py' +[0.401s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extensions ['ignore', 'ignore_ament_install'] +[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'ignore' +[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'ignore_ament_install' +[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extensions ['colcon_pkg'] +[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'colcon_pkg' +[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extensions ['colcon_meta'] +[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'colcon_meta' +[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extensions ['ros'] +[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'ros' +[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extensions ['cmake', 'python'] +[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'cmake' +[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'python' +[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extensions ['python_setup_py'] +[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Particles.2) by extension 'python_setup_py' +[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extensions ['ignore', 'ignore_ament_install'] +[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'ignore' +[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'ignore_ament_install' +[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extensions ['colcon_pkg'] +[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'colcon_pkg' +[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extensions ['colcon_meta'] +[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'colcon_meta' +[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extensions ['ros'] +[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'ros' +[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extensions ['cmake', 'python'] +[0.402s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'cmake' +[0.403s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'python' +[0.403s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extensions ['python_setup_py'] +[0.403s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Pdf) by extension 'python_setup_py' +[0.403s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extensions ['ignore', 'ignore_ament_install'] +[0.403s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'ignore' +[0.403s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'ignore_ament_install' +[0.403s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extensions ['colcon_pkg'] +[0.403s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'colcon_pkg' +[0.403s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extensions ['colcon_meta'] +[0.403s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'colcon_meta' +[0.403s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extensions ['ros'] +[0.403s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'ros' +[0.403s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extensions ['cmake', 'python'] +[0.403s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'cmake' +[0.403s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'python' +[0.403s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extensions ['python_setup_py'] +[0.403s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/PrivateWidgets) by extension 'python_setup_py' +[0.404s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extensions ['ignore', 'ignore_ament_install'] +[0.404s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'ignore' +[0.404s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'ignore_ament_install' +[0.404s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extensions ['colcon_pkg'] +[0.404s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'colcon_pkg' +[0.404s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extensions ['colcon_meta'] +[0.404s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'colcon_meta' +[0.404s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extensions ['ros'] +[0.404s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'ros' +[0.404s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extensions ['cmake', 'python'] +[0.404s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'cmake' +[0.404s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'python' +[0.404s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extensions ['python_setup_py'] +[0.404s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene2D) by extension 'python_setup_py' +[0.404s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extensions ['ignore', 'ignore_ament_install'] +[0.404s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'ignore' +[0.404s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'ignore_ament_install' +[0.404s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extensions ['colcon_pkg'] +[0.404s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'colcon_pkg' +[0.404s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extensions ['colcon_meta'] +[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'colcon_meta' +[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extensions ['ros'] +[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'ros' +[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extensions ['cmake', 'python'] +[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'cmake' +[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'python' +[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extensions ['python_setup_py'] +[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Scene3D) by extension 'python_setup_py' +[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extensions ['ignore', 'ignore_ament_install'] +[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'ignore' +[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'ignore_ament_install' +[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extensions ['colcon_pkg'] +[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'colcon_pkg' +[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extensions ['colcon_meta'] +[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'colcon_meta' +[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extensions ['ros'] +[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'ros' +[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extensions ['cmake', 'python'] +[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'cmake' +[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'python' +[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extensions ['python_setup_py'] +[0.405s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Shapes) by extension 'python_setup_py' +[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extensions ['ignore', 'ignore_ament_install'] +[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'ignore' +[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'ignore_ament_install' +[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extensions ['colcon_pkg'] +[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'colcon_pkg' +[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extensions ['colcon_meta'] +[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'colcon_meta' +[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extensions ['ros'] +[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'ros' +[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extensions ['cmake', 'python'] +[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'cmake' +[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'python' +[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extensions ['python_setup_py'] +[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Templates.2) by extension 'python_setup_py' +[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extensions ['ignore', 'ignore_ament_install'] +[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'ignore' +[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'ignore_ament_install' +[0.406s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extensions ['colcon_pkg'] +[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'colcon_pkg' +[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extensions ['colcon_meta'] +[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'colcon_meta' +[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extensions ['ros'] +[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'ros' +[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extensions ['cmake', 'python'] +[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'cmake' +[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'python' +[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extensions ['python_setup_py'] +[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Timeline) by extension 'python_setup_py' +[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extensions ['ignore', 'ignore_ament_install'] +[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'ignore' +[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'ignore_ament_install' +[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extensions ['colcon_pkg'] +[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'colcon_pkg' +[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extensions ['colcon_meta'] +[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'colcon_meta' +[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extensions ['ros'] +[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'ros' +[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extensions ['cmake', 'python'] +[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'cmake' +[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'python' +[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extensions ['python_setup_py'] +[0.407s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard) by extension 'python_setup_py' +[0.408s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extensions ['ignore', 'ignore_ament_install'] +[0.408s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'ignore' +[0.408s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'ignore_ament_install' +[0.408s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extensions ['colcon_pkg'] +[0.408s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'colcon_pkg' +[0.408s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extensions ['colcon_meta'] +[0.408s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'colcon_meta' +[0.408s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extensions ['ros'] +[0.408s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'ros' +[0.408s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extensions ['cmake', 'python'] +[0.408s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'cmake' +[0.408s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'python' +[0.408s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extensions ['python_setup_py'] +[0.408s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Settings) by extension 'python_setup_py' +[0.408s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extensions ['ignore', 'ignore_ament_install'] +[0.408s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'ignore' +[0.409s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'ignore_ament_install' +[0.409s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extensions ['colcon_pkg'] +[0.409s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'colcon_pkg' +[0.409s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extensions ['colcon_meta'] +[0.409s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'colcon_meta' +[0.409s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extensions ['ros'] +[0.409s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'ros' +[0.409s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extensions ['cmake', 'python'] +[0.409s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'cmake' +[0.409s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'python' +[0.409s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extensions ['python_setup_py'] +[0.409s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/VirtualKeyboard/Styles) by extension 'python_setup_py' +[0.409s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extensions ['ignore', 'ignore_ament_install'] +[0.409s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'ignore' +[0.409s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'ignore_ament_install' +[0.409s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extensions ['colcon_pkg'] +[0.409s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'colcon_pkg' +[0.409s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extensions ['colcon_meta'] +[0.409s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'colcon_meta' +[0.409s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extensions ['ros'] +[0.409s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'ros' +[0.409s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extensions ['cmake', 'python'] +[0.409s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'cmake' +[0.410s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'python' +[0.410s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extensions ['python_setup_py'] +[0.410s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/Window.2) by extension 'python_setup_py' +[0.410s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extensions ['ignore', 'ignore_ament_install'] +[0.410s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'ignore' +[0.410s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'ignore_ament_install' +[0.410s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extensions ['colcon_pkg'] +[0.410s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'colcon_pkg' +[0.410s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extensions ['colcon_meta'] +[0.410s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'colcon_meta' +[0.410s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extensions ['ros'] +[0.410s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'ros' +[0.410s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extensions ['cmake', 'python'] +[0.410s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'cmake' +[0.410s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'python' +[0.410s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extensions ['python_setup_py'] +[0.410s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick/XmlListModel) by extension 'python_setup_py' +[0.410s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extensions ['ignore', 'ignore_ament_install'] +[0.411s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'ignore' +[0.411s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'ignore_ament_install' +[0.411s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extensions ['colcon_pkg'] +[0.411s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'colcon_pkg' +[0.411s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extensions ['colcon_meta'] +[0.411s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'colcon_meta' +[0.411s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extensions ['ros'] +[0.411s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'ros' +[0.411s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extensions ['cmake', 'python'] +[0.411s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'cmake' +[0.411s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'python' +[0.411s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extensions ['python_setup_py'] +[0.411s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick.2) by extension 'python_setup_py' +[0.411s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extensions ['ignore', 'ignore_ament_install'] +[0.411s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'ignore' +[0.411s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'ignore_ament_install' +[0.411s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extensions ['colcon_pkg'] +[0.411s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'colcon_pkg' +[0.411s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extensions ['colcon_meta'] +[0.411s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'colcon_meta' +[0.411s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extensions ['ros'] +[0.411s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'ros' +[0.411s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extensions ['cmake', 'python'] +[0.411s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'cmake' +[0.412s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'python' +[0.412s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extensions ['python_setup_py'] +[0.412s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D) by extension 'python_setup_py' +[0.412s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extensions ['ignore', 'ignore_ament_install'] +[0.412s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'ignore' +[0.412s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'ignore_ament_install' +[0.412s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extensions ['colcon_pkg'] +[0.412s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'colcon_pkg' +[0.412s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extensions ['colcon_meta'] +[0.412s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'colcon_meta' +[0.412s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extensions ['ros'] +[0.412s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'ros' +[0.412s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extensions ['cmake', 'python'] +[0.412s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'cmake' +[0.412s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'python' +[0.412s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extensions ['python_setup_py'] +[0.412s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects) by extension 'python_setup_py' +[0.413s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extensions ['ignore', 'ignore_ament_install'] +[0.413s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'ignore' +[0.413s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'ignore_ament_install' +[0.413s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extensions ['colcon_pkg'] +[0.413s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'colcon_pkg' +[0.413s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extensions ['colcon_meta'] +[0.413s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'colcon_meta' +[0.413s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extensions ['ros'] +[0.413s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'ros' +[0.413s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extensions ['cmake', 'python'] +[0.413s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'cmake' +[0.413s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'python' +[0.413s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extensions ['python_setup_py'] +[0.413s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer) by extension 'python_setup_py' +[0.413s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extensions ['ignore', 'ignore_ament_install'] +[0.413s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'ignore' +[0.413s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'ignore_ament_install' +[0.413s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extensions ['colcon_pkg'] +[0.413s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'colcon_pkg' +[0.413s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extensions ['colcon_meta'] +[0.413s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'colcon_meta' +[0.414s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extensions ['ros'] +[0.414s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'ros' +[0.414s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extensions ['cmake', 'python'] +[0.414s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'cmake' +[0.414s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'python' +[0.414s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extensions ['python_setup_py'] +[0.414s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/images) by extension 'python_setup_py' +[0.414s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extensions ['ignore', 'ignore_ament_install'] +[0.414s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'ignore' +[0.414s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'ignore_ament_install' +[0.414s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extensions ['colcon_pkg'] +[0.414s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'colcon_pkg' +[0.414s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extensions ['colcon_meta'] +[0.414s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'colcon_meta' +[0.414s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extensions ['ros'] +[0.414s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'ros' +[0.414s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extensions ['cmake', 'python'] +[0.414s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'cmake' +[0.414s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'python' +[0.414s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extensions ['python_setup_py'] +[0.414s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/designer/source) by extension 'python_setup_py' +[0.415s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extensions ['ignore', 'ignore_ament_install'] +[0.415s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'ignore' +[0.415s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'ignore_ament_install' +[0.415s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extensions ['colcon_pkg'] +[0.415s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'colcon_pkg' +[0.415s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extensions ['colcon_meta'] +[0.415s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'colcon_meta' +[0.415s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extensions ['ros'] +[0.415s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'ros' +[0.415s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extensions ['cmake', 'python'] +[0.415s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'cmake' +[0.415s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'python' +[0.415s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extensions ['python_setup_py'] +[0.415s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Effects/maps) by extension 'python_setup_py' +[0.415s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extensions ['ignore', 'ignore_ament_install'] +[0.415s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'ignore' +[0.415s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'ignore_ament_install' +[0.415s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extensions ['colcon_pkg'] +[0.415s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'colcon_pkg' +[0.415s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extensions ['colcon_meta'] +[0.416s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'colcon_meta' +[0.416s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extensions ['ros'] +[0.416s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'ros' +[0.416s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extensions ['cmake', 'python'] +[0.416s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'cmake' +[0.416s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'python' +[0.416s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extensions ['python_setup_py'] +[0.416s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers) by extension 'python_setup_py' +[0.416s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extensions ['ignore', 'ignore_ament_install'] +[0.416s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'ignore' +[0.416s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'ignore_ament_install' +[0.416s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extensions ['colcon_pkg'] +[0.416s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'colcon_pkg' +[0.416s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extensions ['colcon_meta'] +[0.416s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'colcon_meta' +[0.416s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extensions ['ros'] +[0.416s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'ros' +[0.416s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extensions ['cmake', 'python'] +[0.416s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'cmake' +[0.416s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'python' +[0.416s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extensions ['python_setup_py'] +[0.416s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Helpers/meshes) by extension 'python_setup_py' +[0.417s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extensions ['ignore', 'ignore_ament_install'] +[0.417s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'ignore' +[0.417s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'ignore_ament_install' +[0.417s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extensions ['colcon_pkg'] +[0.417s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'colcon_pkg' +[0.417s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extensions ['colcon_meta'] +[0.417s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'colcon_meta' +[0.417s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extensions ['ros'] +[0.417s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'ros' +[0.417s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extensions ['cmake', 'python'] +[0.417s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'cmake' +[0.417s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'python' +[0.417s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extensions ['python_setup_py'] +[0.417s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials) by extension 'python_setup_py' +[0.417s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extensions ['ignore', 'ignore_ament_install'] +[0.417s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'ignore' +[0.417s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'ignore_ament_install' +[0.418s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extensions ['colcon_pkg'] +[0.418s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'colcon_pkg' +[0.418s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extensions ['colcon_meta'] +[0.418s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'colcon_meta' +[0.418s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extensions ['ros'] +[0.418s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'ros' +[0.418s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extensions ['cmake', 'python'] +[0.418s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'cmake' +[0.418s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'python' +[0.418s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extensions ['python_setup_py'] +[0.418s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer) by extension 'python_setup_py' +[0.418s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extensions ['ignore', 'ignore_ament_install'] +[0.418s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'ignore' +[0.418s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'ignore_ament_install' +[0.418s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extensions ['colcon_pkg'] +[0.418s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'colcon_pkg' +[0.418s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extensions ['colcon_meta'] +[0.418s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'colcon_meta' +[0.418s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extensions ['ros'] +[0.418s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'ros' +[0.418s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extensions ['cmake', 'python'] +[0.418s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'cmake' +[0.418s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'python' +[0.419s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extensions ['python_setup_py'] +[0.419s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/images) by extension 'python_setup_py' +[0.419s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extensions ['ignore', 'ignore_ament_install'] +[0.419s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'ignore' +[0.419s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'ignore_ament_install' +[0.419s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extensions ['colcon_pkg'] +[0.419s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'colcon_pkg' +[0.419s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extensions ['colcon_meta'] +[0.419s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'colcon_meta' +[0.419s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extensions ['ros'] +[0.419s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'ros' +[0.419s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extensions ['cmake', 'python'] +[0.419s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'cmake' +[0.419s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'python' +[0.419s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extensions ['python_setup_py'] +[0.419s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/designer/source) by extension 'python_setup_py' +[0.419s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extensions ['ignore', 'ignore_ament_install'] +[0.420s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'ignore' +[0.420s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'ignore_ament_install' +[0.420s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extensions ['colcon_pkg'] +[0.420s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'colcon_pkg' +[0.420s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extensions ['colcon_meta'] +[0.420s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'colcon_meta' +[0.420s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extensions ['ros'] +[0.420s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'ros' +[0.420s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extensions ['cmake', 'python'] +[0.420s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'cmake' +[0.420s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'python' +[0.420s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extensions ['python_setup_py'] +[0.420s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/Materials/maps) by extension 'python_setup_py' +[0.420s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extensions ['ignore', 'ignore_ament_install'] +[0.420s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'ignore' +[0.420s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'ignore_ament_install' +[0.420s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extensions ['colcon_pkg'] +[0.420s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'colcon_pkg' +[0.420s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extensions ['colcon_meta'] +[0.420s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'colcon_meta' +[0.420s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extensions ['ros'] +[0.420s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'ros' +[0.421s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extensions ['cmake', 'python'] +[0.421s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'cmake' +[0.421s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'python' +[0.421s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extensions ['python_setup_py'] +[0.421s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer) by extension 'python_setup_py' +[0.421s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extensions ['ignore', 'ignore_ament_install'] +[0.421s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'ignore' +[0.421s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'ignore_ament_install' +[0.421s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extensions ['colcon_pkg'] +[0.421s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'colcon_pkg' +[0.421s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extensions ['colcon_meta'] +[0.421s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'colcon_meta' +[0.421s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extensions ['ros'] +[0.421s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'ros' +[0.421s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extensions ['cmake', 'python'] +[0.421s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'cmake' +[0.421s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'python' +[0.421s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extensions ['python_setup_py'] +[0.421s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/images) by extension 'python_setup_py' +[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extensions ['ignore', 'ignore_ament_install'] +[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'ignore' +[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'ignore_ament_install' +[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extensions ['colcon_pkg'] +[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'colcon_pkg' +[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extensions ['colcon_meta'] +[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'colcon_meta' +[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extensions ['ros'] +[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'ros' +[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extensions ['cmake', 'python'] +[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'cmake' +[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'python' +[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extensions ['python_setup_py'] +[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtQuick3D/designer/source) by extension 'python_setup_py' +[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extensions ['ignore', 'ignore_ament_install'] +[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'ignore' +[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'ignore_ament_install' +[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extensions ['colcon_pkg'] +[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'colcon_pkg' +[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extensions ['colcon_meta'] +[0.422s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'colcon_meta' +[0.423s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extensions ['ros'] +[0.423s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'ros' +[0.423s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extensions ['cmake', 'python'] +[0.423s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'cmake' +[0.423s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'python' +[0.423s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extensions ['python_setup_py'] +[0.423s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtRemoteObjects) by extension 'python_setup_py' +[0.423s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extensions ['ignore', 'ignore_ament_install'] +[0.423s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'ignore' +[0.423s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'ignore_ament_install' +[0.423s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extensions ['colcon_pkg'] +[0.423s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'colcon_pkg' +[0.423s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extensions ['colcon_meta'] +[0.423s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'colcon_meta' +[0.423s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extensions ['ros'] +[0.423s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'ros' +[0.423s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extensions ['cmake', 'python'] +[0.423s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'cmake' +[0.423s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'python' +[0.423s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extensions ['python_setup_py'] +[0.423s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtScxml) by extension 'python_setup_py' +[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extensions ['ignore', 'ignore_ament_install'] +[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'ignore' +[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'ignore_ament_install' +[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extensions ['colcon_pkg'] +[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'colcon_pkg' +[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extensions ['colcon_meta'] +[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'colcon_meta' +[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extensions ['ros'] +[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'ros' +[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extensions ['cmake', 'python'] +[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'cmake' +[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'python' +[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extensions ['python_setup_py'] +[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtSensors) by extension 'python_setup_py' +[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extensions ['ignore', 'ignore_ament_install'] +[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'ignore' +[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'ignore_ament_install' +[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extensions ['colcon_pkg'] +[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'colcon_pkg' +[0.424s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extensions ['colcon_meta'] +[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'colcon_meta' +[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extensions ['ros'] +[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'ros' +[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extensions ['cmake', 'python'] +[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'cmake' +[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'python' +[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extensions ['python_setup_py'] +[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtTest) by extension 'python_setup_py' +[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extensions ['ignore', 'ignore_ament_install'] +[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'ignore' +[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'ignore_ament_install' +[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extensions ['colcon_pkg'] +[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'colcon_pkg' +[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extensions ['colcon_meta'] +[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'colcon_meta' +[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extensions ['ros'] +[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'ros' +[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extensions ['cmake', 'python'] +[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'cmake' +[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'python' +[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extensions ['python_setup_py'] +[0.425s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland) by extension 'python_setup_py' +[0.426s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extensions ['ignore', 'ignore_ament_install'] +[0.426s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'ignore' +[0.426s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'ignore_ament_install' +[0.426s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extensions ['colcon_pkg'] +[0.426s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'colcon_pkg' +[0.426s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extensions ['colcon_meta'] +[0.426s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'colcon_meta' +[0.426s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extensions ['ros'] +[0.426s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'ros' +[0.426s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extensions ['cmake', 'python'] +[0.426s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'cmake' +[0.426s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'python' +[0.426s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extensions ['python_setup_py'] +[0.426s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client) by extension 'python_setup_py' +[0.426s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extensions ['ignore', 'ignore_ament_install'] +[0.426s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'ignore' +[0.426s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'ignore_ament_install' +[0.426s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extensions ['colcon_pkg'] +[0.426s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'colcon_pkg' +[0.427s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extensions ['colcon_meta'] +[0.427s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'colcon_meta' +[0.427s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extensions ['ros'] +[0.427s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'ros' +[0.427s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extensions ['cmake', 'python'] +[0.427s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'cmake' +[0.427s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'python' +[0.427s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extensions ['python_setup_py'] +[0.427s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Client/TextureSharing) by extension 'python_setup_py' +[0.427s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extensions ['ignore', 'ignore_ament_install'] +[0.427s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'ignore' +[0.427s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'ignore_ament_install' +[0.427s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extensions ['colcon_pkg'] +[0.427s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'colcon_pkg' +[0.427s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extensions ['colcon_meta'] +[0.427s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'colcon_meta' +[0.427s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extensions ['ros'] +[0.427s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'ros' +[0.427s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extensions ['cmake', 'python'] +[0.427s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'cmake' +[0.427s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'python' +[0.427s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extensions ['python_setup_py'] +[0.427s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor) by extension 'python_setup_py' +[0.428s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extensions ['ignore', 'ignore_ament_install'] +[0.428s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'ignore' +[0.428s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'ignore_ament_install' +[0.428s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extensions ['colcon_pkg'] +[0.428s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'colcon_pkg' +[0.428s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extensions ['colcon_meta'] +[0.428s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'colcon_meta' +[0.428s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extensions ['ros'] +[0.428s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'ros' +[0.428s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extensions ['cmake', 'python'] +[0.428s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'cmake' +[0.428s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'python' +[0.428s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extensions ['python_setup_py'] +[0.428s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWayland/Compositor/TextureSharingExtension) by extension 'python_setup_py' +[0.428s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extensions ['ignore', 'ignore_ament_install'] +[0.428s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'ignore' +[0.428s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'ignore_ament_install' +[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extensions ['colcon_pkg'] +[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'colcon_pkg' +[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extensions ['colcon_meta'] +[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'colcon_meta' +[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extensions ['ros'] +[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'ros' +[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extensions ['cmake', 'python'] +[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'cmake' +[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'python' +[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extensions ['python_setup_py'] +[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebChannel) by extension 'python_setup_py' +[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extensions ['ignore', 'ignore_ament_install'] +[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'ignore' +[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'ignore_ament_install' +[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extensions ['colcon_pkg'] +[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'colcon_pkg' +[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extensions ['colcon_meta'] +[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'colcon_meta' +[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extensions ['ros'] +[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'ros' +[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extensions ['cmake', 'python'] +[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'cmake' +[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'python' +[0.429s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extensions ['python_setup_py'] +[0.430s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine) by extension 'python_setup_py' +[0.430s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extensions ['ignore', 'ignore_ament_install'] +[0.430s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'ignore' +[0.430s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'ignore_ament_install' +[0.430s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extensions ['colcon_pkg'] +[0.430s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'colcon_pkg' +[0.430s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extensions ['colcon_meta'] +[0.430s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'colcon_meta' +[0.430s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extensions ['ros'] +[0.430s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'ros' +[0.430s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extensions ['cmake', 'python'] +[0.430s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'cmake' +[0.430s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'python' +[0.430s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extensions ['python_setup_py'] +[0.430s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls1Delegates) by extension 'python_setup_py' +[0.430s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extensions ['ignore', 'ignore_ament_install'] +[0.430s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'ignore' +[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'ignore_ament_install' +[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extensions ['colcon_pkg'] +[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'colcon_pkg' +[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extensions ['colcon_meta'] +[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'colcon_meta' +[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extensions ['ros'] +[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'ros' +[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extensions ['cmake', 'python'] +[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'cmake' +[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'python' +[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extensions ['python_setup_py'] +[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebEngine/Controls2Delegates) by extension 'python_setup_py' +[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extensions ['ignore', 'ignore_ament_install'] +[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'ignore' +[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'ignore_ament_install' +[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extensions ['colcon_pkg'] +[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'colcon_pkg' +[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extensions ['colcon_meta'] +[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'colcon_meta' +[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extensions ['ros'] +[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'ros' +[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extensions ['cmake', 'python'] +[0.431s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'cmake' +[0.432s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'python' +[0.432s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extensions ['python_setup_py'] +[0.432s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebSockets) by extension 'python_setup_py' +[0.432s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extensions ['ignore', 'ignore_ament_install'] +[0.432s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'ignore' +[0.432s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'ignore_ament_install' +[0.432s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extensions ['colcon_pkg'] +[0.432s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'colcon_pkg' +[0.432s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extensions ['colcon_meta'] +[0.432s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'colcon_meta' +[0.432s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extensions ['ros'] +[0.432s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'ros' +[0.432s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extensions ['cmake', 'python'] +[0.432s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'cmake' +[0.432s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'python' +[0.432s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extensions ['python_setup_py'] +[0.432s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/Qt/qml/QtWebView) by extension 'python_setup_py' +[0.432s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extensions ['ignore', 'ignore_ament_install'] +[0.432s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'ignore' +[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'ignore_ament_install' +[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extensions ['colcon_pkg'] +[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'colcon_pkg' +[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extensions ['colcon_meta'] +[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'colcon_meta' +[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extensions ['ros'] +[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'ros' +[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extensions ['cmake', 'python'] +[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'cmake' +[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'python' +[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extensions ['python_setup_py'] +[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/AscentQLinux/logs) by extension 'python_setup_py' +[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extensions ['ignore', 'ignore_ament_install'] +[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'ignore' +[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'ignore_ament_install' +[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extensions ['colcon_pkg'] +[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'colcon_pkg' +[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extensions ['colcon_meta'] +[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'colcon_meta' +[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extensions ['ros'] +[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'ros' +[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extensions ['cmake', 'python'] +[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'cmake' +[0.433s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'python' +[0.434s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extensions ['python_setup_py'] +[0.434s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/logs) by extension 'python_setup_py' +[0.434s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extensions ['ignore', 'ignore_ament_install'] +[0.434s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'ignore' +[0.434s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'ignore_ament_install' +[0.434s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extensions ['colcon_pkg'] +[0.434s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'colcon_pkg' +[0.434s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extensions ['colcon_meta'] +[0.434s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'colcon_meta' +[0.434s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extensions ['ros'] +[0.434s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'ros' +[0.434s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extensions ['cmake', 'python'] +[0.434s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'cmake' +[0.434s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'python' +[0.434s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extensions ['python_setup_py'] +[0.434s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/AscentAeroSystemsSITLPackage/terrain) by extension 'python_setup_py' +[0.435s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extensions ['ignore', 'ignore_ament_install'] +[0.435s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'ignore' +[0.435s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'ignore_ament_install' +[0.435s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extensions ['colcon_pkg'] +[0.435s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'colcon_pkg' +[0.435s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extensions ['colcon_meta'] +[0.435s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'colcon_meta' +[0.435s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extensions ['ros'] +[0.435s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'ros' +[0.435s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extensions ['cmake', 'python'] +[0.435s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'cmake' +[0.435s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'python' +[0.435s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extensions ['python_setup_py'] +[0.435s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/AscentAeroSystems/__pycache__) by extension 'python_setup_py' +[0.436s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extensions ['ignore', 'ignore_ament_install'] +[0.436s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'ignore' +[0.436s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'ignore_ament_install' +[0.436s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extensions ['colcon_pkg'] +[0.436s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'colcon_pkg' +[0.436s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extensions ['colcon_meta'] +[0.436s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'colcon_meta' +[0.436s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extensions ['ros'] +[0.436s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'ros' +[0.436s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extensions ['cmake', 'python'] +[0.436s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'cmake' +[0.436s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'python' +[0.436s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extensions ['python_setup_py'] +[0.436s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/dronekit-python) by extension 'python_setup_py' +[0.627s] DEBUG:colcon.colcon_core.package_identification:Package 'simulation/dronekit-python' with type 'python' and name 'dronekit' +[0.627s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extensions ['ignore', 'ignore_ament_install'] +[0.627s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'ignore' +[0.628s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'ignore_ament_install' +[0.628s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extensions ['colcon_pkg'] +[0.628s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'colcon_pkg' +[0.628s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extensions ['colcon_meta'] +[0.628s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'colcon_meta' +[0.628s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extensions ['ros'] +[0.628s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'ros' +[0.628s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extensions ['cmake', 'python'] +[0.628s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'cmake' +[0.628s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'python' +[0.628s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extensions ['python_setup_py'] +[0.628s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_dep) by extension 'python_setup_py' +[0.628s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extensions ['ignore', 'ignore_ament_install'] +[0.628s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'ignore' +[0.628s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'ignore_ament_install' +[0.628s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extensions ['colcon_pkg'] +[0.628s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'colcon_pkg' +[0.628s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extensions ['colcon_meta'] +[0.628s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'colcon_meta' +[0.628s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extensions ['ros'] +[0.628s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'ros' +[0.628s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extensions ['cmake', 'python'] +[0.628s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'cmake' +[0.628s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'python' +[0.628s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extensions ['python_setup_py'] +[0.629s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/gz_sim) by extension 'python_setup_py' +[0.629s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extensions ['ignore', 'ignore_ament_install'] +[0.629s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'ignore' +[0.629s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'ignore_ament_install' +[0.629s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extensions ['colcon_pkg'] +[0.629s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'colcon_pkg' +[0.629s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extensions ['colcon_meta'] +[0.629s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'colcon_meta' +[0.629s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extensions ['ros'] +[0.629s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'ros' +[0.629s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extensions ['cmake', 'python'] +[0.629s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'cmake' +[0.629s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'python' +[0.629s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extensions ['python_setup_py'] +[0.629s] Level 1:colcon.colcon_core.package_identification:_identify(simulation/scratch) by extension 'python_setup_py' +[0.629s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extensions ['ignore', 'ignore_ament_install'] +[0.629s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'ignore' +[0.629s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'ignore_ament_install' +[0.630s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extensions ['colcon_pkg'] +[0.630s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'colcon_pkg' +[0.630s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extensions ['colcon_meta'] +[0.630s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'colcon_meta' +[0.630s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extensions ['ros'] +[0.630s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'ros' +[0.630s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extensions ['cmake', 'python'] +[0.630s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'cmake' +[0.630s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'python' +[0.630s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extensions ['python_setup_py'] +[0.630s] Level 1:colcon.colcon_core.package_identification:_identify(tests) by extension 'python_setup_py' +[0.630s] Level 1:colcon.colcon_core.package_discovery:discover_packages(recursive) using defaults +[0.630s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) discover +[0.630s] Level 1:colcon.colcon_core.package_discovery:discover_packages(ignore) using defaults +[0.630s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) discover +[0.630s] Level 1:colcon.colcon_core.package_discovery:discover_packages(path) using defaults +[0.661s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'controls_bringup' in 'ros_ws/src/robot/autonomy/controls/controls_bringup' +[0.661s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'dronekit' in 'simulation/dronekit-python' +[0.661s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mav_msgs' in 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_msgs' +[0.661s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mav_state_machine_msgs' in 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_state_machine_msgs' +[0.661s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mav_system_msgs' in 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_system_msgs' +[0.661s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'pcl_conversions' in 'ros_ws/src/perception_pcl/pcl_conversions' +[0.661s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'px4_msgs' in 'ros_ws/src/robot/autonomy/controls/px4_msgs' +[0.661s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'robot_bringup' in 'ros_ws/src/robot/robot_bringup' +[0.662s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'vdb_mapping' in 'ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping' +[0.662s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'vdb_mapping_interfaces' in 'ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_interfaces' +[0.662s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mav_planning_msgs' in 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_planning_msgs' +[0.662s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'pcl_ros' in 'ros_ws/src/perception_pcl/pcl_ros' +[0.662s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'px4_ros_com' in 'ros_ws/src/robot/autonomy/controls/px4_ros_com' +[0.662s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'robot_interface' in 'ros_ws/src/robot/autonomy/controls/robot_interface' +[0.662s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'vdb_mapping_ros2' in 'ros_ws/src/robot/autonomy/world_model/mapping/vdb_mapping_ros2/vdb_mapping_ros2' +[0.662s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mav_comm' in 'ros_ws/src/robot/autonomy/controls/mav_comm/mav_comm' +[0.662s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'mavros_interface' in 'ros_ws/src/robot/autonomy/controls/mavros_interface' +[0.662s] INFO:colcon.colcon_core.package_selection:Skipping not selected package 'perception_pcl' in 'ros_ws/src/perception_pcl/perception_pcl' +[0.662s] Level 1:colcon.colcon_core.package_discovery:discover_packages(prefix_path) check parameters +[0.662s] Level 1:colcon.colcon_core.package_discovery:discover_packages(prefix_path) discover +[0.665s] DEBUG:colcon.colcon_installed_package_information.package_discovery:Found 18 installed packages in /root/AirStack/ros_ws/install +[0.667s] DEBUG:colcon.colcon_installed_package_information.package_discovery:Found 276 installed packages in /opt/ros/humble +[0.668s] Level 1:colcon.colcon_core.package_discovery:discover_packages(prefix_path) using defaults +[0.751s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'cmake_args' from command line to 'None' +[0.751s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'cmake_target' from command line to 'None' +[0.751s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'cmake_target_skip_unavailable' from command line to 'False' +[0.751s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'cmake_clean_cache' from command line to 'False' +[0.751s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'cmake_clean_first' from command line to 'False' +[0.751s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'cmake_force_configure' from command line to 'False' +[0.751s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'ament_cmake_args' from command line to 'None' +[0.751s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'catkin_cmake_args' from command line to 'None' +[0.751s] Level 5:colcon.colcon_core.verb:set package 'disparity_expansion' build argument 'catkin_skip_building_tests' from command line to 'False' +[0.751s] DEBUG:colcon.colcon_core.verb:Building package 'disparity_expansion' with the following arguments: {'ament_cmake_args': None, 'build_base': '/root/AirStack/build/disparity_expansion', 'catkin_cmake_args': None, 'catkin_skip_building_tests': False, 'cmake_args': None, 'cmake_clean_cache': False, 'cmake_clean_first': False, 'cmake_force_configure': False, 'cmake_target': None, 'cmake_target_skip_unavailable': False, 'install_base': '/root/AirStack/install/disparity_expansion', 'merge_install': False, 'path': '/root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion', 'symlink_install': False, 'test_result_base': None} +[0.751s] INFO:colcon.colcon_core.executor:Executing jobs using 'parallel' executor +[0.752s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete +[0.752s] INFO:colcon.colcon_ros.task.catkin.build:Building ROS package in '/root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion' with build type 'catkin' +[0.752s] INFO:colcon.colcon_cmake.task.cmake.build:Building CMake package in '/root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion' +[0.756s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_core.shell.bat': Not used on non-Windows systems +[0.756s] INFO:colcon.colcon_core.shell:Skip shell extension 'powershell' for command environment: Not usable outside of PowerShell +[0.756s] DEBUG:colcon.colcon_core.shell:Skip shell extension 'dsv' for command environment +[0.758s] WARNING:colcon.colcon_core.shell:The following packages are in the workspace but haven't been built: +- pcl_conversions +They are being used from the following locations instead: +- /root/AirStack/ros_ws/install/pcl_conversions +To suppress this warning ignore these packages in the workspace: +--packages-ignore pcl_conversions +[0.766s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoking command in '/root/AirStack/build/disparity_expansion': /usr/bin/cmake /root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion -DCATKIN_INSTALL_INTO_PREFIX_ROOT=0 -DCMAKE_INSTALL_PREFIX=/root/AirStack/install/disparity_expansion +[3.697s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoked command in '/root/AirStack/build/disparity_expansion' returned '0': /usr/bin/cmake /root/AirStack/ros_ws/src/robot/autonomy/planning/local/disparity_expansion -DCATKIN_INSTALL_INTO_PREFIX_ROOT=0 -DCMAKE_INSTALL_PREFIX=/root/AirStack/install/disparity_expansion +[3.700s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoking command in '/root/AirStack/build/disparity_expansion': /usr/bin/cmake --build /root/AirStack/build/disparity_expansion -- -j12 -l12 +[19.231s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoked command in '/root/AirStack/build/disparity_expansion' returned '0': /usr/bin/cmake --build /root/AirStack/build/disparity_expansion -- -j12 -l12 +[19.339s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoking command in '/root/AirStack/build/disparity_expansion': /usr/bin/cmake --install /root/AirStack/build/disparity_expansion +[19.355s] DEBUG:colcon.colcon_core.event_handler.log_command:Invoked command in '/root/AirStack/build/disparity_expansion' returned '0': /usr/bin/cmake --install /root/AirStack/build/disparity_expansion +[19.401s] Level 1:colcon.colcon_core.shell:create_environment_hook('disparity_expansion', 'ros_package_path') +[19.402s] INFO:colcon.colcon_core.shell:Creating environment hook '/root/AirStack/install/disparity_expansion/share/disparity_expansion/hook/ros_package_path.ps1' +[19.402s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/root/AirStack/install/disparity_expansion/share/disparity_expansion/hook/ros_package_path.dsv' +[19.403s] INFO:colcon.colcon_core.shell:Creating environment hook '/root/AirStack/install/disparity_expansion/share/disparity_expansion/hook/ros_package_path.sh' +[19.404s] Level 1:colcon.colcon_core.shell:create_environment_hook('disparity_expansion', 'pkg_config_path') +[19.404s] INFO:colcon.colcon_core.shell:Creating environment hook '/root/AirStack/install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path.ps1' +[19.405s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/root/AirStack/install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path.dsv' +[19.405s] INFO:colcon.colcon_core.shell:Creating environment hook '/root/AirStack/install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path.sh' +[19.409s] Level 1:colcon.colcon_core.shell:create_environment_hook('disparity_expansion', 'pkg_config_path_multiarch') +[19.409s] INFO:colcon.colcon_core.shell:Creating environment hook '/root/AirStack/install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path_multiarch.ps1' +[19.410s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/root/AirStack/install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path_multiarch.dsv' +[19.410s] INFO:colcon.colcon_core.shell:Creating environment hook '/root/AirStack/install/disparity_expansion/share/disparity_expansion/hook/pkg_config_path_multiarch.sh' +[19.411s] Level 1:colcon.colcon_core.environment:create_environment_scripts_only(disparity_expansion) +[19.417s] Level 1:colcon.colcon_core.environment:checking '/root/AirStack/install/disparity_expansion' for CMake module files +[19.418s] Level 1:colcon.colcon_core.environment:checking '/root/AirStack/install/disparity_expansion' for CMake config files +[19.418s] Level 1:colcon.colcon_core.environment:checking '/root/AirStack/install/disparity_expansion/bin' +[19.418s] Level 1:colcon.colcon_core.shell:create_environment_hook('disparity_expansion', 'path') +[19.418s] INFO:colcon.colcon_core.shell:Creating environment hook '/root/AirStack/install/disparity_expansion/share/disparity_expansion/hook/path.ps1' +[19.419s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/root/AirStack/install/disparity_expansion/share/disparity_expansion/hook/path.dsv' +[19.419s] INFO:colcon.colcon_core.shell:Creating environment hook '/root/AirStack/install/disparity_expansion/share/disparity_expansion/hook/path.sh' +[19.419s] Level 1:colcon.colcon_core.environment:checking '/root/AirStack/install/disparity_expansion/lib/pkgconfig/disparity_expansion.pc' +[19.419s] Level 1:colcon.colcon_core.environment:checking '/root/AirStack/install/disparity_expansion/lib/python3.10/site-packages' +[19.420s] Level 1:colcon.colcon_core.environment:checking '/root/AirStack/install/disparity_expansion/bin' +[19.420s] Level 1:colcon.colcon_core.shell:create_environment_hook('disparity_expansion', 'pythonscriptspath') +[19.420s] INFO:colcon.colcon_core.shell:Creating environment hook '/root/AirStack/install/disparity_expansion/share/disparity_expansion/hook/pythonscriptspath.ps1' +[19.420s] INFO:colcon.colcon_core.shell:Creating environment descriptor '/root/AirStack/install/disparity_expansion/share/disparity_expansion/hook/pythonscriptspath.dsv' +[19.421s] INFO:colcon.colcon_core.shell:Creating environment hook '/root/AirStack/install/disparity_expansion/share/disparity_expansion/hook/pythonscriptspath.sh' +[19.421s] INFO:colcon.colcon_core.shell:Creating package script '/root/AirStack/install/disparity_expansion/share/disparity_expansion/package.ps1' +[19.422s] INFO:colcon.colcon_core.shell:Creating package descriptor '/root/AirStack/install/disparity_expansion/share/disparity_expansion/package.dsv' +[19.423s] INFO:colcon.colcon_core.shell:Creating package script '/root/AirStack/install/disparity_expansion/share/disparity_expansion/package.sh' +[19.424s] INFO:colcon.colcon_core.shell:Creating package script '/root/AirStack/install/disparity_expansion/share/disparity_expansion/package.bash' +[19.424s] INFO:colcon.colcon_core.shell:Creating package script '/root/AirStack/install/disparity_expansion/share/disparity_expansion/package.zsh' +[19.425s] Level 1:colcon.colcon_core.environment:create_file_with_runtime_dependencies(/root/AirStack/install/disparity_expansion/share/colcon-core/packages/disparity_expansion) +[19.425s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:closing loop +[19.426s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:loop closed +[19.426s] DEBUG:colcon.colcon_parallel_executor.executor.parallel:run_until_complete finished with '0' +[19.426s] DEBUG:colcon.colcon_core.event_reactor:joining thread +[19.434s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.notify_send': Could not find 'notify-send' +[19.434s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.terminal_notifier': Not used on non-Darwin systems +[19.434s] INFO:colcon.colcon_core.plugin_system:Skipping extension 'colcon_notification.desktop_notification.win32': Not used on non-Windows systems +[19.434s] INFO:colcon.colcon_notification.desktop_notification:Sending desktop notification using 'notify2' +[19.438s] DEBUG:colcon.colcon_notification.desktop_notification.notify2:Failed to initialize notify2: org.freedesktop.DBus.Error.Spawn.ExecFailed: /usr/bin/dbus-launch terminated abnormally without any error message +[19.438s] DEBUG:colcon.colcon_core.event_reactor:joined thread +[19.439s] INFO:colcon.colcon_core.shell:Creating prefix script '/root/AirStack/install/local_setup.ps1' +[19.441s] INFO:colcon.colcon_core.shell:Creating prefix util module '/root/AirStack/install/_local_setup_util_ps1.py' +[19.443s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/root/AirStack/install/setup.ps1' +[19.445s] INFO:colcon.colcon_core.shell:Creating prefix script '/root/AirStack/install/local_setup.sh' +[19.445s] INFO:colcon.colcon_core.shell:Creating prefix util module '/root/AirStack/install/_local_setup_util_sh.py' +[19.446s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/root/AirStack/install/setup.sh' +[19.448s] INFO:colcon.colcon_core.shell:Creating prefix script '/root/AirStack/install/local_setup.bash' +[19.448s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/root/AirStack/install/setup.bash' +[19.450s] INFO:colcon.colcon_core.shell:Creating prefix script '/root/AirStack/install/local_setup.zsh' +[19.450s] INFO:colcon.colcon_core.shell:Creating prefix chain script '/root/AirStack/install/setup.zsh' diff --git a/log/latest_build b/log/latest_build index 9328f039d..c90a01afe 120000 --- a/log/latest_build +++ b/log/latest_build @@ -1 +1 @@ -build_2024-07-25_13-14-27 \ No newline at end of file +build_2024-07-31_12-58-12 \ No newline at end of file diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/CMakeLists.txt b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/CMakeLists.txt index 6162a26cc..64d578115 100644 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/CMakeLists.txt +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/CMakeLists.txt @@ -205,8 +205,19 @@ ament_target_dependencies(disparity_pcd ) +#install(TARGETS disparity_expansion +# RUNTIME DESTINATION bin) install(TARGETS disparity_expansion - RUNTIME DESTINATION bin) + DESTINATION lib/${PROJECT_NAME} +) +install(TARGETS disparity_conv + DESTINATION lib/${PROJECT_NAME} +) +install(FILES package.xml + DESTINATION share/${PROJECT_NAME} +) +#install(DIRECTORY params DESTINATION share/${PROJECT_NAME}) +install(DIRECTORY launch DESTINATION share/${PROJECT_NAME}) ## Add cmake target dependencies of the executable/library ## as an example, message headers may need to be generated before nodes # add_dependencies(disparity_expansion_node disparity_expansion_generate_messages_cpp) @@ -215,7 +226,7 @@ install(TARGETS disparity_expansion # target_link_libraries(disparity_expansion_node # ${catkin_LIBRARIES} # ) - +ament_package() ############# ## Install ## ############# diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/launch/disparity_expansion.launch b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/launch/disparity_expansion.launch deleted file mode 100644 index 40214a58d..000000000 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/launch/disparity_expansion.launch +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/launch/disparity_expansion.xml b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/launch/disparity_expansion.xml new file mode 100644 index 000000000..3ce672fb4 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/launch/disparity_expansion.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/launch/disparity_gazebo.launch b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/launch/disparity_gazebo.launch index 9c1832821..1b408bfda 100644 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/launch/disparity_gazebo.launch +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/launch/disparity_gazebo.launch @@ -1,34 +1,34 @@ - - - - - - - + + + + + + + - + - + - + - + - + - + diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/launch/disparity_pcd.launch b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/launch/disparity_pcd.xml similarity index 51% rename from ros_ws/src/robot/autonomy/planning/local/disparity_expansion/launch/disparity_pcd.launch rename to ros_ws/src/robot/autonomy/planning/local/disparity_expansion/launch/disparity_pcd.xml index f3c6a5bbd..52ab50616 100644 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/launch/disparity_pcd.launch +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/launch/disparity_pcd.xml @@ -1,18 +1,18 @@ - + - + - + - + - + - + diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/package.xml b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/package.xml index 4740c6007..2da6f7f18 100644 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/package.xml +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/package.xml @@ -1,4 +1,5 @@ + disparity_expansion 0.0.0 @@ -72,6 +73,6 @@ - + ament_cmake From 80e5c70b7672f7a618edbd7489901265099df2e4 Mon Sep 17 00:00:00 2001 From: Robbi Exley Date: Wed, 31 Jul 2024 15:30:00 -0400 Subject: [PATCH 05/50] Added disparity_pcd node --- .../autonomy/planning/local/disparity_expansion/CMakeLists.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/CMakeLists.txt b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/CMakeLists.txt index 64d578115..2c6b10cd8 100644 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/CMakeLists.txt +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_expansion/CMakeLists.txt @@ -213,6 +213,9 @@ install(TARGETS disparity_expansion install(TARGETS disparity_conv DESTINATION lib/${PROJECT_NAME} ) +install(TARGETS disparity_pcd + DESTINATION lib/${PROJECT_NAME} +) install(FILES package.xml DESTINATION share/${PROJECT_NAME} ) From 8a82edd85447632e2f406c00ab38cdebb9dc8a60 Mon Sep 17 00:00:00 2001 From: Robbi Exley Date: Mon, 5 Aug 2024 14:18:19 -0400 Subject: [PATCH 06/50] disparity_graph_bkp port --- .../local/core_local_planner/CMakeLists.txt | 80 +- .../core_local_planner/local_planner.h | 220 +-- .../local/core_local_planner/package.xml | 67 +- .../core_local_planner/src/local_planner.cpp | 1260 +++++++++-------- .../local/disparity_graph_bkp/CMakeLists.txt | 136 +- .../local/disparity_graph_bkp/COLCON_IGNORE | 0 .../include/disparity_graph/disparity_graph.h | 212 +-- .../disparity_graph_bkp/launch/talker.launch | 28 +- .../local/disparity_graph_bkp/package.xml | 48 +- .../src/disparity_graph.cpp | 1141 ++++++++------- 10 files changed, 1683 insertions(+), 1509 deletions(-) delete mode 100644 ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/COLCON_IGNORE diff --git a/ros_ws/src/robot/autonomy/planning/local/core_local_planner/CMakeLists.txt b/ros_ws/src/robot/autonomy/planning/local/core_local_planner/CMakeLists.txt index 22e424eb6..70d334149 100644 --- a/ros_ws/src/robot/autonomy/planning/local/core_local_planner/CMakeLists.txt +++ b/ros_ws/src/robot/autonomy/planning/local/core_local_planner/CMakeLists.txt @@ -1,20 +1,34 @@ -cmake_minimum_required(VERSION 2.8.3) +cmake_minimum_required(VERSION 3.5) project(core_local_planner) -find_package(catkin REQUIRED COMPONENTS - roscpp - std_msgs - sensor_msgs - nav_msgs - core_trajectory_library - core_trajectory_controller - core_map_representation_interface - tflib - actionlib_msgs - behavior_tree - core_trajectory_msgs - pluginlib -) +#find_package(catkin REQUIRED COMPONENTS +# roscpp +# std_msgs +# sensor_msgs +# nav_msgs +# core_trajectory_library +# core_trajectory_controller +# core_map_representation_interface +# tflib +# actionlib_msgs +# behavior_tree +# core_trajectory_msgs +# pluginlib +#) +find_package(ament_cmake REQUIRED) +find_package(rclcpp REQUIRED) +find_package(std_msgs REQUIRED) +find_package(sensor_msgs REQUIRED) +find_package(nav_msgs REQUIRED) +find_package(core_trajectory_library REQUIRED) +find_package(core_trajectory_controller REQUIRED) +find_package(core_map_representation_interface REQUIRED) +find_package(tf2_ros REQUIRED) +find_package(actionlib_msgs REQUIRED) +find_package(behavior_tree REQUIRED) +find_package(core_trajectory_msgs REQUIRED) +find_package(pluginlib REQUIRED) +find_package(behaviortree_cpp_v3 REQUIRED) generate_messages( DEPENDENCIES actionlib_msgs std_msgs @@ -27,16 +41,46 @@ catkin_package( ) include_directories( - ${catkin_INCLUDE_DIRS} - ${base_INCLUDE_DIRS} include + ${core_trajectory_library_INCLUDE_DIRS} + ${core_trajectory_controller_INCLUDE_DIRS} + ${core_map_representation_interface_INCLUDE_DIRS} + ${tf2_ros_INCLUDE_DIRS} + ${behaviortree_cpp_v3_INCLUDE_DIRS} + ) add_executable(local_planner src/local_planner.cpp) +ament_target_dependencies(local_planner +rclcpp +rclpy +std_msgs +sensor_msgs +nav_msgs +core_trajectory_library +core_trajectory_controller +core_map_representation_interface +tf2_ros +action_msgs +behaviortree_cpp_v3 +core_trajectory_msgs +pluginlib + # Add other dependencies here +) -add_dependencies(local_planner ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS} ${base_EXPORTED_TARGETS}) +##add_dependencies(local_planner ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS} ${base_EXPORTED_TARGETS}) target_link_libraries(local_planner ${catkin_LIBRARIES} ${base_LIBRARIES} ) + +install(TARGETS local_planner + DESTINATION lib/${PROJECT_NAME} +) +install(FILES package.xml + DESTINATION share/${PROJECT_NAME} +) +#install(DIRECTORY params DESTINATION share/${PROJECT_NAME}) +install(DIRECTORY launch DESTINATION share/${PROJECT_NAME}) +ament_package() diff --git a/ros_ws/src/robot/autonomy/planning/local/core_local_planner/include/core_local_planner/local_planner.h b/ros_ws/src/robot/autonomy/planning/local/core_local_planner/include/core_local_planner/local_planner.h index 983afeb21..445a7ede3 100644 --- a/ros_ws/src/robot/autonomy/planning/local/core_local_planner/include/core_local_planner/local_planner.h +++ b/ros_ws/src/robot/autonomy/planning/local/core_local_planner/include/core_local_planner/local_planner.h @@ -1,109 +1,127 @@ #ifndef _LOCAL_PLANNER_H_ #define _LOCAL_PLANNER_H_ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -//#include -//#include -//#include -#include -//#include -#include -#include - -#include -#include - -#include +// #include +// #include +// #include +// #include +// #include +// #include +// #include +// #include +// #include +// #include +// #include +// #include +// #include +// #include +// #include +// #include +// #include +// #include +// #include +// #include +// #include + +// #include +// #include + +// #include class LocalPlanner : public BaseNode { -private: - TrajectoryLibrary* traj_lib; - - std::string map_representation; - bool got_global_plan; - core_trajectory_msgs::TrajectoryXYZVYaw global_plan; - double global_plan_trajectory_distance; - bool got_look_ahead, got_tracking_point; - nav_msgs::Odometry look_ahead_odom, tracking_point_odom; - - std::vector static_trajectories; - - double waypoint_spacing, obstacle_check_radius, obstacle_penalty_weight, forward_progress_penalty_weight; - double robot_radius; - int obstacle_check_points; - - double look_past_distance; - - float waypoint_buffer_duration, waypoint_spacing_threshold, waypoint_angle_threshold; - std::list waypoint_buffer; - - // bool use_fixed_height; - const int GLOBAL_PLAN_HEIGHT = 0; - const int FIXED_HEIGHT = 1; - const int RANGE_SENSOR_HEIGHT = 2; - int height_mode; - double height_above_ground; - double fixed_height; - bool got_range_up, got_range_down; - sensor_msgs::Range range_up, range_down; - - const int TRAJECTORY_YAW = 0; - const int SMOOTH_YAW = 1; - int yaw_mode; - - - // custom waypoint params - enum GoalMode {CUSTOM_WAYPOINT, AUTO_WAYPOINT, TRAJECTORY}; - GoalMode goal_mode; - double custom_waypoint_timeout_factor, custom_waypoint_distance_threshold; - - //MapRepresentationDeprecated* map; - //MapRepresentation* pc_map; - boost::shared_ptr pc_map; - - // subscribers - ros::Subscriber global_plan_sub, waypoint_sub, look_ahead_sub, tracking_point_sub, range_up_sub, range_down_sub, custom_waypoint_sub; - tf::TransformListener* listener; - - // publishers - ros::Publisher vis_pub, traj_pub, traj_track_pub, obst_vis_pub, global_plan_vis_pub, look_past_vis_pub; - - // services - ros::ServiceClient traj_mode_client; - - bool get_best_trajectory(std::vector trajs, - Trajectory global_plan, Trajectory* best_traj); - void update_waypoint_mode(); - -public: - LocalPlanner(std::string node_name); - - virtual bool initialize(); - virtual bool execute(); - virtual ~LocalPlanner(); - - // subscriber callbacks - void global_plan_callback(core_trajectory_msgs::TrajectoryXYZVYaw global_plan); - void waypoint_callback(geometry_msgs::PointStamped wp); - void custom_waypoint_callback(geometry_msgs::PoseStamped wp); - void look_ahead_callback(nav_msgs::Odometry odom); - void tracking_point_callback(nav_msgs::Odometry odom); - void range_up_callback(sensor_msgs::Range range); - void range_down_callback(sensor_msgs::Range range); -}; + private: + TrajectoryLibrary* traj_lib; + + std::string map_representation; + bool got_global_plan; + core_trajectory_msgs::msg::TrajectoryXYZVYaw global_plan; + double global_plan_trajectory_distance; + bool got_look_ahead, got_tracking_point; + nav_msgs::msg::Odometry look_ahead_odom, tracking_point_odom; + + std::vector static_trajectories; + + double waypoint_spacing, obstacle_check_radius, obstacle_penalty_weight, + forward_progress_penalty_weight; + double robot_radius; + int obstacle_check_points; + + double look_past_distance; + + float waypoint_buffer_duration, waypoint_spacing_threshold, waypoint_angle_threshold; + std::list waypoint_buffer; + + // bool use_fixed_height; + const int GLOBAL_PLAN_HEIGHT = 0; + const int FIXED_HEIGHT = 1; + const int RANGE_SENSOR_HEIGHT = 2; + int height_mode; + double height_above_ground; + double fixed_height; + bool got_range_up, got_range_down; + sensor_msgs::msg::Range range_up, range_down; + + const int TRAJECTORY_YAW = 0; + const int SMOOTH_YAW = 1; + int yaw_mode; + // custom waypoint params + enum GoalMode { CUSTOM_WAYPOINT, AUTO_WAYPOINT, TRAJECTORY }; + GoalMode goal_mode; + double custom_waypoint_timeout_factor, custom_waypoint_distance_threshold; + + // MapRepresentationDeprecated* map; + // MapRepresentation* pc_map; + std::shared_ptr pc_map; + + rclcpp::Subscription::SharedPtr global_plan_sub; + rclcpp::Subscription::SharedPtr waypoint_sub; + rclcpp::Subscription::SharedPtr look_ahead_sub; + rclcpp::Subscription::SharedPtr tracking_point_sub; + rclcpp::Subscription::SharedPtr range_up_sub; + rclcpp::Subscription::SharedPtr range_down_sub; + rclcpp::Subscription::SharedPtr custom_waypoint_sub; + // subscribers + // ros::Subscriber global_plan_sub, waypoint_sub, look_ahead_sub, tracking_point_sub, + // range_up_sub, + // range_down_sub, custom_waypoint_sub; + // tf::TransformListener* listener; + std::shared_ptr tf_listener; + + // publishers + // ros::Publisher vis_pub, traj_pub, traj_track_pub, obst_vis_pub, global_plan_vis_pub, + // look_past_vis_pub; + rclcpp::Publisher::SharedPtr vis_pub; + rclcpp::Publisher::SharedPtr traj_pub; + rclcpp::Publisher::SharedPtr traj_track_pub; + rclcpp::Publisher::SharedPtr obst_vis_pub; + rclcpp::Publisher::SharedPtr global_plan_vis_pub; + rclcpp::Publisher::SharedPtr look_past_vis_pub; + + // services + // ros::ServiceClient traj_mode_client; + rclcpp::Client::SharedPtr traj_mode_client; + + bool get_best_trajectory(std::vector trajs, Trajectory global_plan, + Trajectory* best_traj); + void update_waypoint_mode(); + + public: + LocalPlanner(const std::string node_name); + + virtual bool initialize(); + virtual bool execute(); + virtual ~LocalPlanner(); + + // subscriber callbacks + void global_plan_callback( + const core_trajectory_msgs::msg::TrajectoryXYZVYaw::SharedPtr global_plan); + void waypoint_callback(const geometry_msgs::msg::PointStamped::SharedPtr wp); + void custom_waypoint_callback(const geometry_msgs::msg::PoseStamped::SharedPtr wp); + void look_ahead_callback(const nav_msgs::msg::Odometry::SharedPtr odom); + void tracking_point_callback(const nav_msgs::msg::Odometry::SharedPtr odom); + void range_up_callback(const sensor_msgs::msg::Range::SharedPtr range); + void range_down_callback(const sensor_msgs::msg::Range::SharedPtr range); +}; #endif diff --git a/ros_ws/src/robot/autonomy/planning/local/core_local_planner/package.xml b/ros_ws/src/robot/autonomy/planning/local/core_local_planner/package.xml index 6655f785b..5b6ea804d 100644 --- a/ros_ws/src/robot/autonomy/planning/local/core_local_planner/package.xml +++ b/ros_ws/src/robot/autonomy/planning/local/core_local_planner/package.xml @@ -48,52 +48,25 @@ - catkin - base - roscpp - rospy - std_msgs - nav_msgs - core_trajectory_library - core_trajectory_controller - core_map_representation_interface - tflib - actionlib_msgs - behavior_tree - core_trajectory_msgs - pluginlib - - base - roscpp - rospy - std_msgs - nav_msgs - core_trajectory_library - core_trajectory_controller - core_map_representation_interface - tflib - actionlib_msgs - behavior_tree - core_trajectory_msgs - pluginlib - - base - roscpp - rospy - std_msgs - nav_msgs - core_trajectory_library - core_trajectory_controller - core_map_representation_interface - tflib - message_generation - behavior_tree - core_trajectory_msgs - pluginlib - - - - + ament_cmake + + rclcpp + rclpy + std_msgs + nav_msgs + core_trajectory_library + core_trajectory_controller + core_map_representation_interface + tf2_ros + action_msgs + behaviortree_cpp_v3 + core_trajectory_msgs + pluginlib + rosidl_default_generators + rosidl_default_runtime + + + ament_cmake - + \ No newline at end of file diff --git a/ros_ws/src/robot/autonomy/planning/local/core_local_planner/src/local_planner.cpp b/ros_ws/src/robot/autonomy/planning/local/core_local_planner/src/local_planner.cpp index 862530a2b..292bdc61d 100644 --- a/ros_ws/src/robot/autonomy/planning/local/core_local_planner/src/local_planner.cpp +++ b/ros_ws/src/robot/autonomy/planning/local/core_local_planner/src/local_planner.cpp @@ -1,683 +1,699 @@ #include +#include #include -#include #include +#include + #include -#include -//#include +// #include #include - //=================================================================================== //--------------------------------- Local Planner ----------------------------------- //=================================================================================== -LocalPlanner::LocalPlanner(std::string node_name) - : BaseNode(node_name){ -} +LocalPlanner::LocalPlanner(std::string node_name) : BaseNode(node_name) {} + +bool LocalPlanner::initialize() { + ros::NodeHandle* nh = get_node_handle(); + ros::NodeHandle* pnh = get_private_node_handle(); + + // init subscribers + global_plan_sub = nh->subscribe("global_plan", 10, &LocalPlanner::global_plan_callback, this); + waypoint_sub = nh->subscribe("way_point", 10, &LocalPlanner::waypoint_callback, this); + look_ahead_sub = nh->subscribe("look_ahead", 10, &LocalPlanner::look_ahead_callback, this); + tracking_point_sub = + nh->subscribe("tracking_point", 10, &LocalPlanner::tracking_point_callback, this); + range_up_sub = + nh->subscribe("range_up", 1, &LocalPlanner::range_up_callback, this); + range_down_sub = nh->subscribe("range_down", 1, + &LocalPlanner::range_down_callback, this); + custom_waypoint_sub = nh->subscribe( + "custom_waypoint", 1, &LocalPlanner::custom_waypoint_callback, this); + listener = new tf::TransformListener(); + + // init publishers + vis_pub = nh->advertise("trajectory_library_vis", 10); + obst_vis_pub = nh->advertise("obstaccle_vis", 10); + global_plan_vis_pub = + nh->advertise("local_planner_global_plan_vis", 10); + look_past_vis_pub = nh->advertise("look_past", 10); + traj_pub = nh->advertise("trajectory", 10); + traj_track_pub = nh->advertise("trajectory_track", 10); + + // init services + traj_mode_client = + nh->serviceClient("set_trajectory_mode"); + + // init parameters + waypoint_spacing = pnh->param("waypoint_spacing", 0.5); + // obstacle_check_radius = pnh->param("obstacle_check_radius", 3.); + // obstacle_check_points = pnh->param("obstacle_check_points", 3); + obstacle_penalty_weight = pnh->param("obstacle_penalty_weight", 1.); + forward_progress_penalty_weight = pnh->param("forward_progress_penalty_weight", 0.5); + robot_radius = pnh->param("robot_radius", 0.75); + look_past_distance = pnh->param("look_past_distance", 0); + // use_fixed_height = pnh->param("use_fixed_height", false); + height_mode = pnh->param("height_mode", 0); + height_above_ground = pnh->param("height_above_ground", 1.); + fixed_height = pnh->param("fixed_height", 1.); + yaw_mode = pnh->param("yaw_mode", 0); + map_representation = + pnh->param("map_representation", std::string("PointCloudMapRepresentation")); + + waypoint_buffer_duration = pnh->param("waypoint_buffer_duration", 30.); + waypoint_spacing_threshold = pnh->param("waypoint_spacing_threshold", 0.5); + waypoint_angle_threshold = pnh->param("waypoint_angle_threshold", 30.) * M_PI / 180.; + + goal_mode = TRAJECTORY; + custom_waypoint_timeout_factor = pnh->param("custom_waypoint_timeout_factor", 0.3); + custom_waypoint_distance_threshold = pnh->param("custom_waypoint_distance_threshold", 0.5); + + std::string traj_lib_config_filename = pnh->param("trajectory_library_config", std::string("")); + if (traj_lib_config_filename == "") { + ROS_ERROR_STREAM("Trajectory library config file is invalid: " << traj_lib_config_filename); + return false; + } -bool LocalPlanner::initialize(){ - ros::NodeHandle* nh = get_node_handle(); - ros::NodeHandle* pnh = get_private_node_handle(); - - // init subscribers - global_plan_sub = nh->subscribe("global_plan", 10, &LocalPlanner::global_plan_callback, this); - waypoint_sub = nh->subscribe("way_point", 10, &LocalPlanner::waypoint_callback, this); - look_ahead_sub = nh->subscribe("look_ahead", 10, &LocalPlanner::look_ahead_callback, this); - tracking_point_sub = nh->subscribe("tracking_point", 10, &LocalPlanner::tracking_point_callback, this); - range_up_sub = nh->subscribe("range_up", 1, &LocalPlanner::range_up_callback, this); - range_down_sub = nh->subscribe("range_down", 1, &LocalPlanner::range_down_callback, this); - custom_waypoint_sub = nh->subscribe("custom_waypoint", 1, - &LocalPlanner::custom_waypoint_callback, this); - listener = new tf::TransformListener(); - - // init publishers - vis_pub = nh->advertise("trajectory_library_vis", 10); - obst_vis_pub = nh->advertise("obstaccle_vis", 10); - global_plan_vis_pub = - nh->advertise("local_planner_global_plan_vis", 10); - look_past_vis_pub = - nh->advertise("look_past", 10); - traj_pub = nh->advertise("trajectory", 10); - traj_track_pub = nh->advertise("trajectory_track", 10); - - // init services - traj_mode_client = nh->serviceClient("set_trajectory_mode"); - - // init parameters - waypoint_spacing = pnh->param("waypoint_spacing", 0.5); - //obstacle_check_radius = pnh->param("obstacle_check_radius", 3.); - //obstacle_check_points = pnh->param("obstacle_check_points", 3); - obstacle_penalty_weight = pnh->param("obstacle_penalty_weight", 1.); - forward_progress_penalty_weight = pnh->param("forward_progress_penalty_weight", 0.5); - robot_radius = pnh->param("robot_radius", 0.75); - look_past_distance = pnh->param("look_past_distance", 0); - //use_fixed_height = pnh->param("use_fixed_height", false); - height_mode = pnh->param("height_mode", 0); - height_above_ground = pnh->param("height_above_ground", 1.); - fixed_height = pnh->param("fixed_height", 1.); - yaw_mode = pnh->param("yaw_mode", 0); - map_representation = pnh->param("map_representation", std::string("PointCloudMapRepresentation")); - - waypoint_buffer_duration = pnh->param("waypoint_buffer_duration", 30.); - waypoint_spacing_threshold = pnh->param("waypoint_spacing_threshold", 0.5); - waypoint_angle_threshold = pnh->param("waypoint_angle_threshold", 30.)*M_PI/180.; - - goal_mode = TRAJECTORY; - custom_waypoint_timeout_factor = pnh->param("custom_waypoint_timeout_factor", 0.3); - custom_waypoint_distance_threshold = pnh->param("custom_waypoint_distance_threshold", 0.5); - - std::string traj_lib_config_filename = pnh->param("trajectory_library_config", std::string("")); - if(traj_lib_config_filename == ""){ - ROS_ERROR_STREAM("Trajectory library config file is invalid: " << traj_lib_config_filename); - return false; - } - - traj_lib = new TrajectoryLibrary(traj_lib_config_filename, listener); - got_global_plan = false; - global_plan_trajectory_distance = 0; - got_look_ahead = false; - got_tracking_point = false; - got_range_up = false; - got_range_down = false; - - - pluginlib::ClassLoader map_representation_loader("core_map_representation_interface", "MapRepresentation"); - try{ - pc_map = map_representation_loader.createInstance(map_representation); - }catch(pluginlib::PluginlibException& ex){ - ROS_ERROR("The MapRepresentation plugin failed to load. Error: %s", ex.what()); - } - - // init static trajectories and respace them - static_trajectories = traj_lib->get_static_trajectories(); - for(int i = 0; i < static_trajectories.size(); i++) - static_trajectories[i] = static_trajectories[i].respace(waypoint_spacing); - - return true; -} + traj_lib = new TrajectoryLibrary(traj_lib_config_filename, listener); + got_global_plan = false; + global_plan_trajectory_distance = 0; + got_look_ahead = false; + got_tracking_point = false; + got_range_up = false; + got_range_down = false; + + pluginlib::ClassLoader map_representation_loader( + "core_map_representation_interface", "MapRepresentation"); + try { + pc_map = map_representation_loader.createInstance(map_representation); + } catch (pluginlib::PluginlibException& ex) { + ROS_ERROR("The MapRepresentation plugin failed to load. Error: %s", ex.what()); + } -bool LocalPlanner::execute(){ - update_waypoint_mode(); + // init static trajectories and respace them + static_trajectories = traj_lib->get_static_trajectories(); + for (int i = 0; i < static_trajectories.size(); i++) + static_trajectories[i] = static_trajectories[i].respace(waypoint_spacing); - if(!got_global_plan) - return true; - - Trajectory gp(global_plan); - //ROS_INFO_STREAM("initial gp waypoints size: " << gp.waypoint_count()); - //gp = gp.get_subtrajectory_distance(global_plan_trajectory_distance, - // global_plan_trajectory_distance + 10.); - - // set the hieght of the global plan - if(height_mode == FIXED_HEIGHT){ - gp.set_fixed_height(fixed_height); - } - else if(height_mode == RANGE_SENSOR_HEIGHT){ - if(!got_range_up || !got_range_down) - return true; - - try{ - tf::StampedTransform transform_up, transform_down; - listener->waitForTransform(gp.get_frame_id(), range_up.header.frame_id, range_up.header.stamp, ros::Duration(0.1)); - listener->lookupTransform(gp.get_frame_id(), range_up.header.frame_id, range_up.header.stamp, transform_up); - listener->waitForTransform(gp.get_frame_id(), range_down.header.frame_id, range_down.header.stamp, ros::Duration(0.1)); - listener->lookupTransform(gp.get_frame_id(), range_down.header.frame_id, range_down.header.stamp, transform_down); - - tf::Vector3 range_up_gp_frame = transform_up*tf::Vector3(range_up.range, 0, 0); - tf::Vector3 range_down_gp_frame = transform_down*tf::Vector3(range_down.range, 0, 0); - - /* - if(gp.waypoint_count() > 0){ - double z_setpoint = gp.get_waypoint(0).z(); - z_setpoint = std::min(range_up_gp_frame.z() - 1.5*robot_radius, std::max(range_down_gp_frame.z() + 1.5*robot_radius, z_setpoint)); - gp.set_fixed_height(z_setpoint); - } - */ - //* - double tunnel_height = range_up_gp_frame.z() - range_down_gp_frame.z(); - double z_setpoint = (range_up_gp_frame.z() + range_down_gp_frame.z())/2.; - if(tunnel_height/2. >= height_above_ground) - z_setpoint = range_down_gp_frame.z() + height_above_ground; - /* - if(z_setpoint >= range_up_gp_frame.z() - robot_radius) - z_setpoint = (range_up_gp_frame.z() + range_down_gp_frame.z())/2.; - */ - - gp.set_fixed_height(z_setpoint); - //*/ - } - catch(tf::TransformException& ex){ - ROS_ERROR_STREAM("Error transforming range data. " << ex.what()); - } - } - - // transform the look ahead point to the global plan frame - tf::Vector3 look_ahead_position = tflib::to_tf(look_ahead_odom.pose.pose.position); - bool success = tflib::to_frame(listener, look_ahead_position, - look_ahead_odom.header.frame_id, gp.get_frame_id(), - look_ahead_odom.header.stamp, &look_ahead_position); - if(!success){ - ROS_ERROR_STREAM("Couldn't transform from lookahead frame to global plan frame"); return true; - } - - // increment how far along the global plan we are - double trajectory_distance; - bool valid = gp.get_trajectory_distance_at_closest_point(look_ahead_position, - &trajectory_distance); - if(valid){ - global_plan_trajectory_distance += trajectory_distance; - gp = gp.get_subtrajectory_distance(trajectory_distance, - trajectory_distance + 10.); - //ROS_INFO_STREAM("after trim waypoints size: " << gp.waypoint_count()); - } - else - ROS_INFO("invalid"); - - // publish the segment of the global plan currently being used, for visualization - visualization_msgs::MarkerArray global_markers = gp.get_markers(0, 0, 1); - global_plan_vis_pub.publish(global_markers); - - // get the dynamic trajectories - std::vector dynamic_trajectories = traj_lib->get_dynamic_trajectories(look_ahead_odom); - - // pick the best trajectory - monitor.tic("get_best_trajectory"); - Trajectory best_traj; - bool all_in_collision = get_best_trajectory(dynamic_trajectories, gp, &best_traj); - monitor.toc("get_best_trajectory"); - - // publish the trajectory - //ROS_INFO_STREAM("all_in_collsion: " << all_in_collision); - if(!all_in_collision){ - core_trajectory_msgs::TrajectoryXYZVYaw path = best_traj.get_TrajectoryXYZVYaw(); - - // set yaw - if(yaw_mode == SMOOTH_YAW && path.waypoints.size() > 0){ - bool found_initial_heading = false; - double initial_heading = 0; - try{ - tf::StampedTransform transform; - listener->waitForTransform(best_traj.get_frame_id(), look_ahead_odom.header.frame_id, look_ahead_odom.header.stamp, ros::Duration(0.1)); - listener->lookupTransform(best_traj.get_frame_id(), look_ahead_odom.header.frame_id, look_ahead_odom.header.stamp, transform); - - transform.setOrigin(tf::Vector3(0, 0, 0)); // only care about rotation - initial_heading = tf::getYaw(transform*tflib::to_tf(look_ahead_odom.pose.pose.orientation)); - - found_initial_heading = true; - } - catch(const tf::TransformException& ex){ - ROS_ERROR_STREAM("Transform exception while finding yaw of lookahead: " << ex.what()); - } - - if(found_initial_heading){ - path.waypoints[0].yaw = initial_heading; - - double alpha = 0.1; - double sin_yaw_prev = sin(path.waypoints[0].yaw); - double cos_yaw_prev = cos(path.waypoints[0].yaw); - - //ROS_INFO("-------------------------------------------------"); - //ROS_INFO_STREAM("heading: " << 180./M_PI*tf::getYaw(tflib::to_tf(look_ahead_odom.pose.pose.orientation))); - for(int i = 1; i < path.waypoints.size(); i++){ - core_trajectory_msgs::WaypointXYZVYaw wp_prev = path.waypoints[i-1]; - core_trajectory_msgs::WaypointXYZVYaw& wp_curr = path.waypoints[i]; - - //ROS_INFO_STREAM(wp_curr.position.y - wp_prev.position.y << " " << wp_curr.position.x - wp_prev.position.x); - double yaw = atan2(wp_curr.position.y - wp_prev.position.y, wp_curr.position.x - wp_prev.position.x); - double cos_yaw = alpha*cos(yaw) + (1 - alpha)*cos_yaw_prev; - double sin_yaw = alpha*sin(yaw) + (1 - alpha)*sin_yaw_prev; - yaw = atan2(sin_yaw, cos_yaw); - - sin_yaw_prev = sin_yaw; - cos_yaw_prev = cos_yaw; - - wp_curr.yaw = yaw; - } - } - } - - path.header.stamp = ros::Time::now(); // TODO: make this match the time inside get_best_traj - traj_pub.publish(path); - } - - return true; } -bool LocalPlanner::get_best_trajectory(std::vector trajectories, - Trajectory global_plan, Trajectory* best_traj){ - //ROS_INFO("GET_BEST"); - double min_cost = std::numeric_limits::max(); - int best_traj_index = 0; - bool all_in_collision = true; - - ros::Time now = ros::Time::now(); - - visualization_msgs::MarkerArray traj_lib_markers, look_past_markers; - - - /*std::vector trajs; - for(int i = 0; i < trajectories.size(); i++) - trajs.push_back(trajectories[i].get_TrajectoryXYZVYaw()); - */ - std::vector > trajs; - for(int i = 0; i < trajectories.size(); i++) - trajs.push_back(trajectories[i].get_vector_PointStamped()); - std::vector< std::vector > values = pc_map->get_values(trajs); - - for(int i = 0; i < trajectories.size(); i++){ - Trajectory traj = trajectories[i]; - double average_distance = std::numeric_limits::infinity(); - double closest_obstacle_distance = std::numeric_limits::infinity(); - - Trajectory global_plan_traj_frame; - try{ - global_plan_traj_frame = global_plan.to_frame(traj.get_frame_id(), now); - } - catch(tf::TransformException& ex){ - ROS_ERROR_STREAM("TransformException in get_best_trajectory: " << ex.what()); - return true; +bool LocalPlanner::execute() { + update_waypoint_mode(); + + if (!got_global_plan) return true; + + Trajectory gp(global_plan); + // ROS_INFO_STREAM("initial gp waypoints size: " << gp.waypoint_count()); + // gp = gp.get_subtrajectory_distance(global_plan_trajectory_distance, + // global_plan_trajectory_distance + 10.); + + // set the hieght of the global plan + if (height_mode == FIXED_HEIGHT) { + gp.set_fixed_height(fixed_height); + } else if (height_mode == RANGE_SENSOR_HEIGHT) { + if (!got_range_up || !got_range_down) return true; + + try { + tf::StampedTransform transform_up, transform_down; + listener->waitForTransform(gp.get_frame_id(), range_up.header.frame_id, + range_up.header.stamp, ros::Duration(0.1)); + listener->lookupTransform(gp.get_frame_id(), range_up.header.frame_id, + range_up.header.stamp, transform_up); + listener->waitForTransform(gp.get_frame_id(), range_down.header.frame_id, + range_down.header.stamp, ros::Duration(0.1)); + listener->lookupTransform(gp.get_frame_id(), range_down.header.frame_id, + range_down.header.stamp, transform_down); + + tf::Vector3 range_up_gp_frame = transform_up * tf::Vector3(range_up.range, 0, 0); + tf::Vector3 range_down_gp_frame = transform_down * tf::Vector3(range_down.range, 0, 0); + + /* + if(gp.waypoint_count() > 0){ + double z_setpoint = gp.get_waypoint(0).z(); + z_setpoint = std::min(range_up_gp_frame.z() - 1.5*robot_radius, + std::max(range_down_gp_frame.z() + 1.5*robot_radius, z_setpoint)); + gp.set_fixed_height(z_setpoint); + } + */ + //* + double tunnel_height = range_up_gp_frame.z() - range_down_gp_frame.z(); + double z_setpoint = (range_up_gp_frame.z() + range_down_gp_frame.z()) / 2.; + if (tunnel_height / 2. >= height_above_ground) + z_setpoint = range_down_gp_frame.z() + height_above_ground; + /* + if(z_setpoint >= range_up_gp_frame.z() - robot_radius) + z_setpoint = (range_up_gp_frame.z() + range_down_gp_frame.z())/2.; + */ + + gp.set_fixed_height(z_setpoint); + //*/ + } catch (tf::TransformException& ex) { + ROS_ERROR_STREAM("Error transforming range data. " << ex.what()); + } } - for(int j = 0; j < traj.waypoint_count(); j++){ - //for(int j = traj.waypoint_count()-1; j < traj.waypoint_count(); j++){ - Waypoint wp = traj.get_waypoint(j); - - // find how far this waypoint is from an obstacle - nav_msgs::Odometry odom = wp.odometry(now, traj.get_frame_id()); - geometry_msgs::PoseStamped pose; - pose.header = odom.header; - pose.pose = odom.pose.pose; - closest_obstacle_distance = std::min(closest_obstacle_distance, - values[i][j]); - - // find how far this waypoint is from the global plan path - tf::Vector3 closest_point; - int wp_index; - double path_distance; - bool valid = global_plan_traj_frame.get_closest_point(wp.position(), - &closest_point, &wp_index, &path_distance); - double forward_progress_penalty = -forward_progress_penalty_weight*path_distance;//(global_plan_traj_frame.waypoint_count()-wp_index)*0.5; - - if(valid){ - if(!std::isfinite(average_distance)) - average_distance = 0; - - //average_distance += closest_point.distance(wp.position()); - average_distance += closest_point.distance(wp.position()) + forward_progress_penalty; - } + // transform the look ahead point to the global plan frame + tf::Vector3 look_ahead_position = tflib::to_tf(look_ahead_odom.pose.pose.position); + bool success = + tflib::to_frame(listener, look_ahead_position, look_ahead_odom.header.frame_id, + gp.get_frame_id(), look_ahead_odom.header.stamp, &look_ahead_position); + if (!success) { + ROS_ERROR_STREAM("Couldn't transform from lookahead frame to global plan frame"); + return true; } - //ROS_INFO_STREAM("CLOSEST: " << closest_obstacle_distance); - - average_distance /= traj.waypoint_count(); - bool collision = closest_obstacle_distance <= robot_radius; - if(!collision) - all_in_collision = false; - - visualization_msgs::MarkerArray traj_markers; - if(collision) - traj_markers = traj.get_markers(1, 0, 0, .5); - else - traj_markers = traj.get_markers(0, 1, 0, .5); - - - if(look_past_distance > 0){ - if(traj.waypoint_count() >= 2){ - Waypoint curr_wp = traj.get_waypoint(traj.waypoint_count()-1); - Waypoint prev_wp = traj.get_waypoint(traj.waypoint_count()-2); - - tf::Vector3 segment = curr_wp.position() - prev_wp.position(); - segment.normalize(); - - tf::Vector3 position = curr_wp.position() + look_past_distance*segment; - - tf::Vector3 closest_point; - int wp_index; - bool valid = global_plan_traj_frame.get_closest_point(position, - &closest_point, &wp_index); - - if(!valid) - collision = true; - else{ - average_distance = position.distance(closest_point); - } - - visualization_msgs::Marker marker; - marker.header.stamp = now; - marker.header.frame_id = traj.get_frame_id(); - marker.ns = "look_past"; - marker.id = i; - marker.type = visualization_msgs::Marker::SPHERE; - marker.action = visualization_msgs::Marker::ADD; - - marker.pose.position.x = position.x(); - marker.pose.position.y = position.y(); - marker.pose.position.z = position.z(); - marker.pose.orientation.w = 1; - marker.scale.x = 0.3; - marker.scale.y = 0.3; - marker.scale.z = 0.3; - marker.color.r = 0.0; - marker.color.g = 0.0; - marker.color.b = 1.0; - marker.color.a = 1.0; - look_past_markers.markers.push_back(marker); - } + + // increment how far along the global plan we are + double trajectory_distance; + bool valid = + gp.get_trajectory_distance_at_closest_point(look_ahead_position, &trajectory_distance); + if (valid) { + global_plan_trajectory_distance += trajectory_distance; + gp = gp.get_subtrajectory_distance(trajectory_distance, trajectory_distance + 10.); + // ROS_INFO_STREAM("after trim waypoints size: " << gp.waypoint_count()); + } else + ROS_INFO("invalid"); + + // publish the segment of the global plan currently being used, for visualization + visualization_msgs::MarkerArray global_markers = gp.get_markers(0, 0, 1); + global_plan_vis_pub.publish(global_markers); + + // get the dynamic trajectories + std::vector dynamic_trajectories = + traj_lib->get_dynamic_trajectories(look_ahead_odom); + + // pick the best trajectory + monitor.tic("get_best_trajectory"); + Trajectory best_traj; + bool all_in_collision = get_best_trajectory(dynamic_trajectories, gp, &best_traj); + monitor.toc("get_best_trajectory"); + + // publish the trajectory + // ROS_INFO_STREAM("all_in_collsion: " << all_in_collision); + if (!all_in_collision) { + core_trajectory_msgs::TrajectoryXYZVYaw path = best_traj.get_TrajectoryXYZVYaw(); + + // set yaw + if (yaw_mode == SMOOTH_YAW && path.waypoints.size() > 0) { + bool found_initial_heading = false; + double initial_heading = 0; + try { + tf::StampedTransform transform; + listener->waitForTransform(best_traj.get_frame_id(), + look_ahead_odom.header.frame_id, + look_ahead_odom.header.stamp, ros::Duration(0.1)); + listener->lookupTransform(best_traj.get_frame_id(), look_ahead_odom.header.frame_id, + look_ahead_odom.header.stamp, transform); + + transform.setOrigin(tf::Vector3(0, 0, 0)); // only care about rotation + initial_heading = + tf::getYaw(transform * tflib::to_tf(look_ahead_odom.pose.pose.orientation)); + + found_initial_heading = true; + } catch (const tf::TransformException& ex) { + ROS_ERROR_STREAM( + "Transform exception while finding yaw of lookahead: " << ex.what()); + } + + if (found_initial_heading) { + path.waypoints[0].yaw = initial_heading; + + double alpha = 0.1; + double sin_yaw_prev = sin(path.waypoints[0].yaw); + double cos_yaw_prev = cos(path.waypoints[0].yaw); + + // ROS_INFO("-------------------------------------------------"); + // ROS_INFO_STREAM("heading: " << + // 180./M_PI*tf::getYaw(tflib::to_tf(look_ahead_odom.pose.pose.orientation))); + for (int i = 1; i < path.waypoints.size(); i++) { + core_trajectory_msgs::WaypointXYZVYaw wp_prev = path.waypoints[i - 1]; + core_trajectory_msgs::WaypointXYZVYaw& wp_curr = path.waypoints[i]; + + // ROS_INFO_STREAM(wp_curr.position.y - wp_prev.position.y << " " << + // wp_curr.position.x - wp_prev.position.x); + double yaw = atan2(wp_curr.position.y - wp_prev.position.y, + wp_curr.position.x - wp_prev.position.x); + double cos_yaw = alpha * cos(yaw) + (1 - alpha) * cos_yaw_prev; + double sin_yaw = alpha * sin(yaw) + (1 - alpha) * sin_yaw_prev; + yaw = atan2(sin_yaw, cos_yaw); + + sin_yaw_prev = sin_yaw; + cos_yaw_prev = cos_yaw; + + wp_curr.yaw = yaw; + } + } + } + + path.header.stamp = + ros::Time::now(); // TODO: make this match the time inside get_best_traj + traj_pub.publish(path); } - - traj_lib_markers.markers.insert(traj_lib_markers.markers.end(), - traj_markers.markers.begin(), traj_markers.markers.end()); - - double cost = average_distance - obstacle_penalty_weight*std::min(closest_obstacle_distance, obstacle_check_radius); - if(!collision && cost < min_cost){ - min_cost = cost; - best_traj_index = i; - *best_traj = traj; + + return true; +} + +bool LocalPlanner::get_best_trajectory(std::vector trajectories, Trajectory global_plan, + Trajectory* best_traj) { + // ROS_INFO("GET_BEST"); + double min_cost = std::numeric_limits::max(); + int best_traj_index = 0; + bool all_in_collision = true; + + ros::Time now = ros::Time::now(); + + visualization_msgs::MarkerArray traj_lib_markers, look_past_markers; + + /*std::vector trajs; + for(int i = 0; i < trajectories.size(); i++) + trajs.push_back(trajectories[i].get_TrajectoryXYZVYaw()); + */ + std::vector > trajs; + for (int i = 0; i < trajectories.size(); i++) + trajs.push_back(trajectories[i].get_vector_PointStamped()); + std::vector > values = pc_map->get_values(trajs); + + for (int i = 0; i < trajectories.size(); i++) { + Trajectory traj = trajectories[i]; + double average_distance = std::numeric_limits::infinity(); + double closest_obstacle_distance = std::numeric_limits::infinity(); + + Trajectory global_plan_traj_frame; + try { + global_plan_traj_frame = global_plan.to_frame(traj.get_frame_id(), now); + } catch (tf::TransformException& ex) { + ROS_ERROR_STREAM("TransformException in get_best_trajectory: " << ex.what()); + return true; + } + + for (int j = 0; j < traj.waypoint_count(); j++) { + // for(int j = traj.waypoint_count()-1; j < traj.waypoint_count(); j++){ + Waypoint wp = traj.get_waypoint(j); + + // find how far this waypoint is from an obstacle + nav_msgs::Odometry odom = wp.odometry(now, traj.get_frame_id()); + geometry_msgs::PoseStamped pose; + pose.header = odom.header; + pose.pose = odom.pose.pose; + closest_obstacle_distance = std::min(closest_obstacle_distance, values[i][j]); + + // find how far this waypoint is from the global plan path + tf::Vector3 closest_point; + int wp_index; + double path_distance; + bool valid = global_plan_traj_frame.get_closest_point(wp.position(), &closest_point, + &wp_index, &path_distance); + double forward_progress_penalty = + -forward_progress_penalty_weight * + path_distance; //(global_plan_traj_frame.waypoint_count()-wp_index)*0.5; + + if (valid) { + if (!std::isfinite(average_distance)) average_distance = 0; + + // average_distance += closest_point.distance(wp.position()); + average_distance += + closest_point.distance(wp.position()) + forward_progress_penalty; + } + } + // ROS_INFO_STREAM("CLOSEST: " << closest_obstacle_distance); + + average_distance /= traj.waypoint_count(); + bool collision = closest_obstacle_distance <= robot_radius; + if (!collision) all_in_collision = false; + + visualization_msgs::MarkerArray traj_markers; + if (collision) + traj_markers = traj.get_markers(1, 0, 0, .5); + else + traj_markers = traj.get_markers(0, 1, 0, .5); + + if (look_past_distance > 0) { + if (traj.waypoint_count() >= 2) { + Waypoint curr_wp = traj.get_waypoint(traj.waypoint_count() - 1); + Waypoint prev_wp = traj.get_waypoint(traj.waypoint_count() - 2); + + tf::Vector3 segment = curr_wp.position() - prev_wp.position(); + segment.normalize(); + + tf::Vector3 position = curr_wp.position() + look_past_distance * segment; + + tf::Vector3 closest_point; + int wp_index; + bool valid = + global_plan_traj_frame.get_closest_point(position, &closest_point, &wp_index); + + if (!valid) + collision = true; + else { + average_distance = position.distance(closest_point); + } + + visualization_msgs::Marker marker; + marker.header.stamp = now; + marker.header.frame_id = traj.get_frame_id(); + marker.ns = "look_past"; + marker.id = i; + marker.type = visualization_msgs::Marker::SPHERE; + marker.action = visualization_msgs::Marker::ADD; + + marker.pose.position.x = position.x(); + marker.pose.position.y = position.y(); + marker.pose.position.z = position.z(); + marker.pose.orientation.w = 1; + marker.scale.x = 0.3; + marker.scale.y = 0.3; + marker.scale.z = 0.3; + marker.color.r = 0.0; + marker.color.g = 0.0; + marker.color.b = 1.0; + marker.color.a = 1.0; + look_past_markers.markers.push_back(marker); + } + } + + traj_lib_markers.markers.insert(traj_lib_markers.markers.end(), + traj_markers.markers.begin(), traj_markers.markers.end()); + + double cost = + average_distance - + obstacle_penalty_weight * std::min(closest_obstacle_distance, obstacle_check_radius); + if (!collision && cost < min_cost) { + min_cost = cost; + best_traj_index = i; + *best_traj = traj; + } } - } - //ROS_INFO_STREAM("Best traj index: " << best_traj_index); + // ROS_INFO_STREAM("Best traj index: " << best_traj_index); - if(best_traj_index < look_past_markers.markers.size()){ - look_past_markers.markers[best_traj_index].color.r = 0; - look_past_markers.markers[best_traj_index].color.g = 1; - look_past_markers.markers[best_traj_index].color.b = 0; - look_past_markers.markers[best_traj_index].color.a = 1; - } + if (best_traj_index < look_past_markers.markers.size()) { + look_past_markers.markers[best_traj_index].color.r = 0; + look_past_markers.markers[best_traj_index].color.g = 1; + look_past_markers.markers[best_traj_index].color.b = 0; + look_past_markers.markers[best_traj_index].color.a = 1; + } - vis_pub.publish(traj_lib_markers); - pc_map->publish_debug(); - look_past_vis_pub.publish(look_past_markers); + vis_pub.publish(traj_lib_markers); + pc_map->publish_debug(); + look_past_vis_pub.publish(look_past_markers); - return all_in_collision; + return all_in_collision; } +void LocalPlanner::global_plan_callback(core_trajectory_msgs::TrajectoryXYZVYaw global_plan) { + ROS_INFO_STREAM("GOT GLOBAL PLAN, goal_mode: " << goal_mode); + if (goal_mode != TRAJECTORY) return; -void LocalPlanner::global_plan_callback(core_trajectory_msgs::TrajectoryXYZVYaw global_plan){ - ROS_INFO_STREAM("GOT GLOBAL PLAN, goal_mode: " << goal_mode); - if(goal_mode != TRAJECTORY) - return; - - this->global_plan = global_plan; - got_global_plan = true; - global_plan_trajectory_distance = 0; + this->global_plan = global_plan; + got_global_plan = true; + global_plan_trajectory_distance = 0; } -void LocalPlanner::waypoint_callback(geometry_msgs::PointStamped wp){ - if(goal_mode != AUTO_WAYPOINT){ - waypoint_buffer.clear(); - waypoint_buffer.push_back(wp); - return; - } - - // TODO: REMOVE THIS - if(wp.point.x == 0 && wp.point.y == 0) - return; - - // remove old waypoints if necessary - waypoint_buffer.push_back(wp); - if((wp.header.stamp - waypoint_buffer.front().header.stamp).toSec() > waypoint_buffer_duration) - waypoint_buffer.pop_front(); - - // stitch together the history of waypoints - core_trajectory_msgs::TrajectoryXYZVYaw global_plan; - global_plan.header.frame_id = wp.header.frame_id; - global_plan.header.stamp = wp.header.stamp; - - std::vector backwards_global_plan; - //double waypoint_spacing_threshold = 0.5; - //double waypoint_angle_threshold = 30.*M_PI/180.; - std::vector prev_wps; - for(auto it = waypoint_buffer.rbegin(); it != waypoint_buffer.rend(); it++){ - geometry_msgs::PointStamped curr_wp = *it; - core_trajectory_msgs::WaypointXYZVYaw waypoint; - waypoint.position.x = curr_wp.point.x; - waypoint.position.y = curr_wp.point.y; - waypoint.position.z = curr_wp.point.z; - - if(prev_wps.size() > 1){ - geometry_msgs::PointStamped prev_wp = prev_wps[prev_wps.size()-1]; - geometry_msgs::PointStamped prev2_wp = prev_wps[prev_wps.size()-2]; - float distance = sqrt(pow(curr_wp.point.x - prev_wp.point.x, 2) + - pow(curr_wp.point.y - prev_wp.point.y, 2)); - - float a = pow(prev_wp.point.x-curr_wp.point.x,2) + pow(prev_wp.point.y-curr_wp.point.y,2); - float b = pow(prev_wp.point.x-prev2_wp.point.x,2) + pow(prev_wp.point.y-prev2_wp.point.y,2); - float c = pow(prev2_wp.point.x-curr_wp.point.x,2) + pow(prev2_wp.point.y-curr_wp.point.y,2); - float angle = acos( (a+b-c) / sqrt(4*a*b) ); - - float angle_diff = fabs(atan2(sin(angle - M_PI), cos(angle - M_PI))); - - //ROS_INFO_STREAM("\tdistance: " << distance << " angle: " << angle*180./M_PI << " angle_diff: " << angle_diff*180./M_PI); - - if(distance >= waypoint_spacing_threshold && angle_diff < waypoint_angle_threshold){ - //ROS_INFO_STREAM("\tADDING wp: " << curr_wp.point.x << " " << curr_wp.point.y << " " << curr_wp.point.z); - backwards_global_plan.push_back(waypoint); - prev_wps.push_back(curr_wp); - } +void LocalPlanner::waypoint_callback(geometry_msgs::PointStamped wp) { + if (goal_mode != AUTO_WAYPOINT) { + waypoint_buffer.clear(); + waypoint_buffer.push_back(wp); + return; } - else{ - if(prev_wps.size() == 0){ - //ROS_INFO_STREAM("\tADDING 0 wp: " << curr_wp.point.x << " " << curr_wp.point.y << " " << curr_wp.point.z); - prev_wps.push_back(curr_wp); - backwards_global_plan.push_back(waypoint); - } - else if(prev_wps.size() == 1){ - geometry_msgs::PointStamped prev_wp = prev_wps[prev_wps.size()-1]; - float distance = sqrt(pow(curr_wp.point.x - prev_wp.point.x, 2) + - pow(curr_wp.point.y - prev_wp.point.y, 2)); - if(distance >= waypoint_spacing_threshold){ - //ROS_INFO_STREAM("\tADDING 1 wp: " << curr_wp.point.x << " " << curr_wp.point.y << " " << curr_wp.point.z); - prev_wps.push_back(curr_wp); - backwards_global_plan.push_back(waypoint); - } - } - } - } - for(int i = backwards_global_plan.size()-1; i >= 0; i--){ - global_plan.waypoints.push_back(backwards_global_plan[i]); - } - /*for(auto it = waypoint_buffer.begin(); it != waypoint_buffer.end(); it++){ - geometry_msgs::PointStamped curr_wp = *it; - core_trajectory_msgs::WaypointXYZVYaw waypoint; - waypoint.position.x = curr_wp.point.x; - waypoint.position.y = curr_wp.point.y; - waypoint.position.z = curr_wp.point.z; - global_plan.waypoints.push_back(waypoint); - } - */ - - // add an extra segment onto the end of the path - if(got_tracking_point){ - try{ - tf::StampedTransform transform; - listener->waitForTransform(tracking_point_odom.header.frame_id, wp.header.frame_id, wp.header.stamp, ros::Duration(0.1)); - listener->lookupTransform(tracking_point_odom.header.frame_id, wp.header.frame_id, wp.header.stamp, transform); - - tf::Vector3 tp_position = tflib::to_tf(tracking_point_odom.pose.pose.position); - tf::Vector3 wp_position = transform*tflib::to_tf(wp.point); - - tf::Vector3 direction = (wp_position - tp_position).normalized()*3; - tf::Vector3 wp2_position = wp_position + direction; - - // TODO: Are waypoints in the tracking point frame while the previous ones are in wp frame? - core_trajectory_msgs::WaypointXYZVYaw wp1, wp2; - wp1.position.x = wp_position.x(); - wp1.position.y = wp_position.y(); - wp1.position.z = wp_position.z(); - wp2.position.x = wp2_position.x(); - wp2.position.y = wp2_position.y(); - wp2.position.z = wp2_position.z(); - global_plan.waypoints.push_back(wp1); - global_plan.waypoints.push_back(wp2); + + // TODO: REMOVE THIS + if (wp.point.x == 0 && wp.point.y == 0) return; + + // remove old waypoints if necessary + waypoint_buffer.push_back(wp); + if ((wp.header.stamp - waypoint_buffer.front().header.stamp).toSec() > waypoint_buffer_duration) + waypoint_buffer.pop_front(); + + // stitch together the history of waypoints + core_trajectory_msgs::TrajectoryXYZVYaw global_plan; + global_plan.header.frame_id = wp.header.frame_id; + global_plan.header.stamp = wp.header.stamp; + + std::vector backwards_global_plan; + // double waypoint_spacing_threshold = 0.5; + // double waypoint_angle_threshold = 30.*M_PI/180.; + std::vector prev_wps; + for (auto it = waypoint_buffer.rbegin(); it != waypoint_buffer.rend(); it++) { + geometry_msgs::PointStamped curr_wp = *it; + core_trajectory_msgs::WaypointXYZVYaw waypoint; + waypoint.position.x = curr_wp.point.x; + waypoint.position.y = curr_wp.point.y; + waypoint.position.z = curr_wp.point.z; + + if (prev_wps.size() > 1) { + geometry_msgs::PointStamped prev_wp = prev_wps[prev_wps.size() - 1]; + geometry_msgs::PointStamped prev2_wp = prev_wps[prev_wps.size() - 2]; + float distance = sqrt(pow(curr_wp.point.x - prev_wp.point.x, 2) + + pow(curr_wp.point.y - prev_wp.point.y, 2)); + + float a = pow(prev_wp.point.x - curr_wp.point.x, 2) + + pow(prev_wp.point.y - curr_wp.point.y, 2); + float b = pow(prev_wp.point.x - prev2_wp.point.x, 2) + + pow(prev_wp.point.y - prev2_wp.point.y, 2); + float c = pow(prev2_wp.point.x - curr_wp.point.x, 2) + + pow(prev2_wp.point.y - curr_wp.point.y, 2); + float angle = acos((a + b - c) / sqrt(4 * a * b)); + + float angle_diff = fabs(atan2(sin(angle - M_PI), cos(angle - M_PI))); + + // ROS_INFO_STREAM("\tdistance: " << distance << " angle: " << angle*180./M_PI << " + // angle_diff: " << angle_diff*180./M_PI); + + if (distance >= waypoint_spacing_threshold && angle_diff < waypoint_angle_threshold) { + // ROS_INFO_STREAM("\tADDING wp: " << curr_wp.point.x << " " << curr_wp.point.y << " + // " << curr_wp.point.z); + backwards_global_plan.push_back(waypoint); + prev_wps.push_back(curr_wp); + } + } else { + if (prev_wps.size() == 0) { + // ROS_INFO_STREAM("\tADDING 0 wp: " << curr_wp.point.x << " " << curr_wp.point.y << + // " " << curr_wp.point.z); + prev_wps.push_back(curr_wp); + backwards_global_plan.push_back(waypoint); + } else if (prev_wps.size() == 1) { + geometry_msgs::PointStamped prev_wp = prev_wps[prev_wps.size() - 1]; + float distance = sqrt(pow(curr_wp.point.x - prev_wp.point.x, 2) + + pow(curr_wp.point.y - prev_wp.point.y, 2)); + if (distance >= waypoint_spacing_threshold) { + // ROS_INFO_STREAM("\tADDING 1 wp: " << curr_wp.point.x << " " << + // curr_wp.point.y << " " << curr_wp.point.z); + prev_wps.push_back(curr_wp); + backwards_global_plan.push_back(waypoint); + } + } + } } - catch(tf::TransformException& ex){ - ROS_ERROR_STREAM("Transform exception in waypoint_callback: " << ex.what()); + for (int i = backwards_global_plan.size() - 1; i >= 0; i--) { + global_plan.waypoints.push_back(backwards_global_plan[i]); } - } - - global_plan_trajectory_distance = 0; - this->global_plan = global_plan; - this->got_global_plan = true; - - //ROS_INFO_STREAM("GLOBAL PLAN WAYPOINTS: " << global_plan.waypoints.size()); - - // DEBUG ONLY REMOV THIS - /* - Trajectory gp(global_plan); - visualization_msgs::MarkerArray global_markers = gp.get_markers(0, 0, 1); - global_plan_vis_pub.publish(global_markers); - */ - - /* - if(got_tracking_point){ - this->got_global_plan = true; - global_plan_trajectory_distance = 0; - - try{ - tf::StampedTransform transform; - listener->waitForTransform(tracking_point_odom.header.frame_id, wp.header.frame_id, wp.header.stamp, ros::Duration(0.1)); - listener->lookupTransform(tracking_point_odom.header.frame_id, wp.header.frame_id, wp.header.stamp, transform); - - tf::Vector3 tp_position = tflib::to_tf(tracking_point_odom.pose.pose.position); - tf::Vector3 wp_position = transform*tflib::to_tf(wp.point); - - tf::Vector3 direction = (wp_position - tp_position).normalized()*3; - tf::Vector3 wp2_position = wp_position + direction; - - core_trajectory_msgs::TrajectoryXYZVYaw global_plan; - global_plan.header.frame_id = tracking_point_odom.header.frame_id; - global_plan.header.stamp = wp.header.stamp; - - core_trajectory_msgs::WaypointXYZVYaw wp1, wp2; - wp1.position.x = wp_position.x(); - wp1.position.y = wp_position.y(); - wp1.position.z = wp_position.z(); - wp2.position.x = wp2_position.x(); - wp2.position.y = wp2_position.y(); - wp2.position.z = wp2_position.z(); - global_plan.waypoints.push_back(wp1); - global_plan.waypoints.push_back(wp2); - - this->global_plan = global_plan; + /*for(auto it = waypoint_buffer.begin(); it != waypoint_buffer.end(); it++){ + geometry_msgs::PointStamped curr_wp = *it; + core_trajectory_msgs::WaypointXYZVYaw waypoint; + waypoint.position.x = curr_wp.point.x; + waypoint.position.y = curr_wp.point.y; + waypoint.position.z = curr_wp.point.z; + global_plan.waypoints.push_back(waypoint); } - catch(tf::TransformException& ex){ - ROS_ERROR_STREAM("Transform exception in waypoint_callback: " << ex.what()); + */ + + // add an extra segment onto the end of the path + if (got_tracking_point) { + try { + tf::StampedTransform transform; + listener->waitForTransform(tracking_point_odom.header.frame_id, wp.header.frame_id, + wp.header.stamp, ros::Duration(0.1)); + listener->lookupTransform(tracking_point_odom.header.frame_id, wp.header.frame_id, + wp.header.stamp, transform); + + tf::Vector3 tp_position = tflib::to_tf(tracking_point_odom.pose.pose.position); + tf::Vector3 wp_position = transform * tflib::to_tf(wp.point); + + tf::Vector3 direction = (wp_position - tp_position).normalized() * 3; + tf::Vector3 wp2_position = wp_position + direction; + + // TODO: Are waypoints in the tracking point frame while the previous ones are in wp + // frame? + core_trajectory_msgs::WaypointXYZVYaw wp1, wp2; + wp1.position.x = wp_position.x(); + wp1.position.y = wp_position.y(); + wp1.position.z = wp_position.z(); + wp2.position.x = wp2_position.x(); + wp2.position.y = wp2_position.y(); + wp2.position.z = wp2_position.z(); + global_plan.waypoints.push_back(wp1); + global_plan.waypoints.push_back(wp2); + } catch (tf::TransformException& ex) { + ROS_ERROR_STREAM("Transform exception in waypoint_callback: " << ex.what()); + } } - } - */ -} -void LocalPlanner::custom_waypoint_callback(geometry_msgs::PoseStamped wp){ - if(!got_look_ahead) - return; - - try{ - tf::StampedTransform transform; - listener->waitForTransform(look_ahead_odom.header.frame_id, wp.header.frame_id, wp.header.stamp, ros::Duration(0.1)); - listener->lookupTransform(look_ahead_odom.header.frame_id, wp.header.frame_id, wp.header.stamp, transform); - - tf::Vector3 la_position = tflib::to_tf(look_ahead_odom.pose.pose.position); - tf::Vector3 wp_position = transform*tflib::to_tf(wp.pose.position); - - core_trajectory_msgs::TrajectoryXYZVYaw global_plan; - global_plan.header.frame_id = look_ahead_odom.header.frame_id; - global_plan.header.stamp = ros::Time::now(); - - core_trajectory_msgs::WaypointXYZVYaw wp1, wp2; - wp1.position.x = la_position.x();//la_position.x(); - wp1.position.y = la_position.y();//la_position.y(); - wp1.position.z = la_position.z();//la_position.z(); - wp2.position.x = wp_position.x(); - wp2.position.y = wp_position.y(); - wp2.position.z = wp_position.z(); - global_plan.waypoints.push_back(wp1); - global_plan.waypoints.push_back(wp2); - global_plan_trajectory_distance = 0; this->global_plan = global_plan; this->got_global_plan = true; - - goal_mode = CUSTOM_WAYPOINT; - } - catch(tf::TransformException& ex){ - ROS_ERROR_STREAM("TransformException in custom_waypoint_callback: " << ex.what()); - } -} -void LocalPlanner::update_waypoint_mode(){ - if(goal_mode == CUSTOM_WAYPOINT){ - if(global_plan.waypoints.size() < 2) - goal_mode = AUTO_WAYPOINT; - - // check if the time limit for reaching the waypoint has elapsed - double elapsed_time = (ros::Time::now() - global_plan.header.stamp).toSec(); - double distance = 0; - for(int i = 1; i < global_plan.waypoints.size(); i++){ - core_trajectory_msgs::WaypointXYZVYaw prev_wp, curr_wp; - prev_wp = global_plan.waypoints[i-1]; - curr_wp = global_plan.waypoints[i]; - - distance += sqrt(pow(prev_wp.position.x - curr_wp.position.x, 2) + - pow(prev_wp.position.y - curr_wp.position.y, 2)); - } + // ROS_INFO_STREAM("GLOBAL PLAN WAYPOINTS: " << global_plan.waypoints.size()); - //ROS_INFO_STREAM("elapsed: " << elapsed_time << " / " << distance/custom_waypoint_timeout_factor << " distance: " << distance); - if(elapsed_time >= distance/custom_waypoint_timeout_factor){ - //ROS_INFO_STREAM("CUSTOM WAYPOINT TIMEOUT REACHED"); - goal_mode = AUTO_WAYPOINT; - } + // DEBUG ONLY REMOV THIS + /* + Trajectory gp(global_plan); + visualization_msgs::MarkerArray global_markers = gp.get_markers(0, 0, 1); + global_plan_vis_pub.publish(global_markers); + */ - // check if we are close enough to the waypoint + /* if(got_tracking_point){ + this->got_global_plan = true; + global_plan_trajectory_distance = 0; + try{ - tf::StampedTransform transform; - listener->waitForTransform(tracking_point_odom.header.frame_id, global_plan.header.frame_id, - global_plan.header.stamp,ros::Duration(0.1)); - listener->lookupTransform(tracking_point_odom.header.frame_id, global_plan.header.frame_id, - global_plan.header.stamp, transform); - - tf::Vector3 tp_position = tflib::to_tf(tracking_point_odom.pose.pose.position); - tp_position.setZ(0); - tf::Vector3 wp_position = transform*tflib::to_tf(global_plan.waypoints.back().position); - wp_position.setZ(0); - - if(tp_position.distance(wp_position) < custom_waypoint_distance_threshold){ - //ROS_INFO_STREAM("CUSTOM WAYPOINT DISTANCE THRESHOLD MET"); - goal_mode = AUTO_WAYPOINT; - } + tf::StampedTransform transform; + listener->waitForTransform(tracking_point_odom.header.frame_id, wp.header.frame_id, + wp.header.stamp, ros::Duration(0.1)); + listener->lookupTransform(tracking_point_odom.header.frame_id, wp.header.frame_id, + wp.header.stamp, transform); + + tf::Vector3 tp_position = tflib::to_tf(tracking_point_odom.pose.pose.position); + tf::Vector3 wp_position = transform*tflib::to_tf(wp.point); + + tf::Vector3 direction = (wp_position - tp_position).normalized()*3; + tf::Vector3 wp2_position = wp_position + direction; + + core_trajectory_msgs::TrajectoryXYZVYaw global_plan; + global_plan.header.frame_id = tracking_point_odom.header.frame_id; + global_plan.header.stamp = wp.header.stamp; + + core_trajectory_msgs::WaypointXYZVYaw wp1, wp2; + wp1.position.x = wp_position.x(); + wp1.position.y = wp_position.y(); + wp1.position.z = wp_position.z(); + wp2.position.x = wp2_position.x(); + wp2.position.y = wp2_position.y(); + wp2.position.z = wp2_position.z(); + global_plan.waypoints.push_back(wp1); + global_plan.waypoints.push_back(wp2); + + this->global_plan = global_plan; } catch(tf::TransformException& ex){ - ROS_ERROR_STREAM("TransformException in update_waypoint_mode: " << ex.what()); + ROS_ERROR_STREAM("Transform exception in waypoint_callback: " << ex.what()); } } - } + */ +} + +void LocalPlanner::custom_waypoint_callback(geometry_msgs::PoseStamped wp) { + if (!got_look_ahead) return; + + try { + tf::StampedTransform transform; + listener->waitForTransform(look_ahead_odom.header.frame_id, wp.header.frame_id, + wp.header.stamp, ros::Duration(0.1)); + listener->lookupTransform(look_ahead_odom.header.frame_id, wp.header.frame_id, + wp.header.stamp, transform); + + tf::Vector3 la_position = tflib::to_tf(look_ahead_odom.pose.pose.position); + tf::Vector3 wp_position = transform * tflib::to_tf(wp.pose.position); + + core_trajectory_msgs::TrajectoryXYZVYaw global_plan; + global_plan.header.frame_id = look_ahead_odom.header.frame_id; + global_plan.header.stamp = ros::Time::now(); + + core_trajectory_msgs::WaypointXYZVYaw wp1, wp2; + wp1.position.x = la_position.x(); // la_position.x(); + wp1.position.y = la_position.y(); // la_position.y(); + wp1.position.z = la_position.z(); // la_position.z(); + wp2.position.x = wp_position.x(); + wp2.position.y = wp_position.y(); + wp2.position.z = wp_position.z(); + global_plan.waypoints.push_back(wp1); + global_plan.waypoints.push_back(wp2); + + global_plan_trajectory_distance = 0; + this->global_plan = global_plan; + this->got_global_plan = true; + + goal_mode = CUSTOM_WAYPOINT; + } catch (tf::TransformException& ex) { + ROS_ERROR_STREAM("TransformException in custom_waypoint_callback: " << ex.what()); + } } -void LocalPlanner::look_ahead_callback(nav_msgs::Odometry odom){ - got_look_ahead = true; - look_ahead_odom = odom; +void LocalPlanner::update_waypoint_mode() { + if (goal_mode == CUSTOM_WAYPOINT) { + if (global_plan.waypoints.size() < 2) goal_mode = AUTO_WAYPOINT; + + // check if the time limit for reaching the waypoint has elapsed + double elapsed_time = (ros::Time::now() - global_plan.header.stamp).toSec(); + double distance = 0; + for (int i = 1; i < global_plan.waypoints.size(); i++) { + core_trajectory_msgs::WaypointXYZVYaw prev_wp, curr_wp; + prev_wp = global_plan.waypoints[i - 1]; + curr_wp = global_plan.waypoints[i]; + + distance += sqrt(pow(prev_wp.position.x - curr_wp.position.x, 2) + + pow(prev_wp.position.y - curr_wp.position.y, 2)); + } + + // ROS_INFO_STREAM("elapsed: " << elapsed_time << " / " << + // distance/custom_waypoint_timeout_factor << " distance: " << distance); + if (elapsed_time >= distance / custom_waypoint_timeout_factor) { + // ROS_INFO_STREAM("CUSTOM WAYPOINT TIMEOUT REACHED"); + goal_mode = AUTO_WAYPOINT; + } + + // check if we are close enough to the waypoint + if (got_tracking_point) { + try { + tf::StampedTransform transform; + listener->waitForTransform(tracking_point_odom.header.frame_id, + global_plan.header.frame_id, global_plan.header.stamp, + ros::Duration(0.1)); + listener->lookupTransform(tracking_point_odom.header.frame_id, + global_plan.header.frame_id, global_plan.header.stamp, + transform); + + tf::Vector3 tp_position = tflib::to_tf(tracking_point_odom.pose.pose.position); + tp_position.setZ(0); + tf::Vector3 wp_position = + transform * tflib::to_tf(global_plan.waypoints.back().position); + wp_position.setZ(0); + + if (tp_position.distance(wp_position) < custom_waypoint_distance_threshold) { + // ROS_INFO_STREAM("CUSTOM WAYPOINT DISTANCE THRESHOLD MET"); + goal_mode = AUTO_WAYPOINT; + } + } catch (tf::TransformException& ex) { + ROS_ERROR_STREAM("TransformException in update_waypoint_mode: " << ex.what()); + } + } + } } -void LocalPlanner::tracking_point_callback(nav_msgs::Odometry odom){ - got_tracking_point = true; - tracking_point_odom = odom; +void LocalPlanner::look_ahead_callback(nav_msgs::Odometry odom) { + got_look_ahead = true; + look_ahead_odom = odom; } -void LocalPlanner::range_up_callback(sensor_msgs::Range range){ - got_range_up = true; - range_up = range; +void LocalPlanner::tracking_point_callback(nav_msgs::Odometry odom) { + got_tracking_point = true; + tracking_point_odom = odom; } -void LocalPlanner::range_down_callback(sensor_msgs::Range range){ - got_range_down = true; - range_down = range; +void LocalPlanner::range_up_callback(sensor_msgs::Range range) { + got_range_up = true; + range_up = range; } -LocalPlanner::~LocalPlanner(){ +void LocalPlanner::range_down_callback(sensor_msgs::Range range) { + got_range_down = true; + range_down = range; } -BaseNode* BaseNode::get(){ - LocalPlanner* local_planner = new LocalPlanner("LocalPlanner"); - return local_planner; +LocalPlanner::~LocalPlanner() {} + +BaseNode* BaseNode::get() { + LocalPlanner* local_planner = new LocalPlanner("LocalPlanner"); + return local_planner; } diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/CMakeLists.txt b/ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/CMakeLists.txt index 8803b2a0d..0c656ce8c 100644 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/CMakeLists.txt +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/CMakeLists.txt @@ -1,57 +1,89 @@ -cmake_minimum_required(VERSION 2.8.3) +cmake_minimum_required(VERSION 3.8) project(disparity_graph) -find_package(catkin REQUIRED COMPONENTS - cmake_modules - ca_common - cv_bridge - geometry_msgs - image_geometry - image_transport - nav_msgs - roscpp - rospy - sensor_msgs - std_msgs - tf - tf_conversions - tictoc_profiler - pcl_conversions - pcl_ros -) +#find_package(catkin REQUIRED COMPONENTS +# cmake_modules +# ca_common +# cv_bridge - +# geometry_msgs +# image_geometry - +# image_transport - +# nav_msgs - +# roscpp - +# rospy +# sensor_msgs - +# std_msgs - +# tf - +# tf_conversions - +# tictoc_profiler - +# pcl_conversions - +# pcl_ros +#) + +find_package(ament_cmake REQUIRED) +find_package(cv_bridge REQUIRED) +find_package(geometry_msgs REQUIRED) +find_package(image_geometry REQUIRED) +find_package(image_transport REQUIRED) +find_package(nav_msgs REQUIRED) +find_package(rclcpp REQUIRED) +find_package(sensor_msgs REQUIRED) +find_package(std_msgs REQUIRED) +find_package(tf2 REQUIRED) +find_package(tf2_ros REQUIRED) +find_package(tf2_geometry_msgs REQUIRED) +find_package(pcl_conversions REQUIRED) +find_package(pcl_ros REQUIRED) +find_package(visualization_msgs REQUIRED) +find_package(tf2_geometry_msgs REQUIRED) +find_package(pcl_conversions REQUIRED) # CONFIGURE OPENCV find_package(OpenCV REQUIRED) # CONFIGURE PCL find_package(PCL REQUIRED) +find_package(tf2_eigen REQUIRED) #CONFIGURER ARMADILLO find_package(Armadillo REQUIRED) ## System dependencies are found with CMake's conventions # find_package(Boost REQUIRED COMPONENTS system) -find_package(PkgConfig REQUIRED) -find_package(octomap REQUIRED) - -catkin_package( - INCLUDE_DIRS include - LIBRARIES disparity_graph - CATKIN_DEPENDS roscpp sensor_msgs std_msgs tf image_transport image_geometry - DEPENDS eigen Boost PCL -) - +#find_package(PkgConfig REQUIRED) +#find_package(octomap REQUIRED) +find_package(Eigen3 REQUIRED) +find_package(Boost REQUIRED) +#catkin_package( +# INCLUDE_DIRS include +# LIBRARIES disparity_graph +# CATKIN_DEPENDS roscpp sensor_msgs std_msgs tf image_transport image_geometry +# DEPENDS eigen Boost PCL +#) +set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD_REQUIRED ON) #DEBUGGGGGGGGGGGEEEEEEEEEEERRRRRRRRRRR set(CMAKE_BUILD_TYPE Release) set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Wall -std=gnu++0x") include_directories( include - ${catkin_INCLUDE_DIRS} + ${rclcpp_INCLUDE_DIRS} + ${sensor_msgs_INCLUDE_DIRS} + ${std_msgs_INCLUDE_DIRS} + ${tf2_INCLUDE_DIRS} + ${tf2_ros_INCLUDE_DIRS} + ${tf2_eigen_INCLUDE_DIRS} + + ${image_transport_INCLUDE_DIRS} + ${image_geometry_INCLUDE_DIRS} ${OpenCV_INCLUDE_DIRS} ${PCL_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} - ${ARMADILLO_INCLUDE_DIRS} + ${EIGEN3_INCLUDE_DIRS} + ${pcl_conversions_INCLUDE_DIRS} + ${nav_msgs_INCLUDE_DIRS} + ${tf2_geometry_msgs_INCLUDE_DIRS} ) add_library(disparity_graph @@ -61,17 +93,41 @@ target_link_libraries(disparity_graph ${catkin_LIBRARIES} ${OpenCV_LIBS}) +ament_target_dependencies(disparity_graph + rclcpp + sensor_msgs + std_msgs + nav_msgs + tf2 + tf2_ros + tf2_eigen + tf2_geometry_msgs + image_transport + image_geometry + visualization_msgs + cv_bridge + image_geometry + pcl_conversions + ) #Install files - install(DIRECTORY include/${PROJECT_NAME}/ - DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} - FILES_MATCHING PATTERN "*.h" - PATTERN ".svn" EXCLUDE - ) +# install(DIRECTORY include/${PROJECT_NAME}/ +# DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} +# FILES_MATCHING PATTERN "*.h" +# PATTERN ".svn" EXCLUDE +# ) +# install(TARGETS disparity_graph + # ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} + # LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} + # RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} + #) install(TARGETS disparity_graph - ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} - LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} - RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} - ) + DESTINATION lib/${PROJECT_NAME} +) +install(DIRECTORY launch DESTINATION share/${PROJECT_NAME}) +install(FILES package.xml + DESTINATION share/${PROJECT_NAME} +) +ament_package() diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/COLCON_IGNORE b/ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/COLCON_IGNORE deleted file mode 100644 index e69de29bb..000000000 diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/include/disparity_graph/disparity_graph.h b/ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/include/disparity_graph/disparity_graph.h index eaff2f0bf..37880361a 100644 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/include/disparity_graph/disparity_graph.h +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/include/disparity_graph/disparity_graph.h @@ -15,136 +15,144 @@ * */ /* -#include -#include "sensor_msgs/Image.h" -#include "sensor_msgs/image_encodings.h" -#include "visualization_msgs/MarkerArray.h" #include -#include "opencv2/core/core.hpp" -#include -#include -#include "deque" -#include "tf/transform_listener.h" -#include "tf/transform_datatypes.h" #include -#include #include #include -#include "image_geometry/pinhole_camera_model.h" -#include -#include -#include -#include - -#include -#include +#include #include +#include +#include #include - +#include +#include +#include +#include +#include #include +#include +#include +#include + +#include "deque" +#include "image_geometry/pinhole_camera_model.h" #include "nav_msgs/OccupancyGrid.h" +#include "opencv2/core/core.hpp" +#include "sensor_msgs/Image.h" +#include "sensor_msgs/image_encodings.h" +#include "tf/transform_datatypes.h" +#include "tf/transform_listener.h" #include "visualization_msgs/MarkerArray.h" - -#include */ -#include -#include -#include -#include #include -#include -#include -#include -#include -#include -#include -#include +#include #include -#include #include #include -#include +#include +#include +#include +#include #include #include +// #include #include -#include -#include -#include -#include -#include +#include +#include +#include + +#include +#include +#include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include -#include - typedef pcl::PointCloud PointCloud; -namespace nabla { namespace disparity_graph { +namespace nabla { +namespace disparity_graph { class disparity_graph : public rclcpp::Node { + public: + explicit disparity_graph(const rclcpp::NodeOptions &options); + struct node { + // sensor_msgs::Image Im_fg; + // sensor_msgs::Image Im_bg; + cv_bridge::CvImagePtr Im_fg; + cv_bridge::CvImagePtr Im_bg; + std_msgs::msg::Header header; + tf2::Transform w2s_tf; + tf2::Transform s2w_tf; + }; -private: - struct node { - //sensor_msgs::Image Im_fg; - //sensor_msgs::Image Im_bg; - cv_bridge::CvImagePtr Im_fg; - cv_bridge::CvImagePtr Im_bg; - std_msgs::msg::Header header; - tf2::Transform w2s_tf; - tf2::Transform s2w_tf; - }; - -public: - void disp_cb(const sensor_msgs::msg::Image::ConstPtr &disp_fg, - const sensor_msgs::msg::Image::ConstPtr &disp_bg); + void disp_cb(const sensor_msgs::msg::Image::ConstSharedPtr &disp_fg, + const sensor_msgs::msg::Image::ConstSharedPtr &disp_bg); - std::deque disp_graph; - size_t graph_size; - double thresh_; - //tf::TransformListener listener; - std::shared_ptr tf_buffer_; - std::shared_ptr tf_listener_; - std::string sensor_frame, fixed_frame, stabilized_frame; - visualization_msgs::msg::Marker marker; - //ros::Publisher disparity_graph_marker_pub; - rclcpp::Publisher::SharedPtr disparity_graph_marker_pub; - disparity_graph(); - rclcpp::TimerBase::SharedPtr timer1; - double angle_tol, displacement_tol; - bool first; - bool got_cam_info; - double fx_,fy_,cx_,cy_,baseline_,downsample_scale; - unsigned int width_,height_; - //ros::Subscriber cam_info_sub_; - rclcpp::Subscription::SharedPtr cam_info_sub_; - //boost::mutex io_mutex; - std::mutex io_mutex; - message_filters::Subscriber disp_fg_sub_, disp_bg_sub_; - typedef message_filters::sync_policies::ExactTime ExactPolicy; - typedef message_filters::Synchronizer ExactSync; - std::shared_ptr exact_sync_; - void getCamInfo(const sensor_msgs::msg::CameraInfo::ConstSharedPtr &msg_info); - bool isStateValidDepth_pose(geometry_msgs::msg::PoseStamped checked_state, double thresh, double& occupancy); - bool getStateCost(geometry_msgs::msg::Pose checked_state, double &cost); + std::deque disp_graph; + size_t graph_size; + double thresh_; + // tf::TransformListener listener; + std::shared_ptr tf_buffer_; + std::shared_ptr tf_listener_; + std::string sensor_frame, fixed_frame, stabilized_frame; + visualization_msgs::msg::Marker marker; + // ros::Publisher disparity_graph_marker_pub; + rclcpp::Publisher::SharedPtr disparity_graph_marker_pub; + disparity_graph(); + rclcpp::TimerBase::SharedPtr timer1; + double angle_tol, displacement_tol; + bool first; + bool got_cam_info; + double fx_, fy_, cx_, cy_, baseline_, downsample_scale; + unsigned int width_, height_; + // ros::Subscriber cam_info_sub_; + rclcpp::Subscription::SharedPtr cam_info_sub_; + // boost::mutex io_mutex; + std::mutex io_mutex; + message_filters::Subscriber disp_fg_sub_, disp_bg_sub_; + typedef message_filters::sync_policies::ExactTime + ExactPolicy; + typedef message_filters::Synchronizer ExactSync; + std::shared_ptr exact_sync_; + void getCamInfo(const sensor_msgs::msg::CameraInfo::ConstSharedPtr &msg_info); + bool isStateValidDepth_pose(geometry_msgs::msg::PoseStamped checked_state, double thresh, + double &occupancy); + bool getStateCost(geometry_msgs::msg::Pose checked_state, double &cost); - //TEST PCD - PointCloud pcd_checked_states; - rclcpp::TimerBase::SharedPtr pcd_test_timer; - rclcpp::TimerBase::SharedPtr pcd_test3_timer; - rclcpp::TimerBase::SharedPtr pcd_test4_timer; + // TEST PCD + PointCloud pcd_checked_states; + rclcpp::TimerBase::SharedPtr pcd_test_timer; + rclcpp::TimerBase::SharedPtr pcd_test3_timer; + rclcpp::TimerBase::SharedPtr pcd_test4_timer; - void pcd_test(); - //void pcd_test2(const ros::TimerEvent &event); - void pcd_test3(); - void pcd_test4(); - void clear_graph() { std::lock_guard lock(io_mutex); disp_graph.clear(); first = true; RCLCPP_ERROR(this->get_logger(), "<<< DISP GRAPH CLEARED >>>"); }; - //ros::Publisher pcdPub, occPub_; - rclcpp::Publisher::SharedPtr pcdPub, occPub_; - //nav_msgs::OccupancyGrid occ_map; - //ros::Publisher expansion_poly_pub; - rclcpp::Publisher::SharedPtr expansion_poly_pub; - float orig_z; + void pcd_test(); + // void pcd_test2(const ros::TimerEvent &event); + void pcd_test3(); + void pcd_test4(); + void clear_graph() { + std::lock_guard lock(io_mutex); + disp_graph.clear(); + first = true; + RCLCPP_ERROR(this->get_logger(), "<<< DISP GRAPH CLEARED >>>"); + }; + // ros::Publisher pcdPub, occPub_; + rclcpp::Publisher::SharedPtr pcdPub, occPub_; + // nav_msgs::OccupancyGrid occ_map; + // ros::Publisher expansion_poly_pub; + rclcpp::Publisher::SharedPtr expansion_poly_pub; + float orig_z; }; -} } +} // namespace disparity_graph +} // namespace nabla diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/launch/talker.launch b/ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/launch/talker.launch index b281d5649..55b05325d 100644 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/launch/talker.launch +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/launch/talker.launch @@ -1,21 +1,17 @@ + - - + - + - - - - - + + + + + + + + + diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/package.xml b/ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/package.xml index 5fd879423..ad7f37d08 100644 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/package.xml +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/package.xml @@ -1,3 +1,6 @@ + + + disparity_graph 0.0.0 @@ -7,28 +10,33 @@ nabla Copyright 2015-2017 All rights reserved - catkin - - cmake_modules - ca_common - cv_bridge - geometry_msgs - image_geometry - image_transport - libpcl-all - libpcl-all-dev - nav_msgs - pcl_conversions - pcl_ros - roscpp - rospy - sensor_msgs - std_msgs - tf_conversions - tf - tictoc_profiler + ament_cmake + +cv_bridge +geometry_msgs +tf2_geometry_msgs +image_geometry +image_transport +libpcl-all +libpcl-all-dev +nav_msgs +pcl_conversions +pcl_ros +rclcpp +rclpy +sensor_msgs +std_msgs +tf2 +tf2_ros + +ament_lint_auto +ament_lint_common + + + ament_cmake + diff --git a/ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/src/disparity_graph.cpp b/ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/src/disparity_graph.cpp index cddf6399b..14976a9bf 100644 --- a/ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/src/disparity_graph.cpp +++ b/ros_ws/src/robot/autonomy/planning/local/disparity_graph_bkp/src/disparity_graph.cpp @@ -15,11 +15,11 @@ * */ /* -* Copyright (c) 2016 Carnegie Mellon University, Author -* -* For License information please see the LICENSE file in the root directory. -* -*/ + * Copyright (c) 2016 Carnegie Mellon University, Author + * + * For License information please see the LICENSE file in the root directory. + * + */ #include "disparity_graph/disparity_graph.h" @@ -27,14 +27,13 @@ using namespace nabla::disparity_graph; -disparity_graph::disparity_graph(const rclcpp::NodeOptions & options) -: Node("disparity_graph", options) -{ - //ros::NodeHandle priv_nh("~/disparity_graph"); - //ros::NodeHandle global_nh("/oa"); - //graph_size = 10; - //angle_tol = /*cos*/(30.0); - //displacement_tol = 01.5; +disparity_graph::disparity_graph(const rclcpp::NodeOptions &options) + : Node("disparity_graph", options) { + // ros::NodeHandle priv_nh("~/disparity_graph"); + // ros::NodeHandle global_nh("/oa"); + // graph_size = 10; + // angle_tol = /*cos*/(30.0); + // displacement_tol = 01.5; this->declare_parameter("graph_size", 10); this->declare_parameter("angle_tolerance", 30.0); this->declare_parameter("displacement_tolerance", 1.5); @@ -47,12 +46,14 @@ disparity_graph::disparity_graph(const rclcpp::NodeOptions & options) got_cam_info = false; fixed_frame = "world"; stabilized_frame = "base_frame_stabilized"; - - //disparity_graph_marker_pub = priv_nh.advertise("disparity_marker", 10); - disparity_graph_marker_pub = this->create_publisher("disparity_marker", 10); + + // disparity_graph_marker_pub = + // priv_nh.advertise("disparity_marker", 10); + disparity_graph_marker_pub = + this->create_publisher("disparity_marker", 10); marker.header.frame_id = fixed_frame; - marker.header.stamp = ros::Time::now(); + marker.header.stamp = this->now(); marker.ns = "disparityGraph"; marker.id = 0; marker.type = visualization_msgs::msg::Marker::ARROW; @@ -67,262 +68,274 @@ disparity_graph::disparity_graph(const rclcpp::NodeOptions & options) marker.scale.x = 1; marker.scale.y = 0.1; marker.scale.z = 0.1; - marker.color.a = 1.0; // Don't forget to set the alpha! + marker.color.a = 1.0; // Don't forget to set the alpha! marker.color.r = 0.0; marker.color.g = 1.0; marker.color.b = 0.0; - //downsample_scale =4.0; - //baseline_ = 0.5576007548439765; - - //global_nh.param("baseline", baseline_, 0.10);//0.5576007548439765; - //global_nh.param("downsample_scale", downsample_scale, 1.0); - //global_nh.param("low_occ_thresh", thresh_, 0.9); + // downsample_scale =4.0; + // baseline_ = 0.5576007548439765; + + // global_nh.param("baseline", baseline_, 0.10);//0.5576007548439765; + // global_nh.param("downsample_scale", downsample_scale, 1.0); + // global_nh.param("low_occ_thresh", thresh_, 0.9); this->declare_parameter("baseline", 0.10); this->declare_parameter("downsample_scale", 1.0); this->declare_parameter("low_occ_thresh", 0.9); - //int igraph_size = graph_size; - //priv_nh.param("graph_size", igraph_size, igraph_size); - //graph_size = igraph_size; - //priv_nh.param("displacement_tolerance", displacement_tol, displacement_tol); - //priv_nh.param("angle_tolerance", angle_tol, angle_tol); - - //angle_tol = angle_tol * M_PI/180.0; - - //graph_size = this->get_parameter("graph_size").as_int(); - //angle_tol = this->get_parameter("angle_tolerance").as_double() * M_PI / 180.0; - //displacement_tol = this->get_parameter("displacement_tolerance").as_double(); + // int igraph_size = graph_size; + // priv_nh.param("graph_size", igraph_size, igraph_size); + // graph_size = igraph_size; + // priv_nh.param("displacement_tolerance", displacement_tol, displacement_tol); + // priv_nh.param("angle_tolerance", angle_tol, angle_tol); + + // angle_tol = angle_tol * M_PI/180.0; + + // graph_size = this->get_parameter("graph_size").as_int(); + // angle_tol = this->get_parameter("angle_tolerance").as_double() * M_PI / 180.0; + // displacement_tol = this->get_parameter("displacement_tolerance").as_double(); baseline_ = this->get_parameter("baseline").as_double(); downsample_scale = this->get_parameter("downsample_scale").as_double(); thresh_ = this->get_parameter("low_occ_thresh").as_double(); - RCLCPP_ERROR(this->get_logger(), "disparity_graph NS: %s",priv_nh.getNamespace().c_str()); + RCLCPP_ERROR(this->get_logger(), "disparity_graph NS: %s", this->get_namespace()); // right_info_sub_.subscribe(nh, right_info_topic, 1); - disp_fg_sub_.subscribe(this,"/ceye/left/expanded_disparity_fg", rclcpp::QoS(5).get_rmw_qos_profile()); - disp_bg_sub_.subscribe(this ,"/ceye/left/expanded_disparity_bg", rclcpp::QoS(5).get_rmw_qos_profile()); + disp_fg_sub_.subscribe(this, "/ceye/left/expanded_disparity_fg", + rclcpp::QoS(5).get_rmw_qos_profile()); + disp_bg_sub_.subscribe(this, "/ceye/left/expanded_disparity_bg", + rclcpp::QoS(5).get_rmw_qos_profile()); - //exact_sync_.reset(new ExactSync(ExactPolicy(5),disp_fg_sub_,disp_bg_sub_) ); - //exact_sync_->registerCallback(boost::bind(&disparity_graph::disp_cb, this, _1, _2)); + // exact_sync_.reset(new ExactSync(ExactPolicy(5),disp_fg_sub_,disp_bg_sub_) ); + // exact_sync_->registerCallback(boost::bind(&disparity_graph::disp_cb, this, _1, _2)); exact_sync_ = std::make_shared(ExactPolicy(5), disp_fg_sub_, disp_bg_sub_); - exact_sync_->registerCallback(std::bind(&disparity_graph::disp_cb, this, std::placeholders::_1, std::placeholders::_2)); - - //cam_info_sub_ = priv_nh.subscribe("/nerian_sp1/right/camera_info", 1,&disparity_graph::getCamInfo,this); - cam_info_sub_ = this->create_subscription("/nerian_sp1/right/camera_info", 10, std::bind(&disparity_graph::getCamInfo, this, std::placeholders::_1)); - //timer1 = priv_nh.createTimer(ros::Duration(0.20), &disparity_graph::pcd_test4,this); - timer1 = this->create_wall_timer(std::chrono::milliseconds(200), std::bind(&disparity_graph::pcd_test4, this)); - - pcd_checked_states.header.frame_id=fixed_frame; + exact_sync_->registerCallback( + std::bind(&disparity_graph::disp_cb, this, std::placeholders::_1, std::placeholders::_2)); + + // cam_info_sub_ = priv_nh.subscribe("/nerian_sp1/right/camera_info", + // 1,&disparity_graph::getCamInfo,this); + cam_info_sub_ = this->create_subscription( + "/nerian_sp1/right/camera_info", 10, + std::bind(&disparity_graph::getCamInfo, this, std::placeholders::_1)); + // timer1 = priv_nh.createTimer(ros::Duration(0.20), &disparity_graph::pcd_test4,this); + timer1 = this->create_wall_timer(std::chrono::milliseconds(200), + std::bind(&disparity_graph::pcd_test4, this)); + + pcd_checked_states.header.frame_id = fixed_frame; pcd_checked_states.height = 1; - pcd_checked_states.width =0; + pcd_checked_states.width = 0; pcd_checked_states.is_dense = false; - pcdPub = this->create_publisher("/graph_pcd",10); - expansion_poly_pub = this->create_publisher("/expansion/graph_occ_marker", 10); - -/* - //Occupancy Map - occ_map.header.frame_id=fixed_frame; - occ_map.info.resolution = 1.0;//0.5; - occ_map.info.width = 2*50/occ_map.info.resolution; - occ_map.info.height = 2*50/occ_map.info.resolution; - occ_map.data.resize(occ_map.info.width*occ_map.info.height,-1); - orig_z = -1.0; - occ_map.info.origin.position.x = -double(occ_map.info.width)/2.0*occ_map.info.resolution; - occ_map.info.origin.position.y = -double(occ_map.info.height)/2.0*occ_map.info.resolution; - occ_map.info.origin.position.z = orig_z; - occ_map.info.origin.orientation = tf::createQuaternionMsgFromYaw(0.0); - occPub_ = priv_nh.advertise("/graph_occ_map",10); -*/ + pcdPub = this->create_publisher("/graph_pcd", 10); + expansion_poly_pub = this->create_publisher( + "/expansion/graph_occ_marker", 10); + + /* + //Occupancy Map + occ_map.header.frame_id=fixed_frame; + occ_map.info.resolution = 1.0;//0.5; + occ_map.info.width = 2*50/occ_map.info.resolution; + occ_map.info.height = 2*50/occ_map.info.resolution; + occ_map.data.resize(occ_map.info.width*occ_map.info.height,-1); + orig_z = -1.0; + occ_map.info.origin.position.x = -double(occ_map.info.width)/2.0*occ_map.info.resolution; + occ_map.info.origin.position.y = -double(occ_map.info.height)/2.0*occ_map.info.resolution; + occ_map.info.origin.position.z = orig_z; + occ_map.info.origin.orientation = tf::createQuaternionMsgFromYaw(0.0); + occPub_ = priv_nh.advertise("/graph_occ_map",10); + */ } -void disparity_graph::pcd_test(const ros::TimerEvent& event) { - if (pcdPub->get_subscription_count() == 0) { - return; - } - - for(uint i =0; i lock(io_mutex); - //cv_depth_fg = cv_bridge::toCvCopy(disp_graph.at(i).Im_fg,sensor_msgs::image_encodings::TYPE_32FC1); - //cv_depth_bg = cv_bridge::toCvCopy(disp_graph.at(i).Im_bg,sensor_msgs::image_encodings::TYPE_32FC1); - w2s_tf = disp_graph.at(i).w2s_tf; - s2w_tf = disp_graph.at(i).s2w_tf; - - z_fg = (baseline_*fx_/disp_graph.at(i).Im_fg->image.at(v,u)); - z_bg = (baseline_*fx_/disp_graph.at(i).Im_bg->image.at(v,u)); - } +void disparity_graph::pcd_test() { + if (pcdPub->get_subscription_count() == 0) { + return; + } - for (double z_sample = z_fg; - z_sample <= z_bg && std::isfinite(z_sample)/*&& z_sample>5.0*/; - z_sample += 0.5) { - pt_optical_fg.setZ(z_sample); - pt_optical_fg.setX((u - cx_) * pt_optical_fg.getZ()/fx_); - pt_optical_fg.setY((v - cy_) * pt_optical_fg.getZ()/fy_); - - pt_world_fg = s2w_tf * pt_optical_fg; - - pcl::PointXYZI pt; - //FG - pt.x = pt_world_fg.getX(); - pt.y = pt_world_fg.getY(); - pt.z = pt_world_fg.getZ(); - - double state_disparity = baseline_ * fx_ / z_sample; - double confidence = (state_disparity - 0.5)/state_disparity; - - if(confidence >= thresh_) - pt.intensity = confidence;//*200.0;//i*20+10; - else - pt.intensity = 0.0; - if(confidence >= thresh_) - { - pcd_checked_states.points.push_back(pt); - pcd_checked_states.width++; - } - z_sample = ((z_sample+0.5) > z_bg ) ? z_bg : z_sample; + for (uint i = 0; i < disp_graph.size(); i++) { + for (uint u = 0; u < width_; u += 1) { + for (uint v = 0; v < height_; v += 1) { + tf2::Vector3 pt_optical_fg, pt_optical_bg, pt_world_fg, pt_world_bg, curr_pt; + tf2::Transform w2s_tf; + tf2::Transform s2w_tf; + double z_fg, z_bg; + cv_bridge::CvImagePtr cv_depth_fg, cv_depth_bg; + { + std::lock_guard lock(io_mutex); + // cv_depth_fg = + // cv_bridge::toCvCopy(disp_graph.at(i).Im_fg,sensor_msgs::image_encodings::TYPE_32FC1); + // cv_depth_bg = + // cv_bridge::toCvCopy(disp_graph.at(i).Im_bg,sensor_msgs::image_encodings::TYPE_32FC1); + w2s_tf = disp_graph.at(i).w2s_tf; + s2w_tf = disp_graph.at(i).s2w_tf; + + z_fg = (baseline_ * fx_ / disp_graph.at(i).Im_fg->image.at(v, u)); + z_bg = (baseline_ * fx_ / disp_graph.at(i).Im_bg->image.at(v, u)); + } + + for (double z_sample = z_fg; + z_sample <= z_bg && std::isfinite(z_sample) /*&& z_sample>5.0*/; + z_sample += 0.5) { + pt_optical_fg.setZ(z_sample); + pt_optical_fg.setX((u - cx_) * pt_optical_fg.getZ() / fx_); + pt_optical_fg.setY((v - cy_) * pt_optical_fg.getZ() / fy_); + + pt_world_fg = s2w_tf * pt_optical_fg; + + pcl::PointXYZI pt; + // FG + pt.x = pt_world_fg.getX(); + pt.y = pt_world_fg.getY(); + pt.z = pt_world_fg.getZ(); + + double state_disparity = baseline_ * fx_ / z_sample; + double confidence = (state_disparity - 0.5) / state_disparity; + + if (confidence >= thresh_) + pt.intensity = confidence; //*200.0;//i*20+10; + else + pt.intensity = 0.0; + if (confidence >= thresh_) { + pcd_checked_states.points.push_back(pt); + pcd_checked_states.width++; + } + z_sample = ((z_sample + 0.5) > z_bg) ? z_bg : z_sample; + } + + // pt_optical_fg.setZ(baseline_*fx_/disp_graph.at(i).Im_fg->image.at(v,u)); + // pt_optical_fg.setX((u - cx_) * pt_optical_fg.getZ()/fx_); + // pt_optical_fg.setY((v - cy_) * pt_optical_fg.getZ()/fy_); + + // pt_optical_bg.setZ(baseline_*fx_/disp_graph.at(i).Im_bg->image.at(v,u)); + // pt_optical_bg.setX((u - cx_) * pt_optical_bg.getZ()/fx_); + // pt_optical_bg.setY((v - cy_) * pt_optical_bg.getZ()/fy_); + + // pt_world_fg = s2w_tf * pt_optical_fg; + // pt_world_bg = s2w_tf * pt_optical_bg; + + // pcl::PointXYZI pt; + ////FG + // pt.x = pt_world_fg.getX(); + // pt.y = pt_world_fg.getY(); + // pt.z = pt_world_fg.getZ(); + // pt.intensity = 200;//i*20+10; + // pcd_checked_states.points.push_back(pt); + // pcd_checked_states.width++; + + // double x1,y1,x2,y2,z1,z2; + // x1 = pt.x;y1=pt.y;z1=pt.z; + ////BG + // pt.x = pt_world_bg.getX(); + // pt.y = pt_world_bg.getY(); + // pt.z = pt_world_bg.getZ(); + // pt.intensity = 100;//i*20+10; + // pcd_checked_states.points.push_back(pt); + // pcd_checked_states.width++; + } } - - //pt_optical_fg.setZ(baseline_*fx_/disp_graph.at(i).Im_fg->image.at(v,u)); - //pt_optical_fg.setX((u - cx_) * pt_optical_fg.getZ()/fx_); - //pt_optical_fg.setY((v - cy_) * pt_optical_fg.getZ()/fy_); - - //pt_optical_bg.setZ(baseline_*fx_/disp_graph.at(i).Im_bg->image.at(v,u)); - //pt_optical_bg.setX((u - cx_) * pt_optical_bg.getZ()/fx_); - //pt_optical_bg.setY((v - cy_) * pt_optical_bg.getZ()/fy_); - - //pt_world_fg = s2w_tf * pt_optical_fg; - //pt_world_bg = s2w_tf * pt_optical_bg; - - //pcl::PointXYZI pt; - ////FG - //pt.x = pt_world_fg.getX(); - //pt.y = pt_world_fg.getY(); - //pt.z = pt_world_fg.getZ(); - //pt.intensity = 200;//i*20+10; - //pcd_checked_states.points.push_back(pt); - //pcd_checked_states.width++; - - //double x1,y1,x2,y2,z1,z2; - //x1 = pt.x;y1=pt.y;z1=pt.z; - ////BG - //pt.x = pt_world_bg.getX(); - //pt.y = pt_world_bg.getY(); - //pt.z = pt_world_bg.getZ(); - //pt.intensity = 100;//i*20+10; - //pcd_checked_states.points.push_back(pt); - //pcd_checked_states.width++; - } } - } - // Create the filtering object - pcd_checked_states.header.stamp = pcl_conversions::toPCL(ros::Time::now()); - pcl::PCLPointCloud2::Ptr cloud (new pcl::PCLPointCloud2 ()); - pcl::PCLPointCloud2::Ptr cloud_filtered (new pcl::PCLPointCloud2 ()); - pcl::toPCLPointCloud2(pcd_checked_states,*cloud); - pcl::VoxelGrid sor; - sor.setInputCloud (cloud); - double voxel_dim = 0.5; - sor.setLeafSize (voxel_dim,voxel_dim,voxel_dim); - sor.filter (*cloud_filtered); - pcd_checked_states.clear(); - pcl::fromPCLPointCloud2(*cloud_filtered,pcd_checked_states); - - sensor_msgs::PointCloud2 cloud_PC2; - pcl::toROSMsg(pcd_checked_states,cloud_PC2); - pcdPub.publish(cloud_PC2); - pcd_checked_states.points.clear(); - pcd_checked_states.width = 0; + // Create the filtering object + pcd_checked_states.header.stamp = pcl_conversions::toPCL(this->now()); + pcl::PCLPointCloud2::Ptr cloud(new pcl::PCLPointCloud2()); + pcl::PCLPointCloud2::Ptr cloud_filtered(new pcl::PCLPointCloud2()); + pcl::toPCLPointCloud2(pcd_checked_states, *cloud); + pcl::VoxelGrid sor; + sor.setInputCloud(cloud); + double voxel_dim = 0.5; + sor.setLeafSize(voxel_dim, voxel_dim, voxel_dim); + sor.filter(*cloud_filtered); + pcd_checked_states.clear(); + pcl::fromPCLPointCloud2(*cloud_filtered, pcd_checked_states); + + sensor_msgs::msg::PointCloud2 cloud_PC2; + pcl::toROSMsg(pcd_checked_states, cloud_PC2); + pcdPub->publish(cloud_PC2); + pcd_checked_states.points.clear(); + pcd_checked_states.width = 0; } -void disparity_graph::pcd_test4(const ros::TimerEvent& event) { - if (pcdPub.getNumSubscribers() == 0) { - return; - } +void disparity_graph::pcd_test4() { + if (pcdPub->get_subscription_count() == 0) { + return; + } - pcl::PointXYZI pt; - - ros::Time stamp = ros::Time::now(); - listener.waitForTransform(fixed_frame,stabilized_frame,stamp,ros::Duration(0.1)); - tf::StampedTransform transform; - try { - listener.lookupTransform(fixed_frame, - stabilized_frame, - stamp, transform); - } catch (tf::TransformException &ex) { - ROS_ERROR("DG graph_pcd %s",ex.what()); - // ros::Duration(1.0).sleep(); - // continue; - return; - } -// checked_point_stmpd.header.stamp = stamp;//ros::Time::now();//(0); -// checked_point_stmpd.header.frame_id = fixed_frame; - - pcd_checked_states.header.frame_id = fixed_frame; - - geometry_msgs::PoseStamped checked_pose; - checked_pose.header.frame_id = pcd_checked_states.header.frame_id; - checked_pose.header.stamp = stamp; - float delta = .5; - for(float i =-50; i<=50;i+=delta) { - for(float u=-50;u<=50;u+=delta) { - for(float v=-10;v<=10;v+=delta) { - -// checked_point_stmpd.point.x = i; -// checked_point_stmpd.point.y = u; -// checked_point_stmpd.point.z = v; - - tf::Point local_point(i,u,v); -// tf::pointMsgToTF(checked_point_stmpd.point,local_point); - tf::Point world_point = transform * local_point; - tf::pointTFToMsg(world_point,checked_pose.pose.position); - double occupancy = 0.0; - bool valid = isStateValidDepth_pose(checked_pose, thresh_, occupancy); - if(!valid) - { - pt.x = world_point.getX(); - pt.y = world_point.getY(); - pt.z = world_point.getZ(); - pt.intensity = occupancy; - - - if(occupancy >= thresh_) - { - pcd_checked_states.points.push_back(pt); - pcd_checked_states.width++; - } - } + pcl::PointXYZI pt; - } + rclcpp::Time stamp = this->now(); + tf_buffer_->canTransform(fixed_frame, stabilized_frame, stamp, + rclcpp::Duration::from_seconds(0.1)); + geometry_msgs::msg::TransformStamped transform; + try { + // listener.lookupTransform(fixed_frame, stabilized_frame, stamp, transform); + transform = tf_buffer_->lookupTransform(fixed_frame, stabilized_frame, stamp); + } catch (tf2::TransformException &ex) { + RCLCPP_ERROR(this->get_logger(), "DG graph_pcd %s", ex.what()); + // ros::Duration(1.0).sleep(); + // continue; + return; + } + // checked_point_stmpd.header.stamp = stamp;//ros::Time::now();//(0); + // checked_point_stmpd.header.frame_id = fixed_frame; + + pcd_checked_states.header.frame_id = fixed_frame; + + geometry_msgs::msg::PoseStamped checked_pose; + checked_pose.header.frame_id = pcd_checked_states.header.frame_id; + checked_pose.header.stamp = stamp; + float delta = .5; + for (float i = -50; i <= 50; i += delta) { + for (float u = -50; u <= 50; u += delta) { + for (float v = -10; v <= 10; v += delta) { + // checked_point_stmpd.point.x = i; + // checked_point_stmpd.point.y = u; + // checked_point_stmpd.point.z = v; + + tf2::Vector3 local_point(i, u, v); + // tf::pointMsgToTF(checked_point_stmpd.point,local_point); + // tf2::Vector3 world_point = tf2::transformToEigen(transform); + // tf2::toMsg(world_point, checked_pose.pose.position); + Eigen::Isometry3d transform_eigen; + tf2::fromMsg(transform.transform, transform_eigen); + Eigen::Vector3d eigen_world_point = + transform_eigen * + Eigen::Vector3d(local_point.x(), local_point.y(), local_point.z()); + tf2::Vector3 world_point(eigen_world_point.x(), eigen_world_point.y(), + eigen_world_point.z()); + tf2::toMsg(world_point, checked_pose.pose.position); + double occupancy = 0.0; + bool valid = isStateValidDepth_pose(checked_pose, thresh_, occupancy); + if (!valid) { + pt.x = world_point.getX(); + pt.y = world_point.getY(); + pt.z = world_point.getZ(); + pt.intensity = occupancy; + + if (occupancy >= thresh_) { + pcd_checked_states.points.push_back(pt); + pcd_checked_states.width++; + } + } + } + } } - } - // Create the filtering object - pcd_checked_states.header.stamp = pcl_conversions::toPCL(stamp); - /*pcl::PCLPointCloud2::Ptr cloud (new pcl::PCLPointCloud2 ()); - pcl::PCLPointCloud2::Ptr cloud_filtered (new pcl::PCLPointCloud2 ()); - pcl::toPCLPointCloud2(pcd_checked_states,*cloud); - pcl::VoxelGrid sor; - sor.setInputCloud (cloud); - double voxel_dim = 0.5; - sor.setLeafSize (voxel_dim,voxel_dim,voxel_dim); - sor.filter (*cloud_filtered); - pcd_checked_states.clear(); - pcl::fromPCLPointCloud2(*cloud_filtered,pcd_checked_states);*/ - - sensor_msgs::msg::PointCloud2 cloud_PC2; - pcl::toROSMsg(pcd_checked_states,cloud_PC2); - pcdPub->publish(cloud_PC2); - pcd_checked_states.points.clear(); - pcd_checked_states.width = 0; + // Create the filtering object + pcd_checked_states.header.stamp = pcl_conversions::toPCL(stamp); + /*pcl::PCLPointCloud2::Ptr cloud (new pcl::PCLPointCloud2 ()); + pcl::PCLPointCloud2::Ptr cloud_filtered (new pcl::PCLPointCloud2 ()); + pcl::toPCLPointCloud2(pcd_checked_states,*cloud); + pcl::VoxelGrid sor; + sor.setInputCloud (cloud); + double voxel_dim = 0.5; + sor.setLeafSize (voxel_dim,voxel_dim,voxel_dim); + sor.filter (*cloud_filtered); + pcd_checked_states.clear(); + pcl::fromPCLPointCloud2(*cloud_filtered,pcd_checked_states);*/ + + sensor_msgs::msg::PointCloud2 cloud_PC2; + pcl::toROSMsg(pcd_checked_states, cloud_PC2); + pcdPub->publish(cloud_PC2); + pcd_checked_states.points.clear(); + pcd_checked_states.width = 0; } /* @@ -359,344 +372,386 @@ void disparity_graph::pcd_test2(const ros::TimerEvent& event) { } */ -void disparity_graph::pcd_test3(const ros::TimerEvent& event) { - /* create expansion PCD */ - if (expansion_poly_pub->get_subscription_count() > 0 ) { - cv_bridge::CvImagePtr cv_depth_fg,cv_depth_bg; - visualization_msgs::msg::MarkerArray marker_arr; - visualization_msgs::msg::Marker marker; - //marker.header = msg_disp->header; - marker.ns = "occ_space"; - marker.id = 0; - marker.type = visualization_msgs::Marker::LINE_STRIP; - marker.lifetime = ros::Duration(0.5); - marker.action = visualization_msgs::Marker::ADD; - marker.pose.position.x =0;//xyz_centroid[0]; - marker.pose.position.y =0;//xyz_centroid[1]; - marker.pose.position.z =0;//xyz_centroid[2]; - - //tf::quaternionTFToMsg(tf::createQuaternionFromRPY(0.0,0.0,0.0), marker.pose.orientation); - tf2::Quaternion q; - q.setRPY(0.0, 0.0, 0.0); - marker.pose.orientation = tf2::toMsg(q); - // marker.pose.orientation.w = 1; - float marker_scale = 0.1; - marker.scale.x = marker_scale; - marker.scale.y = marker_scale; - marker.scale.z = marker_scale; - marker.color.a = 1.0; // Don't forget to set the alpha! - marker.color.r = 1.0; - marker.color.g = 0.0; - marker.color.b = 0.0; - - int v = 60; - for (uint i = 0; i < disp_graph.size(); i++) { - float prev_depth = 0.0; - // { - // boost::mutex::scoped_lock lock(io_mutex); - // cv_depth_fg = cv_bridge::toCvCopy(disp_graph.at(i).Im_fg,sensor_msgs::image_encodings::TYPE_32FC1); - // cv_depth_bg = cv_bridge::toCvCopy(disp_graph.at(i).Im_bg,sensor_msgs::image_encodings::TYPE_32FC1); - // } - marker.header = disp_graph.at(i).header; - for (int u = (int) width_ - 1; u >= 0; u--) { - float depth_value = baseline_ * fx_ / disp_graph.at(i).Im_fg->image.at(v,u);//free_msg->image.at(v,u)[0]; - float depth_diff = fabs(depth_value-prev_depth); - prev_depth = depth_value; - if (!std::isnan(depth_value) && !std::isinf(depth_value) && depth_diff < 0.5) { - geometry_msgs::msg::Point gm_p; - gm_p.x = ( u - cx_ ) * depth_value / fx_; - gm_p.y = ( v - cy_ ) * depth_value / fy_; - gm_p.z = depth_value; - marker.points.push_back(gm_p); - - depth_value = baseline_ * fx_ / disp_graph.at(i).Im_bg->image.at(v,u); - gm_p.x = ( u - cx_ ) * depth_value / fx_; - gm_p.y = ( v - cy_ ) * depth_value / fy_; - gm_p.z = depth_value; - marker.points.push_back(gm_p); - // poly.polygon.points.push_back(gm_p); - } else { - marker_arr.markers.push_back(marker); - marker.points.clear(); - marker.id++; +void disparity_graph::pcd_test3() { + /* create expansion PCD */ + if (expansion_poly_pub->get_subscription_count() > 0) { + cv_bridge::CvImagePtr cv_depth_fg, cv_depth_bg; + visualization_msgs::msg::MarkerArray marker_arr; + visualization_msgs::msg::Marker marker; + // marker.header = msg_disp->header; + marker.ns = "occ_space"; + marker.id = 0; + marker.type = visualization_msgs::msg::Marker::LINE_STRIP; + marker.lifetime = rclcpp::Duration::from_seconds(0.5); + marker.action = visualization_msgs::msg::Marker::ADD; + marker.pose.position.x = 0; // xyz_centroid[0]; + marker.pose.position.y = 0; // xyz_centroid[1]; + marker.pose.position.z = 0; // xyz_centroid[2]; + + // tf::quaternionTFToMsg(tf::createQuaternionFromRPY(0.0,0.0,0.0), marker.pose.orientation); + tf2::Quaternion q; + q.setRPY(0.0, 0.0, 0.0); + tf2::convert(q, marker.pose.orientation); + + // marker.pose.orientation.w = 1; + float marker_scale = 0.1; + marker.scale.x = marker_scale; + marker.scale.y = marker_scale; + marker.scale.z = marker_scale; + marker.color.a = 1.0; // Don't forget to set the alpha! + marker.color.r = 1.0; + marker.color.g = 0.0; + marker.color.b = 0.0; + + int v = 60; + for (uint i = 0; i < disp_graph.size(); i++) { + float prev_depth = 0.0; + // { + // boost::mutex::scoped_lock lock(io_mutex); + // cv_depth_fg = + // cv_bridge::toCvCopy(disp_graph.at(i).Im_fg,sensor_msgs::image_encodings::TYPE_32FC1); + // cv_depth_bg = + // cv_bridge::toCvCopy(disp_graph.at(i).Im_bg,sensor_msgs::image_encodings::TYPE_32FC1); + // } + marker.header = disp_graph.at(i).header; + for (int u = (int)width_ - 1; u >= 0; u--) { + float depth_value = baseline_ * fx_ / + disp_graph.at(i).Im_fg->image.at( + v, u); // free_msg->image.at(v,u)[0]; + float depth_diff = fabs(depth_value - prev_depth); + prev_depth = depth_value; + if (!std::isnan(depth_value) && !std::isinf(depth_value) && depth_diff < 0.5) { + geometry_msgs::msg::Point gm_p; + gm_p.x = (u - cx_) * depth_value / fx_; + gm_p.y = (v - cy_) * depth_value / fy_; + gm_p.z = depth_value; + marker.points.push_back(gm_p); + + depth_value = baseline_ * fx_ / disp_graph.at(i).Im_bg->image.at(v, u); + gm_p.x = (u - cx_) * depth_value / fx_; + gm_p.y = (v - cy_) * depth_value / fy_; + gm_p.z = depth_value; + marker.points.push_back(gm_p); + // poly.polygon.points.push_back(gm_p); + } else { + marker_arr.markers.push_back(marker); + marker.points.clear(); + marker.id++; + } + } } - } + marker_arr.markers.push_back(marker); + expansion_poly_pub->publish(marker_arr); } - marker_arr.markers.push_back(marker); - expansion_poly_pub->publish(marker_arr); - } } void disparity_graph::disp_cb(const sensor_msgs::msg::Image::ConstSharedPtr &disp_fg, const sensor_msgs::msg::Image::ConstSharedPtr &disp_bg) { -// ROS_INFO("Recvd Disp,size %d",disp_graph.size()); - RCLCPP_INFO(this->get_logger(), "Recvd disp stamp: %lf", (this->now() - disp_fg->header.stamp).seconds()); - sensor_frame = disp_fg->header.frame_id; - -// listener.waitForTransform(sensor_frame, -// fixed_frame, -// disp_fg->header.stamp, ros::Duration(0.10)); -// tf::StampedTransform transform; - - geometry_msgs::msg::TransformStamped transform_stamped; - - try { - // listener.lookupTransform(sensor_frame, - // fixed_frame, - // disp_fg->header.stamp, transform); - transform_stamped = tf_buffer_->lookupTransform( - fixed_frame, sensor_frame, - tf2_ros::fromMsg(disp_fg->header.stamp), - tf2::durationFromSec(0.10)); - } catch (tf2::TransformException &ex) { - RCLCPP_ERROR(this->get_logger(), "DG disp_cb %s",ex.what()); - // ros::Duration(1.0).sleep(); - // continue; - return; - } + // ROS_INFO("Recvd Disp,size %d",disp_graph.size()); + RCLCPP_INFO(this->get_logger(), "Recvd disp stamp: %lf", + (this->now() - disp_fg->header.stamp).seconds()); + sensor_frame = disp_fg->header.frame_id; + + // listener.waitForTransform(sensor_frame, + // fixed_frame, + // disp_fg->header.stamp, ros::Duration(0.10)); + // tf::StampedTransform transform; + + geometry_msgs::msg::TransformStamped transform_stamped; - std::lock_guard lock(io_mutex); - if (first) { - first = false; - node n; - try { - n.Im_fg = cv_bridge::toCvCopy(disp_fg,sensor_msgs::image_encodings::TYPE_32FC1); - n.Im_bg = cv_bridge::toCvCopy(disp_bg,sensor_msgs::image_encodings::TYPE_32FC1); - } catch (std::exception ex) { - RCLCPP_ERROR(this->get_logger(),"\n\n\n\n\n\t\t\tDEQUE ERR\n\n\n\n: %s",ex.what()); - return; - } - // n.Im_fg = *disp_fg; - // n.Im_bg = *disp_bg; - n.header = disp_bg->header; - //n.w2s_tf= transform; - n.w2s_tf= tf2::transformToEigen(transform_stamped.transform); - n.s2w_tf= n.w2s_tf.inverse(); - disp_graph.push_front(n); - disp_graph.push_back(n); - } else { - //Check for similar tf nodes - //tf::Vector3 curr_a =transform.inverse().getRotation().normalize().getAxis().normalize(); - tf2::Vector3 curr_p =tf2::transformToEigen(transform_stamped.transform).inverse().translation(); - std::deque::iterator it,end; - it = disp_graph.begin(); - end = disp_graph.end()-1; - // while(it!=end && disp_graph.size()) - // { - //tf::Vector3 graph_a = it->s2w_tf.getRotation().normalize().getAxis().normalize(); - tf::Vector3 graph_p = it->s2w_tf.getOrigin(); - // tfScalar diff_a = curr_a.dot(graph_a); - tfScalar diff_a = tf::angleShortestPath(transform.inverse().getRotation(),it->s2w_tf.getRotation()); - tfScalar diff_p = curr_p.distance(graph_p); - // ROS_INFO_STREAM("diff_a ; diff_p:"<get_logger(), "\n\n\n\n\n\t\t\tDEQUE ERR\n\n\n\n: %s",ex.what()); - return; + // listener.lookupTransform(sensor_frame, + // fixed_frame, + // disp_fg->header.stamp, transform); + transform_stamped = tf_buffer_->lookupTransform(fixed_frame, sensor_frame, + tf2_ros::fromMsg(disp_fg->header.stamp), + tf2::durationFromSec(0.10)); + } catch (tf2::TransformException &ex) { + RCLCPP_ERROR(this->get_logger(), "DG disp_cb %s", ex.what()); + // ros::Duration(1.0).sleep(); + // continue; + return; } - // n.Im_fg = *disp_fg; - // n.Im_bg = *disp_bg; - n.header = disp_bg->header; - n.w2s_tf= transform; - n.s2w_tf= transform.inverse(); - //pose in graph is too close in angle to the current graph - if (fabs(diff_a)>=angle_tol || fabs(diff_p)>displacement_tol) { - RCLCPP_ERROR(this->get_logger(), "Adding new node size %d", (int)disp_graph.size()); - if (disp_graph.size() >= graph_size) { - disp_graph.erase(end); - } - //add new data - if(disp_graph.size() <= graph_size) { + std::lock_guard lock(io_mutex); + if (first) { + first = false; + node n; + try { + n.Im_fg = cv_bridge::toCvCopy(disp_fg, sensor_msgs::image_encodings::TYPE_32FC1); + n.Im_bg = cv_bridge::toCvCopy(disp_bg, sensor_msgs::image_encodings::TYPE_32FC1); + } catch (std::exception &ex) { + RCLCPP_ERROR(this->get_logger(), "\n\n\n\n\n\t\t\tDEQUE ERR\n\n\n\n: %s", ex.what()); + return; + } + // n.Im_fg = *disp_fg; + // n.Im_bg = *disp_bg; + n.header = disp_bg->header; + // n.w2s_tf = transform; + tf2::fromMsg(transform_stamped.transform, n.w2s_tf); + // n.w2s_tf= tf2::transformToEigen(transform_stamped.transform); + n.s2w_tf = n.w2s_tf.inverse(); disp_graph.push_front(n); - } - // it = disp_graph.erase(it); + disp_graph.push_back(n); + } else { + // Check for similar tf nodes + // tf::Vector3 curr_a =transform.inverse().getRotation().normalize().getAxis().normalize(); + + // tf::Vector3 curr_p =transform.inverse().getOrigin(); + // tf2::Transform transform; + // tf2::Vector3 curr_p = transform_stamped.inverse().getOrigin(); + // ############################################################################### + + tf2::Transform transform; + tf2::fromMsg(transform_stamped.transform, transform); + + // Now get the inverse of the tf2::Transform + tf2::Transform inverse_transform = transform.inverse(); + + // Convert the inverse tf2::Transform back to geometry_msgs::msg::Transform + geometry_msgs::msg::Transform inverse_transform_msg = tf2::toMsg(inverse_transform); + + // Now, convert the geometry_msgs::msg::Transform to Eigen::Isometry3d + Eigen::Isometry3d eigen_transform = tf2::transformToEigen(inverse_transform_msg); + + // Extract the translation as Eigen::Vector3d + Eigen::Vector3d curr_p = eigen_transform.translation(); + + // ########################################################################################################## + std::deque::iterator it, end; + it = disp_graph.begin(); + end = disp_graph.end() - 1; + + // ############################################################################################################# + // while(it!=end && disp_graph.size()) + // { + // tf::Vector3 graph_a = it->s2w_tf.getRotation().normalize().getAxis().normalize(); + // tf2::Vector3 graph_p = it->s2w_tf.getOrigin(); + // Ensure it->s2w_tf is of type geometry_msgs::msg::Transform + geometry_msgs::msg::Transform s2w_tf_msg = + tf2::toMsg(it->s2w_tf); // Assuming it->s2w_tf is a tf2::Transform + + // Convert to Eigen + Eigen::Isometry3d graph_transform = tf2::transformToEigen(s2w_tf_msg); + Eigen::Vector3d graph_p = graph_transform.translation(); // Get the translation + + tf2Scalar diff_a = + tf2::angleShortestPath(transform.inverse().getRotation(), it->s2w_tf.getRotation()); + // tf2Scalar diff_p = curr_p.distance(graph_p); + tf2Scalar diff_p = (curr_p - graph_p).norm(); + // ROS_INFO_STREAM("diff_a ; diff_p:"<get_logger(), "\n\n\n\n\n\t\t\tDEQUE ERR\n\n\n\n: %s", ex.what()); + return; + } + // n.Im_fg = *disp_fg; + // n.Im_bg = *disp_bg; + n.header = disp_bg->header; + n.w2s_tf = transform; + n.s2w_tf = transform.inverse(); + // pose in graph is too close in angle to the current graph + if (fabs(diff_a) >= angle_tol || fabs(diff_p) > displacement_tol) { + RCLCPP_ERROR(this->get_logger(), "Adding new node size %d", (int)disp_graph.size()); + if (disp_graph.size() >= graph_size) { + disp_graph.erase(end); + } + + // add new data + if (disp_graph.size() <= graph_size) { + disp_graph.push_front(n); + } + // it = disp_graph.erase(it); + } + disp_graph.pop_back(); + disp_graph.push_back(n); + // pcd_test(); } - disp_graph.pop_back(); - disp_graph.push_back(n); - // pcd_test(); - } - visualization_msgs::MarkerArray marker_arr; + visualization_msgs::msg::MarkerArray marker_arr; - for(uint i =0; inow(); + marker.id = i; + marker_arr.markers.push_back(marker); + } - disparity_graph_marker_pub.publish(marker_arr); - //marker_arr.markers.clear(); + disparity_graph_marker_pub->publish(marker_arr); + // marker_arr.markers.clear(); } +void disparity_graph::getCamInfo(const sensor_msgs::msg::CameraInfo::ConstSharedPtr &msg_info) { + if (got_cam_info) { + return; + } + image_geometry::PinholeCameraModel model_; + model_.fromCameraInfo(msg_info); + RCLCPP_WARN(this->get_logger(), "Cam Info Recvd Fx Fy Cx Cy: %f %f , %f %f Baseline: %f", + model_.fx(), model_.fy(), model_.cx(), model_.cy(), baseline_); + cx_ = model_.cx() / downsample_scale; + cy_ = model_.cy() / downsample_scale; + fx_ = fy_ = model_.fx() / downsample_scale; + width_ = + msg_info->width / downsample_scale; // this is already downsampled from, disp_expansion + height_ = msg_info->height / downsample_scale; + double baseline = -msg_info->p[3] / msg_info->p[0]; + if (baseline != 0.0) { + baseline_ = baseline; + } + baseline_ *= downsample_scale; + RCLCPP_WARN(this->get_logger(), + "Transformed Cam Info Recvd Fx Fy Cx Cy: %f %f, %f %f Baseline: %f with " + "downsamplescale: %f", + model_.fx(), model_.fy(), model_.cx(), model_.cy(), baseline_, downsample_scale); -void disparity_graph::getCamInfo(const sensor_msgs::CameraInfo::ConstPtr& msg_info) { - if (got_cam_info) { - return; - } - image_geometry::PinholeCameraModel model_; - model_.fromCameraInfo ( msg_info ); - ROS_WARN("Cam Info Recvd Fx Fy Cx Cy: %f %f , %f %f Baseline: %f",model_.fx(),model_.fy(),model_.cx(),model_.cy(),baseline_); - cx_ = model_.cx()/downsample_scale; - cy_ = model_.cy()/downsample_scale; - fx_ = fy_ = model_.fx()/downsample_scale; - width_ = msg_info->width/downsample_scale;// this is already downsampled from, disp_expansion - height_ = msg_info->height/downsample_scale; - double baseline = -msg_info->P[3]/msg_info->P[0]; - if (baseline != 0.0) { - baseline_ = baseline; - } - baseline_ *=downsample_scale; - ROS_WARN("Transformed Cam Info Recvd Fx Fy Cx Cy: %f %f, %f %f Baseline: %f with downsamplescale: %f", - model_.fx(), - model_.fy(), - model_.cx(), - model_.cy(), - baseline_, - downsample_scale); - - ROS_WARN("Cam Info Constants - Fx Fy Cx Cy: %f %f, %f %f / width=%d - height=%d", - fx_, fy_, cx_, cy_, width_, height_); - - got_cam_info = true; -} + RCLCPP_WARN(this->get_logger(), + "Cam Info Constants - Fx Fy Cx Cy: %f %f, %f %f / width=%d - height=%d", fx_, fy_, + cx_, cy_, width_, height_); + got_cam_info = true; +} -bool disparity_graph::isStateValidDepth_pose(geometry_msgs::PoseStamped checked_state, +bool disparity_graph::isStateValidDepth_pose(geometry_msgs::msg::PoseStamped checked_state, double thresh, double &occupancy) { - //unsigned int invalid_cntr=0; - occupancy = 0.0; - geometry_msgs::PointStamped checked_point_stamped; - checked_point_stamped.point = checked_state.pose.position; - checked_point_stamped.header = checked_state.header; + // unsigned int invalid_cntr=0; + occupancy = 0.0; + geometry_msgs::msg::PointStamped checked_point_stamped; + checked_point_stamped.point = checked_state.pose.position; + checked_point_stamped.header = checked_state.header; - ////check the pose using the footprint_cost check + ////check the pose using the footprint_cost check - geometry_msgs::PointStamped world_point_stamped; + geometry_msgs::msg::PointStamped world_point_stamped; - try { - listener.transformPoint(fixed_frame,checked_point_stamped,world_point_stamped); - } catch (tf::TransformException ex){ - ROS_ERROR("TF to fixed_frame failed: %s",ex.what()); - return false; - } - - tf::Point optical_point; - tf::pointMsgToTF(world_point_stamped.point, optical_point); + try { + // listener_.transformPoint(fixed_frame, checked_point_stamped, world_point_stamped); + world_point_stamped = tf_buffer_->transform(checked_point_stamped, fixed_frame); + } catch (tf2::TransformException ex) { + RCLCPP_ERROR(this->get_logger(), "TF to fixed_frame failed: %s", ex.what()); + return false; + } - boost::mutex::scoped_lock lock(io_mutex); - bool seen = false; //true; - for (uint i = 0; i < disp_graph.size(); i++) { + tf2::Vector3 optical_point; + tf2::fromMsg(world_point_stamped.point, optical_point); - tf::Point local_point = disp_graph.at(i).w2s_tf * optical_point; + std::lock_guard lock(io_mutex); + bool seen = false; // true; + for (uint i = 0; i < disp_graph.size(); i++) { + tf2::Vector3 local_point = disp_graph.at(i).w2s_tf * optical_point; - float x,y,z; + float x, y, z; - x = local_point.getX(); - y = local_point.getY(); - z = local_point.getZ(); + x = local_point.getX(); + y = local_point.getY(); + z = local_point.getZ(); - if(local_point.length() < 1.0) - { - seen = true; - continue; - } -// if((-0.20=0 && u< width_ && v>=0 && v0.0) { - seen = true; - double state_disparity = baseline_ * fx_ / z; - if ((disp_graph.at(i).Im_fg->image.at(v,u) > state_disparity) && - (disp_graph.at(i).Im_bg->image.at(v,u) < state_disparity)) { - - occupancy += (state_disparity - 0.5)/state_disparity; - } else { - occupancy -= 0.5*(state_disparity - 0.5)/state_disparity; - occupancy = occupancy < 0.0 ? 0.0 : occupancy; - } + if (local_point.length() < 1.0) { + seen = true; + continue; + } + // if((-0.20= 0 && u < width_ && v >= 0 && v < height_ && z > 0.0) { + seen = true; + double state_disparity = baseline_ * fx_ / z; + if ((disp_graph.at(i).Im_fg->image.at(v, u) > state_disparity) && + (disp_graph.at(i).Im_bg->image.at(v, u) < state_disparity)) { + occupancy += (state_disparity - 0.5) / state_disparity; + } else { + occupancy -= 0.5 * (state_disparity - 0.5) / state_disparity; + occupancy = occupancy < 0.0 ? 0.0 : occupancy; + } + } + if (/*invalid_cntr>=invalid_thresh*/ occupancy >= thresh) { + return false; + } } - if (/*invalid_cntr>=invalid_thresh*/ occupancy >= thresh) { - return false; + if (seen) { + return true; + } else { + return false; } - } - if (seen) { - return true; - } else { - return false; - } } +bool disparity_graph::getStateCost(geometry_msgs::msg::Pose checked_state, double &cost) { + // uint invalid_thresh = 2; + // uint validity = 2; + // unsigned int invalid_cntr=0; + geometry_msgs::msg::PointStamped checked_point_stamped; + checked_point_stamped.header.frame_id = "world"; + checked_point_stamped.header.stamp = this->now() - rclcpp::Duration::from_seconds(0.1); + checked_point_stamped.point = checked_state.position; + + geometry_msgs::msg::PointStamped world_point_stamped; + // listener.waitForTransform(fixed_frame,checked_point_stamped.header.frame_id,checked_point_stamped.header.stamp,ros::Duration(1.0)); + try { + // listener_.transformPoint(fixed_frame, checked_point_stamped, world_point_stamped); + world_point_stamped = tf_buffer_->transform(checked_point_stamped, fixed_frame); + } catch (tf2::TransformException ex) { + RCLCPP_ERROR(this->get_logger(), "TF to fixed_frame failed: %s", ex.what()); + return false; + } -bool disparity_graph::getStateCost(geometry_msgs::Pose checked_state, - double &cost) { - -// uint invalid_thresh = 2; -// uint validity = 2; -// unsigned int invalid_cntr=0; - geometry_msgs::PointStamped checked_point_stamped; - checked_point_stamped.header.frame_id = "world"; - checked_point_stamped.header.stamp = ros::Time::now() - ros::Duration(0.1); - checked_point_stamped.point = checked_state.position; - - geometry_msgs::PointStamped world_point_stamped; -// listener.waitForTransform(fixed_frame,checked_point_stamped.header.frame_id,checked_point_stamped.header.stamp,ros::Duration(1.0)); - try { - listener.transformPoint(fixed_frame,checked_point_stamped,world_point_stamped); - } catch (tf::TransformException ex) { - ROS_ERROR("TF to fixed_frame failed: %s",ex.what()); - return false; - } - - tf::Point optical_point; - tf::pointMsgToTF(world_point_stamped.point, optical_point); - - boost::mutex::scoped_lock lock(io_mutex); - for (uint i = 0; i < disp_graph.size(); i++) { - tf::Point local_point = disp_graph.at(i).w2s_tf * optical_point; + tf2::Vector3 optical_point; + tf2::fromMsg(world_point_stamped.point, optical_point); - float x,y,z; - x = local_point.getX(); - y = local_point.getY(); - z = local_point.getZ(); + std::lock_guard lock(io_mutex); + for (uint i = 0; i < disp_graph.size(); i++) { + tf2::Vector3 local_point = disp_graph.at(i).w2s_tf * optical_point; - //point behind camera - if (z<0) { - continue; - } + float x, y, z; + x = local_point.getX(); + y = local_point.getY(); + z = local_point.getZ(); - int u = x/z*fx_ + cx_; - int v = y/z*fy_ + cy_; + // point behind camera + if (z < 0) { + continue; + } - if (u>=0 && u< width_ && v>=0 && vimage.at(v,u) > state_disparity) && (disp_graph.at(i).Im_bg->image.at(v,u) < state_disparity)) { -// cost += (fabs(bg_msg->image.at(v,u) - state_disparity)/fabs(fg_msg->image.at(v,u) - bg_msg->image.at(v,u)) + 1) * 10; - cost +=state_disparity * 10.0; -// invalid_cntr++; - } - cost = cost < 0.0 ? 0.0 : cost; - ROS_ERROR_THROTTLE(1,"CHECKING POINT at \t%f\t%f\t%f : cost = %f", - checked_state.position.x, - checked_state.position.y, - checked_state.position.z, - cost); - - if (cost > 100.0) { - cost = 100.0; - return false; - } + int u = x / z * fx_ + cx_; + int v = y / z * fy_ + cy_; + + if (u >= 0 && u < width_ && v >= 0 && v < height_) { + double state_disparity = baseline_ * fx_ / z; + if ((disp_graph.at(i).Im_fg->image.at(v, u) > state_disparity) && + (disp_graph.at(i).Im_bg->image.at(v, u) < state_disparity)) { + // cost += (fabs(bg_msg->image.at(v,u) - + // state_disparity)/fabs(fg_msg->image.at(v,u) - + // bg_msg->image.at(v,u)) + 1) * 10; + cost += state_disparity * 10.0; + // invalid_cntr++; + } + cost = cost < 0.0 ? 0.0 : cost; + + if (cost > 100.0) { + cost = 100.0; + return false; + } + + RCLCPP_ERROR_THROTTLE( + this->get_logger(), *this->get_clock(), 1000, // Throttle for 1 second + "CHECKING POINT at \t%f\t%f\t%f : cost = %f", checked_state.position.x, + checked_state.position.y, checked_state.position.z, cost); + } } - } - return true; + return true; } From b95190362089ef7a341b03fd40976773dfc180d4 Mon Sep 17 00:00:00 2001 From: Robbi Exley Date: Mon, 5 Aug 2024 14:47:21 -0400 Subject: [PATCH 07/50] dependencies --- .../local/behavior_tree/CMakeLists.txt | 234 ++ .../planning/local/behavior_tree/README.md | 213 ++ .../behavior_tree/config/drone_tree.tree | 36 + .../config/parallel_state_machine.yaml | 29 + .../config/parallel_state_machine_drone.yaml | 50 + .../behavior_tree/config/state_machine.yaml | 65 + .../images/behavior_tree_rqt.png | Bin 0 -> 165797 bytes .../behavior_tree/images/rviz_example.png | Bin 0 -> 80383 bytes .../include/behavior_tree/behavior_tree.h | 68 + .../behavior_tree/launch/behavior_tree.launch | 9 + .../launch/parallel_state_machine.launch | 10 + .../behavior_tree/launch/state_machine.launch | 10 + .../planning/local/behavior_tree/package.xml | 72 + .../planning/local/behavior_tree/plugin.xml | 15 + .../behavior_tree.perspective | 372 +++ .../parallel_state_machine.perspective | 71 + .../behavior_tree/scripts/rqt_state_machine | 10 + .../planning/local/behavior_tree/setup.py | 9 + .../local/behavior_tree/src/behavior_tree.cpp | 121 + .../src/behavior_tree/__init__.py | 0 .../src/behavior_tree/behavior_tree.py | 417 +++ .../behavior_tree/behavior_tree_graphviz.py | 103 + .../src/behavior_tree/behavior_tree_node.py | 43 + .../behavior_tree/parallel_state_machine.py | 153 ++ .../src/behavior_tree/pydot_test.py | 17 + .../src/behavior_tree/rc_to_state.py | 45 + .../src/behavior_tree/rqt_test.png | Bin 0 -> 17804 bytes .../src/rqt_behavior_tree/__init__.py | 0 .../rqt_behavior_tree/rqt_behavior_tree.py | 282 +++ .../src/rqt_behavior_tree/xdot/__init__.py | 0 .../src/rqt_behavior_tree/xdot/wxxdot.py | 585 +++++ .../src/rqt_behavior_tree/xdot/xdot.py | 2174 ++++++++++++++++ .../src/rqt_behavior_tree/xdot/xdot_qt.py | 2233 +++++++++++++++++ .../local/core_map_representation_interface | 1 + .../planning/local/core_trajectory_controller | 1 + .../planning/local/core_trajectory_library | 1 + .../planning/local/core_trajectory_msgs | 1 + 37 files changed, 7450 insertions(+) create mode 100755 ros_ws/src/robot/autonomy/planning/local/behavior_tree/CMakeLists.txt create mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree/README.md create mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree/config/drone_tree.tree create mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree/config/parallel_state_machine.yaml create mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree/config/parallel_state_machine_drone.yaml create mode 100755 ros_ws/src/robot/autonomy/planning/local/behavior_tree/config/state_machine.yaml create mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree/images/behavior_tree_rqt.png create mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree/images/rviz_example.png create mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree/include/behavior_tree/behavior_tree.h create mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree/launch/behavior_tree.launch create mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree/launch/parallel_state_machine.launch create mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree/launch/state_machine.launch create mode 100755 ros_ws/src/robot/autonomy/planning/local/behavior_tree/package.xml create mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree/plugin.xml create mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree/rqt_perspectives/behavior_tree.perspective create mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree/rqt_perspectives/parallel_state_machine.perspective create mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree/scripts/rqt_state_machine create mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree/setup.py create mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree.cpp create mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/__init__.py create mode 100755 ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/behavior_tree.py create mode 100755 ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/behavior_tree_graphviz.py create mode 100755 ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/behavior_tree_node.py create mode 100755 ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/parallel_state_machine.py create mode 100755 ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/pydot_test.py create mode 100755 ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/rc_to_state.py create mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/behavior_tree/rqt_test.png create mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/rqt_behavior_tree/__init__.py create mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/rqt_behavior_tree/rqt_behavior_tree.py create mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/rqt_behavior_tree/xdot/__init__.py create mode 100644 ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/rqt_behavior_tree/xdot/wxxdot.py create mode 100755 ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/rqt_behavior_tree/xdot/xdot.py create mode 100755 ros_ws/src/robot/autonomy/planning/local/behavior_tree/src/rqt_behavior_tree/xdot/xdot_qt.py create mode 160000 ros_ws/src/robot/autonomy/planning/local/core_map_representation_interface create mode 160000 ros_ws/src/robot/autonomy/planning/local/core_trajectory_controller create mode 160000 ros_ws/src/robot/autonomy/planning/local/core_trajectory_library create mode 160000 ros_ws/src/robot/autonomy/planning/local/core_trajectory_msgs diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/CMakeLists.txt b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/CMakeLists.txt new file mode 100755 index 000000000..2be6739d7 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/CMakeLists.txt @@ -0,0 +1,234 @@ +cmake_minimum_required(VERSION 2.8.3) +project(behavior_tree) + +## Compile as C++11, supported in ROS Kinetic and newer +add_compile_options(-std=c++11) + +## Find catkin macros and libraries +## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz) +## is used, also find other catkin packages +find_package(catkin REQUIRED COMPONENTS + roscpp + rospy + std_msgs + rqt_gui + rqt_gui_py + behavior_tree_msgs +) + +## System dependencies are found with CMake's conventions +# find_package(Boost REQUIRED COMPONENTS system) + + +## Uncomment this if the package has a setup.py. This macro ensures +## modules and global scripts declared therein get installed +## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html +catkin_python_setup() + +################################################ +## Declare ROS messages, services and actions ## +################################################ + +## To declare and build messages, services or actions from within this +## package, follow these steps: +## * Let MSG_DEP_SET be the set of packages whose message types you use in +## your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...). +## * In the file package.xml: +## * add a build_depend tag for "message_generation" +## * add a build_depend and a exec_depend tag for each package in MSG_DEP_SET +## * If MSG_DEP_SET isn't empty the following dependency has been pulled in +## but can be declared for certainty nonetheless: +## * add a exec_depend tag for "message_runtime" +## * In this file (CMakeLists.txt): +## * add "message_generation" and every package in MSG_DEP_SET to +## find_package(catkin REQUIRED COMPONENTS ...) +## * add "message_runtime" and every package in MSG_DEP_SET to +## catkin_package(CATKIN_DEPENDS ...) +## * uncomment the add_*_files sections below as needed +## and list every .msg/.srv/.action file to be processed +## * uncomment the generate_messages entry below +## * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...) + +## Generate messages in the 'msg' folder +# add_message_files( +# FILES +# Message1.msg +# Message2.msg +# ) + +## Generate services in the 'srv' folder +# add_service_files( +# FILES +# Service1.srv +# Service2.srv +# ) + +## Generate actions in the 'action' folder +# add_action_files( +# FILES +# Action1.action +# Action2.action +# ) + +## Generate added messages and services with any dependencies listed here +# generate_messages( +# DEPENDENCIES +# std_msgs +# ) + +################################################ +## Declare ROS dynamic reconfigure parameters ## +################################################ + +## To declare and build dynamic reconfigure parameters within this +## package, follow these steps: +## * In the file package.xml: +## * add a build_depend and a exec_depend tag for "dynamic_reconfigure" +## * In this file (CMakeLists.txt): +## * add "dynamic_reconfigure" to +## find_package(catkin REQUIRED COMPONENTS ...) +## * uncomment the "generate_dynamic_reconfigure_options" section below +## and list every .cfg file to be processed + +## Generate dynamic reconfigure parameters in the 'cfg' folder +# generate_dynamic_reconfigure_options( +# cfg/DynReconf1.cfg +# cfg/DynReconf2.cfg +# ) + +################################### +## catkin specific configuration ## +################################### +## The catkin_package macro generates cmake config files for your package +## Declare things to be passed to dependent projects +## INCLUDE_DIRS: uncomment this if your package contains header files +## LIBRARIES: libraries you create in this project that dependent projects also need +## CATKIN_DEPENDS: catkin_packages dependent projects also need +## DEPENDS: system dependencies of this project that dependent projects also need +catkin_package( + INCLUDE_DIRS include + LIBRARIES behavior_tree + CATKIN_DEPENDS roscpp rospy std_msgs behavior_tree_msgs +# DEPENDS system_lib +) + +########### +## Build ## +########### + +## Specify additional locations of header files +## Your package locations should be listed before other locations +include_directories( + include + ${catkin_INCLUDE_DIRS} +) + +add_library(behavior_tree + src/behavior_tree.cpp +) + +add_dependencies(behavior_tree + ${${PROJECT_NAME}_EXPORTED_TARGETS} + ${catkin_EXPORTED_TARGETS} +) + +target_link_libraries(behavior_tree + ${catkin_LIBRARIES} +) + +install(DIRECTORY include/behavior_tree/ + DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} + FILES_MATCHING PATTERN "*.h" +) + +## Declare a C++ library +# add_library(${PROJECT_NAME} +# src/${PROJECT_NAME}/state_machine.cpp +# ) + +## Add cmake target dependencies of the library +## as an example, code may need to be generated before libraries +## either from message generation or dynamic reconfigure +# add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) + +## Declare a C++ executable +## With catkin_make all packages are built within a single CMake context +## The recommended prefix ensures that target names across packages don't collide +# add_executable(${PROJECT_NAME}_node src/state_machine_node.cpp) + +## Rename C++ executable without prefix +## The above recommended prefix causes long target names, the following renames the +## target back to the shorter version for ease of user use +## e.g. "rosrun someones_pkg node" instead of "rosrun someones_pkg someones_pkg_node" +# set_target_properties(${PROJECT_NAME}_node PROPERTIES OUTPUT_NAME node PREFIX "") + +## Add cmake target dependencies of the executable +## same as for the library above +# add_dependencies(${PROJECT_NAME}_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) + +## Specify libraries to link a library or executable target against +# target_link_libraries(${PROJECT_NAME}_node +# ${catkin_LIBRARIES} +# ) + +############# +## Install ## +############# + +#catkin_install_python(PROGRAMS src/state_machine.py +# DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}) + +install(PROGRAMS + scripts/rqt_state_machine + DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} +) + +install(FILES + plugin.xml + DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} +) + + +# all install targets should use catkin DESTINATION variables +# See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html + +## Mark executable scripts (Python etc.) for installation +## in contrast to setup.py, you can choose the destination +# install(PROGRAMS +# scripts/my_python_script +# DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} +# ) + +## Mark executables and/or libraries for installation +# install(TARGETS ${PROJECT_NAME} ${PROJECT_NAME}_node +# ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} +# LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} +# RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} +# ) + +## Mark cpp header files for installation +# install(DIRECTORY include/${PROJECT_NAME}/ +# DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} +# FILES_MATCHING PATTERN "*.h" +# PATTERN ".svn" EXCLUDE +# ) + +## Mark other files for installation (e.g. launch and bag files, etc.) +# install(FILES +# # myfile1 +# # myfile2 +# DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} +# ) + +############# +## Testing ## +############# + +## Add gtest based cpp test target and link libraries +# catkin_add_gtest(${PROJECT_NAME}-test test/test_state_machine.cpp) +# if(TARGET ${PROJECT_NAME}-test) +# target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME}) +# endif() + +## Add folders to be run by python nosetests +# catkin_add_nosetests(test) diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/README.md b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/README.md new file mode 100644 index 000000000..fcc66277d --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/README.md @@ -0,0 +1,213 @@ +# Behavior Tree + +This package is a ROS implementation of a behavior tree. + +![picture](images/rviz_example.png) + +## Overview + +Behavior trees define how a set of actions and conditions should be used to accomplish a task. The tree is made up of execution nodes, control flow nodes, and decorator nodes. + +Action nodes and condition nodes are the two types of execution nodes. These nodes are where the state of the system is checked and actions are performed. A condition node returns either SUCCESS or FAILURE to indicate what the state of some part of the system is. For example, an "On Ground" condition node could indicate whether or not the robot is on the ground. These are shown as the oval shaped nodes in the figure above. Green ones indicate SUCCESS, red ones indicate FAILURE. If the body of the node is filled with color, this indicates that the behavior tree is currently checking the value of the condition. If the body color is white but the outline is colored, this means that the behavior tree is not currently checking the value of the condition, so it is not using it to decide which actions to perform. Action nodes are used to make the system perform some action if they are active. Action nodes are shown as square nodes with text in the figure above. They can be either active or inactive. Active nodes are shown with a red, blue, or green body color, inactive nodes are shown with a white body color. If a node is active this means the behavior tree has decided to perform the action. If the node is inactive the behavior tree is not trying to perform the action. For example, if the robot should be taking off, then the "Takeoff" action should be active, while the "Land" action should be inactive. An active action node can have a SUCCESS, RUNNING, or FAILURE status. SUCCESS indicates that the action has is done being performed and finished successfully, FAILURE indicates the action is done but has failed, RUNNING indicates that the action is still being performed. In the figure above green corresponds to SUCCESS, blue to RUNNING and red to FAILURE for action nodes. + +Control flow nodes determine which condition nodes are checked and which action nodes are active or inactive. There are three types of control nodes currently implemented: + +- Fallback Nodes: This node returns FAILURE if and only if all of its children return FAILURE. If one of its children return RUNNING or SUCCESS, it returns RUNNING or SUCCESS and no subsequent children's statuses are checked. These are shown with a ? in the figure above. +- Sequence Nodes: This node returns SUCCESS if and only if all of its children return SUCCESS. If one of its children return RUNNING or FAILURE, it returns RUNNING or FAILURE and no subsequent children's statuses are checked. These are shown with a → in the figure above. +- Parallel Nodes: This node has N chldren. It returns SUCCESS if M of these children return SUCCESS, for some M ≤ N. It returns FAILURE of N - M + 1 children return FAILURE. Otherwise, it returns RUNNING. + +Decorator nodes have one child and its return value is determined by some user defined rule given the child's status as input. There is currently one type of decorator nodes implemented: + +- Not Decorator Node: This has a single condition node as a child. If the child returns SUCCESS, the Not Decorator returns FAILURE. If the child returns FAILURE, the Not Decorator returns SUCCESS. + +A more detailed description of behavior trees can be found here: https://arxiv.org/pdf/1709.00084.pdf. + +## ROS Interface + +This section describes how the behavior tree is implemented in ROS and how nodes implementing conditions and actions should interact with it. A full working example can be found in this repository: [https://bitbucket.org/cmusubt/behavior_tree_example/src/master/] + +Click the image below to play the video. This is a demo of the behavior tree. It can be run using the behavior_tree_example package. + +[![Behavior Tree Example](http://img.youtube.com/vi/-xRF52uCHo8/0.jpg)](https://www.youtube.com/watch?v=-xRF52uCHo8 "Behavior Tree Example") + +### Defining the Structure + +The strucutre of the behavior tree is defined with a configuration file, an example of which is shown below: + +``` +-> + ? + (Example Condition) + [Example Action] +``` + +The first node in the behavior tree above is a Sequence node indicated by a "->". Tabs are used to indicate a parent chlid relationship. The Sequence node has a child Fallback node, indicated by a "?". This Fallback node has two children, a condition node "(Example Condition)" and an action node "\[Example Node\]". Condition nodes must be surrounded by parenthesis, action nodes must be surrounded by square brackets. The text inside of the parenthesis/brackets can be anything. This is meant to correspond to how the are visualized in the graph. + +Parallel nodes are declared with "|| 2", where 2 is the number of child nodes that need to return SUCCESS. Decorator nodes are declared with "" where X is the type of decorator node, for example, a Not Decorator Node would be declared "". Other behavior tree files can also be included using the syntax "include filename" where filename is an absolute path to a behavior tree file. This filename supports the $(find pacakge_name) syntax that roslaunch also supports. Examples use cases can be found in the behavior_tree_example package in examples 2 and 3. + +### Implementing Conditions and Actions + +The `behavior_tree_node.py` takes a configuration file and uses the condition and action nodes defined in it to determine what topics to subscribe and publish to. As mentioned in the Overview section above, a condition node must return SUCCESS or FAILURE and an action node must return SUCCESS, RUNNING, or FAILURE if it is active. The behavior tree node expects the status of conditions to be published to a topic that is the name of the label of the node, converted to lowercase, with spaces replaced with underscores, and "\_success" appended to it. In the example config file above, the status of the node defined by the "(Example Condition)" line would be listened to on a topic named "/example_condition_success". A std_msgs::Bool should be published to this topic by a ROS node implementing a condition, where true indicates success and false indicates failure. For action nodes, the behavior tree notifies a ROS node that the topic is active by publishing a std_msgs::Bool topic, the name of which is determined in a similar way to the condition node topic. For the node defined by the "[Example Action]" line in the config file above, the behavior tree will publish the std_msgs::Bool to a topic named "/example_action_active". True indicates that the action is active, false indicates it is inactive. While the action is active, the behavior tree expects to receive a status from the node indicating SUCCESS, RUNNING, or FAILURE. For the node defined by the "[Example Action]" line, the behavior tree would subscribe to a behavior_tree_msgs::Status published on a topic named "/example_action_status". The Status message type contains one uint8, which should be one of the constants defined in the message, either behavior_tree_msgs::Status::SUCCESS, behavior_tree_msgs::Status::RUNNING, or behavior_tree_msgs::Status::FAILURE. + +Writing a ROS node which implements an action or condition can be done by directly publishing and subscribing to the topics as described above. Alternatively, Condition and Action c++ classes that are defined in the behavior_tree library of this package can be used. The two methods are described below. The behavior_tree_example package, linked above has examples of both methods. + +*Important Note:* In both cases, you need to publish the status of the action or condition at a sufficiently high frequency so that the behavior tree does not consider them to be timed out. The behavior tree has a ROS parameter called "timeout" which indicates the amount of time in seconds it can go without receiving a status from before it considers the action or conditions to be timed out. + +#### Publishing and Subscribing directly + +- Conditions + +For conditions you only need to a publish a std_msgs::Bool. + + +First make sure you include the message type header: + +```c++ +#include +``` + +Ddeclare the publisher somewhere in your code: + +```c++ +ros::Publisher condition_pub = node_handle.advertise("/example_condition_success", 1); +``` + +Now simply publish to it at a sufficiently high frequency. This can be done, for example, in a ros::Timer callback or in a while loop with a ros::Rate.sleep() call: + +```c++ +std_msgs::Bool msg; +msg.data = true; +condition_pub.publish(msg); +``` + +- Actions + +For actions you need to subscribe to the std_msgs::Bool from the behavior tree which indiates whether or not the action is active. When it is active you need to publish the status as a behavior_tree_msgs::Status at a sufficiently high frequency. + +First make sure you include the message type headers: + +```c++ +#include +#include +``` + +Initialize the subscriber and publisher: + +```c++ +bool is_action_active = false; +ros::Subscriber action_active_sub = node_handle.subscribe("/example_action_active", 10, action_active_callback); +ros::Publisher action_status_pub = node_handle.advertise("/example_action_status", 1); +``` + +In the subscriber's callback function, update the bool variable: + +```c++ +void action_active_callback(std_msgs::Bool msg){ + is_action_active = true; +} +``` + +Now check whether the action is active and if it is perform some task and publish it's status. Again, make sure the status is published at a sufficiently high rate. + +```c++ +if(is_action_active){ + behavior_tree_msgs::Status status; + + if( /* the action isn't done yet */ ) + status.status = behavior_tree_msgs::Status::RUNNING; + else if( /* the actions is done and was successful */ ) + status.status = behavior_tree_msgs::Status::SUCCESS; + else + status.status = behavior_tree_msgs::Status::FAILURE; + + action_status_pub.publish(status); +} +``` + +#### Condition and Action Helper Classes + +Instead of directly sending ROS messages, you can use Condition and Action helper classes that set up the publishers and subscribers for you. Make sure your CMakeLists.txt and package.xml depend on the behavior_tree package. + +- Conditions + +Include the library: + +```c++ +#include +``` + +Initialize a condition: + +```c++ +bt::Condition condition(node_handle, "Example Condition"); +``` + +The second argument to the Condition class's construcutor is the same text that the condition node is labled with in your config file. The class automatically creates a subscriber to the corresponding topic that the behavior_tree expects to receive the std_msgs::Bool on. + +Now, set the value of the condition and publish it. As before, make sure to publish at a high enough frequency: + +```c++ +condition.set(true); +condition.publish(); +``` + +You can also get the value of the condition using get(), which returns a bool: + +```c++ +bool success = condition.get(); +``` + +- Actions + +Include the library: + +```c++ +#include +``` + +Initialize an action: + +```c++ +bt::Action action(node_handle, "Example Action"); +``` + +Like the condition node, the Action constructor's second argument is the same text that is on the label of the action node in your config file. The class automatically creates a subscriber to the std_msgs::Bool topic that tells whether the action is active, and a publisher that publishes the std_msgs::String status. Make sure that the node handle you pass to the Action class has a callback queue that can handle receiving the std_msgs::Bool without being delayed too much by other callbacks. + +Now, if the action is active, set the status of the action and publish it. Make sure to publish at a high enough frequency. + +```c++ +if(action.is_active()){ + action.set_success(); + // or action.set_running(); + // or action.set_failure(); + + action->publish(); +} +``` + +You can also check the status you set the action to with the following functions which return bools: + +```c++ +action.is_success(); +action.is_running(); +action.is_failure(); +``` + +### Debugging Tools + +There are also some debugging tools for visualizing the tree and seeing how it behaves with different conditions and actions. + +#### Image Publisher + +The behavior tree publishes a graphviz string that can be made into an image. You can use the `behavior_tree_image_publisher.py` node to subscribe to the graphviz string and publish an image. This is done in the behavior_tree_example launch file. + +#### RQT Debug GUI + +There is an rqt GUI for debugging that your behavior tree works as you expect. Using the interface shown below, you can set the status published by each condition and action using the buttons. This way you don't have to debug the strucuture of your behavior tree by creating ROS nodes. + +To use the plugin, make sure the workspace you build the behavior_tree packages is sourced (source devel/setup.bash) and run `rqt`. In the `Plugins` menu there should be a `Behavior Tree` menu containing the `Behavior Tree` plugin. When you open it for the first time, it won't have a config file loaded. Use the `Open Config...` button and select your behavior tree config file. + +![picture](images/behavior_tree_rqt.png) + + +Author: John Keller slack: kellerj email: jkeller2@andrew.cmu.edu \ No newline at end of file diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/config/drone_tree.tree b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/config/drone_tree.tree new file mode 100644 index 000000000..b36a6b47a --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/config/drone_tree.tree @@ -0,0 +1,36 @@ +? + -> + (User Pressed Land Button) + ? + (Landed) + [Land] + -> + (User Pressed Hover Button) + ? + (On Ground) + [Hover] + -> + (User Pressed Return Home Button) + ? + (At Home) + [Go To Home] + -> + (User Pressed Resume Button) + ? + (Is In Offboard Mode) + [Offboard] + ? + (Is Armed) + [Arm] + ? + (Takeoff Complete) + [Takeoff] + ? + (Low Battery) + [Explore] + ? + (At Landing Spot) + [Go To Landing Spot] + ? + (Landed) + [Land] diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/config/parallel_state_machine.yaml b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/config/parallel_state_machine.yaml new file mode 100644 index 000000000..a66d88db2 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/config/parallel_state_machine.yaml @@ -0,0 +1,29 @@ +state_machines: + - Idle: + states: + - INITIALIZING + - PAUSED + transitions: + initialize: + from: INITIALIZING + to: PAUSED + resume: + from: PAUSED + to: Mission + - Mission: + states: + - EXPLORING + - RETURNING_HOME + - DROPPING_COMMS + transitions: + explore: + from: [DROPPING_COMMS, RETURNING_HOME] + to: EXPLORING + drop_comms: + from: EXPLORING + to: DROPPING_COMMS + return_home: + from: [EXPLORING, DROPPING_COMMS] + to: RETURNING_HOME + pause: + to: Idle \ No newline at end of file diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/config/parallel_state_machine_drone.yaml b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/config/parallel_state_machine_drone.yaml new file mode 100644 index 000000000..6d22bd060 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/config/parallel_state_machine_drone.yaml @@ -0,0 +1,50 @@ +state_machines: + - Autonomy: + states: + - MANUAL + - OFFBOARD + - DISARMED + - ARMED + - TAKING_OFF + - LANDING + - EXPLORING + - RETURNING_HOME + - GOING_TO_SAFE_SPOT + transitions: + offboard: + from: MANUAL + to: OFFBOARD + manual: + from: OFFBOARD + to: MANUAL + disarm: + from: [OFFBOARD, ARMED, LANDING] + to: DISARMED + arm: + from: [OFFBOARD, DISARMED] + to: ARMED + takeoff: + from: [ARMED, OFFBOARD] + to: TAKING_OFF + land: + from: [TAKING_OFF, EXPLORING, RETURNING_HOME, GOING_TO_SAFE_SPOT, RETURNING_HOME] + to: LANDING + pause: + from: [TAKING_OFF, LANDING, EXPLORING, RETURNING_HOME, GOING_TO_SAFE_SPOT] + to: Pause + explore: + from: [TAKING_OFF, RETURNING_HOME, GOING_TO_SAFE_SPOT] + to: EXPLORING + return_home: + from: EXPLORING + to: RETURNING_HOME + go_to_safe_spot: + from: [EXPLORING] + to: GOING_TO_SAFE_SPOT + - Pause: + states: + - PAUSED + transitions: + resume: + from: PAUSED + to: Autonomy \ No newline at end of file diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/config/state_machine.yaml b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/config/state_machine.yaml new file mode 100755 index 000000000..56ab47139 --- /dev/null +++ b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/config/state_machine.yaml @@ -0,0 +1,65 @@ +state_machine: + - state: MANUAL + transitions: + - event: offboard + to: OFFBOARD + - state: OFFBOARD + transitions: + - event: arm + to: ARMED + - event: manual + to: MANUAL + - state: DISARMED + transitions: + - event: arm + to: ARMED + - event: manual + to: MANUAL + - state: ARMED + transitions: + - event: takeoff + to: TAKING_OFF + - event: disarm + to: DISARMED + - state: TAKING_OFF + transitions: + - event: explore + to: EXPLORING + - event: land + to: LANDING + - state: EXPLORING + transitions: + - event: land + to: LANDING + - event: go_to_safe_spot + to: GOING_TO_SAFE_SPOT + - event: pause + to: PAUSED + - event: rewind + to: REWINDING + - state: PAUSED + transitions: + - event: explore + to: EXPLORING + - event: land + to: LANDING + - event: rewind + to: REWINDING + - state: REWINDING + transitions: + - event: land + to: LANDING + - event: explore + to: EXPLORING + - event: pause + to: PAUSED + - state: GOING_TO_SAFE_SPOT + transitions: + - event: land + to: LANDING + - state: LANDING + transitions: + - event: pause + to: PAUSED + - event: landed + to: DISARMED \ No newline at end of file diff --git a/ros_ws/src/robot/autonomy/planning/local/behavior_tree/images/behavior_tree_rqt.png b/ros_ws/src/robot/autonomy/planning/local/behavior_tree/images/behavior_tree_rqt.png new file mode 100644 index 0000000000000000000000000000000000000000..e0361577bd58c92ec181c95111988f6bca791c07 GIT binary patch literal 165797 zcmce;XH=BSwgrk?x1uPZ!?Qv1(Yl~2gy0dCJU0IgeIp3 znw+752KrT_o_p@Qcbxm{y&4XOHec0Owbrb;=2}&auY#Q9ts9g#aBy&LNxhPIi-U8m z3)A#IH}8x+yJ=we6te)t`iQ z)PD^u@)E(NU;j#ody|=rKc& zGMX`ienrI}%<7`e8qT3ARg~7X8s;*6d|o1MuaMA9^dp0ePLk;&+f#Qpv7 zQ{+#`H`APyEF;YdX!*XTHawl0&L!xs-fEcDlbG=298(yfOV-+z-;XEny%LW!3{xNB zwnPMLMzXW=1P2CI6_uCD%m42S=Q!?)|oZcLWS{rb7- zyuKQB7+OWhZWT-=lTt)Yn7V^8gH4MEPtFiAvL!r*<_jU<)ZAC^$ht4L=J-7x`HZ+bKlyz#f zj~qw*mKQ#_7IEIA?HSb&QTa9dWK#`y?ZN0`gSU!`8X6k=?(@b{p;vFN)84*aY;jz2 zR26-Qt_pUrv_x2@K4D~#TL+MHWrQn3gM4xTc{R2ATr7ObIl?tn@2 zXJ^Yo^bD*%ESxIpKgciXCvK?xX0|5J+Hj)pvBRtAmUi}(Hh)Ny%FWbd#5r!aT0Or4ZhX5De8JTP%_i z$L*O}u-w1;SL|0=W7o6?jFXR6nj)VD4@xq`N+|A#ZMv+Q7qZK|>EP6py+y+2m$D+> zzEo7yo@Mj-#hus&SjkvnTxytpN_R^6H>*t5u)A-v2V5gk*Fr5q8R)$FBYZl|L$s?b^Y}*d0@e?upE!fV_@z(iz1^_)d-y_GD9*;7A@a; z>k{TzORv$tKM4;G1ft~ zysu#yRVvmy&a{SVtdcZ6JQcLLPv3kPPA$5ehnI=JG5CN*Pz&Fsg3ayZqqC-iW^f0Ywve-0 zLmF<_e173rwdEql7z%qCg^#|l&a~V4$o~HRI|XIp#e4WsKL=~JM(Y80LaH2F1OBNa ztEdPv?+cU6H|guk55XnL4}~f#~_zssUA#(K>mIgzTKxnDkDO zI@*ww)!l<%4jhK`_$ioadPxapk*&g3_nf*Ch0Thzna?v?RdSyn471wx;bFG=GBee^ zR?RJTH6GjZx`nmib7TQvI~ z9(R5|L6@2l@L_L)p{FKtnB*MMhdGgIXEe9al2{XR(mBr%xc~4cjmSI!wA$wVuIES2 zB&(hBh6RtpLQHLld(B!%gNFu#VJ@4fpv=#MDGb4Llq=<`TMd5LMu^k^X?FgJwyqKe zH5X%THPoZ0_qMyrJR?Ix06*T=!2OB#1ujFK?KQeyt20uf@ zH^Y=P_r)-`EL=#d#x?9HF-l<=AKvQkIkHMtquYW1IA*Jd!pZtgF?*W207C9fY`G^C z&O$Gs^K)Wk^WjT)&p-JWY;Cviey&I+{wmavz86*?ErK>wV~|>P?Lc5^4N6!z6HjL_xX zgepc`eXIgn;~WNOls-R{h751v#oPTj;Ck|)j!MiG<$q95lc{67dM}qSwBO17>5xS+ zHS=9Kl;#S(RA@g$dtz@nNT+Bmwm|ysq+h|Bc$A?!?ze}}v?C8ki3|KM|8f?6$)obJ zqx<*22ddT|ABPDF=M@h;0Kv2R$6A=t*l1H7T*J080f8=87?m$ykn}gPY_e-TwGER&c;4%Sn*{; zvogovTJ(c_o-R?_D75!uNygSrww&Q1QED=n0*T1O>bU23I+qGXwYJM8tppe66|bp# z6N=y9b$FXukBo>{XhEtzb+<=gqJ+)e04N(Si^>FsIQ(STSTY^((7>(D_z zY(4$9@W5AW@w7qoaZU<@@RXjL;uER3dY0_IzF;cH;pc_%Q}-oX%6M)>rRVIvR^CFA zyH1@=XP%#~u9j>;w~@v#mL`wXjGsU5#tc8_5}Ts1G_Q$fc#@;JKm#A1s2?w->9Hu@ zJaw5HU#a^{pX7o>7>HcbbVz%FtBgx$Sh|mgl{Gl{i9gH=@+M>ACuIlsFIV2>(;!z- z-YA=}Y{lPnhZks+yUcj!)oR>;y_3lcFnqFq|8TN^?RJsJ^~1;hWAwzj1_zN42E6mV6Fl02 zTN0y>LLX}m-|dRb-x0clFwjqZVDZ*m`*^85R~54`z|Ej1(G;z-6nV?PUTwkxzce~6 z2a+rD#*}61?a#N0M0ZoFjn`Uvx}x$6`8tGD^Rsxx@0-wq`4TrKXkOrT(db=UA(YH8z;j!$T8zLLixp7H&{9H z5h=#UNbCqvlgZdBq2Z>?)71Vd?!6kudF~~f_*Cs`5j&PU)}KeFy;Hb;^;1a5?VOxd zG?Ua@=VSba8Ed>!hpGzenffWA`MqO7tu6oJ$_jt|4!N;c+>Enlis`_HxitDpHm)jHla-AZ%iTdf=~m z&qC!lO4?EMV}>Q(6W`fF`y(=3baUA!Qtt+7-<5LsF|&HW>X)-t(`$?$j9c0%zML~N zv5J?K!w!f;eA?(h6#T5+_J%2m?Zt?eimDT0S1Kir7J(2BMkGq~(>8~Wy z&~XnVEf4-ymi@)wq2U_L?m32e+Dz3Cthv>u&NZO!|oawxDqo+}$7&!H&&FG;9>lKkU zz$czzQ;8gh5N){7^jB<_M$Il2xiRM$+&0+XPe?&QVO1IP$e7NHQb|L@O}3{elwN?E zS1Pp3y<{1@1g{dh#79!D#x&~oJn#HN*h8-@W!YR!OKFV_wvyqwBF8F~L5QiH2fL** z7}_%|n#RI%`{8%PK)P}q3Jz(b{#v??DAK`4*hbqL+8_XI-h9}<*))GEQMV(80iD*%tfpN zuq_#H0Mc|3$FTo<3Qt*ssTV=8@5Z+N^kta(AVgOAx%Qug8mBEtNmu*!D&?;yfK

      QT8$lY?^iL)+vBe=d`I-`glhO*|^cZ@Df@g-*G3y+`tp zS1-!@%YP_GDNCix!7G z?T171+1n0zRFe(zjcKFhyYKkRTjHw8Uq5Iqf4O>q{QBUDa@Bw-^6h$W$==;1`Hw|6 z9N&D}%~Aadx9{ENTR>k5GVSfX!}N9avf}j*TZ^F!f>?b{eeEqC%kUO^8{3EjPPP%_ z=NiR(6k|PViFrY_#1%cO zim|gRi2Z7F;?OR~Ov``gP3PyecO04hiu~@XcjR$~#qyqI%j6EzCdo(MJxqhVM!tdV~we9)mC!01O=C{t@ z+ilLZmcoJU%}wuDUuK%%ebp2nTAkJBaHVRZb!0WM;mu0o^5QDuOU-MDsY9!ZwPVYR zuU)=j+EHnP>3G-zq1Mouj_pN8`CsN?a>V7S^0clKf=pXJu5Ehbl#_3198{#7my7Nl-B*+<3@cjE=j6VJp05@4ueGblJ9kM@ zwLTa4b~iekj7xWz{39Qms6JbkaN=(js)!GF)D#PUX&|0UZ7zPPG#C3et}lj8eQf&n z++0&og|_>`#vF7!Y|uq+QZr9JesiS!VfO)YnF2q#){Y+>FRzPp{P|{;qWYWH3U!wT z02d#G`77S^D33FFH47Fdc(>%Uk{j(SJMQSd!q8qt+%Vs?yWD$4 z4MOiYyz)ck8&&h=``J12%>xl~gZCQ9rZWyl?Ce(@oy)D_YwhqfRbG>5vW}c;da2Sh zQ%0vWr1du4exr=3#g(l>QOZ94_6Ku|1{mWU4VG+o^euhNF?Z5VN8MXJ9oy?P-dkRJ z1LNxp)AtuhYxkZ^(O)9Yr4 zX~^%tm}b1{E7l*=Pc$qUCBAMOC-$B;L|ikii@0>#D$}h!$&S^v1i9aliSl>1=E)IR z)8#F%<;i6tI>{FX+;W8Y_jB|qTGnk)M~lfXXS=Cl$2%rd`P$;$OJ1VKJ1s@)EA>Uc z&we&lDxGAC{c3Yj4d1UF_Y+#lYsUu3U!3kLmkX{XFZgnsBjx+WMO2@+JHKqY_}dSr zvgbRA3lav4X^!dG+sqSF-kc&P+z1tS%^ha4e|p35sOKa(=hfZvgxLLZVvAjJt8MEaM@(>=74cxxhrwv(RY3~ z9SRz`FLlSC4xenB{L=bdc|b;rJT17r9PRUy+2(yVsX;ZEmGpruG2& zmku6sR&Z&@uq&fY4}NScR{5$xTrqc*`0)Ngu|o7Yapb)VVx#MyiPH-wiwlNqHHD_1 zb`<`SCjVY*l6-brp}aTMhPmz~dD5Ch2i0f7o@t+a@a{^}EB6|TKV6Oy2imhln|H9- zAhdz0aL>DP{VTPUktw`#t8R!=&d;Q94sXTrOxLZF%#T?kT-irm5tp7a(=&*-hGRYcKtAy}H!v=2UU}iXV$!y%!`O zyO=9C^XM&?`@?{}{dx!0M>y)cUpV?I;1xhkK*jxU&vPno&$|jZ1=tVR3Rnmjul(sV z03ZPBDi0IClOHBdm46=pz|rewB~#t5X7QyZ+r@HUaZg1yUjQCWQl50d@n9 z0xkgVNV30&S@y32s0U~YFq)}8kcI_sO#n<)Cj|#xcHkc*R;y>(XMiiy)4V$vc#Yv< z7BR$P^r`F#H?B4gjtmYKjqOUDQMhT$%^714c6Wy0T1OU2dQXiuNyJ5B@fKTU@XdsL ze#Tkt$dfSPIeu|R)j0PNMrjDB;$9FhCqAYUW*YbsH0bo|fB@-x3vmhKQA$-{{ z?2N6Hh3htWLN_uK+ybMtW(S8fE`lhzHiItGKt5nob=isQquj=!~>Q1^JTG=--jNJJP#;&7WS) zUpynd5CG-&jv6qDgJ=%mB4A7zY#vE-Og_G$STp2ix`tdF#(2`;sXmakAzmc*z)rF^ zmMDo^^5~3n8ekJ(^5ZkkN`Iblb_I}s0ASC*;C7yI?gR`6oB&*d-ztC|c8NRd3;=8b z>;;?yqyuIF>;Njy*GK)56R5yvo_G^^k^Ba;le*nRzgRgeb<=RMmNza1m3&jXc zcp@;^76DGaGZoJ|4*)g+W&!MghJX_l&O(ofRv$HLN&V<%k1(4{&55htn%`Tswgg`s zHU{Tvs!1~s)unkPE^x&amH~c7;w-e|F-j6%tXICVT|3pJ_w2(VBGl|9CxMuS?5WB&&#MQpc3Fd+;*5IzjD%yS`uT1Kg-IB{h}w zjBI%5>mt?aa??CW{z7;}jL22?tn3NpBUuB$&aO?haDc%*HxE47{lMQ&%0dl3-hKuj ztkJ1ZZAsDI^E&HHZhqD|9A+&*0AM)W2LR^)cL0l;YV(~wzpw&1T!5wKkGn7bDu0TS zotu-Kl}#};U1uowNq@a&PX@qclZbhl;T-vpd60s1ISJ@AhQ0(hF;y^pgST7#*X8iJ(BNfrYa8dVlNj+{#bN2XA_29_oOW;Lh3s zTneslH3Zsv_!^;U1NnQpvUe|@>dkrDTn}3l-P@R8ZLHK<)z+MIRn z1RT)J6ELs5rn+@Ia0BoWOPn>*7dPBQ!L$LQxJ)RQfKnyfa5DsMA(vw`v>_CTdKv8Y ztlcEEMqTCJoM<)3lgmxYH6m}XWMjX?{A4oH@^U*G!?VcZYxL6ZKg-R{GTQPWi;#gh zYJx~C1SwD$1G&N0xUH!*blawo^a#X-aF=~+D6uhT4R*zl5_56Qa}tCE$;+4l-J`%L zSYLhG_N;RiU<@D`5C~`vxZ{m=8c+$4jy{R^KkIA{NCK1rm;mnvoOSjD)C25;`v;ix zj$P{^I)cl^HM*^XEfJx^Hq1}!1Tlt7CQmo5`zEfFLF zLQb-g_`VV#3XqqQke`i$Qryyk%|8U%qVxJev<@nPA;WBlOdFV+)R>i{<4XABs=JBFsl=cCh(296H`sDDjb%J2@O%bN!AV@&(oz~C{XW_G=(Zj2JJFz zR(WoMIp(v@0f23Qm4Ht)_vAo)XMk&fh8FY@%us+wDAt7@n1cYT0C|8~@T2y*)-TpU zHft0n@4n%{^8o1)NDuG;9DsWhU<}~3NaPQ&1CjxGfJJ~nKuLZqD=Ol-&$1OW@XdI<~<-YH`hBTt$+(n z95xhkt++clpC+ZQc3!`udSjNGL#fUL6M$>Dv*$q zl8*TR1BT_oyi^5N3H>lllJ+W&dD7Q~yT6(JiP(wx1*$JDQucG%&{deiu=_L6))ix` zUoPajNp=qzL8uJh5yX8nAhGusZ58tipx!PK_Xa)HvM{E2i{@~u9NjF#UJT^!Al-`T z1WLfI5DbUF4>Sir8iypoq1}k?2E#jX)ypftjTaVuP1k9Z-5fU9-++r^a#2N0vYKQb zWnCighznszeMgQ#ZyKl-tU!qVK)?^D^&nobZ;{ePX|Yq1Ul`v2Qim?b#FDF-v-(js zkY82x_)+z>;?OvvgHQvXOil4A8cnc&x7J&A5jX>sl%%+NtE6oteQd~8r5PcbNL^0( z|GVkf!bJ(SC%nD-Dfs$^182+19!i4W7CrP?Q;+ZG8=R5}3Ew1}YcNrjo=NHJukBOS zmT-D{-ww~Dr>lHBxjwQ08r%W+A``5kX+9Q<#TJl&2)^yv^+J#o4Q0w(QgSR7-wwK8 zkgC%Sp3l}?_4#jsFk^#7=TC@JK;{(~L#Un$?MgIxK) zxPP8#7*uo=_-Q@lO8<}g2dle2bNz>U>AzS$>m^tIFYce`G^`z(>KaCWHT+-v{dIE9 z?(FO9sI5)^p{`?fa<%Vy@9%$He#roH<^M$g{Y}Q5w1)nD_x)S_*FjzP|C8PK-zmSO z`%3bEQU5*Fu#RdwS?{^}{~x?xUnn6Zy`App!~bn({rAgv>#XN|Wv=pH)PFB(xE~Z_ zKiw&Afw|sQ1t9>u*zvpM{+wO_>vR=z?15K9&C3Gd# zZGff@ouH&DeITlfUje5FCmTXynZ7w2GdS+X&a+N}>mQtTeht_MAomKG6+cw%dYl)T zH&UsoOPZC z90u$LtOFDPLI52B)c~VD!M?KStaAdO01yXg38(-#ybo~!eG$h2p!{7O{r6bEjzVim za9J@?uGH7Z-QAD+0SpH~_XmUk`T|A*)&VL2aPHU%hmSraV{b4=L|LGN-enEo5F)bR zsE9CJ)EI1N2mMDby$rO~(sZa$y<>B-P)gB*72>FKG^=m9&86l^+Gdsccr zQzpY)Aev`lJYytJ#uis&O+P@#U_(z*SWaLfHv~Fi%6Cw zE|4kJgpAgnou8h|Hk4{YQVd346w8@r2^5N5x+|+Fdk;gHM5>Ss_Asco@O7z*=Ngw& z`{YHxO*!9cM2x8nlj2p?++Lcyx#q5+nYA>t30K`feO{KcvGk=ln~BbYJ-ERv9}g~{ z`Fn7=%srKxVW4uR!Gr+?X{uSMnO~Mx-N!ZaWzGMz<}Rzbotk^J=Kex+f1{c8HUCqZ z+e34+GN1EPQr}#yzWL9s@Bg@5t^9wtoqAQD*T2+{9$X%)C-tv;zfwQ5v?!PSsa!It zf61i&C6oG>OzK}Usej4*AGZ@}pZ8EbDPO&x_4?`KfXbtAdY@#{`y`XzCzqi;H3ebzn(p(1rvOGDT4f;+Q@`nvY7ICrhp&yFr z>sO*J6~rfuD^;UXi7$w?xFZ(2$u#Y)&!ejj7@7mEa-iPkqYs`#cLlPTlCDRfV(1b_ zHkAJld+z}dMY8RU_b`ZvsHm9JsGz8TWDyYrRzdZ7%6OJR@S0OgAone3()xG#kU#p zhUP!mx-GAeq?$}DX49se8E>B3j5CXXY3u-Km}HluJMKrA`oKq1RkG4AISC&t_!uFc z^oNEBy&1(+@p3^uB1uyexlSVD%n-SsUli%{hAaA=!~mWYG0tKLpN6>MyB3qKLu>%4 zqGFz?=n#cM2@@&-QNg5*GgK+)_ym>GH{8DmK8BG=BxfoJ>7b(W2rkn}MRW*;!-CTZOSRo znZ0TLfF9i)aAzFM7;#m92(YB!sy-SnK|Ej~{4)Ulz)t`~eqV5NG0l4qY1g=rkIyY6 z+`x~#SQuRXnIQT>BZTp3_;}LaUdk`G96pFAKBYA98v09laRPsert(og%l3h3%_8umZLD{7sGhJSZ3&0LmI>M0#0RN`~*L> zuUIaYKZOgtsZ3%%tbAp4fh7>W%q(8WODr4l`Mhit$1b5>@o zsT>AlqO5$BMx=vFBkhO9=NW+d!qJ=6Kg&AIpBER(L5t}NIt-BYlwV54-Bbb7)3f*+*g3MNQL zNb?GEjYj5A%pYqsJAalS>ospsN7=jR;Mzqo!Y*2>RC zW-PJ1qy9N#iT}vx{!2S=u^Cxu`tQG;ezp3i?=D8UrMIYF+ri}0px5!!yKWBbwQb1q zdf&T`y79-yyK^t?{`pYwZ{5F5T%P4)s;X;b)7<^U(Z^RN++X)5cudkPvz2Xjyy|(O z)3zZq`VXuhVdm^nqxFZYMaK)@&3l+VyZg8fyXybAEP2$>+lrrhH?x&`_A{3^T>E(9 zhesz*UTeLk@}9)+Lgs!yd~52(zAwXSdO6v5X`EJdzJBkMYd7AXZcym4uE+eWiK8d4 z%saN>;X?DXcKgGgX>aCQEaVP2+>#kbSo;K~CG^`-Fmvj=#lLRqc(CF5oLhZgY%rQs z<3+P`POiR|k%MEqra#zneCdkmV@9UF3jfXaVwImtTn<_-u*@@#&j?amMOW~@y8P|7 zS);apue>|_k48UxUOM06x!Yuu^|iaj4;oY}(50*5O3KlyZ`$5JGVA`Bu{(ZT>EB%w zY?9S7abMk=rupuRZH681ebxJ6<9BbyU7o$`#~*fOc8c!Vu7B+z&&~%W}uT1=New|de z;W1$ueW%)Q^g3JhX=9oUW;j$FY^$pJ`_3+vX4N~CQgPzT{%NjDuAb*K`fAlB z+l#Ur-@jNq`pUWQ+bFhH+B0;+@QQZZ?@n%1I7w}>tDv`sT$5*R^!?@NuB$$8cCWsbeAy|p z_lVD-7qlRkRR#zl;|FMy3e@DCct&`+MgG>fqmF$+Co7vjp;*&8WHwrZj$`XQb~jTFHQ5i9jf-~@RjwNi2K`WJlMW>+|bcG-rs0+EjGmN z*IF-zo*%DKTzJ=AwK4Qmmn|L{-0sCC4!bVMm)_`fY5L`kDTmH3dH3>{^ZoB9`MtlA z>Jm6QVa=KC{eIQi8TYq|&MbG|2Dxa=;d#=9H z)Rt>Gvkmhq4)dQ{?diG2rlS&{OB#PXV3O3QTkIdl6EwL4-ID9wH5rgPsKJGg#cj@y z={e+AixZu$C1`K#c=P7T-U)ttx7E2gVST@Qi+}lL_|&rt4;{Gd9{K!6__KsvXA`>Z zUUto7i+5+YjlsXRsd8D-z--;?PExmiLyYAIpY*#Cb0cBJlL@Jg*?W@$$8S;{uU`-?EJ~5@}7-TdTwrG+<#N=<@!qp98aIw zGH%`#+eT}z_ga5IJ-fy8xJPpq_s=w&nqsulq|zL3x2g|ECR9wX*^R4^->GoA<&f{N+k~=}Dt=P`$=o1&I2-fUID?aa=pCYMgO>UKT4FyTsb`yuh0ws%q; zGHQ_6XIdL=>vnr9Z(caT{9uC{6?%U6#K?}TShZ5a1~qEAd%HPWHE(T~Hh6e;@_<-P zaCjh0@AT|beE0YJ@83Otb@|3GXAd1bc5>49^Ja}7mp^jFx@8MDZ`!%%=Y2;{T`jtJ zPXFh#*SBszez0x*j=evwUb<-F=)7;IPMiBfOIa)X4xX+~P3l&!Ej6xU)-9q(-_D8v zUu~i)UY9X!$e0PEa;Hz3J!iw#!tHBTEnf2G;~!6dD|z^6|KZcvYCnGgo7ep^)4v(o zrK_@gXeU4adX4K?R4}S+-n2zqn~omNE@2@)L6I@Ndkq?xmD4{(9p}~Fp4SATXyf7F?r_vvEPj-xPIl#r2{{mIDY5my(e!!ynKP_FE``dF)3w=L2i0*nRp0+<3GfZsl6o}PG22Hpv28UXHt*M7hhK!1Q1@jif9 z&}?uj($5F<1Jnon0{Rh%n~8k?(_uU6NRZ=Iq~9#Zy#e%#|imySz*St-9**k;(`8av`27G9dCsWmU+O5wS>X**_K zd|Wte{Wq$sR+qew9;&ft_^52pabAn8pB{MPeIYhnalxrjbPHQ4a4(?k|En-5xJW;@ z6Yej--VpS4P?3HVTnhg?o)qr~y1%3O-xNpn*$kli-|qb7dJ)}r#Lxd5nt!F+II3kZ=8mB)nxHLA0oThJW7J1fchSuSJ;9gSgZeB8{Z(D)vp3*- z6JVH*aLSil8VAHnjDHFL=+F9_!k#0{58sNI`Lxg^9m&veK}jii|6)cud#DC;WYRf? z?5s1466~u{JgkwY>R7xSXA3ei)f$NDXCQS{nwrB|4z<4~S(VLW5E|$F z5>=@Qny55_6(!Je{z(Z*eyS9| z_=Hjval`?k_~w(~kIaZ)cnHrHACw@q&vGE%u(gvR)J8#u9WCtQej@@8IHIXZ|jm>q+OiAN{v@kmfVKg-d8{K>y>sR=2I+OJu z^GB#)RZwgZq4;cHIpez#P{=5Esna-IHT2B zS}4}?fbIYVU_=<^Z@4aiU_1}L1U86o_z!5ll=lC{@JXn579bhW5AdZjMpGQX^KWRr zl(xKZ2Z4_j+`9iJp5^89|8kf)>dgUO3ghV>+#bu>2N6n6cpgiE;Yq3uCny z;THf$0J{a6^>CK}W&*|wVYzTK0EvL!Lf8WEp9UBW7%Jo?mSa2os{zrNyA7cs{Qp(( z6w;C_;>1hDHyiLCVSp3O9KZ{MviZ|kWc8OUobkeXB%$KyW{0!O;tZh^ zrwlfc(8MIOPHJnNL`-m%&N7i2*nlMIJ$zeYA}HyZX=JAiGf{>H^GJM=epwRQ5pYP2 zXI}zvgj)gs5>UJh>An>Izb%~VV}$w~LY@Dv?i4ow?eiA!@2KMYavDggYSWY`r9}$1i9S?efFXc&m>wy1I0MXn6&uIX|bc9pB-8viuq-6}w<9-^zA6exfbP_F(j0Okj z+iJKdh~Kx<>&bo@0olOg?cjkVVuTNVA&0S&_GuRUadM8W`{CUKA1gW$dVO`p(M3fYSobsPS?cq zhUJl-Od?{1SyoDPFY1BCSzIE?NWnyB7&K<#U}pf~{$;2#1m@%+*8};XQVQT=aFBu& zd_m6^zFEU`G|wS8C|Zmsl(*s;eagWC5fUjO9+4kR^<83xR|Qfn-cL z5QddG`VpcTD#SCK&yfiwMKG=qCQ|ZPkZ%Zb5b!8Jg@DQpg1d!~J#m(fM@bGVfaF1y ze!&5LojGxAaLlXZqr<}GA!57rfZj5pJkjzPC2ZM7z??1W8zArn>MNjBHy9vPqNO+} zPKzY-`){aWl9k*p1PVTdF!5JJsVx7xIERX(W#5zNC^{*qA_)^Q0kwuJaArp+i?mf!9 z7_y&vd$LFxl2PF?k$#^h~8XpM8o*{ zg`?fOa|WIsyoVp?EIgEmIP_d7tk#pXT_6q=z@~g)pwho56T0Kg=TZxFr9n&`;~Nky z=evtS*ubUk?HU3a8bDCCXW&7CZUJF_EQ+KcML|J%U|>jCNOTXOpMRJ|*UCb8_hn2S z?ak_ifsXe!2m<3oJzi;3Nkapz+n_c8Z=D7t{PaRIm0_qZLyNao$W15FqXY+|3?nhG z^3xOQhD;5Zu?G;6rQ`KK0}5+|^n5`L=t?=@Jvu=HtxGBzbwYg%>G+3;3}-}SVF9v^ zGHYjueA=>KnN13>xu_g^o*_%-Pgdn=9u*RoCNnH|X?ZkR5Qv7_8Cj}okWA3l6M$J#dNz_4rb{wmMN26UU8~3UW*BefVa{_L)2|{7!Gj9N46#>ma+A zA${*-P(Iw&=yl=I%hXH$edmkxcJXZ6<4Y<2(tmuq1hxeMsbP{H)267BvuzoNbd4R$ z7JEa-Gp^}Z0mcD>0gjp1^t*J|^af?l#u*)voMmJXr-6O<1gv4Q1->*&4cpZq?I%O> zb3TT2cnQI{m7y!Naj+fzIXiI#{3RbOKaxob9CFw+v{@FIS2L&|;7%h~X596#*f0BJ zkVm^YMD2ZZ-FW$-aT_SSI5akbxg~D(z3u!OJ|vgY>6_m7z8BAh(av$$D^BLuT zw^QA2TfGIh5aC$g9VPl)%e7Cue|h-Li~FZmk>5u$x492o@VmqKeY|jlxvhFXAs6$` zOmaz1x3JE(F6|F&-`Fue{##08*ucU=LJRF-Fd{6APu3153a%fu6T`p@u8*_xdG7~- z*Y(!{=KzNRuK@;QL*%8#-eU&Ts_@t70zs~iFK2_P);`qR>hz>|oDad|ks`C?pJ0$m=7?f)qWZ(6gCCb>&yr)GNfB zo%G;mHh$FM%m7uLS*k~-PVp&iArmha$w??uBBtdb*i-y_O1{d(m(dFvQp%|%BNX#5 zj|`&ttT~8~==kFCHDvV@N@z$2(tRgRkUS>2kA(iS+6O7OmjK|@y=9V7d~173$`AdXlFZzDSN3!hp@PZ4ZE zfR__e-o-kNS#>XCUzQp(nn5t`I+)+a!;Vc$0$T?^{yz5eVFCUB6y1IBV@lZI&C8u0 z_VyU>P%~d5+D+2tLzL6n8!O@&=OwXQdO&P^eXgDpLNH?#4 zNK}ME-h*FmGNK5qrig?Vpiz9f@GzyKtAfY7hAU!1aXtbRP#{d_RQc@vnNBf|bMws{ zg7-(xi!PZwGBm)ysmzluPDYnHNvBFr!2qC(i-7QSdWr{BF6nf9SZR=;lZmLpv>5dG zg*q0f7VIpGXTMlSW+Wmf#CcfTxk6(ZCLIrJr%dks+8g>20P}S>^bG-?00qDnfRX4y zSrdC2mdv9afLwg#(H_<=m|MEatew=>)}Msf*--#4((@(rPtv8~Qw@f=CO#g=>1feL z8~@tO44IvsRtNP@?F1T1V{j>fSHz!X4*slK=d`ZTyr!u-)-9x~ECR<)A!pvOnVjR~ z%^Gs88|E}@ZEEUeYRcuNIdG_&gr+4j_i@3Gsbw>{C0)qK($q-Oqmqf2yibp? zp*5=47@9*VyyS9uvmE?*kyoBmsZu2g!n){kP>LK*o+IaEK5}nK4zbGd!IcAX;G7&| zQ;Qr*>qRNRv`f>zIhE?Q3Ty!`PEtvZMCuJ%?I7bDJdSAFtMuNmj#*uIoL%HPrXFA3IO z%w6Gqp7Z(6QpPPj@@tKDVSW*=Zcff3Kld<=HUe59Ma7YhE)jn6_HOR3bSE3+9U{*8 zxE&+Xwed-a=g+xCMTFpy>@Efhj2)fC03`@;|3?P-Dlp@lA9OGuU)RxS>tnt5)|4q$ zTOV6h;&CjLs$6EU(e}90z=l6Na+M}=xyHdPjPNN|AvHp#SXFZCC*|^Grbbh&aNj|3 z98;f4lmG z|5rvI8Wj!A?+Rz9aOXHpgtJqentmAO8Rr$}85b89;f`o8@*v6+LD~?6@9F3020fBgX;i_*Q{LRSd6~};4{GivZ|>&X+@&nq)6=)P zyg5q^&8P|&uTNCuvotXl0+lyE0`^KfVXz%U2;V-&8g3U@Dg8@b$0WbWkP<=5Q5G%rU7e_wxJ zFEQ59!3%0l*hOv5^esd~d96GdPb48vg_GPa$W8ZKQQEy_@nUyl%tW{g^!!-h`HAr& zf8H+)iBf)Sh#KTC3<-nrz^5vPZ#Y)ScOH0bacMA6M$DBTn>s$k>i)V0X5e8`%*`l!cHUr6Fas!deWk z(QL1ZQ;O+;3G|#YJTfF8ESmO1DIdr7;r#n5We6>z>>xNr2p6+IU`XQEJsbz!xX$a{ z=e)Vt+q<-!Odtdg6oUY^%f|7i*}3pQKYAjQ8nUmG9GZTnmCg6z{`?Mr=ndx9YsR$gcfx&9bP$A=?I{c-S!R?B?i$#(K#Ml z2O0d5k@ORP&J?NWLkfFe=e3?t)&I&Q17``*Mlu^uwnHcEW|dEu2ss;>jh6x8U+IKG zp?Jjk^Aw;*ZDW}ZgU_pDQ-?*@_CC1$E6>0%tRa)q-y@yo)CDnn__^WBW$0 zW6whdQawqgoqoefsW7Hhtd%i#@L`QwlloHBG^|lKB|7ZS*e7bT>`V1<+Q);)J`^YV z@sdd!u|!p>PgdaYWqqxTCW{Yxs$JMa3+bJ^{o2AbTMO*I(md zOC*q_wPX?9U08QRy+U4winN-w8fnKb1LGc%Ov(` z9G6oic%SxS4%cfz*ovMJKDnht21pL4T9YI7;c_a-H~Bpau6Fzu%ilC0Lao;{ z$+6V*i#LtS%BdCHJ*T3)il1fYssYvfeHFPm7QKv6I(eEw{to_*_nq>cZ#X`{uio(? z!yhsHF~fgn_%-}~bi9t=%8oY}Ud-^D3@;%(h_f)QX4A&h*22C?h)<_}oxLqgp<-=Z zpixxCNTy53Alp(@`gn^|i}#K9UT(Dge1*}v0MjYUPBq^7aiFr%_UG|!iyBN{vFUc3 zE%zc@oYMDke;yx(-}4o;j>Wzv6LN<3aykAgk)nnU8IqhFBEzlh+-ua`~8eXQ9eJZ`i?~PtT~Xv9w!$bMl?Hvy3&3y3HJV>W32f#i|{; zJgycKuy3~$cid~l&LKTU7%QK@7$>t!-ZFZQLXj3wbL@ztX#LRy zpJK(e;O_dZxzo2CY*Vkz_rt%8!i6hhovpm z_3~>My=po&`bJpjtkq*;I&9E&9sbxRu+QPUO>z{8p#xtmQOalEZ~nN!(nHCv8{g(P zw)yc{)VAD9K!D{1r23-%uCaI*cg%+NMTa~MK%?o2Yjj#IXL*f1fqpVs_f8NV-*|8aJ75j#GL{|$tx&6=OJKkI$a62yS?6XVv(<=+Mx~7Gw;qXy8Mm3 zqFRMEJtcqIIMm5J_`~*{p$`f?WkdV)dvktr_SmemR-GQTQvbGT$CUy5dk>bjTpgib z^!@K1mYV|CJlv8jspWFmCpYE9GRJ|7e!BDhgpQS?$3)y%YH|13GXGy1yEOdn^t+!P zPOYBPCA31XpLaww35vY;BDdpd$GlBjf=`XOaQi`;=PApcO^;pbT-3U{MS3^48|@Fi zK4pH)W8M69FFRlEWI zHQv+lef-9@+&Jas7yA=8*3Yro)o#Z30XNUqJ+kiNVp-0<{#$FbZMCC)QC*MAmmE4B zTeqRETZ30!Hh%xOL(^|Yy<0iV^WOaG7lWTQXwysIA^T3XoQhFn=eDl!;eDW)|CLGK zs=CKF`OxR0#}Kn zIyHY+_pOPmeqXW0LUmd3;r8+651#gEr?@tIm*&{54Vm3_sRJ%Lra1+gryhD!G0py6 zQ1Pj;m+TK+{5H;ZYrPEzbMk9fU6Q6)=(Mq5`z0^)29rX$KN`O4@@UbdgB~jfrS09b zuF*l~;Eg3WaxR+m?d!3iQN1lun$YK24eNg=d-UVx-&@)DtzX6c^|xmfJCEh9U8|II z=x0@-(}88PJa79Helx!Njzzytei)=`71M2Oe|^tud)xi4n9Dsoa6Rro>ZvQax{Rl> zakX1*^I!ep&of7_UVG@WuR0K~`qe!n>I~@E{>{GU6{-bqEUwZ~dFWBZ$h3vs6(4>Y z)BNDUp51kRhXS(J|FJVJCb?(H&&RGzuclt7E4gv~PW4gG_HDTPAj!-7?Q4~fv-L#T z#(;*Y)f$iW`ToPT2@@MdH6MHHNbtUe57#W3VPD6-&$aHGOg{WLvX1SF1v=TJ>c)*a zF4T=0v$$(~hvH|8`-acT+ID61%D9e=Z;g5H_2}BW*ePq0T*_N>AIoqwsEze?3-#QN)l8+4j6F8lHG$!C*NKMb2UF7^F~e{D5ujTvoYeol*P^6A9 zU+81fyP5Ug)uXq4T)TdZ|Mi?6yZQ|{(y`&;pIn1O2c_oDI??ZH$y7K-iNydJgJl8oOQOkUB?mXOA~v~eYWVu()nGQoEtfJ_`Z;n zOA;^JWqsdtPvEg_4#}raTeUTuu=sl` zE4TagWk$^C#(9+rE+!2+(7lOPp15UK!^a!j7OfhT^kRTjXXgO}vVA?~)w{L&yYy4~ zM{m1e==C{~ZG21laLJQ({a^0c+ad1F=EGNZSFdQ_IrqWOPqNcTHR_$cwD*)h)^1Oq zKHnx=y~Ilz-+jvVtA(ap>nHyFv9sC9*aI$OdYNJ}$raCU`b^E7#e zbVT39@6+9p>(e#58o(wI#qh@$La+$PY;7=WO zmD}A~HowW(=$u-+Z`C*+@Z&<`U9L}xovdy&xc$JQVZGa9o~C!zNp?9$uNfJj)@moc zK0DY**>7$^-rG~A_gb82s`hMncfrIR2W!4uy88GUO|MtRS=a-_v$TivylF$3SdY&_@sk_|2V6YKbyn{SpaF*o`?)9UJ@ z=x>%@sIESu?^@-N+wv+a5)_wqUanND^{(rU9=jZ9@v-#-o9(SXGz6T z`!4@+IIF>+u$a_#yO#fE_9{EOdfSn+=Ukn<=XJmpBV%>wvrU@fb1rWljQxF%^_&Wq z+7F2?nl^afg#^`r4P(`6NyVx*Lz_t2`IsFV-JtGdi|S39PaZaM zUz?xiSoXFq*j2UF+iD|~M|M<28fyt*DRcpM-`RVX2dn*iSy<*_zw(}b}+-%wE`RaO&E8N?C zam*~ zJsItIzRC%y&tl&;y;nq3pS5q{in;C;{hwU=)w0^@s;TeImYs81nLnfPzB^0$_V4?C ztx|g8?5pEzN1hJq(<$7i*^6bDYgejQGGcK=re#%0H_84dXZpE@)J*to&-wN8^zT-W ztG(Un`M&H(#fVmm%&WF*u%=^``pb;Y^__iIw)oJ)=+@g#zDbJ>eA3(FlI^c`zRT_+ zJ8)M~|NGUzXHH#mtoFn?J70%4+=)oH-?1Q`ykPOtBQ-{i|6%Lt4_Q%G$7-)Fe9som z&OhCcXm+@24y~!%?zvJObSpO$H^rsnE%TK(Eu{qab-JUuE}d|i>p>+laf97+Pgv)<%9RnvX9tijP2EI?`g zO-5(SakLyCF(A6~v~kl`ZF{un=fPKKKkBphDZyaRtU)t|(@R48xsi(kZ%p9aSat~QZLMp@%Ajl9H9vLc+CONdIknk|< ze~@7rRSGGJf*cIKzlK9YUzr#(bOovfiZm?~_&0-)GA|a4@BMUy3n!;!EvRIwtkqL)W62n9exZ)OIWWx=kW zc!Y`jTYA!mn2sZAbSO@RvvLMGlEp1D-d0vBI@nbXK|nwRy<(FQJ2MWS*Nn|sIV12X z*&nilG3{P1aPJe`i<5~h|JD840$*F;YYTjBfv+v_wFSPmz}FV|+5%r&;A;zfZGo>X z@U;cLw!qgG_}T(rTi|O8d~JcRE%3DkzP7;E7Wmo%Ut8d73w&*XuPyMk1^#!pz`h)_ zOU-w4+($Y(cQ6uy3+0}J4+#y4R(1~MLc*W`D>xkI*CR=V4vAc7V8AgGMk8Y(@{h&(hKq~! z4=g=1w?iYx6V`s z#)SDrLl~%|o#W^CofFyHWQ7l8qf+UsN!1L7!ewQ2po0_6yZl`|PI)^!d^vq6^mVZO zax38s&NvcRBRgEOoq!J5bN%abn8YYsO6(zMyC1#Z*wap}TD@&Zr%LJQBrHOQ+b>|rxTqsWl@Rl)QgboMm%(l=r)5|(J(*w{)7TD1`GkAzhr|t-^ECA|ek~7Qh*{32`3LyM1VK|-IC_ip1VRsp$B2?*{RO~n z0O8XFmv9l57~o=9dG6+alCHe8pNAa+ud;r?K!jRFEly=ZYZz00#2=C8&r@A|gfpTK z%HR$B2jTxsfW-U7dV+fZ3Mbd(A@A0QdmGRLX(*gvssX+kcoyOp2=pS2=q?b_bO&Do zG5kv|(NI~x6#t(To`|+_P(mawI@~W@!8w+pPGzXGA?hoS@#kF1LR^$A#I-EMl@D<% z3vuH^981m2I+bG1rI<@8=30umm10UVAMD66$BB2MLqfy3c4fJ=<8x_Onubk2YCOB| z_*(1QhGk_1WMyU9`^%%bw$^dh4o;c$>zv6#go%n&M#@9NNWqZ|TIbSLkgJT>Cew2q zXZ_R~rm2r5PGX6ZSmM%DjDVywq2NdZfkZBv=iwof|3xvW5LM3lz)&BPSO`HGQz^f= zWE_yCoCHmJ*7go`A{Q#79OAjC2)SQKSP%{`Lk}p^J&7j>sdNfRPuHe5F+QWlCldU8Z*}B#gBTq_aI<`DKGSkrB8dwfsTHQQ6a8z3BG_9OAeB={N?BlcNTu>Z(ahic8jbc%)^jQR?heRZ3EvGL*KOqXFg*mzef2dhA>)+Q*K#xErffoEX74TXU`z4#mEhLpju zo(*UZ1qDoNpe}%Oq;-u@63$N^s*Lngau^*-SfS_+EHbKd57^@l2!pw9d2nPDhnjQp zNYWJR7XuBWm^eAsPl`|uZG;q14jQ0@;wyjB#l(#nJ(}6jt(^vt*nZg6^1hDMp9)5WJ`fF?Ct$xlW)4#$R- z37QNhbe*P3O^V~H7KljBxzIPGWn(za7x4J(vnzW6eKBCnXJ{Op_l`>gg70sR>GnMvP#NG!Kwy* zhgTsM#m`h+l2e>ANtcdNLUV&QUKvNmMRf5xWP@@tV=2TWU5l`Se%5kBrW3u&Ckk&OjSCnl%nE`#qKp?2$iX%n?YD}!Q2wR%kSQ<^(d>vL`zb1ty0@{`VF4$`vZR7QJ5!L5 ztOYUFc``3dKOht?fgbmK5?bpo>_mS4nJ^CmUH?$|Pn=n1WtkcZyC+}{XG+6jnW8*W zc$SV^NR^^dV#FwMBptmAgD{`wkKhzl1{ABNXmrq>25n>Md>&0Z3Kc7to^PQ~5)6XE zMAi~~0-=5af0W=0#Gle-;wkWHIX+`6wu`_wg&j9AEcfU1QFxl*B!fu)}1BDIYA=(D_k%ONci@ zdFh3g#dARR4>^>VUKpMK<@Ee0{HKzaHI703X;dcRzQv>dpKXRRK4jYmy5~tfM8@DG z=rggwJQc;B0q6{2wTFEKVJa!DKU6^AQJJicgH8+dPNqz)#Vt*hzzvQC5Ni}MvUI+Z z$?zXL?_=%@)M zl5*xf8OF)qmzO%Bthi1p@3KK$M#qNoU&lS^>S1ZR(sm6VMVO^a z>xYv@pUiXW(s`Q74b>Z9N-fk@oDv0IpVD8&bNTNi6Yr5p^}et4z{z;-F*en{*fvGnlWzw5*(^#q^2l5!E&>U4@Jm_^}TH~@AL1j0~XWng3g7_m6oNTRnumaNp{ ztLV(Om{<%B6JpgG7On^n;$p%&hlO_wCr5KMej%M`E&!+%E!SVmgAm!lTI(Xcs>0)yhYu3-&n2~gS>mnHTmHQ5MY_f4674&P3L$wt!b7~Ex{_Vfe`#^A zvVCC#|S5L4#BOmJf_9iYMHOsKDn6m}DW zb}q{wMA#xmW_*T1zm?X)1FY1Uq}nm?4G{a+$MNH~}QIrW?`uxPkY9yxPEAvS*WQW~e>>b796^1=0&{%eS zV`bt9Gk*~kJrBM_s!qZyBIB-PhK9JfWGxH|l{E`{F3`pnUoYwlx*T0fi>;&>J~xiL zCnYSG3)2jSQapUGV;H?i)2k$f#xwIvVc4laS5jLGP0s8;ra;L$bsMd}Xa@?N&PDo> zrrHcGG|>?`$62krsc#SHz4oSlAm9hU0f1t|P5o-X`1LpSwtz=~_8V{N%>j<>`R);x ziR_gkT`V+QXQy)Fm5eMZTSp%=42a7?o!!5fJ^;2i(=~$Ow{nuQAm{SR$LEioOZMe6 zf{u-&`sH5Eu3yYw8KF(i=3Bkoq%6?cp}h3|fe4LaCOa8bE=}7VVX^^kKTO#cG;L#l zWd&RxOxeupkhMJ8{gcIJ;|avZDi+3A6l2c>uP0m}wtcWEJn_IQukDR1 z(4)n7(e7`_-3QIfzQLpwQ2`cY^MVF|a2dgs2sl({a|AL0&OE@pNbnHvWRGs@yWhvW z1v~;U3E=ZPTtL4kH}xFA=P>~E1QDR;=YM|iW91zqkBr9P!^bAf9paphtUkG%D)FD& zs7ynfG+}X6#xdsn8FypgkE>Rdnpfet3c#;4Y{-gl0z47l<>;yi7%YjPg^ zn_@Yx0bo-7MhtI=Uq1_8y&8q+s`5D0igPU+QY^<&jb6+6C%Fvx4k5fL@I(P`2K;et zDiy~y2fP$;E8y2_SyM1azZXm@vU0WnUP-`P0{>{;LMj788{l`0E3o>u0^ZQrnBlDn z$7f8s+5kovq2bUDw!p6m^t4vFCxqJruPo5hGk%uTn9)-$T2-kfp`M|&N=tJ~{Ng(- zAk5lYTB9cB1mK4Ro>0ZgN%7T`E;m561`VWj(Xj1+ONI8wjlnGs4#qFXk>P@E^{KTv zjt27JEn67wgWtlNHyJL+@1WLHBMf-JG!qk6N8ChQEqtVV1LievE^Um?QUIUXv?;?wflrj0Nlh_Cy8!Pm^h+dg$CfRn zR_K%{;I*x(cc5<-FwxajN*cyvfRA^k*5Ei&>R3StCq=L`gzz4~?+Rm}C-80V?)c@n zUI1^Qj=h1qHAUy*>H}!og-XJ4YQVbsG;%mj1BjPpGCUr?^8_4Q*4!D(_AERRzwWXO zh9}{-j~BHt>I4{TOCy2f1^|+MsDN-&&gdT%C-|1{uh zg?n}&@S#>TGC7W(7mo%0I^fV;k6(_Xk|>0Gib|e~ex!SF5ODXZRq@Mfl+Q3Xmzv?G zCVMpBs#GjI8^4c*dwB@(;{yH-@V5g8vavc8c(>+!-G>nkKHbwricN~b!x^4~-+ImI zj-#h9$CU_p9&mf1Z27<&Rl($gs{n9AuV?rO{Kiz}>o^j)NsSsT{9F9~)`spfjvECy zP6i5ajRr`B@iPYaL1C^K3p~Y&YR7To04v(Gk+y1$u>*Wdt5y`ueFtbOlM%{I00h5y z!SIRrEfDxj0-n={MhM4E0VJqtgmBzczz zwknS=03L=urF&{2aDOR37cBz5hXQde2IL6$#S-8@2;*ld@LIy0zl?BUOfCmLNod;@ zz$HRCR|0<^^vf#XAA zao+=CgfYAw`216+SbOdOzOy1f=kEj_+^7+2+d|;I8_<)8J?uFvTfTqy!yi#?^J;)dZe5fDdllR@xf3NipzvJ3EHo1b#*yfM48; zfYU->+yTB=;ByyvlF)AVfPXK%72gNmd@Hpo`UfyWpm_*Ujfe->h&7<_7*Mh%W;1Iy40-6@IUcuiuq7#%yDmkpRlrG;cxNl z*tjvn-{E(aFb>}Xw-xXYz@wb`zWWH=UKr2Rrf4^Ik3ay4D-gnsfbWvwZ2_(n(EB0P z4s$B-DHZrRssiv$4fuMQ05`8uo6%GRK2n&wOo2NJ_g5w0^(`zJjT!L$dOdrdRtDZ& zz|DbI71k0}fTvu%$mpvA?;x~81K^z|(JX|u2JkqUj6Fje0Uu*yBW=+VmYjf}6P|-@ zfYN-yisDVO|OV{!SQsfxuP5^Dzjxk4(n$4F>+8DH!4k0X|9K*$Mb;foEsn zmeB4@mjbw(Kobi5y1hLM4+DNg;2#dWj?g|4z^4o2)}}ef4IDFu(c1yf6z0|H=;O1( zd{_hcP9fi#z>OuSG%icvBZcu?3wVNn*9N{{m>cT=4-&>eUEoiJ@+=2_FeZla`4bcB zx6UrCJ>LMYHfl5re+&GWbf$6a4GQq z!n4L4_(`FCY6G7ngx3K+Qo!p1j}h>Czz?ENX`NXgc({;n1K_!sS7~k25cme6tr`K( z7w*Bvz}pJ_+XVOop-p7KM+p3z0zV_*&43>j@aDkx3%C{VJp%3m+@%^GSh&DBi1A|=jed9=& zI~DjVp`6ozYlJ?U4%|+7*09V!``ni;;d<_JlcL!f&t~u6pEUdSw?TWK9G<(s z+KGkcR$ANpcB@8YbShf8zW1-A-wcZE;x#knu;Yp&Ev4&!&goJ3qH^)!pvlWGc8NP? zlF+J^yl6t1e?HVfv2e;g^d%eph^M>s^t-2f*er!&! z7h3zo-}5J8hiYk-W!8}qrba)Hf2-d+>0xrjl0O!|+50?e;9;>j67E#$KXPrtuJjkF zo*u8lm*zxP?J_>G!t5Wf6f~)KvbdK!_9POq7hwuF3vMx>GC&4DxgurBqZ+XEaG{W2Zg|RJ^l(sc# zdus3}X(68i+franf*hG?_*jDNUhF+lkP7+X!*C*S4*4Q7yZ*Sj< zV<^%1(WW-fi!s!ul?5>+kR;W|B#?ym7@Wj}3QPMB4bQ$=$><{ww#rf=Sp~@>lnC3= z%2;d{YciBVvnex3;s|OcsbuI{>|1G4(lWBK8BJs?2VaKLUR5clY_dXEtNhA!cTbW6X$clsCl|L7O!%d7W`FZBCXgfCuRqAxMXV+z6u%H#8o z!cvir;7fE~$cy5r?sWwGOSE4KZ?WXd{J)e&45#{v_V>?TT$Fy8mwe|C9Vyp*@fO6LaMMWEuV^d3$555>&@LSd3?j$=nkC zdch_9OJIR#(wE}?JKk8#n>s=7-8?h~Ko&{1oOQgn1h9GtAq{ zp!|m6{|bHryifd8qE`SYojKeK$oC$~xMJ@=hV7us1vvZz`ltI!^z?23S%^%TCY98b ztMU3G1VC!xvk;Q~!iqPOR=J9^c$Ny_DYz6S;$oaF!U&?UW~McIrl5{pd<$XA+0P>l zR=@NiczqGZ^wkpmg5nZ=cYwuxtUK?)1su6sqMvlB1n+Ytdeduw7bW_-!0-K5qIbWI z@ZU@Hqf3wu;ki$d=0S;mJJPSefiS>!(C)hq7d(iM2uB`a9SgYk4E*4(cn%l5R@~%i z@1Y#qkvFAFgj*N9P2rA48M*^TKLnu6Y2a-Ga7P&~BV5cU?N_7$ke?G=!i%pU4L}AU zf7)f>02}Z+0=j-E`#pqH-1a*tFM#=xpF400H$~ZKY47NWS2_}iQ-p+d=A7Z7Q0#H> zf_p+2*op5ZI=i?;RVpNaNHp+oBY8Go{H0xN+P%XTAZG-iT}CP3IiMqecF$~un%Ad*bksxSQ(%#-~fQWKs^Ic8&zLPD(!zq~hF5>6wT!eFfm*=x9K~bqR)HV@@8^ zovOet;XOG%GZp6QwW+pgTAi&Y_flrMYNWg=uWGxI_6L0U*|Q#}KO8Jtm;1=BVRo7p*-LS#lD z{m6E0JS5uCQrOGTK~Rol=*1^M2!D8AMzaALOE~V#Z#-}_>)+B3t$jpi)-`4O` zK0g@vbAd+!>Non7#xVWo_zloc1N{q>qlE!4qI+miFEQP=a>B$oLw7ppwBQ>I7!BUh z;O7sw=D%29L!SS)@jG?O+I63R_bsPBQxTT}@B-8YJVxCQ0G0s$Z`a|U&0meOmIwcA z`mc0<-`C}}tznp>L)m=J(NT$Rs%&N#h{MTd959YfPa@fALv17+I~2_J@Z%CQGc^31 zTIP?$QDvMIDhqIq(CXMRJ5CTjjb!IXA~hN5s<@0$I;iA`jl5)4wj&n`0o(L|s0?gS zGc<%Yh1p3)M&QKLIrEMS2aDTrNhH#%(Be=*I>)ATNa~_gB2eLRLS%yDO-k@ zE;I+8$Kv8bTqoe{gqKnt6CJLMjtmLqlwHFWJ(Zj?$~Ok*uyHcm7r%kg-SF!l6&#MU z+N4lLz;R}qQwBwZgyS6`sxzl_c2Wj}$$hb;aBQdK9Nhu!m7J3Uz!BgCa0a*n+yJ0) z0*w=BoI&FZ8gSq+e(8V@>WE+HS-_2ihT@kK;>zZ4T?l;PG8t6K2+p8tJ=uG}nQF9h z#bv=&pm461E&DoaTbq**y=|RnQ)9TfO?=q9!oDW7QpF_`=&c3%76N_CXiF1B=XT(X z@$o1!BD9<}A3}KrRan#d+|nBZE_mY^1Gw!~1}@}B+-ATCfIr|R;zjUBJhA#rCz2Rq zs1S)2xs(<$f2Z7t=?{VdugVgMv9ZLw0@V8`yTstT4IRd3UCP*%{;=}`U|xC{M2KPM z|0$f#^&4D{q%VMli%J*_B7v61m)(M&5I8Y?N#Gld?|fQ(m}9pRt)m6L%syP1@~^0< z5MjNk<2DDQtpU?QZs}b*;W-KX5WrS(OWzw{8+uEB0#MZXmfjP7d6=9uPH_Mw*^nbQ zI3y^T^9z=Tg#{>>%VH>ikFsD_nm4+`S8Yq-S;5 z{rZBj7lZ8t7848%!3t|Lx{Rc~$-67fP11Nr((KIWvWsCn(u`KZx}lNw7B}9chLDsr zE-?fX>NqK(`3TL&m$;2X2)h^>wk;5+p@lXin6UP4Z7@y()FDo$|8t(_dEa+Nquq5# z$nWbboq6u}`+3fDjx{>hgYn70O%2Wkxoz2EX=E(LHIb%~F6QIOqA`r7$1!D%A&XSK zQa&3tuPx^VyA%imAG0zL?w1#W(Ty~Hmv zW&u~G*mnA$XZ}az`o9zCe$t?bz-M5?EzT0H}vnKQ7jpl(9a^4QU zlTGH+O=j=U8^e2No6P^S$^4ZjbC48NGPnuFPWb!r#{76MZgO{io9jsIrA~wzDEtYf zQ1A_9MiTLCWH6mh$-~u%dv9v(Q|W9m9)W{lHXTV%CGnL`dDcxyFop3mYuy*1@|g= zSlLHi0|;(a@T}JYf?u`sZ(;uUe0cix#6q5O$|hMRKCo9IuY%9A$R~EhYp`dGtjy1> z87>?l7ZW~m1X-x$EbE=ESActg4+5V6&H`Vof4%-ZYVT#Z14YbV2F?Rh7M?@B9zSPL zw*k4U&(?3e1~cjuY8UFWFFsrUbySMwf3aYGmLmD@sNH+&1F^0_?@+9(n8{luqHH1$ z^>*#|a4dT0#BsO>{U|T&)`rVR@A6XYpO=@?$E$uyMic5E6Z6%hFfSAPX9wtefwO5<7gEmnQGRkxvD`y($=_m_e% zF6@2q*vWkZr~0jWYWyQNvE>#Fy7};bLl-vgQ}Y$hr19L)X%)2y{Ef+ zXM=k3NWYq#>Kz;~t_KHL9TV$oFq3VucQX#0K90dqNtah4jxiw<#ZlQSwyj@qe;xMa z???z1lf7lP{Pf6AuLpaAv3#*qfRTYWmJ{Bi@aVIeZl~#SnqE&hl*aV8TYr1>x7Qob z$vsRdlk!rdqKgIE?m#O#zG9ZXy#H){&4TEA0Z|1$7t-I4{-eOXgsA{$(f6W0GWmE5J?j zn1K%h#kZZUKMZ^YxSuee15B$hU&(o6aJ6>V@lqkj(|@Ea>s{mW`r$e8^9Des#2>rd zz_CIw^5rx-b)Kjzl-aZJ9q`V?JWK7LkaF5 z;;-Lx=(gYZ$Vc{l?{odexPFuA0N*arBiK} zAGvzbPbXhZHGKra$i9fZrVu7MPL7xl-Cghzl(i-&(q@`l?{0h~HVuZMeLC*yF6gf!J`V&z6- z%S%IUA#I7v+HfH83yYqmDgopRy9I?Z+!#+(E7n(|KN#FBRD=%JvMw<1_KnwYd?SV* zQ8l7SHNi(2!oc;F6?&S9JnWxRMJlUM*O|MISx$X^2EzVQfgdRji!0m)tk1B&BzGm; zp_D6?2#mEjL7JCi8(S+bb~p-`}8f=o#-!Ur)~)2L98T zGh8Xl{w?w;W(oG8XBhWhKYWL8gZDXC(XtPW#J7Cu-|Ug_zwwb<@vGOL1D>~n+v$G8 zT>v9GAU%a~Bc@CogtmoZBp8ihq^l4!8?@=Z({ykMM^B#JqaGSo&8+hpzs(#?j zOpLf6$RrXO{{xMYiff#X&bJU1UJuc1btyXD6&;U7$GfBBJ<;*r==k>N_>SoK&gl5A z=(t<~H+;=dNDg#`vPkl5HSCf z2<)g?b;(M7Y8?tmz`ptw^%vK#tG~{<#+09TkROS`xrurutI7LV6|Us=zMEV0_jzY9 z$?9;F{t+4AHH*}_ce(uVN!5lw<*$+t;!hPu!p>fu0Cm=uI(w};`y2@$2Fa)t;2xkZ zfJGgPIu`P@PS1a#_(6fM${lh~&%YT!0W&MBQINj6Q@4%x#%4;26!KHqZpQ8r_^H`F z*aiGeuft;`sCyIGOj)ZMy7$|x<=;75zZKAMDtNSj55av&gsxE@%-m41i~N*fG1l;2h-yX6WKIa(?u@7^**6Di?~~JA@WQ zKJD)zcPNL{o?7>>om%XRyvJ^QqAu{RSD^yCe&mVzN#Hr)U9Uz3)cq!-K7x8R{&M*# z;Wo;1hm;5f@Qq4ma;Bp78RQU-nfme}#@0Kc{~8 z@V#sK19z}(h51FrQA1C}I?yfrlmhpJyq8(3lvo_inOdlB4)IF=VJKf-cG+#0F`wTP zhR@W6?n)?w9%lZ3FLTTL9t9E~D?CwuKX4M50|tOE=bxxQ0-QnbGT1HaVvv6F_~Gg0 zwNlEiEh~=>-1$WPdf;^FiTW{M0Ehq&z176gl>e+8I44=53xmB~EHFm?K@fl7ZVPyU z@Y`jgl%pFfjNZR!p8u|{^X=7#pQzsm+z0FeR)90JPt+d=)Svy)^KFp6?Oyj0^~1XE zHI+Y~%R)yEQoM;eyjq^-_VRF}t=YMYbB1WfQmJ@IXL!xY>-d#3ny4}=!fIIW-2B?9t*n-hOYP*w zSuqsFR^Y%in$E-Z9lWb1p>DF8=#_nodCAy2GSpgJZDeMC6@KI}=Bmtd`|F6QOlQl-QIA>(HOnD5toZ!$lv@mCaQ1GmN<@a3AbP*t(Y3H{M%{~ z2-*xS!x6)_Txfl3;NL7ivBtz~zD-&UV+sCEA+xlQjx-x!ZJ8Hu^NI1 zL+$nUf?Dgj!gDt{kmzV-CT?GzZLgWz=k~?&>Rp`OrmHOMRQCFkKBXkT!U0a-V%mNI z5^{BYWi7JJaOM`ye-e50-#t-x@UvE5L>0IT5I-VB<`_%+tf@!I3Y_k^*ry*=d4jdP zXr1s|dE|+@!1KTJMEzl>iXQj|<`qyKL`Aouvj|JfvB6TIIF^qOrTqrxFbY$54vBID zsf5vRaBDY>!o$wSj^!VCS9u`1xrHJ;)c# zyD~bhb+t(gKgGzlqh-Tg*D^|k8?Akh1JMy;S% zz#RR31J|M!0a4F>!ay&2({t&3%C=T$J#})ojb1%A162qQEKP4wPQ4A=W*XKup$(C- zZ9TT1JI&f%G!>03!K>`i!aWaG!_xDle?&gX`U^Zuex5sJ)YF&+zH$1A`cb46ASFZU zR9a+qR<>gf17liQ@eUG~d@U1V=L%{~4y5%!6u z$C_B7xwQnHYHK=5lnA8`=$31gbgjIg?|_w$vG3mu+u~S}tL0$r4^ zM!V*-WxdJUWPgN4V8w1H6hgH0-(1f!up|3SMcW2y8BWr11DT~gHLqB(=7M@)_?oIp zc>mF3hB3@_+J8lfbUnN)GuGdm=+hy3Q>{>wcFrl-B^P~Nk&d_#~ig6X!z zFAbI{xJZv3l$=^TSI9LwS(U@k*wW-&74mkn`<2fXeNf;$8a#~(qPmWEhm8zJn zlWb9J%DP?2FLOMbhrKF7=GankfvQA%ATMNBDoSt^@lM`58dqsdB9WVnCSrrX5k|JP<4CVrEID?qdbzOI(^++|cXWPj4(1DG z5qn{~qz$k5rBHae`&hJYqBOhfGbc}E(HVy2Gi8zEa#-Itq3=>bI=)jZWR#2m?jKB6JqF5T@2 zF6O_YcNxsHCSDbQl}X0OO6;@SDr`(E5lCzogc4Qm?5)2+-G4AWE!A|}xGFp^+}jXt zkm!3;NDE4hd)W-af~3={#*Ac76A(FZ?|r`$tdK z?wo%W{iDGBz-NF3U=JW}N)IQAv_cl(uJ|=|cbOj&o}un&7w5Brt4!P!5A zUhZ%dt%Vcc$?u9E)Y*ZjI#R{IdHpp5YW5zt_TQCwList}|7XAU6TBI_Yiao?N3y|; z?$jmBN3T0qAHM!v{YKz9^v6)YjQWV^fdh%mtp6q8tkTs5Z3u|-7qv=9)C>>1}($Qi8 z|ApunkSavs_mZkk7ovsSctf}h60@S2!%M|zX6bFkXmXe|hl;Bau9-AgJxN*|I>@ljOI zCf(2UKXFeY>Z^Q|!&QmAK=%0CIJz{aeDj047=g zcXWp-No=PQJkQS*{J1ish0<=nfISp2*3(eJou-7POm@C2olY0Fb7xVC?a+A!MnYL# zO{%NubZn=y8(d!H{uG8oX`6!|Nct`@ztn-oPrvK$U+`Fr3O03-oJKmw=wxnWJTf8c z>GBfPz?BaDH}*DZy$_alQP0pf^#0u5qi>C-6u&6;1sW8YtIZfrT~F0r5!j{d`Wmv` zyvvv*^!v#_yzUM64*ht)cjw!Nu8Ezi3w*oBsLp(uH7_;UJ9nr4Y=;SV<94II$*TLT z`XZ}3|95vcrsM2?(CS%RZkO%@m~HhK{B5ZIM(j9bM>4#;wr1oqw%F&(YRIt=1c@ce z5Z_j!!WK^q+`SG^*T7le=J>gKFK{LBa$qtSK?T`= zDmTQ?eXsTV_+c{WlNE5}V4Mr0(_5Q7SKl>pu6{jme*9ehH1K|41sDd{n@oUrD~K!+ zp>3FD-hknKgj=>o8FH4soLy^{0G^NqzX9@0^q;H0xW0&B)J6nju>&5woiEFmBrHR z?3#DLt(u7p3!nR7V|L;MhPJjg*qIF$p}@1tqj>jfZ#bbJKE#pRAiJ*R?us8d98DaR z-@?)qa1b~Y9bB6N4g%0MxJUtTzVLMBkLn*nR8O#Hx3E-fQ? z$JiR_x$NJE4>3<8`WtDEC^ny5CND2QY02iFs|v~7@Cm^pO4Wc3F!Iz)jcB?Xs$;PX z%2nimM%oDKm&awsmU#d0iB1!_RZNun8{5I*3LN1iC&Yxxe#y*c=XzLWIB*Xi@-*vS zAwH5rj+8!?naqr)ILs@O!Rp7d@tlX?r~{?pu?a4epwCAD)u2}xHEO&FrUY|h(s~#k z83iwuDSE2OrQ`d((eV*vPsK;lX2N{rweNWPz$1UwAKV3lSizu~9{A;fA1jRaU->)C zgFqH|H}EiU_CK7fe+Bj4N6yth3Vac`>37f7?*Q({P0yQ!mFiuPj4hhk7*eF;sncJp z$PO`mn)A6|J*TGzMAVDiGe9FJB$aek$gX&Zij+s%78#o$p_d|sbUqW$a&Uuw5sEYf z$#RdOUJdp}2=?f_M|G_Rx#00QF_Jw1rV%lkB5X#2<>f6G8)uoHL?WlMC=dt#CT0oe zrS{ZFTu>uSZlDR3xP=UhzpSt`6p^>u$B;6p9h?O=3M=uO<>^JbMA$jy$pE9+jRew*khU zo45!f%jQqCauAeuv%RoFmBKZ}!xX03oc?`+s@C|54l zEaWOxWXEJ>8d|DZ33-DB6N|+U_>l#txW&uQ*UwybzWzAy9B?D%UBDFZ>zD`E=@aw| z<)sfs}KAJ-!V3g-qUMAh$>vCdL z#a9IR$)ro&y&|IF={LUhwugW9U+r#{Zr8E4V}dABKKa8YXrCzD8cEV z1YJ=!ThO~Ath_hN58vMFp83N6T%7DT@)igBZ-*41D;A0E-qq!Gb@l1LH``hBB5y9d zMSl2gV`Z(h)!Js{PfW5=7O}1TJRWCE^?!emYYIP=I$u8tT%9;yzYiErp0BR}-)}nM z@b7Pm?{t$n?Dtai&1Kju%z4uJ=)UvyD=BjpSQt28zZdmdRIv}k7cpO-K40$wa=;w$ zIQ8-zU|Q48cR_#f(f$AG7vJ;#UwGiY_i)bA*^@ns;s@j-3$&D$XL1y zUSf;9^N{a`fhSVGx8;`pEdxv5PkHYYX(FfZNhOMdS-Hk47PO1>toJFhSR(O1^PbG_ zuc_NJzLRRS{|EVJ0gB2>-e_lo`SE^2Tp0pMpW4n-tZ^WF}h*7Ua8(`>Y-T z8Yb0-GzcJqBIIH(m%gIA6=oZ0(UP{_rN!Z|J|rk0$rcNIWE~X+7!>?OG6C+4Q)Op zj)GHHyt?SM?!|TjI-%v&(ejZ{BLsG)C1R#2nytHywZy`Geki(gd$cFYwQtY% zC>ZXZXxCtOGTIgE-5KrL5$g&0+kwAbUD4jO`0M5;))npUO6=k%CR{#(b~1Q|aFLrZ z4Hm^N2WZzM^;6x`zqZ8@q zL<)pAZzW*&7H0t&pE?*FpNNjDIs9dc!N* zUb*{~3tLZay?^VkZ~es9$F`o``rOtZ+1kIgvh`=S{^r&{#`Kz3e&-dBz2Y}s@y=J2 zU$N&EuYAQ{zMS(rr2mr~%FRb@4yKD-+Knw$C)pjez_c0nK7;yVbE4R>Md7m~yBVKs z%|8iyLRMpWTgs+ZWMTVsI~tB1NbN4)3W61p)hz^h%v)gIpf2PW>><=vVh>Qk(hV1M?SsLzS-Zq9%Vji3ft`GpVIs+dApSS-AGx*pR_#f zqLm{E+Qmq8jlzBeXp-I_u$6K=*bq3#DbVW zkg(#>olRKXosY-WZ-5A9bDt>J=4XUpJU;?CX}kz=v2@9RM%WO}c66Q04%+uFI5Ji~+%AV?7KP-Cq zjRL(r^8InYdB6WZ`i=SP{fBk2c+%Scg|+{yeslluZR^hc@=4)gad*NSfEVf6|2X7z zJ~!xn?7qRCp5Ns?{_f=LlUq{W$-}@oQPZgD1b7j_H8o1IHu+=!l`O^WdnC&qt)vuf zkU@ckgo}`BU=n0B@)$}HmLr)dC6N;3rRpKN2=p9@yzhPUuG`+ecgwy{to_2CZyea= zjpYuoOKIH3eu-offW&)2bEq#x{c!!=7yaMknHngW#$fhSX7lu~vpc2Sv zEesCo(>P1SM?=zx#uKmPL@%6Xpr9rP9U;$|4-tK<-zFXIsE1={2`i?ltw-5Z6u;-S;fpSD98LBixigXk-yQr%wf5ipn#K zIUmw)sRJ9h*SsjbUJ$lj))#9W^An|PL&bzYXKQ?5iy5N$c_ zL0(*2QmtfsL>j@PqEn8zs{kWHXtU(`hE%$!iS%%MBJJ(|*ZE%^{OYgtZ~xxQ_IkPG zundRE9OnrrxJYK4=S;=4bWeHkLgm6I&U%2ZRC~5Wn4k?|wG=<-$vf=i7*_VP{8(gj zms~C%gJkG8m}77IjLb$6A^Na10{`x>|5yE2fH~mpR{dvI{TZvi7ggC;au*R?sj&L7ixFhre@I=)n1oS%spSMTF5d8+=~zyR=3tNxl*AGGQ( zqPp_+7=ANSJ{!MJ_)xM@BLncM`sZHrRQ)F4O5o+MeX7pMj7yz~v11U_j3$La35Y%+ z>yKz={es9FDp@vgS&q!H+;fcw87Mp6W09_o9^O{r&Q3zzs;lNgNgj{rT`4~j4>*;00bMDz{teD}Mzm&=Y9yu={W z!W6fm6CSuD^b?XlFRs7hLtMs33*!*G<%=*wu@`u74K0)88K6!;@R>|4S8?=$uv zMwR+;U#LIY8O*sj)$m6Hoyn&>(N1v<$R}?EPWE4+`sYP|>PprBDC_FU{udejr^Ws% zX{^!+CN>(#z7{gbD@_Y=Y!+^P2V@$ z@&xf+AzJ-Rer*0pTl3?W*P3m4pN&i2Ob5-?L(G^QU^7 zKhu{?{#0-C_pJ08n?Kdt{<|XfHh-$$B!9xs(zSiB=E>CMi?u#XoA+uOCT;a^+g|$-f`J)L|(9wq3&YrhVGR|FDF0btrkZ@joni zaAPqPe|S8oAJ^_$UQ<60$0Z(<|DV=)F4z9>HPQE9p;5d>{cGKxe9fnWbiXEP*?RbC z(f6CSd-zjgZ^w5i{;+-6e<+@C{3k={dZGMyK|Y1Qo1`TmeGc;{B_CooWiooPlk!^s zI^RnEtbYk_>&DEDVm9?);+FWdE==4SzbUKlzd1e4kA!n+HpS=C)4WJ}roLpoF=a6A zqh>9mOV8z5^7FM5Md6|ByT9%oZ#u>Ow$y><7jwTg+quJ&vWCmskUsI9vhjt>FMe$K z%vvF4Gsd<57&p^))?VAl#9`XemRI|LEvvS>&6oBE+qbo?ZGBTnKW#Hd+c`6Vz0G5I zY=-9+GsbN{m;Pzv504jJ)A~(cG4`gN%sOV;+^k(@ZqYH=Z}MQ)C=c+J3e_;or2s?ayKscUuSkcsXUuEA@QJ#2wCa zxGdp3hszr-m&sM@U)Q(Hx@*#X_EAaK)bonu!M62^*xNqytk{S8NvqgRStX2VW33yl zgUfyI4fUaQA@OcfervDs*f>qTO?~>2T1~I!(WGtWb>pvB%VE+m{Wr)@I1XKdY&xbt zyYR9$g~Ho53WpWFrtiWhrCcVR#<+s=UMRfg*`@husZ)~|v%a;?f4FRyQWwqXhvRN2 zODO$tzM8{dN|c@9J_{p~)tM!9e z(+KU6e-$Rm&8R8iIOaHd8a|4?XZZY$l!d8K3#=h`17pP^*onch{3LHRLH2=TfUSdm z9Qy-tVH=;J!v8}AhzUN)U2mR11dDsz9$B8|T3%S*$UD?69;ijdL3xAluA9go^u`h* zgm4P8qEaReDiJj8ps%xbhn$sYEHfK&7#}pZT9#Q_6aseP2nz0L(Mb13x(h^`bMs_E z3KXA))L1TEoDaF%sH|%Vz<7kp<2*p{?6j7^U9LieYI^=K7~6_hv}sAKp_sJ#JiWfp z7qgHYBlBneh}=W>8Di>LLwMZU2YH!RGIpfCK+`8z(}vj#j9Va=g8>t_pF*4$qyPn{ z&~Ph*o7c;2!8lSN4)WL>=?Vpto8VXI(F2p`{pQfuPQ3g#ztt}fZZpO46wh3;W1~Yx zi$|q5Pf&*CrGR+TkKkng+@FHa0%~6YZ-BZ2Jc$0!Q9ot%|JJHvf2r_J!u$mO^FSy1 zYpvd?Vt=V{IesOaWLxo-wmc){RmghjFBR}Xe-8c!m;;7^>w%Ab?Wy{gQT^hgQT|yr z{OI!X3XGyw8r%hcXWetlCys-WZupd**ScFab0PPR0iOm#2B0CI3?4Iq=*LbkeuV(4 zjmcnTbsj>I!p5-yQGfVe%bW}om)dzuQzzA_}c@eov#LBRCVp*MU zu@;1)5^PoGXL-CBnTA!cFc`28;l+#Vs0gFq;72oISb@lRal=S2ftkG!x>A!n{>6EO z9?_ZgF$%?6;cA3?M{!ct0UI2StSv9V6NM&3;FG9AkP7{V+6yCjSnPPpRDe`n?85g* zYZ1O(HbIjGy+`LIKouE0(~!f0MR#G2^5Vfgk)pp`G@Qw9Qz+gK=`^LO*%AqF1L0BS zYR_~B3S46z;8E$)+5(R?xM~;vVZ61#Bh=pJ2HjDuac`e&t0*2HO5DQ`w=;DaT)jG| zoG6Xh_=`_9@)ip`38B5|U{L8BqF%oj_%^}&98Zb&8~yd9B8H^jdDClTh>gju^)5`N zmMk{~Pu>FvRdUFR_EAa!=2>}}kIQ3$n*Ush3u&KB*m6!W^_LLQ(U2X-=%Pn% z5vFBArUR+MVP2PrWxH{5gHKu2MT8)@j1QKz1!h$V-aUH+-epE}i^_Og6zXFUcjcat zun;KizD;DYy12Z0+`PP`$?&QEIgnA@goCZ`NE>+P4j^0CcuOiquvsUW$kB@=!nq>B911 zM3ve13VvP~osM$dxfwQAaJ{p4NG?#dsadIP7sN%kSp%9Ijm0wWbmprIES*d?UG`o| zBxEsbQz#E9Qx(X}VP9uxRBDVS-gOA=0IbDD8!)tuuOEvP)IGv$5jv%iOh>j!-@nBX zurF2Dp7dKc8OaZ8F52TQJH){+ow-lV@XG_iqV#8!DR#pY@^J zSkiH|k2?o%zg$be1)iQ7u;*6ecznXSP=01pHPOfHdL|QI#M<+0)Ci(A?X8bUW8qtOf`gRvM*0B!{Cp5 zSZRLp2RY8t;XYT1T3@w@WJ3k{$~~Q_UvA$Ij0-a*c7p8j5j5oG$5Sb;58=&I%0T%g zo5Bw~@Vf)v=|d@Q_&C!Ue%G)~@Z@ar`+(q*wgMvQqX_T~^z^)P;9~XY?_YQh%PLoc zbq{KYcvx9?>fT?d2ue93e)P3Z*FOZ@58Ml^0+YZV;Prq9eDyU?*FOpTk(fiD?x!Xt zjZ&&Sf3)nJlz)J+=hE0akj=6sndMg=87H9p<=3l0^J^%7Jxg~Krt6)kE5nE2+fdWjPwjsA%pdftJVJRVLkT@8rF&W?Gh;xy zs7~SX3bAf$N=B1_@(;H0mO=qtKe_gwUH22$UU%PRSAF2czx=?1|N1p;KNMei^*wKR z^4$3cUi-Qmu71(vo!6hd=BKW@_ue<%_^Kay^-Zsto4fPQm%Vgu;p(f~D+_ne-TBP3 zfAOOq{L8=k_SO5p^_}moKIfwKRr9WAr9ToW2sunXEo=oC>3v??+#HOO1Uhyn=wB-VEhQaY<9r-5q#h5fbk=^n$|-`FKJyB>AP0KNm^G$5~`Q9ZhriyJaJcvjzS7z zG@ufc85x3lgeMuIdPG53k0^-E6$Jq+qUrP<{|5S4zXm{5XtFe1g`81CyswjgE1Y@(LsQqU3BaJEozA)7cDzbWHi> zii5aP0+?GA$+4)DIf!DRqsb4k!15Z+WAH=t7f(X|R}@m2Tps!=;WAz15nn!o_u+8} zGkHyCG-?MesE9~mK#F=#z4=*!B=U=gi9Z^ilqW|hpbV!+Y%Or zIAcjzcx4YF-Z*=(M}B&}vA8K^E)NC*icQS9{Fty28|h4$5^G~*Mxp8@iDYSP0<0Aj zCo%cymY*K2qqLXI=B2!c4ncNw=uoLJA%%y;v6Q8t)Sn=kBvqsrXAjaLv<~C?JE*_V zO^>D$i1v{xOH!YzVVrp?QUKx}iC5(Jdiyh3NG-=>PSdT`46A`sacoEulUZKVOXlK* z0!=2&2KZ4Cz9OHql#8oe&{C1PSIkyYXK5@) zwZJh=)_!T)5-(#_6_P2Er)m+J>NI&89BMqs!r3OsD1osP?({d7-gqXb{S>2QDR+IweiGkL_8(ZurV7|%*GYl!N5rFSK3?E2x+hoNi$%C=K~_P zic%7cMneT;(-TrtM$H>~C(KIsLIWmLCB}1 zmm#V`)p)L$SIyuUvjz@@Vdd+|TAP!aHfpz3q0m$NUaM}mDgwFHey3G;S(S;-#M9+8 zE=ICxom`yMp0#nYQh%fAvD_5dFlx6|d#p-*LqSJvFgHv}(MpKn&E>Q3XJ=|wmAP3} zCTCTX+5O(+C<1U{+XwYN^3e+WAuTmZfq5~_tPEG|5o1#nR)VRX9bLj9G&$;t@M}** zUqdIwWS1Qgp=*QLNiUx$A|8mSQxnYPBSVD)%o?;RBVv?lg-no);+-O9ay%FiK{1jK zp=`_qsN59N_Tk{M;+!%N$4kOuPHc1CdlM%T^iJ;O_MeTpl5`Czpp$OYrtQxR3p zt)fPHtV4{YUM$4fcvOEgZM{a-=e(Lww{@@q!9|!58lwbN2hj*7&cxNb06VR&oePpP z{(1-`Iyj8tZM*fh-A3%5h+3~M4vN&Sv9-7NnbN^@&^#u^MZY&;&lz4BLn`ykw%$2O z!em|oOKCI`gFI0!l_+H(LlOxZ!+%2dFLvv4YiCDi6nGQR4jiB-jZaLv|EYsb6x_pq zePBR%o(Qi&(VzPlFYS{%7PbiX^Y1UQJBfTJWHmLoJAVyo!kHw_t8Tq+KvaPTzy70r zv$Ib&#LvNEz{DBE|DyP-E>HAc`I47-m-W8rW!GMQ#r7*-DtZ<7cfc!72}c>}-4^RE zgr~aq7NS?g)d(dj#L)}`nTS$!;B=uNjNyk=+5x>cpE)!plQQB1Mu&8Dlhs8y+IVr} zXTm5vOcN_JAARJvKKby}&ba6O zTH46;y)TX|%(%3RdDqi5@WAiA@4o9!e4+n!!j|W?{|)}ed{4e%U@ycCD}Vb2!&mJ2 zDbBZR%SB!Z3MNDU*W218nOlG7>H52XDWD6u9uPax*D80p^J82{cB6UFuk48^M?-Wo z_91}8*We)j`yx3;7*j(ul5v`pXgC}+``1(g|0CcQ6fY{?yJqEts|Vb6*iN>$^PG*b zwk(nG*>i6E*nBN2oqzUp z{XW!>SrEO%$NdoRTWqD-hf47&>Dfc<{b*EXa_8I^DG1vJMRCD1A{7~5@ucYJ1np?_ zIp210P_(wJVXb-|m9j(xxhO9!$k&-Cp01w;u72|A`i;Og;5_E% zfG-0kmt*6qze*9Rw4`+2{Pz^%PJ6?gj2Y_jLVv;N8!H zKLI`gd=dBtaOGb-U4QtQa5+~rQE*DDtBCL5GDEH)Vzct{K}ASP)yNgE zMfiCwgf#Lp7WCk(ldoua!B^&MGm_YG_q3Mx2VCT+qr8>n{iZyhy{l5?=2oOc@}jnd zR7X$JR)LWwpS~}7GAn4x#zZ_HKi-%ppZNeY%SIuOa0~UNJ_gs>h`nqrz)^ByE^(#P z2>bo&()yyjY?PahT6M9!0&21zfvnY4=nO*5F6}Cd0Ruw6HMrLx zYJ}@6!y3}%$h`HSA4q*EMx8giw0dK|1ohe2AEmxE-c8%DF}@8YbM3dWA2)ST%OOZ= zAb8d8+Rv53_2*We8RIQdz4^;2xFt*w+(mB+z# zVIaoC6Wl#(!SNOzVTowu2T6pcwe3LRcByUs^}=qG!oZm^ls`?JpT=^9JT$hODIfj? z&u^|?yis}OF7w%&+t%O0UPYsHmoJ7KMnumV8|H93M;m#ujs7ez%Vw`qV(vLt31Xb! z47XZY*OjD$^>=b_w~7#-g~#nwXQOjTD|oaudsTAg7Gu6 zFnyPxyKR!{X?1-D9Jk5eM*h)3atVaPu+)>eO6&X-^fJ)o$5!-)_{@c2hq*HmuL$Pi z+u)C7lE=`?tN5f~F4+tC3*u@SAFK;H^5vs0q7CVZdnk$x?xAW|VSPM%yg*GDk?3S3 zXgA@iWms~vBngGV;xbDt1uPn4z8Y|4Y*8PFmuj_+d@(svSYtAAVi0Wq5NXDCa&xp2 zX3y2&u`f1~eYaTwyIT4JxO-Hthk<-=Gpp1q)tkG#-(=dhL{y%lY%u zwOtv0mrQl0FG)LW@aN}GVw5gvV%*%HmI6_hFO|j2HRTbF73)2wxo`K{3guf8?qNvyw&;X_sFP$oX89w zY5vXAF2%Y>*u5-Q63jN$)l5#3-X#SxGgEFAfn36*ex%S_8a$HU-zvL#vD^)N7DQ^) zs;&^URYQ02^Vgccevro<)Q|A+EFwBB^Fr%ra|ZiAnDjSqBR~BMwNI$l=28aOCD-3B#+S~3vii#~ul<9x;twkQ&05h< z|3dB8y6ml6vAeO78U~qd$Bm73Nlm3Qwx8dfcD_#PLJvQ&lSPq^V3{qaXi8=2w$OtT%nEIZZF(+o7SxHZ+GHf2;c6?QisBUBS6)r#V!)9SvI` z*&c1^_!kuG<9C67%=D!i{rDT?_gqrJcA0W+s4_qAqVeOuaQy{xl48AU4ad${FB7U9 zL(RFe}Y_HC%&ONkgx$QHF@4mGW7(vQDY{|+b91LEc%w(7J4|Kp?|^ieWo~|B7{A5P@~k@H=8nJ958hs<~+Ro*my`_}&W!_vi0T%iq0Y`-Nh-X#Qh8 z%}0`k3b=Uq3#A^cf1BsO`+_xa(exXzj}2MBwD!~58x@+D(IT&-iyl)eB>FtxManea zSsr4PAvh7MuJX4k1|$3jNJ( zmA8<`CV$KbmP2uAWqsQEk)jAu6t}ZnrbFqbR5!|CGBT*IKwuQfIeG2%+z47GVVnBr zWgb@_zGt#8WsPXXSQehI4{^CK&mhgPMnmb#!`FwNwP~=nT1Q7`TcsgHrDCEKYvZXB zyu*1tWjVX`oAp<}@|*QuAPd|N+zd!L-RJuM#m?Wc?M*!of|8&PodnbuzLfuf(r>Y{ zm>TfYZ`vRE8<$HeIIofX%4l5h{rE4kKZ?bq3C*6%-x>9MKPS(o^8JIRA5^DbzD?_| zMZsd-L17!K%XLd%_2a)-{x{yQY`B~Fr`;ccFOpIRcN;G}e?hfxte*?+j~ddB^@NNU zss4-a4`RD6xIp{u#~lYEPv>WH>(lTIfi9*2#dZnTW9itgLp;t^^sIkD>DP$Cjb?;M zZR9Ybr$*NoBWkK4j%G$5r-$yR1AnUH;lJD_^XRm~vMHrmilFIV8M0h{xkRQ>_FJVngf-`6)UrP|_!yoU8!TvLouQuAXrDY*LI zogrrR?L!~2_gA78#ZNj1rgDc7+6tS~3wA{>v;+RVuz-I0t*%$e zpFG?f=STXhwzDDg(f51E6Rk(qzj;ykEBst}w|4F2TUH|viAzYTl{I10=GA3J(+crX6m3KW6c zfi~c^fV6k>=huG=`iS5%!%#bn7;32W5{%y6q~?bY=m(5v+sB=Icdzus4fGSxD~AR{ zbLKGn;eGsai@dZ5=d4`#Sc~$t!dW-x#t*+E1A`7;sULO|tnumGyLTFP)yg`$wO5y= z2GtM0Ln(JJ8r=DBk@tppox%AJ+R`03LKjoca|_iE-<6$5$Vs)*Fc+o0wPPhqya>~H zJ~sYXDY;%rX#21O11eD)or(UM^rvpUtej2GU>8df^Z(Wt2V;IS}ex1gth811fkWcne6E9Qt9y0 zdTHj^u~>IWBn4@?nG$5O43*4`Bo7OX)zTW=GuCREnRKDd58wDgZa!UNd~@<70Z^(^d4=Wm z)fscsYcfCtJ4%I>67+2%e&q!hVq@;RyC{dv`^F?U`fr{QTuT}CRx-FdoWTl0o1rw# z!}GcRED`k3}MJ{d12hf`y`;7tqf2Usduo=Y8| zNxZDGs(=X?Y;r2g@UR1Q;vJYqiYlL%K89!k`tTNSZDysft52o^c`O!FbGQET+&Wh< z+U;twLw|Sb?=G!L*S~k9szQCXp))!6*vGMPGZ8c6Z zK66QtSrUX5Hx612HbNTQHtU~ibeKkJIyLhc2HrlL*}w(zmda2P^C(BzV=3n>27D#b z&Zuu4ews`Fmf<2B0yd;eu1nKGcgpzLHd|h(Rc~n-O(>QP;oAgm~rCm6LWl7k`{g?PuRqcaNeU`XGHBC zBC4TdS@Rk;<<-ntuLLOIVON-?r&|%*d zcnR!69%ol;cO7r91isXwgcNVT!e&-$vw^#qLXN8|3-i=gxjXRTTZOy@&ABFWy1m+L z@Al~+h#EuQLE7+;ZAHBzC=l74G{;e7b8;i@%~z4Ye)#x$t+)F~C|PF{ie|BTxLgy7 z-)liqfnCUBAVAe`a^EWCP37A9K2&gUP)%|8fB0?~Lg9pMCd*oco$)mD6?<4G0=+iR z^bR_KcZa%|g|-VpWIBW*wd1S@i=kNk#2Us`$b(&hTKem`G=DM{n|=E61&wOQXroWx zU(?8K^o2Z1f2fLR$Y6xq5#8)P@ZUUkntb~42Km&^*W}F`HA3q{4YaM=akwKw+w>h? zsrAKf@kYuEu!`eYWoA9c43W233l#*=vmnr@kyRv!%7Vz$FDQ9uXvqD%Byma=&Vey*TN3S0$XUeb5*;00PN?#cYJLgTvN{vzc(q_d(X`o z{{L(L56!>jmmW^74}ed-C!QPWgn!>ct+S?r^HdfXr5b{f5x(ywqfpxIpZ-n|TtG#@WFr5W@^_yF@RuhH!1lBoTQBlOgjxp45KTNAEc- z@>KQtBwIsyvfUmj+ntd)P+bA}3fmn)YqEroDZxy0CJ0 z`M7n1TTxP^`$x9{bq$1B%bAXj+be~MyL)G$XZkEun z=^Fl&pT&UY$NT}N-lsR;EHHXvAXgW-&Z@|_$6VG-9;bJc&oQ^b; zUiS+L*BzwS^FqS)1mSvLNVwi0-1Zj|ZhH`J#|sI!BM7(ig@oG~gxmE(!tDye?S3KQ zc1t+;!q31OzWKA$o^@4zHG;7*D_>-ros!s-2-ZsCk!zE7#SsZpQa?JK#{_f4`lfTB zQr(F^KaTA?c6Qz3Gc%s9GHF#KtfzqQI(oN^xcE1{QUT1nz-53)sOleiBRJAk5id&zLE&*lCIj zaGP?dj=;b86#+UH2f{|@_JT-|7T+qTLv|%@Qy{#RAiAi8s1?}^vd0nz*=y^S>P82S zO08Yky0ms+KjRJL$3_MVoo>TZQ@(>Lh=UDsaJY~?!>nL#oyW)<+iGvzf@mbWkMQP> zuGjij`;wWyTwh_VZ=`RqZ>EneJG?e?>2zuwPN|lhCuFx*u*|-FxFYuoy$-jj9B(F! z#39|iEr3F(-J;B?mFv|Oc%xL-ll1;7(tD&4Wn*9C4iN_FCX2EwhhzFm6`WIOm+jeY zvS&B6Ud?S5%|6o8?V4vcE?(mn$qR2{Jh$V3YXv(E{Y~g^Qh!tWo7Ue!{TyV=Z0eT;V%#KI@bb&{?jjd=|OI z)-!uyWgbRE_Q32aUXOkUm)Ffq=x#*HW-vAiYw1!kJ8U4?_zHiJ?(IA5Nw!6JE8WWU zH90VwBVYuqd!Khv|K>m%8k&tmM!GI>7L-{P$89D~~Hlfwo4Bcn)*io(S*I-DAc zC?>9FXGd>WS5ME*ShPLX-QCf(3)A*kv@6=Py{E;w+{_i>31vgt-$yz=UXeLW+gR(GuY8Hjd^$PdZzxqo@eSm3mgIN1hSV1H^-i-UkZGA$20Zc10Do^ z9#{ho0(*eh0S|6}roIY{1G|7%1Cp;FG+Y--_wRax^pAz~lBXqWuAt^aZi6BH-zV=o zTZF&4h23Ux|0eAwZog{P-`e?1109&br|wpXdB_Y3?nf`b;<77Wbk&QmzUJ-g@+``q?N>FXcx&*oxs+LuW65fSNmcE8j zVF+!YK-p1Qo@M$)O4u5*J&+ItJEL0FEAya%*adS4KPnKSM@3l}+N$H1@2hl@n+LGVVc!%mL6h|^jSGDu04*vw9DzOTdJ z93;XG{@5zaBT|VXO4LELE`Y7)P&f*0Jx?EpSt~-Ty1I`U9+FnCshX+1U?$Z*S4rw5 z60W2wrJP*KvjeB;w73EOo42z%9j9TPD0EdW0((0@JA)iFXQ!tYLvKBpf^Ya(dMcf4 zyvJX!tO$;8i77o4N{=y`3)!quFiDFIne`$UdUl0ULXH^*Mx==dpfL(B@Q0)#?h9*k z^V|Vf{2oMBn?jfh9tGQF^CuY2#&ej~ji&3un%djqT`)7y&98yuw%yZITv)DAC_ShI zAQO;BMJsEN7$_oMD-Z!)T4|ePiVd)TT9oD_-wthR8uVgy9`tV=B(l_-S|3yPnA!lr z7*{`n=fd99n^uTBmV|`5-4;16J1my+CAlGFSX7Tu8I=fxf@_8fynSCucD*IRzR704 zT`upM8o}1LyQhfAZK3Sa2Q!0XdSeh7FnxsZ;h+d~Y2&)UZ)|^`GoH$^@8eXXeJRue z5`yumcb59AbW}n)W!|O1RF`{54szHyZg2Lwq6T?CRkAU%+4Hjgc)%j=jQN^D9DvVS6#d!{y5&B>g;@_JQ3R;-FzJ|4utFA8JdkD_u)%b;fYU(f%k7EK6+e=n8Acxc1|C4oZr ztw`MLLwayD_k+P0&>=5^{7f-w%d1ehItnMIS2snpN1zN`=4p%0VF@_^>+J+ZCk*SM z+>^<4Y&xDPut*3j5HZcqmF@z**aRpiXPNaGMb`H!L^zx)^-841`OLF&;c8I&KvCl9 z^;C(Qi}i|kba{25Qi7ZXw0;SO+RHQZYeMR?hF`UlX@{#>y|wTl8-l1Ji!BeNFE*2o&{;LOZp3KZ0vHaSPtBg^iR&=rS?&abK{LmVDkOXkv_%3CmR zZwhR0^qHruc_PNpzb0y1SV#CNmO93p(sT7_uO%-z#b8?0W7u6)q^rvH>lW|LZE%D) z@D>l%{D<}l=KN$RV0t*@$U19+N{s{&Z{|<9$8PbamY%6UwD?T@UBE6NvhYm(5mb>w zYC2HBtJe^pQzu|}=*O{|W8EoBjJP2jCUydOSMLjYf0nXf73i!j z-%`;yp)*L8YS?$NL1nN|4Q8G;U5(_dBsiue$v9{#m?*sCmh>ei^k|L-S0@RwgYvCpXqb5w{VAhKuR3q6x8^@@&?v#-fdtjqetn>5xy z9H|KdAI|I>}P<5^wtH4&r-NVrq9Z@wF3M64Te;O8D=_|Mcc)9{dmB|5eDjcv56r z?86Ugb|1qHkr!{+^Wk4g?Gafhrv5xnJAkb72|2Gt=#PWE!nC-hjt<*S+toEp!E(zT zKfjm0wh#3-fg2ybzK?YF_CL1k4?g@C-|qjT!ru%4r(K)b_D<&WNxEO!J9Ev|-h=A+ zUj04u;_JWgvaMC`)i%JHtFQY)*VSA9msc_twtw=PP#0n8yqcZ&Y(`XKtfT_kQ4k45Cq>3oG;?u8^TFXU~#9{2?rhry_WWB=fv9 zkh9XRV^-0%1f^%xMvob;} zjzM%SREh~+Efm>Rl?EprUwnUGdWrsh+DGN#9+A~n&YzBKo8?X}``yxDNanoMcb=)= z{=W^p*{UDK?i;|ucLO))=kKe2g1D|F{_&v5?C;=9D>4dP7THROKoGxDW?8b@;SO!2 z`hr+l6gJ|5_gJd&z)R}Q(ErJG4@g6$Yc|Ayp>(!G@5ug0-XuW~Lii-4ChLnbfRwwl z*)=E*mt}GqN#51f{?KA<4);*hh#cExWvI@UN~EC6Z5nt9*nVmkw*7sFk%>FDRGkF- z1dEU~lG)-g37J%1yc4zG<@US6eplM>MfSVOelND))%Lr_ep~GK68l|izn9wYW%j$y ze%IR%EWMRA-7dm~Fxs1(cp=*kjwWm~Aan4z+TUgj&a^E-j-| z7e6-ee-+IT`4PPav3m7{9PwxABhhmSKF1?maHHob|dEX(maPPs#@{HA}ETvO%8_~*)lbF z=Bd=6;9TLJYAV*Qq$Z9ahW~zO#tWTmWD!EPX))3n87>xcok+~vQd^en$#Cp5ccF5U zqJrDOc!HYbXt2J;S;;EYhg6YcYn{gy7jBcMc$`-EzHz)b*uLwHTga}U{WPlmU~k*w z3uJlA7Enl15{WcxBZV&jLZiZV-b=Tjf8~{gYV>vA>u)uoS6?-Qylvpj#JLMa)F5$vwn&a;h0+^-+SK}>*#tT zM5r)%B_&s~{(W2aNImtXmt^|k;7b@@_=?@$H_olCt@L$5x;w}CsCD2Z_8rJ8=oC$7 z)duQ(qYZYfR`Ej}J$kg`XpegC?&^wlPK{)R-g&Vcc%HwwXXag&TW%uW=yEFa1^PTE zdWb*9R_7Ut<%OVnQcAhBZ%=t&Y)@x--=67x-FrHx_wDJtScolqv{ZdI0b_9W!Vd2u z;r}nM?+bOr7L|QL?-#3SvjMrZ{`>#a?i(Ju^k#(5=*Z9L`w=V_As|OxK~?AiHh0=h|48Asm*~j^`cu6jGH1 znS>ZaK`*8E50;7tb7@al!VDeEmqh-vh^{P+jE!cHO^dW)xC|gzSyhCQ=ab#mjH>1y zYerRbuQj7u|M@h6twrP~#G4aiCO)Udi)u}*PU~z<+-hs0SFK6GX`SEgny%WSb+$VK zTeR3pNs;K?JvKO4KrDKL@nECzkZ(k?Xg1_oje%!1`kosjR+H~lO}@{@SQ{g?ak86? znHKWA?|o*=`J0k};>bMj+>PGA&kxYvC;$C(XZPLse7zn9&pVL{Lvnd_b$w;6KXiVS z!&^mBzCx}8~o3Bm2!|lewH$(Qa*vTfCcxa>J=&RJwVzD5m0Y!I;`+jKxH8$T}Nk#3-Xi*&hX8 z1b$?HVTxF~de^zd-2g}q?q0|LF7V9er&n|&x#0&vrEPe1|IsL3#LoYTO4-`hOKn{} z>m3WrhlN*wN-A6Bap;m@+2?NmR{cY{Z`DP0a6jgIfi<846amS%smC7TP;`&?i64FL ztG6F{T<~5Bf|n5xzY*Xv{i}G}&|e7%ucUhYjG9mX&2I0RiO;;Z?S^;k8z^3r)w>e8 z=-}3tt*c%y2ql1gV&J)sxssNnyxgnE0i7-(H(T7DV9WMY7(#;nHlYY-2?&Rj!~#F= zUd3JsR3f3Bq^4+mZt=`rEclrtnt)50Bx-~)^{~TuMjEhr+hFH5^5kwDxWVL%1Rphd zsb+*nasgo8;MZKRRySrt$opj!C&xx1tjOxsicQ4D!?kY^l`F6Ha~QO;dFTVfi3swk zckmXB$#-ZZ0aMdKnNpY_!lr`_rbB8P8Vz~02IJ2fj5mpp*?24zqZ)%K)fjlbeY6+j-dlDa7**oxo%$;fQpugwc`6DTC$+u1I{!ssiR(_wc_`ChDy7KPC zul#rK^p)qn(*MhQ9vS$}FJJcP$5!V)`9r_9_miLg5!);|Tr zy_3J1O8?xi?)=e@Ke+QH=l*7Qxod6b$+s`<{8sPp@Ad|+NZ%a&>mB>X{%XhDZ;0=H z_w7%8V(z!!wy&qBw(rVw*Y3UM)$i>8?8i@@dhr7{o%-y@pX-0?$G_Ge|3AdN2|$$9 z`agbfOVQNK%1Uh_Ni0BS07XP(7zRNH7@1+ww2@_4luZT@TCHra+h(O@Wo4`Ft8HrK zy;)h=c5P3~tb4OusGFuW|IhQBbKZFeu(o2sTcn+^`U9o&KUmCPgAikfabe??Qr%OlyO_yju-EYNXWS9!`qy1#7@iV zoAl`VV*^L7f9|`?z)u%$n|j|-x6l1-=kXcnq_s$E-}yoGGl#!jl%eg9hY%fJfIhr3 z6YwVkZ&9Zob;iqfZQuu*y(|5u<+GR;Uy@T`&&w4A;%SX#=T0-bt=LMT1y}|^eFI*= z##(gSy*WyS3tqtXpYdMh+SWX)Wk8DW@2ib+@E>2$j;+H(ynd4Fl z8UGNM0B07aHtWdJm^kHWaPuW^2M5}ez=Q!d}^p{x*LVGrr$#AA1qk7PnJF) z`e>|zP!LugV~IhZ(&Mq+=MS;=(A+7ZXK!iHT0vEjSyyu2-IK^HjrqnoFb4`vW9CpI zwMDq_z|tod=~qL0^kB>6vhT3Tqgs&6ZXg?^7AZe#x_MHGkv>e8-m_Mrv=`OZ3z-gG?tVMq8g@j zrHEvq0@(hujJ%MLL~M6obcjtUBo7V!4<&$Z}VcF2yv`pT+ z+7F=$u-jt#-gO#!3_ z9oYb3m|zn6LDxAwABb+08dPYZ36@-IfO^{Qldy?I5#!=Oy^;D3aF0f+3PAgUubjNn z-GBoHNU$kY#OFo-oY2Kr)4^$^)D*%$3v_xu=J4 zD?qXa1?2VBoTA%^LdfYsOoo0cD^ik4EWunFDbiJWLl-Q-Es&e4%6jc){E+}xRR!(x zxCX^VZ$*7&98{as6Lmv};SQjUE?;{LY;J|__@09_H%hm3Wi9oMfhI5z`p08T7oj_$ zl}46l3LHegQwrv~@RhaTUD~P^pB+3I ze>iyna2JRtSX8SbfqxR&Wm+73i7vT<>xeB_{h4d#5+-ipxu!H`zTc!U z{@_h_>9cBAaKoLTx56C6cO49Fz@^A{&&nSxd)Ld}x@k3ZUckW9pemu7qY*OBDmC@%SU>PZl(aGN)UUWY3`ONwM|I zd6GoQ={RtR-{Ps9Kkmyh6b7015NbmSG@#sYg`qvAM;(4c{b!eKJS>49-I{8V;yX0< zST1y#Ff%hJ2d7DotJunJR?MsZi0rB1Dyu}`q*-Af$~YaHO^(mbEDPXkjZStDlY~28}j9_hr{~4r{E#7VAiibtJ_)l4BhcVjUA>9VxMn zNwE%V0t~{fh+stwYZ7QOXGYOd0{pFSib@4jdlYt!sMIr~symt+qf&|Mo&V2`jbctG zUL9utvty$)t<&rs8x@*8CVymxoHWyxDFD9aRUMUTJ(~fInm?pA(wIN}2Z|$!5tNxh zPq5$(itu0hV$*j-|DmFn=&jGsO_-ViF!j+mC@v4JVGnz@yUfC92y99IhqgqSmrhU8 zegtU`nMI|)+95MxSC?!Q-EBgiCpp=cEL)U}5~jgSr;_rP99}Sf=#HtnydLUH(F}S( z&-KytJt}8{)ym~8o{VG(V)1huU@N-#$r*6tH!p*U2h2B09JHDyB?$sR77Xf_@?k;( zh!l!qa0d2bQWxAM8c`)Q|EJCpd%C=?Yll`x;@4zirQrwAp%`cv)nJQf7^Y4lmKe-Z z;KrcDM2ei(aUZp5SFjZJ|D_p$JY)VyzKGNG2jX3gIPIvT+AlF4rKP1#5f4NN+Y|92 zK|%)%`ciO*o$-2kh6aWe!6hN&#!*3B6SOAvSxTZzW+sFGAfJz<- z0Ygv2Qq4))oixK?L;(0<n%xA zXGUQw@i#|dqoA8mOBBd?6@LE2EvhA|ycs%`)h8g$nNe+_sEb1W2#}}Z0Q^pqS#|w8 zmmt-dQ5Xh}(~6D1m5>5`YQWlTtj297 z=9#8w6UcxBFX#@Q?4;z(R13-4Xbx&BNd4sex7yqupNllsmXv{gS_i^b;VI^DA7?4m zd}{DvfCouB*FRUSk{WSv|Xs7m$ZZ-*V^fsaL(!3YnE5yp=JMseZLYl?t?kkUZVdu;gk|RO8*Nl)M& zisZ6Lj%3r6v=<&r*9NjWDnAO{t35|^mGKZ5oV;9L0>$R6z*hf6qCqmCZt4ZInj$%r0rSNI9iaex6yoc~f2zIgV z_^?2ues}>G5m+xgL@1mhIsrT_hYJw0!R+gSutgIaN2 zlz}&ulrb-ZE8D{#xxQ>k-P42X1S;^Iz^DS?FsiK}c5)>t0{#l(@CM+}{gZ(73MixY zt%n;Wsr5@8fGbm$jg-}M6>|mWTosiu#*>%j2Gb9r)B+!Q-V(TQOhhg+{X`_s&vV+f zUTYhb7lH@AP>VzHNrS$QZ>9K3rM{_OjQmaENRvLTAX0!TPiHx@zzb9Y)%mF)b;+wq z9H5xcPnV!ZOQj=JJ|%H#I7>JKA!*qCB+ON4hu~M;=nLmF1^+YU?>~(_lP-^2sdD0Nzb7QvF!A65oRW`*ut%YLIUif;84tt9M(7 zx3va{DpnEjVG+Y6m8P@Ml;qlHWY5q(6UW+Tr~q9b0C!SGW2%oXpWve`TlwI7G2rY#TgTISlFTU5pe;vZtA>KN~hnrz5+?%FILp))ej(NnSJmrVTw-ev{ zmHi>gAUR8ttt4IzSq`N~eKMqu8r;*;rBZDj5EUY5(b&o6#7+!k2HXh64;|}& zJB4h$>@O%AS88;+c9@!9Hn}3Z^H|7mn^lIpn;YBd*|H9ay&^M}o?c6Y<{;kg!6*jG zB*Gep^?ud^{Uw+@7S_kbKmq_#`2ln8MnZ6Va%Ve57XPIdc+}GMVBZHkD?v|@^gMQT z)+&H5AVi+H-{fz4!7L&p;`t@AoGvF>g+*Cpd2lxG6DEm62#VcnrXMEajLBiQ>e-ie=%O{Y2hjeT+0g z8i3fyA4z@i6$>2oWQM@=VpC<;9u#*gC9(vKInYlNHLIk&LcR)>-mJt z0a#~0J0QPnKOyr{@O3>-d{S7GBm+(Pu^c;nFNVQS%C(b&zF<)tbGS;Q!(}W}JmtaZ z)_I)yo&qp*OIEC$0o2-X^6;)&NuHJdkg^2) z)cj5GHbOH}c^MvALm~K);1sVU3yXY8C&W6XgO&s~9KFzZwE>F2N3j?it3>8M(JR%K zA@4CiU@^78On<11Pe9QBqrc|XB+437MU;~)s*faF^N?aJ={0Bz^$q>xxJ{75 z;G{EBT`l=*dJ=J6l}fG==86IZiPR!7Gza2C3?!zFUwKE0TE>NtkB0?-XvHBm=Rnl2 z0I>_!)wM^8EWeTwI&>5)?QYv^X`HMRwMnjZOi_|E&;fsBk6Llf?%)_0vb{I%4vvH& zw>Fz@2)VW2DwE$5xJR14S6sh4m<6NblKuSB@b4?Se4FEvy9MEMekV@XG{5(qhWtPg z8ZRYRStl;Bpb!Ny0MD|f=7k_q$REYi96#d;3$Mbvg5%37s(cjDSJn*LCjHdBkyFD2 zJY=Xm%fr1`ev8Fd?-!HAn3i0F2`P0-OLMDVsalMeZ?pmWfn%FqYt!)2O4x(a!Kj2p zn#(%qt{oKHW+^qoSQHp+X#WWqL3mZhLg0!vZTv4UgUmF&^37_%K*xmyt>U-}93m_B zrfe!80FNz9W<+^GKuv)?<}{?Kdx&f!g`=R*>6YC^r!zlG zI=tB1JYMO}&Mk$=6BwASzRX-Z1g;=-WVjNg3%t%&Um;S%VbhL8c5p%p;&jR(gE$ol z2!X&z=?rJ0aw3V-W%be9pOoC`vYFh8(v6htfRc|H6e;Y(${ER`DR*+o%sHyJFgH(l zkh>I3qN_q2;_=E*p(w~9*9`6gtB)<4v=V(H4^N~}OUTYE@UordblGRIt03FMw%sMa zVf%8XsaUyo87C`O+N>9eoU*F9`P1Y_ma`br3h=iabBMo17XPMb%HnH`ULE z3aa|qe6oVbuh6KV&8KQ;^BGk{8KElLe5N`g3t36{%39idT+LiaGNNX(G4ccRm0HFh zItyAYZsCU1qgP}XI-NNEl{m7YVkV32O#2MB3o#?f-<9nZ1z81o`iKGq5QWStz`Kav zoIEI~ao`|Rm@A5N0TZ|(nMDP&?D>va%8Ld^IeDSVh_mb^$`dZ?Wa;hYMJ3(ENGV8? zhx!bl2sl0jB1E>gpal9;e4;Sdk%J}Yv?cjK>4p@M3}+{KU_Ih5mLtW+%yH(i%U+lV zN_w6;cu5OUz0N$hf_3a<8Pe=*>963O49K=SNMf`k7xF`RQwBmu>_m5wkC(1Nj969I^uD!=y=o8ZlG1cg=(}#9v`Y;SL0e1`SRO6y7S8g6g(wQ&Zt}LJMFP92w&rIZhve03ERxB+Jf24>DiZ=GLJdbRk zrW&X3c>O|MD4wBl7*$X#^-Mm-0a+fwOjR^!NAg;jaJN>Y{_3XBQePV&?qr;oC zoSWv2kW3;m(Us#^GEk*tRF><&ER~^`u2?3i3ddpG0LIs~f;u1s$5YCp(H3+*XyP$DG3*jjeT+ z4P((PEzeVCL4TMjE3#j}{AP6DSZXOhUPebrzs2LAxe%HUvI3kAL<8KpL&Y14p{EH* z(>J|QfI})yfs#L7cc;1Da?wC785lHxt2Z{2E;Qp=#kSf;Fhir~)jKM3hyt=ng(_Dp zJ+6Wm2TshDR!g409(JYWRQ!=aU=37B)o^R(2`sdV1$Y9b0@p2xRmx$j5?Cw*tTQFg zZD`3l?D?6j8I5A#o%YmJJH(h8t38da;F&NyLy~+tT1Zu}pxsgG+~5rXJqK-Xjt*%5 zLfd`xiAzwvjqrg0jf&xN6MzaVE&SlJPpxtvDcyix-4fWSd*g{T5C51HE?K0pHI%Lgrkj@{^atUDoDS$qVDeBffEH&eo!qB)?!axL|C z^c)Sm>lmX-e|vapNw6_@O=Vq0coaM@ZVnIl7lwOiHjl7a^0GV3OJ5jVfY^@6E-993qM$pO zmJ9SO)HaF$U+4h6hO5O#6pd!khcQW-XnEO)In-7w#&3Gk(cuZ@d z`WJC4j4*;yAk=h;%DLi(LgvV0qsoplOV7`oIF0LX@jT|k`)O>Gd9Q6*%2vrd9Z7xFw z94rdKiXD=ql_)Knw5%x5NeafZ z2|D5fH%fRM6NGoto5`qBA;daq;1H2@@1xXO6o`2T7nUUG_005K0<0>jN2q%r6VIj4wWDS^^KPDneQk5H;Y3mzZ7JS5cqXgf~_wOta7m@IZyN zfWD2u3Ou+BLE5kg*oS~b`>^#u&KJ7W%^lMQMKqo;Jdu(8I8-w^NMAimS?v3Ws%Bqsc@{|JkSoR&}d@T@kzo0UGSeH~Yifb%!WAbFldYKfTD)_=uBt9c2 zN?lV{UB}rl13bHkIi4NdI*Nq;U=O}UV;9}5NiVgR%B2rr4}td@U_p$(Qy0+&zh6-$6K6$`Kz!UD$vW`B(^K8#X)O%*K!)=0po(zggvw438gEuKCI z6@<1LIsp<`Fgh2{hXC?nsq^3y-L7DU4|Hf>VwSJa%T8>gJ^0h%yo-MpqJ?{zzie3| zzksqPi(q!k3kjv6rgh|8L~3P8Z$&`_rIN26=7HK4~N@@BAR^9oc-teLq!MX zd2{UT)c8)0b!hI_zs{g(MZ# zzp#j zS7KrI;hlKQ4TVb>p7jBOn$_qnEO>16BnwH| z^##}wI4`u(41c za;jEBO>b9E9?PaO+RcHq5qiTui<+QY7N`*8RB}7=86gS_%iu$QtweRIzkj>2h~>_PAZ2U4OmNtBa38vM|3-tMOvhdq%v%-O{&n_aSAp|Muq zB(#fcsBX%KL{2D^@CYU!M8I~%lSgXS?IFyZ17%2z&725|JGn6011rGtuF6*WD|wZ$ zjvslR5+KCz7OKfmVHx>AtMSp%TXmUHkUXbxIrKsm(GtRTNouV|-AG0htXdshV_;}l zf9MgR<_Do{6uUJ*2Ps?(Lp6gONx3IVtdzDziltFqa;sA;`%Bu0d7q{jls8TzcqhU=7l$r`TTMHIsipvCZQ2W+)5hN_8s)7TL@B!`BZ2|@N|FaDegUq=t*kERs%dzj zNJQLT*)LE%PH0e*5B0_CZg_|nv=NLKX`yMs_SV!IsFCxjs){N?$QM{-30~4CCIQGk zm1by3hg(LdnLZmTO5kXlN9&5IB$8Godq%43vT=>2TjovYFf@j-Z)`I)z@MmG>`&Nm z>&xcjFEvtu3_3^Y!x4F#P z2W?U#U07inQRBlArXw&oIxa~9CRGW56ich25kmA>Ho!KqF55Jc&I?Ln{*;1;PoJO- z^coPDc3Yg$Wv;&!k5Op7d#cS8y9T|~K*I78QRn9B4UXQ4lBYbXS-0&jgsI^1fqFV6 z_+|NO1T=t_?NaYz0V|WwyC+EIa%GcyCd_P@b6{Fwbeun9 z*ZswGx{L~>7gI&dDGlI!#pER7{mVD(32uh@9;VNYdx9syWWnr%8NO^!Fb`%5j97dC zT$e(`iz?wG1`@yy-!yz_8b3XdO$1i9>Bs?TFUSjoBBU{6aXKnMjB;4yAfXeo;HSx$ zDk2AvzAaB3Ft|t(AQ#by{YTB2;e~>SNRlkD&pVgNh=5GohjKT0*LNi?xs%O;F-J zq?iia(y11@DB-Ice>?6fYL%`zxxdIRkqy?IOtPeKKOq&hX}(tKZ9#}R;F^Ul2{3Ae z81fL4$<=5i$M=L!}z7Q!K@Kxct$FUalVwReZY$(ix-Isg|;) zrg(n561@Z7MoPwo0-b6DC6|1WGQ5>SjMW}Jw-TLi8H=-6Lkle)VHp&8_<(_!+>q4; z4i&mf009QNX5=1^exOIP`NL2@C`Uo)Atam#N|VYgsGZWm5XwNNL>98ALwP{i5UEM; zIuU(9GjJ{r^?Cz#4cwmSwNC(&W&-At_Ud^^%Ui^h7}`I_38HA=*ovho2_7e6(R8~w zkddUuT~RA50lsfYMRR?cXqD3rU}{>ULIh}#0iftc%#s|RD2RuKFe3mSoVJPN03;l< zh6o{OOcQ0(1WG6Gr{sb80g8&c%%k32oJD^Ld}7Z7=otqWp=Ed#x4C1Sm~xt9u5gGc zQ?a#Uxu9IR$f#~G1eAa}pvD4B8O5TyuCW|$DX^_(F{;B<51e6Tf||xg08k7Rk*oRH z5P};FPtb$7mQpVa!>-x+5-O?n3T8o1g-B# z^H11h`olE9pN#g?_I(Ju>s@Icf_?aVdxF{~|EK??c@y!ssC>4<{+Dv^g?#{~5Avrn z$jrw#8U0Q6<@jd$FQBc`Pr)=CY=CN?)!Pp5i^740PrI+-i?LFm9}5Fe5?f7!)(C}l z4loB`1Ywdcu`03VO@TboO!KFMH6fQVRRHtT0nuX89)u+aDd!H3jn~~mvslJwiEI?d z(i03~RoOCuDLw%bIqw9l#4AuK8t8@R;D9;K#r22@Zfs zhT8+P@DG}|k^Yay{jGTWQTDMz_6GA{%7*R@J_-A1*yR3Sn)6U@>+rq7D3~or?hO{g zPK8+q_xrH_h$X;itrzFqSbV?hTg1JPPwqm|tN= zMIjHE?=5>--U8=3Q4ZzGF6SvYZFh0|lw%Ay37!q>rKQE0!_ zh%Us%PZbFXqPB6u{08NoiL1txjv>$iqOaYFgD@AntL|nSIHuFNF3Wd-! z>TO^Oxci3;9MONcHlnJIj?c0>^fqun;(u6>M5bcokM~)=Ud9gUUm*9q5N?NW-q$tc z;Cu=E$oBJSNc<9ikuSOiXao}^aNR|?r8;*|r6XW^k;C-k8`my~^CBpKt0r`hFlQ*E z33Z>QtrC=ArX4g6TPxB75mS#yu@~LrOVVsvIrhAYM*IPL8^9H=baDS*hdmazzPQK) zx{iU;XfD#=SYHK5BuIw>-TsrRAe{NZYEfAQ%`TNN4V8_!o?#1}20|Qy0}FwVQ10BL zO|_z?72|-!I&0*iou>BV(S&nNpKvaQ+?03=ra<{;2w|~rjrV6J|NJ-TH{c)S{OGrP zD)le)-De;j=VM^jn3^%nc}0B{V)Rmn3qW!uwIDYfNFc)l2Rig(d9Bh3!9{fWv(U9S zcn-|vFw0?%$&=<`xc?6G7R-k*U&8zVGXUX3VXQD&FeNar!JG{McwBS7Yi8{Yo}tQWKJAa?agwPl3)1U4 z8+JsmUi4ID*LNz_bCrGddzFW>^*fe-)zFhNgMz&NBVx;a3y& z{PWK*+3xiYEidm=K76M87$Cr*%KkQ0;(?r-5WaXneXUp=CZ;BUt*ok@-&p;K*SW z<9tq$WQ)48a-<(msll%XkiS6A3{Z2zvZDP2ceW(*3SLX7B~lXz`+8e#fY0BYmE0=n zOv5!Y=V6eFz%hcO4OI+z@tLT(m3Vwa8d0s%>F_%iiw_U*DLwkwdg`i-~cO zZ*;K5X_4FvQI(rcnaU}-IM75R2uC;NMh6h9-Z(LK%2;lCE$|858Zq^vy}@1=0}oO* zxwRS4gCB*B>A`FYmA^&4kcr76CFFo};_;C8$ zuV0@&efttD9nfFDAWU|zUJ*c!idF)Tzin@D5p1)$41Q0+Q25Czd{dWrEAc(KOS-f! zam;y|-Gh*h)_;ip7z@H1Uf?-~lxrOV|zaAi)uk;)#b^jf+a4d(0d`qT4Y3(2qsw>`E|$tWC>%9egP$( z>Pzz)r$>lrs42=IK43Y`8XH|X*BCdBhAg;!#E;Ckzm~BTV~rwJ6Lbhh24(5?6WLQI zqHJ`mQdJ?97?K4zQX(Ap($x(-oU}5Tt&7Inh79EufjwVA?qxv zC1XuBG5kVX4$v$x$6mx9qWrwfb8@zfQ zXf3c$S8n=VVsg_rnftr=Z8m-Xpxno)xKm)CuH5Irp1*x>aQ2Rnd0TyJ+Z^_1-2=Mh z-BWs9{>Cq{XCpq9tBw8NdxO9H3;Q|j|Al!6W$lFdyi1wGzUjIARQMl_xRX9x< zfi@~g!69y>?lUQSrnhU}GQbB)c$t8P3W)bnMnuVxd80nm5((f`e&G3~7VsZR%kT|& zg}g5}_FC%kaxl^RNf<(L=}4v+9tY#tMy&jFolG~Djp%eb>j?l=0>-FG%OdEP#kNNm zVYI6^Vn|dVc9NDF(1~%k3*R0`5VzgT!_K_#7){0e9unw4C@%aopF8$TxFxr{Vt_9P zxek7cH(oNz2WlvZDJ9)xCy4)IkSIq0rZvk5SE0_2X^@D!f}F1q>B z4j58EA{F}T8G|j3r~5?O$;*h{H|%Dbg4HH#PJv4sdMMXlDUQAF@W|t!3WshwfviA+ zE*IB~bfhMR03vJY?Uda4a)?NY9zB&E2w2RyGEG$N)nNhhw#9@yW<2BAIJPtR0nF7g zox#2^B{1avD<(muC&?Hn#sfwZz8uwlkL~-=fnjF|g}`(%jK%aF zD@h|JX>tWCWFXN>x`$CaIj!z>Iac)$SR%39GIa-lX!v!bi%V|=Xb0KDr*#JB!F0e( zgn1NZcTQ(;S8iwUd$`H|qh>VXzoF7x5Bsd5&fv2!qPR0y2J-^UFEF_!oxw9pJA?Pl z>I~j{T4ykCPG@k;>7BvpzRut~^E!i_<(XYh*o zox!BK&fq8Yox#f+JA=I@!e?+kw4(HU$w1LeV_odtiG(sMe4AD-J8oPAzraQXS2 z!RRHO!Ea!uUECQw>5|T1%4MCwnOAlOZ~j|naL84i!Pl?u3`Snt8QgJQXV43NWV}P+ z1zSa|9V{aB5<76{zyi7+AixCv3E@D;LlGVwtBBDOhX(}W72rbz(6-xS63S09u+t3? z|GLMcdlJe&Y-Nf<=y5}8?0PZ-)QebJ2+Ve^obcI8b3Ibek1j^ok{~533v(#0Y%Lef zacl|Q!rjo+BbF~e5Bd;yq{kI|C;$51KIlvwn(@h#OVYewMytCPS%h^Ggrx0SGRf|7 zCnqE(auC16kQN>uRy4=5PB5p>aupY{cQ&SRO7CMgPKn&o?jRps1lmsm9w0r(S_=Jf zs#h&wCxf^PcyH?J;)wsQhxp8x1I2pr7AfCAsDUZp=t?{=*-Q^qS)i@iT2((DfUXwD z#YRgt*sz%U5(4$$aOYq5`e4>9vJ}jSH&u&bZn-lp&y$2lFz7AvR7BD(kSglUVcCQ! zk?LELgC|i}_4unSQU0~2nEOkn7BLgDZ+dl8)=jUvvIn zRlf&fO%89L)&}ayawkStnCsQOQXtNOT^$wVOfKB2!vWfRpbvnGV5nbjJaQbs=~|Ji>2UzOie+o_9<^27S~PdD6Z3w1_V zPlwNMsXv5=cD)O`CjB--*Kp|f!o-V`Be$HC_QJ$|4EOS}nbWb5Px$ibW8naCQwjN6 zvZ3zGnFaD3t~mu(Xf4jxE@!qEM=0R#%A=6pXplY)U;`N230v-PNYHRdEF39tksy5}AJ1Bwb%Bq7=H& z#Aw{2V-79m{pZm8jE9)zE8H}cz-n}s3T{&mnD+&6C_zauND-hV)koqvhu_QBYtoHC zd3WDWxQHJ25{iF_{p3)I$e)slP=9paJ1E>(-#x*%p7)RB@SZYY+h5v4{ukvR3buu{ zKMcP8sfJq<^rQ)cY?S+7>faREzor@UUv%+b=-XI=@sIp<++(REw^S~KIZx)^M3TkruYnSdEl5rym$4j^&rl| zRc+C-nmq>M?v)iJ&~=fH$!95&+-6T5BjiifB_&YZ;~OE}6LFVx^M-Ogl~+3M&v{3n zh^op)k%x#TY_y+bf{LU2tIH9T_GZBTR4yEUcz-v?hc-?M%Z7%PY?N<)Y8JUdYL`xk zkfp>PM)7QkUCPr5DG2TRNRRp+X z&HvQ?9;%-w4~H0$Q%ggE2V}}1_iZpkQT@912gmoR!v_};_9s!|4_)&2<@+16pmw0z zkn_}uY;?Xf_ovLi5H$Y|+LS?m=_%Y(lq+*Mc;B9P^2*)ojQr^Q+dV%|W1ZR`yS1ma zUU-V~G}))y{PQ+8F9c7nOsz_>Jdn|C|K}_9cq-Z7+>uLqn)qkn6Ndk9q7}GoscgkH zKx2#PXxuGpd#ieF6g)oiaB32`Ea4nn-B{jcA=lWlj-(%-ti5cZ5dLV}a#z#jTsXxli=PvBpc6WAL z;S8eW(feQ=8w7mx1vn~m(Ji3#fym`3Dum{2!h-MvRj+~oCLy2DQHyIwzUyB^OiY!H zctK(iYS=*#u@K#}lHQ){GQDxs8G9>pXh7g6N!i5XBkF5GZ1KItH#?LYwgdc^`M1*EGZ@kJfp zg=9gI_<`^E__6dy(h1dpzn%iLftQcpzWHSP7rd={*Mdx`*>WG{wf}sfU-dNz{?1 zHeHQ!UDZB~2#4HmiLCHv^0kr1U0pSmKgmG)E0L4Dd!XXFZOs-nT6oyd^Z*{$68%N^ zSa_x?L|VrD>}h?PkI_k_I@f0Fu}AbO{R?F1|55peTArcx83y0}Y{Qe$Eg_g^?%+S! zzQi8;*Y?*t_a*n0IYOb?9?$lJJ#Yro|W&N_?7GWhli@;{lxF{wpes;DO&l19$$UFX1 z6lXM)^5ef$N&$7d<7JZZC?US02|_Y4%zz?=B*&%2R8_UarIRuvC=P-~3+RVy_Ad-r zPO-><@ba0bUX>F=dPx5d^2(?CJ9I)KYG_RgZxfB-&b~9J?(F+E(^^&6fqpFvqtjch zPB7)SI2BCOJ8?A?oi`V4=OM)VX zYAP!17u)v1CDjG}PkQn5hh{zc^bKEa_xvMu=JK{1cD%IYbdP>Y)hI?KTo{6XXou-P5I>WZC~#A=G*Uf z?fv1W{Re*)z5Di$95m#J;YW`+ev~C@3`EsaEzltCuLki)@pQ+A@l=*Zzd@9Qe~>K=+Gsz_#Z@73UCE6kY+L5@f0ytc zwq+x4rZ07gZ`x)#UdoCq?CaACkA(Rr2N)oaPic%_H=duOx2~-G;1&I0oP*jy_g-Y^Z8EdL zB`;LZkhCo^IS}iZA22}(l>j9qvZ~L4 z7k9|!7g)%Fr!v^Xg$GrX!$F9ohtl{Rt<7!z)KoOR!dD5UjdYz2^^@(mFsqBTuqs8q zFq`jhUVym>7A$CdU=i)#Ne^mPHNXYtm?={*_i$S3pWjI@wK!5u%!!bW6D z2K#ow8rwQBdO6zcndw&5@>)B6&k3&sf*3uMi1x+L?Sif zOQ3;v)pEvO9cemoQ5hfFVb_jgsB)3TyOm34#A-e*Mr}HDiZi4`M+1Lz9dx+1VjKRg z$lh4X^cI*{i#^s-9BXk~P*whQ9|u{od_ty@Cx~W0q>=o+bb6q5T%A9u$&;Gt%o9*a zlIh6E+#KJ;yM4$+=J=uI5?+hd_n(qJ>2F_7Ir)hj)8SsX`u_WAKgG|IF%8f2fL#(y zQedDaEJk}wYc4A<$9L#K@M;yc0`W}VV90K3#LGbRW=of#3b0r=gFBTHs2?3B`6){h zv!Vx4n6r;)_5eTiBFpXq7~xY{Ksajr5czk`z)Nq1j_68yu&8uaH{W8Xs|R1io!wK^ z?w<6N7|O6n-GcOd3~zVXBSoekni(22VkZh9Qw7jO*AAkP019wC5Ew;qZ2)>Y3rOig zNsZrM=Y&=;@_*vRAA_sbOS4qDH^Bac{9wNdLvhHw_p-G6Z1^!qaW>%l4cK0Mllel~ zTVQX5|0dX!hVmbY??EtQV94(v{MI1+gO`2`_Q!WAOb!hBrNDjwb{)(dm_aaUFy!Zg zDJm}E_vFx}Y|n;;9wv)ADp3tWB6%VXf6s=+aS}NWkF?|?TQzm-?iFq0kN-j0eKJmN zcYZh~>%*y!c68pk^tk$$lubMui`L4DwaGcIyyWV;_AG4jmON*aL&lK zS@3EVW(ny9Hp!pqeHnvjM3F0vc}7jXBne3Bxtc&QC}Tw1oCbisl|>*)Pj`<2gy+yD z8kp3LdoNS=Mh48Q4F+MFJOu0MXO1V&48$mH$#+_&&@;ApR+s-m$&f_2dx$SH&@MY(>6V11+ljHtlcKCrjrkE7YZ0)Rc_G#FwX<>WA#1?y=1RRrEa# z3nd9_Ki+P{C@SjBp;DRh*YV@zyRL^yafouHCU0CsRReQqg!pVnEa%Ydk7F4|bwV?h zXS4&;1aOJ?Sh3eNl2ZDxc9`RtW=^+yK&S4 z_iC1>ZZz~|h5CV`DP)ht3M5`ED-M|=AYPgPN2^BHh0{|2#|I-!DhNj0hory7+-#8S zD$v6?SWti9m$B`PO4^s^RaO0i?Dd;AL4OS3!NB+t_ohvoc22ci`0dPX zXDpd&<@?)4Toe$SmJp}?{8MoA{-1))$|kq?4MX8(b05;J+4oa$1^h3Cd!Wik+n=cK zjj-E)`6*b5c-k~}`PTjw%6~==;U(~cM#f%!`a-}$G&x2zTc?VxtFsgO?hB59S>I=0 z@M;)0ObkpDOn;a)z4rxEV7`GH35_4$|C%-@U#81#8XkH79v0r625Mvm2j5Tk5Z?y^ zF|cV#FAWO^-{&Ie9>?a{#o+@NF)_DFeCw}@ATYN%%B29i7&kaRWcp#AZxvRi6p+uZ?Dqxf5c%kRt z2*d)2SJhVI;R6<~F{spvMUL<1du&fAN2;&>@qMs4{k ztT}#{Xg8dBT-h`CTtn-Ef8EC4Rn|~m7P@Wb`)_l8E`KFdg%v>gp6FxQ7uMO3t;CWw<9-q?i0BSllHnCgb@$+jg}T(u}7)a#_4w}Rq& z92~c?Bt~EIG)lK6N6#^I|8`N4XBq)Zu~FR4cM8inUUB z6@9p}`D2W=uCk6@l7h|kA$iC)zpNH+D0o_M0MSVRr@6kW?gS`#;zWu#D^-j0Gx$@w z&1V-e4wc|+3XThm2-7dZ`b&qa1*FDJTiwPx&tB}Rg`Q*e6OW_f?4Ac!smbY>BU7X?yS3l{m3@V& z9CMz!%p`=fJd3&h`FT#e$S%rvcu5;8h$KD-UR{MYdS=uq%yZ&ZZijG}6c*;=t>*kJ zhs$XPk;dH$6~L7|c<3pp8-wmg4JIVxXgL3RL#8}a(9ETri!=<6NImZopNF#}_IeV$P+6<{BU8@5eNSbID9Lb;w*hvbvT0xu2_=MM zLX8xEhAFX6rZ5_4(Eoq$e#vSxw+NTXp(g$H+Yi(I>;Kd8yHcf%=Kq2Fr9aScYoe() z_!gwdlV#;Xy6tBaqV{r%U?X~e*!WPmf_+&^CAOv5m7M5GDAi2cw2IWaQ6XmHJ_&?+ z-1aQspPDO5h#uk*TfdB0PcOI1U)OjZAV+onLVuN`%pkW?%l=3_;)v@8uT?@-oCt#0 z9TWq^P;i`&iHHui!Y4mAM#>apdNbyKp9738&kOywZV3x1|Hy+BD^IW@W2b z+RI*4Y_Ud)H5cs*j=XqZ@GO{v7w!wLfc-p7pG)=y$H2^iSqifWCV;r_T?+gKrq5*v zhjGEw!7PQ@0P_R65&i^>9-nUTw4^N1BuYGPkgSWRNe3#(4m5{t9e~F0H}!XhMS&@fz$)i@DV5O*4=Y3jy-^2Q;GUhIG}Ca7J9q8(`d zM5mF?1`sr+L}T2Vq52s21f{Yja(~h}n4(9Q#zmKEq(=$yn}TVtODc`!s?xbZ=7W;V zS>YoWw3E-?eJ2dLn<2=bM8K@=R;$XQ>w-0TDz8_yE9RwlxsNYZ~99z8< zz)Fl-8gb=d?3#cc;pt3KIi3*#m$3y_j*TQ9RSEopb*ws@VYG_&n&>yn0a4bL%y4UXuw!^H4`EZ?_^KN^7 zF3=mJ*Qk^%#$8ODHH`1dj^Op7`p0Orx&Mg2LxpQp6`#=9w5Wjj3Q!SJf6Ag}ZvmhX$PVJ}Xf@S^u3WiRt=|c29GN z>c&yoK6>;{0#7SChn_8HEtGw_2V8>zmgR5XR!~D>vXA?wNKIl;( z!ttZqHl6{bgOeU;Vc}3w(17M){z}c9bhT&5rHO3$R0=f6HCQCq1Qr)P4u~a}O>gzU zm*-jwlnBtxm+S|q(1NfXEqg8sYnKQDC+!aog|Wb_jM^Xk2Btvj{xiWXnICmc!pZxC zBVYu~n&|z(4A?8i?hn?%xL`g}_6FDwz>I-87_&b(Xx#qbS+G~Yki7|JJIr7h)#Yqi zC*{@hK~ybJrZq-K`#@uI!R) z=+o9y{e2~69XwS7BD>kMK#NFgsy3P1_$VhaKnIAN*>@{^0d68>jCNR>B?*zfG{uf_VadtMGl( z%>BXLh5LgyyD`qNH{<(Wn4jP#lK}Va2pa?UF1RoDNYfv73cjbpe+%qS@l9qK%utxw z@ShIpi$+E8(2w>Y`K=+#?{?G2xZz5@_HVoY!37SWGOkn{?Np4qM9%w~MoY}g-!R(R5{jMEKX zk#A{?pHFW%ntmr--k-mE1?#NbK-nM4{?2k`7Zg}Z=cg5W_@7p)r zb*V?6JnPmm6LT;A<)@j~R#czX>x8Jid-hy2Y|@hGBhNp6b;kW8oqhTpF@3>;z{KOe z`{}@%&6nI=b?p7eB|ko==;Sw-UNI~2xIyO}zW5x+Bd^&ac9rgRS#qkbSTyIEb4!{I zyKZ6H<^AIJ^?7~Lbu}{&i@Bxk{_?2ggT3c&YE3)#C;L-bn@cm^Xt~5TZ~FU}jC`v9 z4Zp09jC^oR!Xq_x$3OA)Q$Jj@{Qhx$A{TCdfAF$shd*|8?6Tvmhn@c7Ve_34MWbK7 zdwaic77W@k_q>cJ=GZR3HDOELv@xZ_)4nXda7oFSrnz6|A8bE*?9BexpY(3WG4JQ^ z`{Lx>-9t`%<(6-o4%>hC6942OH@*4g#~YKca7~%_VNKq#qvoYwJ~nW1>BgU9FWvp- zo=*n$KQ8l?qgVg9W$;t>S>rGG=e-v`IeXrR=Y7BYZ0ETbj%iP8edhaPZeCV*`=^=T zCS&e+qwz2k=||Eef? z>*khD{|mV%e0KV+z1RNp{&P~^JEi~kz9Fk$4fNkKZT_0NF(W@5{Y2vCuRPmMx?onx ze^x*C@bxO3~mr{7(-@Y@?-x#!l+?>#@=ztZ)^p1#{JwOM-C z4*UF^?~iYt|2J=OZ9*@{RZ%OiyKU$x6TZHv-g)NJgPZS2{c^y-^ZwC0@%7I?ecJ8lWAVg{`q{U-uCbIyW~WX_dVJI7WygPCH7+G>d8_B+ z2QMzT=fU#F-uvqC{T- z>_V0|$n@9d+al z(bs*uXVr+@TV|Ye;kIK-(!b6g_^RzY@1UHa3)lDm`rv?*+Bb}RIql7l=dSxTH=*I; zc@JMZIqS*7Q7>M5#0LkD{IO5^SM%NTygwIc>xw_xm(O~-CYTXfmD zzuWF=x@ga<`^pMqZb*DRy6!{FM`5u6V}(Qq%+Piypb^^0s$x{B-vvP18r- zdbR7cydlf3aDH<4;Jp2b%PL;|@r!5gKkwA0BVNDdtCqF%o=N^};l-zY<7z+q{3*9y zTt9W*;m=lGHE+(}mmT@@+OwB0X*lxPuX`O+{aVKxk6lyo%;xD^m)w3sb;J?RZNBr8 z30pp!be`9@W<1s}a?mBY+Ic>#lZ~5nbf9aApBX|FXT>-rQ|(aKy5^*C)Q2IPmK2QO^we^r4?eue~tyra6)0M!a+N zB`@EyHMR5nXAh>oS8$;8c(*(Egb$SOZX zef5Fww)meOJbp>UF>6+RvE!2qzJE0K-kn9W@>f50`q72kr`KG0!HU-&{CZRMhS3>2 zEQ=2RYWSK57iCUrdgUeCsx98!8#``T@%hF>;(Q+w&yY5%lXdtbG&uHOxJw6DIl zGjn0m<>Tg@Sy}Yvs-|Hr5x#rd-hFm@+Dug^VwcR!hN#&l2ew#4t=eRtKT$-kU4;lweHZ*y<*o@y`ez3aTn)MvhF zySeT3xR1VjYHRw9R}X5Lym#~`{+NUjuUvci=GK+N&N;6&#dT)RfXcFGCLY~-;e7w_ zkDnj#>APzmxWVrmG32K8=d3?v$mq#QlLJTJI-q%x|HmiKNZ;meU*Syo``dL1{Z70q zKYdC1)u)XZc+r-oN{cp@TBDXcke(krLM;%@; z^V{d`)=4$5jX8MD5yz*`xoX?cVH=Xx9C`UMfsK6*I^s6Jyyur$$L92IIwtLvOF#SM ztBo7ZE3A9uKbz|hJoe!^CoCB-G^cfV`iAOduU>M?TL&I;K7M9ozcZq4KXF7(@3@na zliWw_y#1r4pC-lr{M5(C>^|(|HSez+HEr^?qr4@TZjXQYr`?}4YAZHtly%Qv6}@@o_$zMws$U>$X!Y)|8n0`8vj6HE+An*t?2b1--MV_s;uFr< zeBvqps($Z|kDh+}mAIYDUwN}B?SiIv+_}4cdSlqHb8=d)I5i?@Pr2pPT}%7EFf-|q z{R=)^`teH{GjB*(+3%F{J08uL{n6Hj&%cRD-Dv;vrB^Okl{LhFh4u3m_s_la&ySw= z@`Zzca4-6YWyqkG(xsbzIR4(0dG^V7|8m5GTdzqva(BuP>vp{~J{eFL^oP!o2pcUi5iqpZY{( z?E5cg9dJMR&(B{v=aLy`ZTQ5KbZ4LDjJs-=y!`2`O9NTx8M1~9o|tJ?fnK;^c{a!Ui?Q7?fm%Rw{G8j-2E3N-LdV?l3tgscjd%CH~%!t zQO93iwegp?2WA%!&ATiz@%Vx_3l3Zuz2K`21M=_w*UFlA)?D!Hkc}^2bi{d^W(C9@ z8Q;e>jk@V8>&hL|Mjn=T)tZ}sdi>QTNf!<~cGa}(dCm7P`Fd4*?>k>H5*K6>irwnrO2x_^Dz4;Qsf8aUB$bAQ*Z*Eno>_m-SD z^rOOmowxYt%DW%Arf_n=7QE;F5!+(kc=U+KmYdug#p8-wzm%?-TBMX@2|Y%m{I>u9`MHKBmY)) z%)!y4dv``XG;rUz^U^<`yLq^CLbm7E-A8ST>wUe$zAq(p_t&4!uq?giy&EI$+PZkz z##_(&^2mQad&={5moE7vCS~}Q6B?fxH9@$qsCr@BH#cAL#qxraE1%vFf9modTAo;Z z!sOZG-i}&x_xAUGdanNSqMKj2dFo|H-2KGcrS6UI#XU7~%+@}&*DSd1?p-_jxK^M1 z!nk#Jox3#Rf!S*Z?@pO|QAX;Hp}kfg_SA;kF5LLen&3TCB0oE4|K5|oc*7di>(X-MbpT^{0+M zFnVC;gu8N=R{g8}>F-vbJY(0n=bqVk*^hU++d&4N_wdKP=Dt_<^njZa?pri)J5BF;*CC#LzCL66^* zl>EZkX#)>LL_D+q-Clot!#CrKGn?b~b+*l%aCXGSFP(D#p2&p9Ry;K+qWAGb&+Xmr z-Zt{(AsSPW_Ru4SiT;NT=oi^{V4p#~5AQWNqDzGE=#a(lg_Bqx(N`RXTZY4N%W$kX zQGg#@l!^1iiy|W8yoiWi5xpb&MD&a3A2BFmXvByJOGH9MM#Maw6(Zmb9(wtqU%$f+ z>)(IC0D2Q*(4fO1Kqm91b1ike`@B2^)ji%sGU@g|-|gZn zu|s?0W9WMsv70N*s+b9fA3C97cAe7zM>gCy>x4YsF(Z`#QW)OZ2p+#=4Gb&8Z>_B(<{iibb#& z!7hVc2HT$H$xO8rW?P6vtt#@y=%0f%Fm9L(7z@nqQ9lP`V3v*iIoJe4_0T`5?+_XJ zJRtGosofedGi1&Z1^IDylE5t=IAI!@QLnt=AR|@|a^ME1Qm2=7@DiC7&&m<26kbbd zZUHYTZjL}Mh1x+7OhZ5B528fAR(l)R{%YIlB8)juh>y&ckPr~kq3r~4Q*g*^0a9Nk zbG?=-uLS7Nf;f%#)HfSBC9-df%g1QEEvuQaES`MG5D@$I_L!f8tH%AlsXO)O;CnEC zB<_D3=b)*aPhvx5_K6F*sf-OU2NB*E{!3y1S@XePNJC}31=D$mwEtHA6lWU@jXKlc z!pFPFVd5yVB_<_Ln3yujkv%PEdY*e`VQ~rHFg6bBJxOaXj3-U)E&kfdczbib2hxd9 z08@ZxDOuMhq=MN7BcGBpQjDbCQ@hlYf1-PkrvnNl>w5@5Is9@l?nJt$%EX(B6+MP{ z@Sqn0euqE9P*a$qTL?0>ZsLE#6%tx+zsaBSUzYDQw=Yco^$%qX)>_@xo@I-v6}tYm z1RD6-3WhZQA9Z&Fp2wIdaQ|+bR@h(=HYhu5i=b*+DN#{Vf*=?KVY50k?WP2?Z4hJ` z1VJ!X5d_0#SFEsO#R_T-VudX`P17`AO~wj>T4U7;jlJLh{Um9t$2n);bFOo}*W1hZ z<^GuadnV8G$@dF3OFvqDTl`{moBi>B zd|td+`thf6Ol|z`pvuGVlg-k%`0^O(e4l5F^!dk~cO^Hy9;@JxEs9Lt4`DQJeyTM7 ze6d+@&K&h8*lhk{KK3v5{fNyne7E$mzYlSp^MbPP={#km>O1B1{O?a4uVs_Zzp(v_ zPe0>Lm~#JC58wAl(71Q}?%&=UeE)+Fhwj_+M=$;9tlK6Q^r zf8Fq#?Y8~xW8$L&KmMd@-KT#~KHsbUA789re&T0e{`0Hht+&}JbLX|aeLelWPFMfN z*Y9EKLcJxNaQ?#;!avrI(ia%j=5MS&+aEgV*Y0=c36EU(bnPoou6*a+&pw~Iqc(Br ztkd>-_OxY3eYK?X{KM|by8fzX&iVCAtLk5qU-Z9s{2p^;w(GsQHw}FCuMZzw zv;2+Lg7=GWEPJfdOg}GcV)jpRSG@UY_w673{_BF97vHzd;|DzdeD;EUHA6e zYxjTh2QQV~cKn0)Uj4_5SD(B7-^k){`$JRHvGEhnIm4Cy6T$u&i&%) ziQbN1?A1PN_EDLqU4H(VOFn+~FTZKL`{o-i{_>Rfr?1}j^}pr3HqFnxHf>SGai!CW zCg=A)_RVwm-PCgL{131GYL7Sa)~wp+ABWsICD`SxMVDQ+^RYQ+7It6s=5}8n^ikV= zAKiS*^G`gUU%aqjO69&~Vb;6p*X8~?`6V za^>gSM7uq+|F7oE_;&kG%h#Ut_U~T0^~s?J-@I*~s;$aPOO7dgH1GQ9@zhr`e)QQ~ z`Ln-P4LtDs7hdkZWBB18UVO;aXPjJd?p-tfFn8s4$)5VP-^g4xi!FBl`>l+8HEfM+ zLj8Q*H_~ToVJrSOwun3ln|3{~Gcl{0a@d9l7ylbu8+jVpYS_xya&O=@DqA{RCFT5g z+You$*c#bt*v7A)=RUGLIpdO_pMJ@uT=uc)7s7aY?r8Gy7jH@$J-!Ytm{+JyEQig@ zKYGiZ)$uo;{+$BcImeD(#m#p>#x7x5sE^)MA@$t@Za$DIT^+xiu&Cl-qPD2|yY;IK zGjqRt!vfW=v7I)yV~c{u%b$60{^Fl=Q@rvm`Y@iJbDVYjDU`LboUw?F;s2z7Gd4YV zbnLqt<5#PuzVC2)+2}hZ^&~N_NK5_koI7*#rLpn;=crE1Jb3&z*7MaZ|7l0hQ`a9Z zM8Q1X>l}N>t3R1{G`I2NK7c6>9);W6sK}Y47%2`*{XaML|3g#%KP2`4*{T1J?mxQw z*xspcvMivS)Hhi81_JG}lIxq^JP zY&^AvOS~`Q*1z+)=89`n7L3+#3GYeO7e?l9QP=H{a9sGTb+%vfvx{|X0b3he%r?xX zk(SM7s{CyB!=taCPfm^Btiw(}{v>`SZF!r*vD+FRBh(#W>ZL9>^-#|poHJ+sN$SBsgm?%~ z>Ki+$7acskWHFEbnX!m%CeLdB?moP?AG;S)$2;H1^=wst{YK_Qj5R+uv8gW|slOlV zsYhd|Z*i%+MDRv!@zT81L!IVkt8dtd=D)H3z<=B-wusN!BK#lrdH1_zG>?TVFe4rv z|GiRe8GnS(kGa-ZU6{5sPes!l);#T8sPoo&JZdj}pM6x0OU_qcAsTD4_@9@<6Xoa3 z86EiX!We`9d3l>gvg2FcQ;z(5+Y=kxJ$fSj4EqM@FoIC4%~xK!{ZMCX`F=MojgQFEI57^zHs&$g&+310vc&gBf5&J6EpRN z-;4S5W{%GJgwxHuqN4d{o>Eve?>KdW8H+fY-)Hj*)U7qR`^G$L-qFVwoy~eY{ZhVs z%X{cjoon6a=btw3xcNsNeabP%&flNweU0gxVoy@B>Kfn~2QT7P`+vEg%JZM^s!j!h zE1^=)a2f6A_+zEjH~mJ(Cv`gyp8lQs=4)yX^*@sRO}<}F(E@jPK>^7g)Mp1Pkf_g^NBXD>bV#@t1V_Mwb~ zvaTfkoBaFl+jZ{22QMXV7oIut`dsb>^PT7Ee33T$NVSdDJN|#wuB~2E?ISIyPL2f#m$7EKzjKN!Cm*!8)ce_2Voto;J^7S)O*vcs>=)i>_mMFK4Cl6rOT2 zt8(mT?iDlkcii{5^5w`~BNe#)7g-F60I*myTU^utfdHZIiik;w2aJ^Tzk(sSn>T<@P;%gZ`3= z3Z8JuOXt)V)%gw24Pv$t$6U-;=r>)xz{fq@ricdxa|-1nWxjMfo}RkFf;gY=-d=eA zC6zOHa^Gf)cl343%tKB%CjXeD=buzOYj)wmvkX3C5o2FdJn-0)X3aj+m^Gu6GRI%% z%$z-zI)5y6>{YiA=kR3Z@kjiop3XM(cWlB8>c{Yy)+$=M%Uigd0_vD*7 z`}^{3e4KIWDZ*TOKSNzCGJe;trQ8pasozvB_i9=={(ga*V~kd&hC%SO%8JF@lZh*( zH&*`rxl=va^n~WoipNUY^miIA!Q#S@rAyW2E9$k`#y{7L<=lIL&V!;iekwK=OT+cO z7qb*cpVgjv??%qC)SVae+U4h?Tl!`{tGLa>_mpjrD(}f#U(}<;)a4QCc_sWcM$K62T0}9H@ZCuMAf|R6 z{gy9R;#|f%UG)bvu_<=rm-ILOzMZL7;;hXU!ssd&>QnjAk~Z#>n*NRdo4&xJmxHs zxA2lhb9q@-ap@B7+Q0O0aRe`^IcaSCdmw|uYD_)T*5Un)dg15r$LP_D)C+#~x^v%D z(!Qy0gmYHo?T>m!Ag3_(9*ApGH!dP^i8J~L%v2vYKB1QJVYJjdsGD7k-accq7K}cI zi|1ylw^irygx%4fRN?G7zCd~1_UHzA&?6h<31eF&-p$s^b`WVQee><_#9#i{204N4 z?cZ*YAF`d!&pB+nuzl3DLC$Bpa5L4EqkwV{v8A^1JB&&DOj@{)YVDw?)rv zkW)z?Ul60;>K^^OJ+DnR#`9Np^=~}eCNtDu`#1Zy%f^3WkvpgUsqX`9`A=n-oc3R* zZ>s43+n+d&#reD`xKMCwf6nX+Q~z7MNT~PJJO+^n&RUxuM$AjzO9aWRbFPQuMjGld z#{6~>WMX-%U#O!;1dlD|p{=Z9b;{(nE8_App6V+OI!Mfz!GANv5l4u*M~J*5#MS&i zk3&q%nKO1wE14T%pDFg; zdjXG6-FxZ2f@4^{_2Bpv3(ELYyRL4gwDI^D{d@i~3q>V=`E|sB2k@4xT%D!)1w7gY zF=ZNgo%MEobZ+gG8pD0^c$s45w{N2Bt+lBEFnmSBJ zul?a&f9i%!`(CxL7=57b=<``qMupT2rygPgQQ|F_>Fyk&oP-y(hAvGBn-pY6!8@QGvIgXjEpgS;yG z?)H6gD$m`ljVkh|y|Y1{P59s0hRCb-{o9HS(qUWr_IK;rvhM$jutvTA7v=s>%Djy6 zQ1>!a8)tiNG4~noXVv}4zBux&L&)k`G4U&XWSFILylr9QId7fR}J@Eaq>%BMkU5P3y6 zdONbQA0dBe}`?n>U#Xm=V<)w)Z60mxJ~&F9eewG zjF_h69i9@Rz=hG5ghOvn6bUZt zB>bb5GV^2d@4Zr1{cw^9uyVIa!rh1Q+c!V4Cm`P~(6zR?2vNn(z)H{;M=$7%OGTaGKC&Qol?S<}CWb*KZxH zLLbG>lSPR7Zj*&^=t@~Xb+YhqJ@Xae^8F?YkxTiriAVix;^#2mWs`+{IP-APWRYOW z62f`3zY^!Jlq1(p7A`j2I9UXkHD`*5k0jp-%u$-y`8rbS^?v;&sHK>$oO$Q_=_l);~>Bi zbv#@^d(gUQCD&jx-xt&V{U!((ZH%!N%}Z9wW);REjGUEn+WwUDigwHsKUsADS{*o7vpLkqvJFk_LmLzHG2Wf)*1hPWIfj4;MQOmG-Q z4dom37j@Jz2MsJh6HCxS2W_lI2kX$qCiE~wA3HF>Aq;T@Bh+S6KTg90b5Y#P@q`-M zsAB~hSc4|kqlE$5*oqEzp^NL#Loti`F%tvK#t`!`LJMOo#RMx++`@dIhCb@pj0U!$ ziG65cf;OfdO#PUJE>1@eP4uw{11!T3t1v&F>KI@S zhFE|`E#rh9He!q&D*ZO{&!+r4SPvLrGe#ccatPi@`!N0${l#Dzi!9%Ve0PqMD~ed1!Z z`u&1+=wlNG7-EPW7~>Gy0sWanI+`e+=6FC09kj6;9jrqao6y4$eeA#hhfx0m^LjYr zidkslbhOY!8;g|Bur4t~9}^5wG*g~RN0G-kJyj#dl%qm309Vl5iavp;&+g)t`RzrgyLOZW%siTM-lseauoTS?Xg5Z<0__jUk79_|3;C3bd6=M$!AF#j z-p8~X<4-vM97A{==T8iy|c_$~85X=AuoyKGY7y~&3TY9~dE=wKm+r?pELwbSVz8b$4L5G@==`%K2`RMr)?p?+4oOfbf&r!k(z?Xnof z+3m6dt#jICBL+WhmwhV!+;*9LI_)~2{$PlWsF$|O^(u_nMdV+|IH0+xUDlyq!MLHg ztX=A7kX}hUQNN0DMN!54p>;LsXW})C1M1f^&uC)3vYK&1<0i)MEW$V)jhh)SOt4Oc zZ)MytsBM?&#l+(@v~Ht+C~j|;)#zZ8@($|97>Cigvt1fzGhTNw{}?Q5mmV7TQZDLs zlzR^8_qR(2U93S5>oI&x%3mWF~$P)f6xAC2JLbg zdd=-JR_VANwLdZ+^U3!D{lft3m4D(mQ?|Ct9Gm>F(?2x+%y?pg5o&MHeig=y^BAu- z<^dhdMHdUvLmLCEzz}ONLLXyn#su3?yvce*4HMKc?R@ITEHrUCT4$uC zdgx;V2H1ijuD}RmjB!0Cn7)Ae-{N>d4Gq*W9}O%<6U)&;7j0aI9yVf#%Q3Is=2OTU%7t7H@7kylY0XAZY%Q3u-gX(N zbZkWvyU@aQXrov}doU9{%tjycFhmPuEX4#XQR`#9qk%qJ*o+RgDc3Tt7@+oZ`hnS) zpov;Pq&*bp&pDk z(5`aI`Ex?+_Kl@nIU^%zZFC5?+1k14BUIl9}elD-OKGltu*lEX@kd>2#R zE~{iII#`MNuB&8#2DYM!U1;Gtv{76_xtNI_W}}aJ7@&nAmSTjJ7-KCa=%d(;_MnL? zFu-AScV8uShjK9oeJsETZ4^@}4-NEGJO&u-u}Vg0?YT-OXd^cR6)t9>qth-G#xnG< z3Vrl2zy=Jl1tVO6F~*qSdK5oiCDWHMUpN(YG|C1w&kc5ylwfdQ33Af^zm|f7H-G9rMxNXO(o&I)L?p5e{O4 z!ziY&k{Oq>AL^)M4jNd1CYGRu4%%3a4%VS>F#Z_eAci=M5oTOQJ5k33b5P8rT-2}x zo!P5o4Vs72KD4j{Z5&eRID#%}mov^d4SmeT01Gih8zZbx@rSLFjcCqcJ)?Cb>$Z~g zeAWT#CoryP;0iP`Mhn-Yjp+l#3n~qgKRvL>p_-JcHv- zh0kPvw9cYkRg6P1$1euwkPrQzGH#e)D~2V^D|+WKf4^iL7BThd2tYZ|nv5wKetZLFR7d4OaFu_I?chWu;j}huPhz1U$i5WLg zAL?jh4mwzXE|#Ei7wZTEY{CdbjIl$7moa`fQtt!ohoYYSP(ufGtVRRt(8MORFhmeaRkLfjN46=k9o?6Sr=$M!aQK`2l8WxBPt!W8rp@^Fu`0D&v1O8hBoS0fdGrHJ@KK7~fX3AITsNGCFPQwIE)ShLXV1N}W+`>9T8~f0Dk^OF=oaG$%XociM z?-k}r*~&cJN_$>s{h{*)@ff|y{MOPRoQ?^aDBhwz)UXV7tU?1lG_e6KY(WPj^l%UZ z9L5MUZlhe(QTq$?uUx@6p?I71h*8A;sJAl?=%RKz@n~R-`IulaidCG)P(v4WT!scV zqKV7V!U$~~L#%TRPuK5Doeb&Sx!L9}ofgEgE- zJodv}bh*?e`crbUqoLJL)PCF{ z`!K)+}>mlly(IG92u~LN(>W~d8jFAc-)*&+=raa8X zIFI&Vf)!{S(IIQlMj!RL9kLZI?7{$rPrv3dUl<%md(bTCkWDHcL-ddD;JPoy;{@`d zi8jWkkd6snenUAw?~u9ZV=2aE%%_UKphGreP)@&pOTCzh zxBv4nMl0j593{x}sQG|*YfIz^*``9ked+J|8!{1^qyJBnwSA9Pxn$0w=pCDPGcSl zITbZD(85AxF7+$(R?GEDbG0mZo_3*)4pyLxHRxeI`WRqk(96|GF#&tR7(_Yk$SuLy4K_8O>+JXLw)b|o$EJM4HdN9N$)J~#& z6^|V#PG)@mM0+p`O*GKPLUgeVWAsp*vRXEvfi39c3JfsD5Z9}8i}8M$a&S5tr%?{N zSc4wcV}vbepHBPHEFynMJI|n>7-KC4XEN?+7O&>HrL^Om)v^SA^iV6I9V$GZb^0p# zaT;3Zvu@B>K)+SEl=fk?nDzS_@s*4_Mpv+IFuam>w^C0P`=R?w))#u%iavH>fa@?s z@jC6qOth|M{8Sh%)ZNvx9KCC4Cx+OF;=0vxxk|?_Ofcim)O!Q#9<3V22jkmV2dLe} zarXxEjaBHQhx#(+15Iqf7}ML>|8CYBy7!U~Jq$6#4vcUJV;n)Jj^pA@#^XNfNBw^4 zLG6LnvQEW6NdM8qF0^nR+9=*)f6PP|v(dvm^wGiqOEJVsjIb8PL#$ska5>r-sjyEu zf1!O?f!437AKgaIA1f#i4U91#wa1xHbg*2-VTP+7MMEz~@J+WHmpn(NwVF}vk zpoi5MVjXHt95-lUh{lu5(>v7j6#JnTP!9%wU|pg649DMJ8NX*~2U_T&|3}V~7+@pD z&(WTUdBfF`z}g)7j;7#&=X38t@R99Pg!)Zb>F(8Ln7(Lo2R(ZxFSunF~dC>Q;R z_0h>ZuH^Rz`t9@=^$yl88mpP7HI&;)IjF5+e~d9guZwlv#rXD6A0{#B=>LuWcHVhjeuJB^~|!J7rc(zi~Py zGdg7@Ml(BQE5_J`VpgY2f0usZRMgQx2aD0o>6FVc#7M=@CjZ|k=a5cWfcBxCvKn2i zQ}GyLj2$R)JLM2+ID$56?-8EUDT~m?GSrXgl=Wy~pwi7wxgO1Voicln{v6dQOVB-< zexRM-DI1Wxi_1vGAKNL@-Y5TYv>!zQ`7y>u43DQB7@a_QA5c$Wrz}PDB-)L}$@Ejj zV}vdy7+Q?qhqUL^PHCcEM1C}}32h9~#SZjw2=z1QuL|R|A=-0hr_99|YtTQ7@y7ty zp;^)?3qK+rD=DeDBah18=gXFfh*|BILpG?q|4CQIq> zI_j-pouPGUr*u>pmt$}l^Z6<5y}VQAp@$9{m5eV2*oFQT)Pv4dwDa%8SFzsEyM}hC z@b%R58RKvx?MJ7E{n7K7M-{${aZG6EL$n_wY{2kg_D9QS{yr!E5!#8~qQ&%Av>J}g4<0_zPmtitF;)*b3E(NA># zL_O;n_mFbYdX@EqJ}yUdMW@uiB>u0AH;RaI&|SrGjZPQyi9U*dQcpL>Cz?Ifi=vlu zFhuPu^7XMkP+!aXKo1Mi?WaGe4KSZ*VjTw9gd%2KR62H`^DgHT4Buy7hAHnu<^j!* zIo>hCE_6R(9=>M3b+j8@tVa(c)DznK4Pi7e_?+_qhF^8ca&(8ukJ>k#vJVYR(806~ zj4;Ar${LwF!aQLinp>@rRp?_AMi`=#zD8zzOBf5#*m{ku zP+@FAXPY&$4_!=9+jfmC{ulk&ZjG!(u|4^e+8Q~625OT1a2lFB&<^y_Mteu<#{eUY zaZttYyhidI6=7wqk!6_du|^J|wh#MHm?+}?)<_ql{nyB53=Ui)*DH-RGLP>khv;C0 z)fi(PCfI~xCjCVXJ5a|VG;jn>)Fx3sPD2}W(ZND=(MAs|(8n4KupUDUFv3=hu?x-F zj4$6qHx6AROVG?^KeVtOZ4A)CR`jq7eO!kDipjKh&KjA61{R=+C1|08Hddp9b*P#2 z3*)2c#}vZ(x$&W5-ThR`jh5_bch=mxTt->d+k;_yV8!^V^m|%pW zkad!Vm{iJb6lc#+BP8Iz|>uSp1mh@}s zCpuV#E_&!;1Nzv4;yR8`jBjAS?FiqkX4zSodh(#(Zo~`1Uo@K>ZH#p@F4n zVkKHwi;hS6D*jh%WE$5|xTvFj7vqKwmZ*4iP~1bmQNsvz97Gd`(Z-A&$d5Yun1cZp zV2C9s?xj35u^L^hQ|Z{G((5>$RXTR4bR0tMKGxZe^ar!i!hCeF7(J}O0BbP9228L8 zwfiX#4IDxX({^Hi%t8-yFu($guoUeFn0FP%4%F(|A59!l@egvI%49qqqJQXM6^2-k z+QW<++SrEyj-c>aFFP|%Sb#B>qW%c$4sEPg>DZ#uu|uUl%6d@gn6V4}`3?P7K2AH) z{2k{R44O#)A^SZ;`Dnbt`AGRD@maL7YsL0 z9@o1>Xkm<{m|!JpBjiUNeRQ!|#ed8B3r$>)4r)JUesDU5XrlHn`iVj^f2fNt*@XeF zLvKQt%-)Oq6T4&y29vs^i|*tu8KFI;ORh(2t1emo6Y{5b$rkjt?vjJbA9TsgX%mIH zZI{ePXGij3uv3?8KtHofwqdw)mrO9)h5UO{&WtW;V>GKv1{h;2>N#C9MhCO@!P(@) z5UVgk4`XaV^HBPO0S;rB+a=9?$%jQ~97caoR~2Mn+eV@yz-O8)7zAG1)$>1d#dCKjQEWoTm+ zI_RN`4d`JDM%aPcXEJ=StyEV zCu(S-jzwr-8Jbvy7J6u713K7(F0MciWAt%72AF;j_2X2G(7+h;F~MTg&tTo6fi9Z3 z3@vO#8<(Sl5xO{tF=__kGnq#W&+3vj=oQm06lZtIjG6Qcbxbf1jdSQ1I_RN?4XFK; zaYhqI&_Zn%<>NH;Fc;&JE?JGn&$?utia(d}MbqYZKA3)D9%|ez@r zcBt?I<~4_Ua4JTai=veMQNvR7(O2oX0==wPucAGuSJ7`3{w3pz?$wlcDC2Z3$32Scx?}}vSc5v&qk#dM*orQ8p@-|xN0H0? zV@wC8ZzhnXnur9Ego$he||m8d<;Iz!86-R9BW2G%7S&k&Cm zcA@Seu?&Cf`JPEiT0w6U8udxen&EH zn2Qk>V)6>(g8Hk>2imW7$q?PQSf3{CUqd>^U8JMkO*$r+F^_ik&|gdjNJsG=#|Jut zoDa~&w4)d=%)$_-qxL@SM+b{Az;YBH&=0h*4t;FG7+cZ!kmCUzOfbOoquFnWc}4?s z(MAhBEW;41Q2U7E1WjyG@z|=uA5$*cn4pVk`IP$!#|@fjpoaw*tfRjw{3+wD(*Mr+ z5XEPlr_jM+m5v$5P!CSS1oKc&=r>wejxN@qhxM3X3x;3N9yHf8AIH+aFBxw%|H=A7 z|10W8ZJ2pR@ip}w$9~_?PUQ&Yqwz0}M@&Sw>_aoHTjm!qu2Z^Y6Ixq!^DJ2UpWZFS z@w9*IZkdV354xp=0hVEmE@~OwvJSm%yJZ`O+flBH-@aQWDjw5LAgp!EEDUfuT03-0 z6JsnweMibwVXRW&ow}umHa4J{*)3bp#TDr6+%01aaXpG%x@G!_<{=K?oA;v$Uf2i%zy0V3#+ZY~{`3R=1K1z+ z>D{s!1ME}jGicW-%qtdRa8S3bQQ?Aa*@d3nEwe4k!xGfbV;s=JYILy<18l+=L)6Y^ z9MHrev~dJI)J`QoPQwUuQCq+|K@&^S#Y*(C7GrEs>7|Sl+Bk$RrkzGQPD5=G%69h8q2wqlHfXnKqO@%HPnga~Z$ik{^x7Xa^>Zv>)TgX+MhJaeSeT#(dg|`50p{>QAsA zTIiyS%P_=76iu`r4UEvnLG*AK6U?wlf0Fj2|19mn7;Utkqur?giT0rPGV^yH`7j&J zkom_DZPZ`ke1yU4Zy%F|D>tCE#7E>SQDn*Yh z!DwQStj92|N3KA3N{<{-@##G>{{r^kx<@(~{h&uSV4Tq-BNe}Gj}#X&KHK$36NBx0 zWCdzkkF3EETU2<59=b`=BiY|6xfa@?u@eA5Do$}DZJQN4^$VxP^R>h-_J~pfP8SJ-&c+5l}v(Y`M zM^5@!fbRg5A|7;g8?>UjBThL+#~zY!~`8otH2z_ zT{)X^K>HBdi{7C*2ksvYimwCXqxP`i)uxSsYt zKt6OIVxCm^Vai4EDCJbsjt2UN;&;p&2A^~M+(3TOD~nLyx|i!)n2&9GWiy7@hRzRq z<$C3|z0$l9x9^n|=iFWXkmmd-uvNOb#HuhI$U{ zl?51Li3-o?m6hlo)GHg&nb|7`G0y3g`px7!q*po^9oj3KP&=$whNvIj%e}f7$0Nyi z3;i-_A4d7~1NCEjWq@&EuN1dZ|4F@ES3>;B)Q`@oz0y1ayj}BFdmrT)Y}NxQ!kni_R3NW(L?Q_UfF;KwxEqG(8U--T#x3%y)x@| z(tYLu11!S`t5p1>j0?uN9F2xvnV^elchKI)s2|Nn_E%vnL+$ZiS*yYrp#B8oiUtm= z^rl{!;W1CBWAaq5%*Qb3mBr{i%{Zcu_2@ps{wj>a7@&41`I{Lpbe`*#)o8cSPBdTW zmFd5to|h;WgOGI8UuC?}evS6uMY$cc8@&PQL1(B}Mk;(@pVXJ(L4C3q?c6>YqJMZF z*JZHZ+&($=Zqm`f@W?({hJo298!$PsPe$mT+9$Pp==ZsOG9UfMW~WO^Oxm-lg92IX8yKD2+?CmS)sHVm%mlOt$e+b47G zV|`VV4-G6w@5Vm49QD1|%4zqLzVBLDfXM-CWi`47u9X3L*s9WV*2??`C=YFPu>uqH z(VD$hcBwGt){}n7TCTHT-Czrvhpy#13&s~S9%LLa8w1S42rZ1U3=^zEk-JuUs9^)@ z*n$SGKoet3FykTSVGi|UgoPNRjR{s@aQIreT$#64raesj5o@KXoJ)P^nQLVm2J_a+ z_2?eO`1rItpZ=ha%P_!3jIkB|@hBdp zew>OC8mOJXxTA%|D*Z(2#Q>LMQn*$QsqjhU|26%`d`z$y^^@1ia5wLkuy&4m8fBKD2QJJ}1qJwqlViSfKV)8S_ z{kP;lm;KPd>FA!vykmgX7-Ah-3m9LOjexv<+#u+^f zR6Mq#9;}svXyUL6Kh3xWl#j(|VmVsqqK(VY#YXgSIr6rO6@tBPv=41RU zt7VIKNzoCh&_lj8(q9763c)blL9&ALJzThPE2%D*zsm|*4~$rsU2 zG%z1MbkN6Y4B8oY)K+o+Km*sIh3U_cjs}L9j}aE5=-~W^CVDE|$-H5(hIwiszKeWl zVL969qKEaEbTcn#^iUs)Ui$w$_Ho|8U@hwh-FF!$^#8{3{Q~vBM>-~h)QjRH`i(lq zXrg$LdB99G*O4D>EJGKoQGCkz0}YJP{5$83<-~u+afo)px>f#zb%XI2q`yQv)^psW z{uT3s#xV8$2}fuT2H(=oml>~r(SMAw939cmbs?lr=$C0B<1ndT+GtJbmrZD-_sbCs zx9*pvuaLe?zpO{?2mLZYE2CcyVzO<&%y|{J>z6LZJM_y|jCSmoG5S08%dFREcV@rL z$6)7vS%%sV`{gopcO{=n->qM+$9T_vS=>s$e@y$({0aNNPJ5^I%My(C>F2r*%H6kL z4x^Uc&vhN_hbDRl_Dct&S^d&Sdv?E!RQjRx2gPCia{3!MhjyTIIQ>EU2-4A?+b;{- z=-<44S%=zD{jv}JqiM&RwC5Pwf!eYCvJt}*`(^rD#GlkJi_kck{Zts6(83U-)94?1 zr&G>fsJEzJ=Ak%~{-TSu82qeXcAtiZaFpHB3;)w7=4S%t8~V zqlG5gScDFip^H`Mp@%UpM{{w%98&R^84-^r8W%7Q=wcm4*oyjv)Q=8MT}ivK0JZXd zS%EhC=wLIt*oGeVVT9@J9FKhcLwS)r{Nqj6a%KfDV?Sk2M%!BZ_MFN9_jYSEb{$PRgrc9iWE+ikle+ z)UXR}Oj|=b>S)};y1*EV(Z7}X#Q(R$%w0+uz`eXf4 z>m|O4@j&wr^bZ{@!~iQ%G}Awo{sR5O_)oMC-Itl?KK91~4A90X5b zHOwcv-HZ!bJ+u=&%zBq{Fb9pbK;F~AB8u?8co z#~1@luocB;96zYxI@D2oNIx+XP0U6M^Uy{M9W2EFt5Ex#a#a`yG5iPp9%3B6ARqcz ziS~NNP5Bka%SY6+fp()U={E)#q9+FAI`mO|Ogv_zHeo>Kql+b|PaKd9XkZH_xDLHZ z15*El^t1t4h%vh8O&*ZV=uR1s2?kq{Zyo#nU_ch3mq9*swjGcw(B5u94y!O`d`kV> z4@eVrEW!X?baoh!5n4MA$fL3$SxE+56JZxVAf~UvkUz}@xuXG zgCVZKD2w!j_U}3%^DxR_Pd{z6b669QPcM(=pZuWIc)>56A#DY()o0 zFv9GA5dRa(MH?&7nl>Qo(8VV7FvI{mFhTJJT9O0rBWw$oQaH z&U%`}eeN$BkQQ1F>lJNmKnGjU#T6Lh5b8@PHw~9kKiXK2K8EO4FkUDwqkofWCsr#f z86PyS;QWQ+O6Fw>?YoNe44PLnj_6#&cx^>{T-Fup*D)^WVjcR|GcTB6M*1Y~zfL{q z<1!V#k>d)rn;5UH+3!}yQ+Ye*BQ$=+@wpB4VL4jpqJzuO!$u5nIhuE|-j&O!?+17{ z#|L`%Fz#s8F-|J{0Oezd=^6B|p7SJ{XkdW(m^?)Ns69--P{(RCu?~$#IIpPqN0}!~ zaN4${|C)J17t7IZpkCB}!#Hk7`yZn`^spKOtiuqSFu^tyjT|SaKhE*CJ>}pubTAiP zEJPn|46p)Y^f18&^nS;Ds&pL02!}Do42|-d=r_7pfB}}M_$OI6Xg|gHsd)4;!Dbcy zJ>_EfH07#z97esF`P_l>pJn}Hf)?t}aXv-^>(RsjZEQmq`!K;o*+Tnvq@3qjcj&#q z{3~B%oX~iM<83F}iG`@W%6OuQKDxLVB<^#RASuYr1q{0#Bo1GaKG*PUi z|7fgYo-o8}WiRbSw~u;vp?zqewwCpRCKjWI6)N0MJ!rj0{XEYidY|(tCfJDL1JY5$ z2rW#|LoJK+A;u5gkLeF47^1(9^X0DiDec7IGv-@`6V@Y&f6zXjo8hnL_Y@}Rqwyu} zN9Ug$*BE`pJn>wOc$jfP`)iIX^souVH?#*eOq)u7HZYIqVhzSvui{6TM-~1TzlZn0 zNwKsr!BP}yv8+Vx|Dovqr#j3$SM$>>u}M&tV_S6vyMn5;3+GZamJ;;VRadG3Fo>4za=QY_iK1ryOlP&SaZ&nK5C9iqPgSu*AUCY<&n>vI;HjG3~BZ7yc~6!Wvi4ohxfa(EdgsxoKR^_y0P`OLYbDj!jX zWo&XaYe(8I3m&T4pK9ET)lat`n_N=)^fGK<{0#B3^~^HNeu?;>U4|w*%&PM9KmT8KReo=LGp? zbfW#UIZqy$y++>HI;jk`m+Sv}=fLu0^H${r=3(;<)@5{xea*4%sqO>YZ_>`Z$2zaD z{%P{c_FLtJ$wKwVn*VKOn8!w=3@fYhS!KxCVaensvKYws#Ui;czFnVjQ1 z=gQytWmwA21@gq!h4%F-^-XzX!evY^av#}#PZ>tpdT;4>L6rN%&HR03Si{x_%1~7H z%O9H;yN}12?-J{<_QBG>J1`$hHa}wjvHE4De_tSu%bg3eE9~=l>wnyNv3pe+Ql_7< zPiCKVo+l_@?LM%)M*f+6MqDSV|E##!UL|hkpSK>nH)x+Ho-f%SYd4jCS3*6fzs9}0 z+5Ki~jq!}W;`yw+)%>ilb)Q-Ls`XDY|JUV*&D-p&D&MZ1(Y@~D>#h53_k*2|bE?YU zu^!ulo~x6^`CaG2#`o=uKjm;GC*@Zm8;+vr$?%G46;RVI#96cZAw0)_LlV&|5iuM;Ktt zwM^JygPYmpHnupyl+mg3$~s$5+u`%>)_?kru#5#eY(8U07-gH$o78g#YqcF=4jXK+ z!vRLm+z|$ua640WtNLf@-=m(rY_p#Q2iWCW)@N9c>2r4YJi30I&x{M1KF@yG;Wp-+ zV8Q4#<7e&&a~U&X^nx9JKf$_OSG6CtBOGAPX{VcS){ZcX(F=Ekm@W1&XNx6QR`o|) zm(3T+doSxdLLW0OXX}_9p=8M^Z!v!MjYy~%oKnwK*f^~gUHE@aLD zmT%q>hS@&NdJX$yFB_-3Z)|gb1=lg@wV$e;TiAJv`OmWc8Rli{t@h81>zFT;f0jH@ zmEY!`zC-+PcMfbaWyXx{Gv%SGZ|L_<`8-P;Oxb3^4XnRoM;Ky@!_0W7YUhka_WMrz zWz3$cyvTSqxPi5^cZ7q?7Q4^y5*O#Qc8-0pJlFkT=REPSvBdMjCa0ZkUDny=d}dt8 z=zQ_A#sMbmu))pDIl+R_yY;`o^T!$&u*D@z*2bgi%x#Hj~=8Rde zhb0%Y%cYDicFwGEHS1i@n46feV1vVK@*rEBexCJNXPfhwv6me#Va^r{u4KtI>~aI6 zOXQC=Ze^XLjCqI&YfG%p*=%w?TU^MLO}4p=83)+mTITGq;AWQG#x5rqeb9NGZ+*^S zopTs-0TVXZU>}=Y&K6fOWyUrKnQ@36ZfDLe3r@Mf`kcuw=Q3LAy~7$8vCe+RT)~8G zHn@&WZe)vFn6hM>2bgi%h1TaR=8Rdehb0%Y%cYDyiH|dxb1u6~SijD_ zVT1ilxq=&KYU4d!Rgl`Of2#TUfOPFub!zvw(KHs6iTlf`Q1#`0$CG5)gkm~ynL=d??#!&!{h zSdXo*ICrMEcptG`YaPa4bw8PW%{}>`aqMR^lgG;2oeR@-&UvYJ_A~8gI#9KH^>v?dyV_BJbp{wE5B`i);jiAmGASu{fPa1 z$39pLs%ObVjJ_++E%R_TGxjq5o_oTAZRX#1|ElsvN=km_ZkBz&`IzN#&wl}*EOdoN6Z2i=IS|$%avtKrbjHu({X1+2tUUG5KLMF2Bq; z;}hbZur8bXtjlcD{bjk|IkVMuUX1=~9MivfK0awb|Fj-k|JJ`M|JQqu1&3J%{jN6d z$vZ=Xb@nsn3O3kg#*J0`VLQWCrc-u?nW^@}clx~u^K%(HY%`g*GpuL9%~kvKogw;^ zeLihxSit5pcZL=V4lsJw&ajp-H?lipr{9&({=A)`evLBcF`g+-w%E@OS5@Wb?+iJc zFEEa^qr`Wu@$6xHmi3st&^pXsv@;A>zGP?UU8#Nc&aj-x%XWqhY|hykMyvW)+TW-3 z<1%(Qzogrg#qC7BT$!OkAzt3PD&b&^4&SU*G z_Q%>u_QjMP#;>&wI~-;Hx}81`um1HrL(Dc8vdex(3+$7%H|z`r>u(g_XVoV=!+fTv zh>zV<#m82UbFIp6-WjG{FK?&m$E0^>=ws(C&XwuHoncc|ey8*NocpuLei@xDPi((i zewZy5FKg#G560)3Z~=drzPXIRbja(S=3Li?BWUv7WwTq*CBD?A@8KH*$$)PA+~ zDpTuKUL()!TxceQs-kO*RaVA zY%yobt!#6YIS;X5?d$FnXS2)sj2@9s#%wa-GQNca{2kZxl|QpDzG=w3JoZuNk{uRZ z^NXEf4&z^Xk8#Sc~bEX{pMqhOIT-%F;_C-8n(EBZRX6ll^u?<=!*NB z?$O`e19qP9caJ%@uwcoO2N)fYul3g9Y$kvA9$||qGp=UiAI7u!PyO%WL2Eku7dv%93p!V8&_p$irc~d@f#mQ+I_H$AVmxD4Sk8p2*kHyshpPJL z?(#W!`LgHEv?ef(;HcA8j1#b@8ypRZL#8EBLansN@{B zj}Zqmu43oq;$Y4}rmxWNKILO~g+A8j?h32feU-ei`RZNaAUmA#9qSyoDm>POcfS38SNUXlV{?H#Fh9k8_@4Pr-4*6BeUo|E>~S8fpC%9N zaQ^p|Pv7Np?aFU;-xx0x9~&%L@&J>!yB8bH&tA6A+~sra`ZcV}CWqMKcBbsI%_%<+ z4`;H&xvZb%9x`W(1y{294*O)utyTTm^7DW)=d;U&jNUEZtZ^CZ9AM0~OxR(0j&*-% z9Otrjt~|5OMQpI2`FZlpWQlQ1&$n;3E|BL<%3Q$Oh1Oxr^(>qEv3b$1F#SRMdyjlF zf4}FJNxwX>#VHSo`{G@GmqGo9<&O=nX7?ldv-45+i}mH6i-)bl#mty8U*UWheZu)L z;Q=&{mh5Af%NecnUSW+H8{d#8 zmUkKdGyU#%4vg;cerAm+>s-y0Lu_+|@I1Y;zUs9ruo%`(3=j*rwHs_=S7GlB4YM5ZhbyFU0vv`)2Yh`DTYLmWB5ayX;i$zqU`tkGZ$MHa};x z@wjo!*ksOSjDKrimA`YomD{Y(?jO8|9~1X>_k%f?u;g;af0CD~of!)bR_z>Om)jZr z*>lWV>AW5n51Y()h?ns$ac;FA#w^&wE*CQ&k-w@uY92Nw%<~(0;bP{K_Ft9v%OeYJ zVXf<&+2Dbyozs3RKF(tLg#EL1K%6WN%J1)->%Y}k{@34Swt~N7Os5Qo)!US(4Tt3S z@;GZatYZGc;V{J3(ZgYwjrwqy^#|wh;$gqnp#3GoVI||24~OklJrA3Y;42Rx7iSKmrF*1|D~H33UFQGvaA+|3tbMV#emLY+ z{SCu@CqW*Vu=t|!%)c}oMyoOpv3~P#XzsQ?S2F(cu-`{8A2+eFMm+5B5VNnCcMors zXGUKe_PYr3#v1llZ-|2l7cpgj)y@?xzG>ac_3~DEmw6fAWBgv{ z#)LVSR&E&fdkDODI1IA*mUY?w_HdXzCO*z*hfU^O#)1PZxt3ja7;l(@}%d5DQo{Q-+s>}OD<;CwXe#*x`#~uCJ!tQINyKj z|M%e#v+)o2mN^HQ{nPzp@h|f;IplsF6hG&%9qkSaSU+rcNUM6Tuj-$&J8Wlk`0mhU zhjahWyi8bd5u<6lLyI-8WX!cpkK7%G*qFXM9H@NS?l9+H=6}ZSu!P-b>&NJM`Z1ri zJM{e9x-T>z|MJq^VU)+de0P|3=&{8_uhOqN{C zK{Wy%iMvc71y-;L1z?%iS4VbnSOqg*IeL-wUS>tNfxt=ZN zOu3D1PB3G1gnr9*hk0zW!4~_NayfIZX8jZ5X8cL_=ScZtKWkUp7dza#@z{EZV#MdjRWvNj{$@PR?chMtNk)Wo)l@zKm|N zkEffT^VwyqD&K7XRheZ~{<8I+A#OGp-R8bk-tJtPaf0o2-eWcUV1otwSaLaQce2Zq z{n`3+9t$pFn!7)Ye=Ls5M|OwlGsHjSelYsEewACS%j_}t{5j%&T%Oqdt#e~*n{#`v zbNsXClhF?GvfSl8#B`5&pQnEBZogk(KNH#+Gh=(d=Zr~rcR0ibXU^zgwrOXP41GcZV6z7vDkgu=X$OG5@#w%Yk9WWIyBSd%{3f&z$vVm~WOcXR}+|6Be=loIN39-LY35zRVw zKkH0S+Y=VDdAj{p_U;K=*f~RgHWuy)^N!(}dqT=K*D^Y5PuR*jN15;tbIzJAkBk|; zV~^iG(2t9ma48#1+2m@rxSlCDvCV=RhuPsl7M%W4^S*OWn8O+uu)zkK>|@H5@gnmw zdDosW!49XqOq`s_*4fURDOa#yn_aGB^zJ=Ak1u|1WyxtTH}7KkW5W5&*!;%yOxHv(a)7*yLzc&-ru3&4r9UDlRs- zjBT!B#*8@!*}2qsmY2DguQK1|##LV7zOm#c#vk+iRP{W-oV8brbGdPBu!r%--D|e5 z+!H!Xt}>3D75X11u1|XIm|Sgs)>Cn?;3(ry=@;8K=QF!jzL>0(SC-egSI4U#uupcm zl&$OKlf~z($N2N|c7pz2uphSD_RpLfs`3{-r|fe2iQ@l~dD&qPYd0Flk{g(;_M9^3 z1nalDH}mvc>)aW$&FHJ{Nmc%ue(bRR8sj*RT`pql>+XM5&$U%O2U)vKT#Rm)*OQEA zlg&Fkhm6*VgAI0ByHgymRsRinVv`v=%$aj53y!knA;#bIewr^2>|x3Ns=QttOur>B zuaoER>a0zp^Sa2od`|Y=C=T^1`jeEU$SZB_8?6Q}w@5)zIW~VBDPo7wC=E?T; zefeR*HlvO1J7aEShr?C*2kyxN`{iu5IiDFD%-P41%UORw{wjYcFI77yDmQtq-k|;= z`)A`}{h0sAeky<+rN;h4;_@n1{335?kyX?lDEWqTtGhr>h}oDyHz}F{8oNX5!W{FYsSB~KPFtwCfBpYO-xy^ z&0%(UkU49o+V>yC$NZ1hsmj~kAC}z0wDdlHllgZz$I9LI&1l4Vuo#m^mYmk3e%y1% z)`Wes*ynz;^Mw3V?SHqwH;bF|n6Q`if0~yCS1>y0{F!kb%YWGi<3rv*tOs$QCT=cd zCmIP&mQNZ9%h-7GNZ7#Il##HNEk>s+KV>A$VE6EmFptT!5x*axe8h-Q$Lc;R7BViTmGe^QUCeI)7I|1T2 zdc^MlSm(tfVJ+LUt;dYR?C@Y!eyMfesvnoIV2kyanU}RWBVlvZe(XqCxKRDvkLP1%h_g|8P_xCCKfDMa+qBnr2k_i)ZQ*m#%!E05|*-iqVZMzYxHM1f5gAf za2{_O2`iZOjD(!&X(M5R^@St8k6$|zHo2HBE@jG;ZLVg<_3UsHa~3Q(%#sJ$<@B?} z`L>ZzXM+n^axrTS@vzP|W3H=wr}>z^OI+`;&e`(D+PNcP4eQ*%m^mBV$|gsd@(?rD z-YGuLX36=C&NCnD>}SjsRs9nCV)K0SvAAHw_w=j3NPouf6(>6^*zJ=)7VjGgGv8%? z&SjSgqxX;aK7MhtpLMQa%r+CQW6F&zxP`S3*hf{*DQD|PxcBUS z&UhAIF#cTq+MX|_H<_RDEzb8m_vP!>XL;v{@4?sa?vc=C`<@ZsgKzu>d138a`myot z5&zCX|L<78D&OzC&gY=#o#l7sjm_`N7n6Xs3+KjU zi+f+y7uqi}{@0#srd-8>8KcMKhqcE&FKqtC{dtdhIiKZk#l`4%;;P)HKRX;{{rBQ| zulfI=Kf8a@pY1=(Q&ryK{#Nev9__Q=Vdutp)O(5Tz3w?X+|1^LxLM!lp1)5Xxr*_m zd(LjxbMSus{wj~`KH*#{|1QsL{6jz1|LM77bWol?U_5)+^XI-ZMwO&pyKY9ANv%(J=2~>$8{5r;dgd>~IZhPa6%JSUi0+luT-)VfrQJ<6L&w%YuDOo@E>x z&mIk%8P6CE-Kze1qhZbm<%PX0xRlY%QQvFN=Z}VUY;ZGMFEEbjQKMnjQqD4tjibfK zf*nTn(XgFOMjvvHoXg_HqhT@Am*~%oYbuX1Kg(my`(f>K&0G1Z(Xf*3cr+Bujvo!f zj9(+}k63rUcv+q-AB^8H8m6_xnHbMDmoR6G(J7;073*Bjj9Xdq0F%?j_fhL|DVx2c zVKrNCv9GG0n^~TrKO1iy^*!_EIn((uXUd{68U|TEOWce(%!CKo;PlJP&pKP2$CSNn zv&oFh*x>+ku4TavOKxVD+ZerLG)%C@Xqk06gB>O;&KV7DrWc5hwF^hX5EFLU;Izxd z#aT=lGh+`sT+EzHSukans~KG+uZ-U-ugqGbVfGc;KRO!v8C~k!S!0`Zu4DT$_m~9_ zuw3SRKPH~bt;dwhs`3@?3!B_f)iY<8!&UiX_PyLX%f-*ymGa4qEq1RGAM2kGA3L02 z?UTlRT)(T`Q|764S-VDjOqjFDt!!QE{I1l#Qh#;_M#FL@pOe?Be${9gt?D`NDskT+ zPi%5ETU^gJH!=Bwd%}W;nB6GvE6j7VxS4Pb8|<*j%~kuCom7TG4)*0R6ysGl8 z@?MqKT9<7OG2`~Con7Xf@=5D+CQHs`?W^t$n_R>WmodrQx2nwOYI(nHG%RGnCc9k5 z*6q%@s^<`+JFLr?UA8$V)y@Sh*(+uxK|<{VBh144E;Z2 zT`pmZ%h};-=3LLXw%7OEo9~%>!<6gn_t|@W&R@S7dwtKnaWnUZZdHE%-mqZ6dPnUI zDH|``8wOc>k@l)w-y3FsR{meS*Z10s<0X5;0PDx>4FzM4vUus{c|(ZGxmlVZR0tQUG_41+g_jJ7Z2NPbBNj7og?dK?hWx5tzfvofB+x#*OlLzBt&vKpd=HByPss z!g`;3vD*0eiGy`6Wd4D@VGX<7She@-&zKWzbJ|Vv#@Xz0K9h_0hNWyUW&0B28GU$f zh;HUb-LuL|<&yOI zi}_iPIzwSQe)RXw*dXO|_Xd`;c47T@$-v9?~EY;u$>9%9N`rv9$Ip@)sT<%Q)v z&W-gAdwoB>c^TcNo-99(8W4ZSg)~oh`;($;Pk5 z!6pl~ILwp>+2-_bn4fiaIFC7dS#SxX|CN8%xQcaVOgP9UhuGqFb~)#p`W5!Un2XtA z%IGn1vGKTgSlep-_4;!jWA?K18}Eh6-+7N#?Z0==?lO)Ei$A#sZ2sB)nEb_kz1#S` z^1$Y}=b0UL*qRU@^L^sG$GVfwlWneG{crlQ^MvP}<=>sh2L1oxeaQ5m)?@pSd&Lg7 zvET&b|Jv`p)(!H+JQ@q5>^x~K%>S17o;(&-uzA>6*vM$gnD333FV6qAeoq+-D_K8c zEKKR>f8gn15u<_nsSf=~!qo=Q5Tb8w(rQWzP62^HpU=4=Jx03w5@*fH@bl`3d=F#}Ad+ zEZAbnmF#j2<8RnMTg=(v)~cPORr@!`!XYNCZ59V-v&s3)xrE7jdH9twTgnAjvg8_e zxq;DL)?tlXS?4HY9%91UBi7+;HaVXyE@a9k+g!$s1MF}ub9Pv8Go!o5!UXG__EYn7 z7Mq;Ulna@$pE*~sm&e4qFF zZ#+Mf_Rq8{uHRb!@9r(*`gmB!4mUG7W<1RJo%LQi9(q}S#duiF&fM`(GKt5-+-=4k zKOPn{ou{3}YsY=ByLet_{O_&1VBGh(TlWp)A!BsPc<8co>Udc22m5;Sc-X+!Y2#tE zD))|ud4JUY*72~Cjkk@5t&HD39_ri8$EA!K)?tmqY@H>}KZ%1&D&H|42HEBiTkjOl zpSfr}G%DXU9#*k=_ISuyUpyWTFg{mYe=+}(@i4&reCxApj)!TbeQ-AO_n2pg`TOK; zxB1?$zxt%#y6S6}jQgH*{XaPFd)f8>(0G`+Q~!^QhvqK*KRWJv*X{2z`Btu9E|2Ev zULjuf#q#k`Gd{c0x_k6rA%6WDpR_;q^>p0#qwD{v@vx|B9}ox2>*a%89%TLV<6-`Y zeQ{ysm&U_dChV|z(|CwRjk{UinS4dwncXrTHZuOY_PzFVySy;|hP*Lh#_TTpV|kB! zj9Hg`j5dsiA!gjpoL!cjKCb__oIC4Wz=RDpxs>s@<-Ka} zjE7BC`9Axu+6Tu&Vx10~jJ`YWd&!OG+G>4nsp`My+!;S0ulw}>p>t#Wpnb9XBjYFa z`-%Lr{JH+j9(5l3ol{|6M!$CdD<5;7j2{jY>rCi_ZULDYX+ih&CSfXt!n24Yfp@aDgUr8XR`Z`@zBraLE{+z%X%K5!#+-wUg7*$?u!8y!o6TUCp zex5lImb1y#%%3$8wz2+fp=S{p_&K_%!Fq{B(I|+G`xMGo0sBjDM^67%iL#9X8)K5u(G5=L~k=F25|! z)XtKdt9ovue;5!Zn4V?aH1l!>JDkIu3s`%{L|Dd{15CJ<4R)9>5*OR=axafif3|T< z-#rmB7Tm=09QTs#b0@;IBd137CGHz*7uYYG9Ab3gMA**sB6)nOxY(+EuRJj4C`(S6 z?!5cO$NXaZV#x_MKWJZ16Zca0fi1?&*vp(v7F@=X1FU_-I+Y)FK2PVR^2j=uGG@wz ztJ&asHo1u{7R))yf`?eUY{K`58_)SnxR4Dt+2#Q2%iNQyo?F?v+`X!q=ZXoRD;EF9 z-3!*PGJjRS!t?Y@{jN5i?N3>s#kIyg%f3GCIc72-zieEu{@LmoGyc4GHrm=*yGdL# z_+|H($r|^D?OWZC=Qy9Qsb~6i?+>INS=UJC^W}L?kdzo_y3$|EtCA(b1=r+$IYs^{aR>mAdjR%-=*7Mb`6CYzPVaDamxvFZv)Bc&>!V?QC%aQ|4@QD>II=!$Ztjdx?2DnUzVf$D1&+>omlhI@HH`}=1I}bKX zaWdIqKa6%d&zD+n;Sfu1XKk0~y{aFU*O%GnZgH`( z$2qXcX)iY~XE9~WHhWl%c;B$L*ZYQbrcAh&ZEj_k2U#0)o^!0v`IQsSk@bDzWNp$p zvcX|C_gn83)@2VnY|;-nh2_k-o?UKZ{8#y8i!+YZ|8MRa>rZ&!vB7O@a)K>JuM{U| zFykENT)_B%{jtM!O#b0K+2ZuM%Ky~P7MC+;#*!Nu9kd^2|K~mWDsdk2zGVI%{TMxI zUpT}%Yp=H6llS@DwRxGa!9`X5Vf#Xh^(p(pD%Pg%3+vhCW|mLc7fNP_n~%+D`@+oQ z^gm)>n9rCCnXt(Qm$AtKW?aXTIqOI6^SN#9ti{?npCy~DKh-!k*{RyOt!ig`WxjbileJfgmv#0q=3+Luluf2=aWzw}XPcXtv0%%V+vzQ-eK6Z~cp6LnBlZ_Mig$c&<_WAs_d~gAy*Eml$xRSM#^sm}qtKZ4u zc%6E77pQ0XMtNkOINt^0JbcQpYf;NZ`Q6e|EczOqw`|@7U#m| z9s9!cH(7U`d@{Y$I40lR7Y;DL+jGz(&-chD<9o%y;{JW%AlrlDeY5$$>-^YyKs$2| zvGJgDK21N?nQU3!SQ+TbTXC{X5N@=y9P-sSyqhINPSkDcA(WqU+F zX5*f(%Kgrd$=~*c8E@6^3HO1?KgG%V|LM>4U+xua|Mfmx$frz(ZEPMs8D_uDdPhu# zJ|<6{3>%r%Cc~_^>vzL$uQ$x)@_Qb@}kMGoauWe!)n(1Cc|d7mQIEP>|Uzh z+48nbysTY58P>4zG4Zj*=-uYIelj%JTs0X|wz!%p*R#zzi}m9s<(vzYOBTvq4m0}v zWH`t=XK0VvVDkoXvcpv@+RlfyFHZWrFmDtm%hlT1zS%jjyT(2$zha(q&3B7)WQ)t0 zaTQBuY~N~LcGf!I^UV8I=fWlzvCV!KT*=PYCqr44d9W(qF8@pHZ=L+JxN|aWVD}sD z!};c0KN;q-$%LJ|%*VzC{i^oPWSD+|IPbGAoA__5ay4iY7{eR&+*k#V-m)5yReW5=)zn%=!-XmVlX8PD{8`&6lFRS)_lVOzE z{>e~(pZswi)9z$g%=mBi&+b9{XZ?`;yx)2JM;z?_*L?Ive!eGL9-p+|_hPGOo3*Fx z_dVCjwf$jczw)#8``oW}nKS2B793^v-2FZWEdMk2hZbuu*za?{%IvbmDVJ2w_x`Ym zW!*fCU%WpYtm--agW`Y5{?NxZm$QD1evDtXKTK54*&n7YHU5?R!vc2V{h^=9N&Cb4 zs-9(4|GNEQ_J_pJ`7BP}A68Yqaes(DEWZD-FSeO5<02O9uiBISVW6sKhh1*2JjM8r zXg}3>MsM058cf*F23IgW%{XRnksp?v*0P^7Oj#XE(S%tbM_H z%s9+;+kQT-%(?6^VREDXELXcfY~3WUEI3@X-)uiuIuFiZlXIBdDz2)`74#tb-fZJ; z+aC@wzTNp=W&d2n_zw4(wfmj_3hS`N?hovnwFk}n3G+N8zm*T~4;k~^K3V)ozCJ0= zpUMMkL;J(_s{C{Nx!S%SlSd|xYiIYjo-5|RbAGA%ZSE;MY_a&m{;-j)Kf0exw|hQ6 zrT$OiWAvB(p@+57yiB;Js^6`DRnOWr#_e%`nX{jr5pgpfHGk!p^I^hi*J>YkkC<~Q z%L(~rZJ&Iz!DyxZa3(vP%Y45)GwOfd6J~ zU}|*cVcjs7_pq1$;z}Mn#dw~}O}w7l_y7-ZjJ3~Bjb1R-c%H#tUdcY*&6I!OS|0h7 zZrI4zb1N@lm$z{G^;4rqIfwsZ505>(8=5?qD|kKE@Bt2Tj0ImXts5qI2B&?_`kc+X zneY!>!XuC9hUI)cSMw5fcni1iQI7IooU+RLM|ORF*7{t)>$#W@a2dzg<_n(M4I6j{ zhj=B2c{iiaTc5Ld<`uIInFna4h@8%mzbL%g0dZ?Hb+af}U~ z^mOBSBL~^#cE0Ty_VESp6VB%2?BR23&WGo4CD(Et|H94u7fViirgP@yoYkHheTp$Z z&mMk-i+LxP@;;_~kgNG~uIF#Ki91>FuxH5+`x$+4YIGat@#tsED{ti>XU?!bOD12M z8m)Pb`T30JIxl{jGjFud=h+W`#dSP?rv3AA&RIP*ddu_8%R9K9f8}<*=>_iZP4>?o zCP%p+yq6u$o#j4oDQDd*-(1A^y->bcax*s_Eze&T-;2z{Wp#OFM zrbeG*KR+tB8iuWt#=Mvt@HhW&?UUBxz-S1nbMpNc^&N$2gE`3Eeuc0hnft6cvk_m0=}xR+e=X8Yo4r@0q*PL1Auy62F8 z-~bQwy6=4OE%wDr&hY;D#?)xmTiru`l^b~6Lh-1^o*SLm9zR$jS1^pwC zXq@x;!}q&~eC-F!!$}TvX}^8n=e=>U{Bq$X&XfHg?E0SPsnPLE{k`D|uIA4;#FIZH z4*r1i?)O}O#QJ=QIeT0F{_qaY81y`R)bqf5xSR_w^&a3ac!-BxCNJNe8lA<3+|QJE zEfWuqx!inwg!8}WJg+bhulkt3pFD24zni?3v%l{>z{R}qusDG zz4|Kml#g(L?_D8&F8qZ2{XqPj$NSmKpKu8e|D<_&CO2~<5Ai>YAMo5>?OgaduHj?c z!sn;v{h|Nvh;gwv> zoU3^FO8ep4d4M-@&O^p?319hX`{2o3#}2pin$PI>@YHDPb;A6tVHTX7>HnyE$Ao|5a?ZKU z^UI6a;Vs<4X}8-C-@@82rbb)2gqPmoTzJGf?Rm1>bZYzx2NY z*UJNUavfiEx95?U-Qzv~D}Vns*eCD%f9Bo?ysZTNJf|q9_}5=~857 zI@3(2GZUjIil8W4WGRXwwl#_}!R)G41Vwih!Jz08bgA9qWOZ#(#BNcPP5=Mp{=GgY zX`0FO+28YA*Y~-uC)d?^o%6o$&;9@ZImy5_c=VH$2Yd`#-e0Wk^c4Q!Z(s#{5jMhK zJk7iT{{#o&6wJ`k{q!?F!K0~>~-@z`p_p|s5(te+#9^sv^4eq~%c;Oh#{yX!? z^Rx?i#|xATbi7DAg@1v0AJD(sDR=l0Y=P&#ME`(2Fr$ZY;$_Aw*a_=l!7HQ}Zi4-A z8m9e&^-Blg!FE^*&-ckj&w8B>S6&!`Ff1{s&vRE60CD7JQ zIm4@9BYXw6!C$;fx}oQN^4CW@(a9g&E=c*oqhTvN^zWn>UIYi=JuvlC)}t^7?(hNS z315Phu%ZWhc)&lfhZC?1IzPl7Ho?@-s8^T+e}WEp{XemXe}@gQxEFi4&qvt9%isXq z^JDBkryao@nDq(vFs%=J_%LjMGq4pt_$l@<2nXPvpJ5-Oy}=xq{W*yTE4~}Ho-1<+yM44^Be5{MgG6V z9`5uV_VDyU>|rx(fCvA8Jsg2u@S!mF@P;Am|4lu@9QgJK_AqMq9zasxI2cEqYd-xozgugdq z4^z{yhihOL+yn>UzhLUutb@159=;15aQAfV;T5m}hF~k)cL(g@QVaI*D404x|A0Br zwiEX79#{!=*Z|M`8TPOVcEOqq?BT00^&8qP%z+a-V-K(01$(%|uGqsTU@I)n#2&r@ z2jC-nVE-+4Fb7_eg+1JUPwe5HumR@$9DDer6?=Hm-q^#V_QC!;+8NA&v-@HXoA<*W z9a}U5C9+rbWya%QZvOa`4@W2DHhj+kAc<4dc%ROv``yPxvJR1(cyJ710 ztnXnC+&_0nmB2<=1rI)CNHxM|VH+HW-SE3Zhj5DBd~{O z9v@D9h2 z${3=ZtR7N%@EuqRFDf45_oHbia5H?R1bcYyTI}Jvb=bqq_1F(H?>e!E-6voVmz<0} ztc0841l$5oJq3GMQHDM2ff*yLqfW&hzI*zRDudQ?(hpl;6FlmSA=M7^&m2;{aNo0r z_&sUL)iuQX){C{1&L;oxD_8~(J_mdF1Z;x4oQpj?5B9>h;Uqk$0{bz>6PORPFTfr? z25X?H5__0*A@*<__QK`A#vWE)jQu$M`4a45mm7Qd%;ng_%4+Ok-4)ow53a->Hq>Ab zUxb+x)ce)gL(4VT!~L$s9^M9<;GVVE!}{y6hZkRuJ$xQ!PI3-&1NQJ!SOzmZ*uyh_ zi#_}nw!=f}u!m)E5{|>nDb{y4VGl=P89aU?_HY0;!IN&m9xB)i_iMx+{sv}F)9-J` z9%^@B4}Gu(+BOaG`_zn+umc|F9a4SpJ~#^pVAc%#i#vx@0Xz?u!)IVE-0m*y;rXxw zJ_h?>_TAXSF_<;WK6NwpaPQw?51p_U-T<57&wr0S+yMLF1@~YN{{gdpWdGEJJ$xRP z!?8bL57*p>JzRW0_V8oa2VZ^wd${N!?0=&CVFA1XmP6Ac*uy7Uu!rBm4*1JQv4@8| zhCQr-S&IG&3*b?YV-N3xwQ&Dd?BNs)z)6BfZ!-SET{{_n;j?fMj{Jr3cX5h# z_FIg;0^ka>W44EQX5BK>T`|VP+V?x-&zd{Fm_zUdezW>4= zw!>Dq^54uq@UDLH5C8ck`Cpo%IldzQ@Yt`(KfLoB@(;g&_3-d-X+Q9F*a`Rg4tsdU zAoga;6=uW7zsDZ#_5=2E59{HJVd95x4v~I1Jxu!HWh10Njrhk%Kb(OMxM_m)!{1Gj ze)u2Q3Rlly5Bp}Zhvpx#-=6jlbKny{VGrxHVO0r7VFP?%(XeWTmzsw8y>0x#0r+&% zuu4r&(f*V?ta4z-;$h{0*(un=HxO{u;cSzB8OvfI+0v+(q z9k7RH3-+)Lw!(XN#2)VOGwk6JJ7aH2(Z*m7+&^=e-|J4%GItwRZg@NN!bQ6eD?hA* zI^1oKVSb;R`pg@XUxZ1|F8yLy<-ucZ!~D)S{pqk_RSj=BVpwg4U*!#}c4#?rSoOkN;UrWrbLSN8 zo1=zRJ{nF_{-~tRSVql`eD@xUx58^ z*$vodrDzv;u!oPpLfHLV?BRiR*uzWev4`KlPS|i0_Am^S_oUt$u!m3Ff;}v{6?^yw ztcPdahCMvC5qsDK`{9P$vHy9Bw*4L0!#AJfB=(o_cnSKj@ z2UGV-VLd{>g|9&eeCZzSVHa$G+cjYidtevL`UCdx447(7(I%R)hcDcZJ>2a9?BSna zBi!M^VbunogWd2d->@2l(+>@+w7n_+hllwcb;5aMSe3wQTIhH19oPtWe-wN8YuF86 zfrD`S$FSdrbiiDA=HuAIf5R&1|0DMB*+0>5;iFFss~&jSleBwS^AzoVU&`xg+C97! zmci|wq2ItGpQYcxD_}dk{yF*$9NR*>gRj0YtgP9zvloYz9q!ydtXy#E%hVezd4+m| zFThT@@1We^@;_5<`!O!RO1Z(eUZdRL9j{Yvu&|SIhs*y$xx-gr7tDJLd-y#}-9JTp z>}~AfZ@RFDt?ytDH@t^EJm7uo;Z7f551;G79`64S>tcTY92p5LnEVS%DqB0N0AIyX99KwbE z14%Coz<#J5M0#`a53`{S=0hhefo|x6URVu7umSoG9#Ngpl{=!eLvV*#P>1=@dFY6$ z5FOS-_b(_fXtPmH!e5T?K0p4T3tEmGQO!_?y-+)fd_z05`~rKJ3$4eHZ|E%`Jg6Tx zqB3lx<9OnQRy*m0A?SyeWh1H^I^h8HLd#*;Egw;((7O_UFuZDn-&5z_L4FP=e=q~u zSC1$s48cZWG35-kH6yAAT45NvVdfF!tAuc&3%a2XHbQ6Vh?;~Rn2`rhC0yu*6~Z${ zc>f-MXOe&Df`iZpGk!^Z!5kQZh0uN02=C_;4y+Y-=!JZdL$yFFY=?H(16^> zyIV&3U5p!*TpEA+v%LgIrt(EI3!s)Fvv2p_s0r#-DCygv~hv^_yT zhW<9ff!b4y6VUrK;|=ur2^YGaCEu$E2X;U|)L|I*L+v^IK`TrvA|EgZx?lnHz%ppt z!uSGx&(l7j_9EjSbiynLIxK)8SO%@_)IZcZXh(AYD)qRUbi77ALTiBXfZFTyBWQbr z@+~IbH%F8Q`a8)t48U%v!w?L?Q5c4)Yq0+d@k0x=K{qUf9#{tbuuAUVA|7acoA99h zUGiB%y5ApBHP89_WQWafe;dw|G_YozMqea0_(9F6e=Ma&I10Ij3Li)M)zyj!lP8fhyFa$kN+mU#n75bqac0(5oK@Xf2_nk&nri2Ug zVE~pv%g-ne=!Bc07y6+NL(rBns#4D+p4~^4TbMPfI-qAy^s~6%i}XP|EQbLrXKieq3 z&rUfUKB{Wb-Fc)B+K;5Z(XIKT%3gu}arlD)*aAbxk18F8m(iZiBRz%G7xcnv=ys4F z(V;H)C8H|seC*fK-k@(C;XprZ7ai)*;v}6HP(CLR9(2KK7=o?B4b(5RmlAI!hEC{%6)42WIC~xS6slUb@WII}E^X=scTr$UV%gA|EgpTF;?9 zK^v@sp$lk7(0?K20KHYjcQN5YC-lP#7=|^_b}{`C+My4+;1=kCI`qMQ7=YR(#0xW^ z^%BMh=!T`x58W^f8=-y~`G=lr@_8xYTt$4)TSNHJb2Z}?^k0L!n{;1Gxk29zqiPcR zVcKtqr;hdwZO{u{uvPS%=+AP0Gx0$8E!5v-gnt|50DZUP54!FooXaV{yJ!#4eh>MV z`#(@l(DDHJs)jz&2d%IXI-w5+U=OrCL_J4za`yAuDc zj7u;Co1v?XdW7C5sh6v8hb2&lmC*GR@j?%5hhEqX-A|Lw8vMf?=!XR`0G%)lt3>x> z53SFT9%%2t|JB6bMgCy;9m)mT|3g5eYeI5DyhH{3MLF}RPd)oE& z^pF2guFyJ6eM2W~f#DI_i|C`wZ#NMC7~w$Y1o6oIB;^YAY32(L_cN3))D-<5+F=9q zz-Gu>H2h9E_lw5(-Us0(jj2-TP9EcX9)y!Rruw0GmoZiTTlCB^zSlu|_ZU;X(6-l@ zN~ea2Ki^zJ*RDxkjqnDWEGA!BM5S`HgiIrXG-<(Tq9KkStIRbwg)twp%sggtaX zt7A;nLKkd;ei(ou*bBp}$CPCw;TDgnY-nFIrd-ekYhV~Qie5r`p|*ZZrQS@q&UzN1mbuU>Mp@A5#Ul za9>V3pzTcDq182}MxpcUF_n2M)bKr5mr!M&<_WocHWrExDEg3kEt@~gHpzB`3fqvKk1F#ud{y@5+b|2x24#QA~$#)Vi%!Ib) zF;xhy_fvn+{s8St++iEk9wdF@4twRk1^c_Whndg`bD&@d_wmW>42`3ah3Bs!e2VBDxocH zTy2J4*b4nSjH^lL+;LoG|DO0V#+6gJ>$qx$-rdJlNVvy1-=iRXdyT6C7}{@~?@^Gh z{l}GG^aI9KH+1KWt1z@5IIb*Bq%U_|l|b*IHq_<$4-!&)w#}glP+Q(J3+%Lx-T2_*t`v`B0j(exICp_MK2w(3(A= z8lmNY3DqGyXoBxmke-7lR36k}DGdK&Liu3GHlf;~`>+WWf*v>t{VVYQFzGIwQ035d zKH);&jT5R*?&~I$^%3lDnc#aC*fmY4R_JV*;P=W&*Q103eK4a1f34U<5A;DVY==7R zhM_-BsMJSE{}ZGSdY+q5VHkjx#|U=|@jw@>f^O)69=I8LVJi$gKcQx!?}Z6vdmO$r zp}f!!TVNOlpylNW)dOvC0NUZK@D=jiO8C$Ly|4n>ItU-y|4e!Q5qFpa1FxY&9d^JF z)S*8xp_2cEJIsXEH^>)szB!>9pbIubFZ9Cz?3Vk^38g(j`raZP!gnTAJq*AQ)Zr)$ z!PGYL1GAv^SMm$(-4n_Uov3EeOkdY~P8VJWoe)DyHq z9ok?&w8Kg0glSKao*?xDy&sT2=!4DB5B)FzJE0DHVF(UF-^UaDt~vf-2@F6N48v+@ z{e=1x_D!fR(LW_#==^*_75dRb58A$>o}e9eKo``Z z8}>sFoP@S-CsfU|_=Anm4SmoDw?IGa68$^s0eWESbHopGU>FuaZE!+4p&iyjC-g!; z^usXhh1&PDb7+CdTksDvp&RBw>kpI%48hHEA0~bnhWXE9KSa4f3v@v%tcLbs+BbB< z0qBR87bstt4Rx3gL$Cyfp$oc3C`WN0qkN!q0)H=(9_WM~SOLAT2Krzl)S(Y*law!X zO_48Xo24DKlfEA*e`tjr&<1trg~=}w4$OohXoq1~3avj)s7mOB^>VLhkI=16s!^e7 zQsuu)ev>9uD|EsR=z=r`7&u2ej=+x}o>LN#&FKgC|uV zbmmU-d+^i)%!6L&fB{$`_lHdK`|qUNM*WC>*d)L2PWXpUszMkzf^=I6{Pnq;xC-!dn~xaD(HkB=z^P})iKHUSnvn?pa&+ujsIfu z0kx7z6@V7l1FdiX+Tbko!t5^63G<TCbW^w)fC$sCVdtwZf~Zf9Su4 z@_L_mYl#=SucIA7@AdRQxxayOh0Yu44?6zpC?BZZL_E*}+n^N&pbhpwI~;&cI163S z5+ppB4LvX)dSMClK^OGHY8ZeGP>0P>+empq3+#k;7!vme`rF?rms{yS(Ar4*fZ8VV z2c6zYmHGkk-;F!8{*H2k&U+{~sKcBd!n>F9h92mL*83y7 zVGh*Zqy0b&bV4hv5Wdg&3-u4^$9=^A5BeRn^^y)~`Gj6mO&j>!4UMoFx(7XNmHr=YROalt~~ckrj!#pQ>Rod z^ldk#xFAE-{TZQ>p>_j+j!tat{ZgCl7x=kgj~fgBKl5{-D2LO0~m( z9gBZ>?eU}=W-Oahng2=Ao?Jeq^5Iu2$UnSyCHC;}BJAPc9N0tuYV4t>WJ+a(N!MEJ zpm+V0s)yDMxI-Hp6nCf%k>8W1R0*`4j6WEHt#W_Ll zWt1m$o;s!4pzSou3A&*+Lb_lE^uiqIcTFh=bXQ>q?KM-%2c2*Wbipp@xtjDs{TkvO zC0>{d!_W@hzr|keZ^0hgZp9vYZX>@i)QG+4w@<0mG45d&wBJ3&@7=@uv4eit4z&lV z*KzU>Ghql;LhT{^LC?dqGw6F{O4%mJPYdlC2A)TU+6%-7?NFN}-dAb&Fz_1o&=w+DCV|8R=m zt*2aiDW6&F`)IdN`#1gUN9q%1LmgJa(3j*JI=`ZRq4#U*=O=XNfUW`hm)ye;48u|A z{Dyi^_=kni`t6i*Lmh60mhWf>Fa&3zZIJ$_En)vOrShN)I-nbtLm#Yxe%J_g*aE{p zP>;g@P%n#MnDhyUXt&Te#yBJQQ zZCd%E4m)88_R76!T3M1wU(&QHfL>S%1F6%>2eqZsDg>?OX_dT~e5FtG9{&=p$AUZD zdBd+1Qp$ASvFHBoX_|OXdFb{^I18O*3t9%RjTtChG?AXH= z7=Z0ihuts)Lof_Sq18F9GIk{YCrqmfXoWS<4O^iHc0e!Gp%3;$Kb(XCn6?w)LMwD_ zpxr??tb_r$8Cp&xJZOa-&<1sAhyBn6wVx3m%z^<}2;C=<9?_u}dSMIn!FCvc-OzqA z_8Itx8PEr9FbvC~?G(a+PS_|qY=you`VkDkUZ|Z)zM%Uw+WpSt3p%0u^l4QKeb5iX zP>1$%+B3ACLH>8aAGAa5Ov(X<&!Rm;-9`8?1jEpEHvMH+(sK^}pygcJ2h?F7v{m4q zN%$}eI-w1^U?KFJNBe<3SOxvi1H-TtS}&lSp}UfFLjA&NH2^Ia(OzH}T6QCyRnsaP z>M&pKFD5LfY?rVq_dTXau?w-VR1N{Yt;4Jid zD6gLr{*AOlX#Fky28N&?hG8ev>PRp2-bB5NJIvS%{TA{GEwCI~p&NRk7y4ieblyt( zy=}yEo~1n(-65U!Yu}<O`ytq$KcmW^{{r$a_m$)yS}vU7_tFXHq8XKcDEhBwR5kQf%_u*#Ts))tpa-V@ z0{cs5R3QvqI-@+$@|zje0qvK~s7dI)d`9KjNZ%EtA9}AO-OyS?x}p7Q%K0$DgLW8z z<HT6}H1QH_xbESPv&fhnaaxwC`a)T+@I(9D+6Q=v%OdufcYhax3<5Ih=&|z|3DR z(e}6vdw5JE_OK4tz}H|C{2sQ$Q*Or|z6mGcPcZYyCE9U!U=Oc=WpI~G*uy>V#2(%c z+u=cXVGr+vlQ89O?2lTa-3;@Eo3V#S{SJG0`R}oZyEI`BFM_@BDL4t!?!`WTiT2miN7}-)B}82=|>; zJ{Ue|R&~M9nX@Xhko3A{l>=JOn^hGsaQUqAL)Z1QDg=EnbtU&V;16n^S>=J&I{XRi zXVoC|-ZZPSR^jjFSyckH##z+_1F%!>`D7UX@?Sk%vq4)_V_CFE+LBc7qKKY_n|`dW z_7^{eODuwH{_^x;+=^mR0GQ#XFdR?|$?_M`Z7VYJ^)3_1^cDVJIRW ziLaW!F44t4`Vl{k{5g-)RU~Dame0M9zY?_5lek!(Zn@pGJUz29X<52;V{&17PTk^F z>F%W47A;NBL0XociI?T+sSdLP?|uBam+9&_v0asJ*(A1iBrQ+3-k!WNJ*RQ;vUJR}IMbD8tpM*8*!E(3b=3BD6GhgTgwKu1Md`N6rRmnfx!6{lU2%8Bi%kpm znJaa5M%2F1v@$(&V^VRt_57vjnahkEFE>Z(M#paneoMvg%5=*{(}hdZQ;W?T_;;0g zMS3c-jlW6!)#L9j@kf55VHTxZ>&TDObQy`FI3s~CGaGf0YvQM7vH3n`vqsXfLTpTH zBS~>cG^Uc+%^K1r@l|5mvPxI~jM^rYfoWxYArzW5X*IE!>;j@IAplJEGsr?Qeh zle(uUV|BmMd`5y&Y`z|ati}ASGE2G6624Zft4pG3iZ6qzSjiTd?YQTVhC=*a#(!^@ z*p`;Z+EQVJfb{@Y5e9L*ThxR)@J`3a61wAEZk!niipPpr7L z;dYng^;8L;c4Ycpx`hlCzbSb%nOc`}`(}D7-CfJYTPZe~C+R9%Y&Jw~P7qJx$MpMj z%j)#h6C%bEf4%rWSyvTYYmRh_bf44`v(fi`xK-iythgEdnLbdL#IRwynZhhI0;Q8l z-n#LtouaE1;+KzTA+!QCY47q8jh}GQ%Fx8Sd_+r4A>C+mW3OmgXwC%9hE|fG6{0y3 zv@*291g#3qo}hWqBz^JmZbr*b&|1;*(BjkFfo4n4bhKPFNxyuAJbK_aNOdJ;Eg#W1 z#x%mS8A?P;BN39{-QzSXS~=QIQBA^N$*NVN9W9#C=BkbMB5qFH8gWZ(kK$H^n;*9$ zVs;nD+G+!CJ-8K$8y`tyGn%Dr>-OtMOH0r?(NYt%UbN%{Z4gaM&@?85S>lcFBN=Fu z30e-?Xo6ON7EaKdXoCq_1=>J@R)f}`pf#d}5;PxLUxKy;tv5mILX+}~&qp7co}h)% zx)ZcyjJguEOtj7fEf+12pxMzn60}mZ_5`gGZA*eyize*>7$2!~FE?!oS_@ihg4T}K zlAv{?`4Y4cT62Oniq@2%r7qR9%?Vl-nm0kSp-KBDh*+8n(Hau8GPL>xtqRSPpn1@0 z6SU1}H3?cPT6Kcff#y!obhN4jtskv2L7POYNYK(4zg-EM6|Fo$%R?(m&>U!`30gUt zGeL8sl_Y5OXpRJ}39T?eYeTc6Njs5`Fo0H&;I9WQKTeZ1_W)WR+Rw$1Ip!or9wVHz zZRdv!G|At-;+K#3%R!U!-`P+iS^=8WCon$Z&&f?(~myY9g$oWj#Q=+k|E8LkcCVqIB;f)3xbMi%b`!`xb5BVi`*5|0?uIS#%P9 z&8fP2g5V|mMiUF&jk3R}V}D^cHAdFfv9-LUX%d@JYAduYMW!;+Qo_Zu zbdQmyZ8uBgnD)e9SvvJ|ny$vUj--jYh^5J8s!p$DCFNd~Ub!sYMgHP98&dvF*jJyf ztJGNfsH;0z_poCy;*u`WR2R2zf%0wMEz|vU5t;D&H3DS;?|Da8{#%!|FSqu zHr*TRIxEe~V%O}jSl@|%I&H~Wx_U{jjkSykUu+n;&Ee0A`ylSsvhXs}?vOsYCf%B} zW^p7qR<+B_R-8-lYd=p{zvVjOSGINR2UkTx#F_6>GQZ(xZvK$;*Q2$fohJJtBaUdl zw`S2u9J!oBMa?TJ<2ZI6utWQtHNgL&#oJw7N zEbe?HpQ$^dqqT})lmktTO|wL{%xv0dT;Sy3FAu*p7wT%3IV94bX;0B}h55apajtM` zx;^Qzr3-f7BD1s^4`F3}^u9WnYiTp*MB7XgdLH`RI&!1wETb(*`nTXVdAY76dijXf zg*KX?^`V8)81{^h_zR;AqS0hxS~82DW20kpqS!F+ zT}nAhf9OZgtci|GM*m{KO)WChw2iV$#yAIeDM$H8{bizMqn#jvQGdqS3vq3)qiS*}-VtpZiTOV$~_(&K%+zgP89*CFs}{w`4+kO9GdQ|=G(YQ%bD<0t zIgYD!gVKi%T>fGx{jWEt**}IT04<8%Hl`L zZ2-LPpp=XJW;Q~dIA@aIJHOzeT1c7ud7oe@bYxaHKbqS9YxQ)A=;j}mvT$pm3*Q7ifi#Jv%2`T zqL-r|B03*g+vK6upuNcXTU=W*&ZJoZ)-5hh*B2$Z7!tQyKdh2DOUkbr``-87kF;mJ z)-B$c+?aH`$%>m7x4z%%>PfEW<{_8q4|5ZdCTB!j@KagGSR>;wbs0U^UL9MT8tX}8 zZB)qV_;Dm;fyF7uaSaPP$T60Y_bd`?xoLhMAmwC3%SAKR4vc}$XgN91^UxVyjgPds zax^8=X`>AVj|2{abYLzDzUL^GGbd!Y*Ip+oU09TuxEdO zXCu*iy@MSH&v13Q> zjf<}ZKMgI>`Nk+qBR(e{?~ad8<_{geS&!-}B;grjqp>zm*tgHM|3z|kzrfhI%q(@7 z#l++%tW`2r7-b&6hxIH&14om2otc z8>1XbWgd0P98oI!XZqR3lvT2SE=l*9la5GTupo?mqRi_#92{+aMpxHy9T}I`M(R9d zGL^?wg497Neh2XTL^3x<+{WI0ehf0^Cu4t9#BYO1 z&D0cMmZUZpn;vX(Uewi}WA#SqM9V+vH`4nUNm-Ig=A`VC_hLQOK0nWimWkGbmd3Sw zM9W3f(Tu(s)$C|}3I0madeN9_jE}UXO0<5oXGB>i&&-T{G|$Y|#!8P_iesq4H);EC z(LId5=EJV)rRdqwS+c%lP0h2W6V0X@jcM>?ZU|D+*NtD#%h5F@_tJ(!Xt}TG>Z<5` z&?wL9)EFtrBf+{~}{;8CnI} z?IJRhMfU{J{fjNBRpvCRC2}amB(Z9%zGSSGq%M7g)Ap{edZjKI4;!W2=IU~T)FlG~ z4<_ZnLei(>zx@6AwAj%4(aO+*(e@Zki*Y_ul(PkELV~kfuUCT2&-Vlf$XB3;Sij+A+e~H=jS?p$|OoLHRk@px{ z2(R@Yx_Uag-i%Lw(s@z_bERmKdW_txG$%bb?_`|kNP7qqR@z5AXNt~&@%3T~#aWyD zaW|273v%~iJ^YET&Lo^jzSutSm{x}BRp#@ImA#aADgMgv_qF8T=(F?vkL8Ey_wiLP zDI+Zn*kpXFt3GL1Mw!W0Xj3HcBC}}?R~zKqr-BP6j}r4)k&D#}T$orVil>F#{)^fF zYfkL5B^PTJ$l^*ALeYiwL(RYOs)|t^j6IYpqW?4zvIOC3Adm5v%q}5N@jo-08`#(%8yQQtt%IgJ2 zTDAR|HwORjlxsO*`@a95NoxgpZzH_W5A5d|FCy!T|8h3qk{Zk3_L+>soOBH1;sW~& zql~5gGC0iX4gb%VNhV>t3A_2t_f?QXwDr7T%(146V#7DPq!F137*#oYJHc#X@Q6+l>x^}7at`Mi zW4u>Gn@Ak5Wq#Z{Iex%4mW0NcNdb0lEf_mD#M+pHOVKOQFBE}~%$=2JooF&Y$VaqV zv=G{ILy7EJyl7dAf@*!VeaF@-tescU4Y!&*cvYUG3_y|9k&)J%11a;QVC;OuN4N!OPBe?O$My0~ z;QZQz$^MG?Qgg^o&+2%Sl7EX~=sn|1f)+Zz24b{Y5r4nTu!t>@3e8)ES7bhMYtN=q z!Xo&>Xz(OS$~Z(CJCcLymt4z7_L!q+ldr$8_BNErKMb#0+Ci+J@LMg?TsfM~W{75j zH+DCXHEACHaux^GYvPa9#zuMG7}@_xaWdoMpTRI6XBU1u@H;4ec^9hDWV|zIJe!;^ z?p3^@7fpLfx3QR$zS4}XJ0%!Nr;(mhjJ2+`p?2Kraa$R!)99FOoKMTyQZ_Aq{;kSo zX0aK>#PFvWh35r1-KS&{U)N*6mh$vVdeVc+!*yhxWR(57$h)94Sfl9WsGVz0T4kJ< zkK|<#TgwhXRUXa%!tcWxdt*5Skrl-PnJG5PGM@n}+Y(fpC2;Z*T}K-4g33X_s`%E) z$SP^C!p4iu4^f*1=2@5Nl7xAdoq*I`E4GC@2Gy-m+h}}7JCbMIn9X-3+G+{@`mpg~ z^I7aHtmJ=nmRyt`N|F~h7s#)%6*1m<&gBrpwpUPnBIU;(&KPH|GKzdf^i{xXBb|jw ze4N!7V|O`TE3oUe2Gv8-hB%XtU%xX>B;`q4jdk>uJa?WSDCi9*@K$K@#-v7*sTzML z&`%uF$HgV`j$kL@=jVCvxt`6xMdDq`H|sFk(~-f*`{73XOmB>+=h0yE za4*0;g!?inxA}g@mOx&gkLHAzkRqjKWYAdWRbw}KR8SopZC}xG5W9`Zrl;^7Ir(2N z?T8^vYZ3pyVto^<9|nu)yEL*z&g8kHQ9n`tJ^0T&CaA7iDEz<1!Z*&djru>F`Z+eJ zzQ8_id@{yX_T7>Zf@j-wu}sn{7<`Hud{&vyj!xM!6jfkaLO7P=g32C^H#*L7Iw{{N zu$kV7?`sT^ggxK)c<#aEY2~yw5}m`$8`D-63y}tA9AFSf27gs7|_JPDYeNM&BhJA(M_LAC4F z=&%)6uFDw0^W2G^4!mBW-FDtsd=cuC-HSZ0B6ic!!@Z5Gxn9-*3L9mEt9b z2H%PQ>!Nv{Upq7=GnPc3ov>SwT234hSIASNMA2a`BU}&R4z6U5k@{iJ6YUE|S+0=1 zw>&<+F`?vGs;^DYVcyzmUth{R8GVu(S?}}_c4$>ly&RoS=F@z8a>9E$vSit^;8@GN zX_fr5fG#Z#M$Yu3W0B2tyU{doHtMkiKOy`)EW-SFP!fN}%f><$XSAuvcp!CFk6qas z))ivMN3i}L zzs2I0^wpWJld0Dj7gLWUzI8!mmiUac8|^{PELjFd8w737igO-*Q`ZO8adCd_rqz+9 z59K9kEtBw^LB&?X_{ex#g=R-H(rUynJD$`sY0=`|h`Sf}=foo7&Ou(PyhdxJu?=_I z3Bky7x4AWET@o#XM+niJO81a?wimxG_+63A4SqMtcdi!x?w2gMS+3@9JI}Ismb_#i z#rpH4`F*OCdp=q}+CH%|FxKHxUhO0%vJgMtY&@^8!0*7xLA5ECmicpw`R}1c-zDY8 zhd3HvATf+mpW?v#7W6mHk_aO*vKT|7q_dlNET_-!$7QSvp{1c||26LDvl!o^q}^H2 zEEqXq74m0eA>VOkQ1Raw8|Aw2+NektYVzJeVy8DoFFU3+gi~D+RKJk&qkiJ|0P$nwHyyJ2itb zWfNw+mUcAj{RGX5mX)C8p=Bm$4z!E}tsKpgpt;e~60~}>)C8>wEg5aQxHPw+X$k%U zXtR`ed_H>6CKI#)v{AIBapBFPg%kW)j$uAZ(6Z465^VF)`V;(>poJ3rxzMCN#K&8W z)|+74fYy`XuNh5G(EMoKXmj;0b=is5m7w*ab)s=xY<$GuAey9)W7L=?FEmN{&6Tr^ z85w9&erHOdvbKzlo%E~d_h#qMJT}OiP7f?RW*GYdD?wBcUg{-5l_YBiqwmNGjhwk5KT+av}4IX@y6R` zpiQF1$B~03>5KPQfEG^BoM?jyS_RqwT6~?=p!LUTGN&}6h0un$j?Cr8I$s8;E(SD4 zNtWTP8X3a0cKmK3FLTc{p%6{Ni?=O9t4Q!ywLo~DXm~%DJoAw{-i%g>ZM@csR*klU;Va^=1I>-L zdz_}D)h1~DXboub>6=8`jP~=Wt(1S-@vN`VMns!iU&va@X1XUbr$=^KnKjkS-&SxtEPHw4v5^Kqt0oJEnNFk`LTgr8~;XHfW$lu0yi_PO_iDHB4J^mR&j zH_o3?$FHTLV}U#AhQzUe{k)gqfn9!Vk4l|O8_HNtcy&SbouqHRA4K2XaG8eU_oLCX zZ3i}^^+EOPt!<1m1bNxy?RXo$%0WHIf-bT>;UvONRE>mT-N<>0i5sIG7V|{A+xNhNBOooC>hD-5OLMi7knUmb-C|BWu`` z$s;+4^bpEP#uzs?eb{t}&3s#z{U;A}qFE$-2hPp-b>9|LuSi}9Wt;u${5-ryet1B( z2itC9RvF(B8X&Cx#-KV(%62}j)M@m0G}r|t9hBHc3XSK3*)04A?g%Q=)^#gcswg=Ucl4}_#+G!lv{l+C1+mI(Jcx?jMcQ07woOgZGkDS+J#RJ6 z$xJ*ZloDMjO_Ybd(b6@}xFxNAYzyuUD*4WLq#ldqOxHLsDJHE9cJpOQBe&qKADdoZ zP|5MSeC+&9qK%?0-MUWY8Py5XEJTKexw)hjo6V00)j1Lu zADK5g(86d>Nd3q6CA;ZiB8^NHMMf#|!XJma^eZWkQS2)JwDr0&wTSgff|iBmO3-X* zxmwKY6&9JvpCt(Hv-{XuEJNpFIA`(OhW#u|8%zd!n00#)wE+78(62(p%OU z>&MO5Wj;M0zJw=nw4qzjJ;C!qX$&mUgqueD2(i$H;ptHW{Qf zzP)syNqKB1;Y2@DPCe+`{&NV|g(ms` zOyYDd%(FUC9+U3WQ6-^LG&D~uO_=LbsGZW5m^@%fn( zxsJp)_ndA1*_t>>In7FX@w-$6KB8GlBKGlGHrfFG;>#%?tv^94K?@~>=R)g4OEY4K z#8Hjb8>dOS8_;^teih3*>6SKOOR_GCwFJgC{BGf&foE8sM(18*-rxFnq1;J<#I+3X z7&nL(|4?SF*-CiHYl;7bpt^x;DYH7Bg&0d4OR=#~lyb?zPd|QSoRW`d1!!Tk__A`M z4JK$6Xai{Rk(U0QPeLZi$lJI7+sMR z8RsF%>p71OY@Odsv}&~Y{N|#$6Er(oRf26PT4jR2O0;7vRqt7x}^nbH(8e{Kg%u0B{t?S)# z0_C5eWuuj$#kYlgw9*8v1kIUX>q09*i?7dWG)IEgfL4fRoEcGu7XF%};qA$_d_?o3 zN&4o-Az>$4C0e0)Vu3C%)QH}P?n7s}OXEwooQ*DX?kIXM`e<}qSh%i>*issOO!iIj z&zqK+lLjbR+p4YQ$P;==W9bI^(}!D^Yb9EBf>w*>MvE_3FIrWCzZSGgwD>Y?N2^HC zy3t%{yGefeNLoVC@OCzoh&GBQ>6RPG z@!T)c@7SNpI zo6S7@WR;Ttk6FKR9m%WghA)pCpg81xR9Uee6N?KL*eqd#EKw<8Vg%XUQG+0@&>$+> zAPAijHnu^mNN$p;rlgEY+o)9YW7?+9@BR6n=bn4+$(>PsabB;?ocnpc-|uc^@kcuw6fXt!a%&aH9LB3Ftp z@5UZ4Cnl+|t3SHdA~)6b7BU*VZ+lO2c`aI&FN>BXYc4(#d3SO(h`h$~W{BC1Kayh1XR5876)O2mwUj?IoXWJs_rt%5%%2MXK3cf+-+U~!)3f9udHJ$G zH)DMf6EZGD&FL=OU+ezGu(Mb=jQICNsG+z1@446yWIX`6x`fq&m0YnLoX=6i&m>p{ z*yFhO`!v>wahu?;jkF|b+uY~-y9vK{AlfRKz0mAIQz05IVMAaSBG@R{ZV0P}ZVIgT z9pCcj+{DZ!{(10o(B{TI!p?zZ!NR`9HrP@GD|sIMWrVjHYym8s$2ze25T^Vzfz5&4 zk9)n+6NZTLPPkVCTUm!NTuz z0c;|K$seh}IUEOjt@CY|3wsi3jE4B-Tu*w*mCHfAMf#8e+bdi44s!3;xxYt4@;XVY zfOZm~wJrNxY104V??yA!t5 z)^GQ=l-KR-A?#~3gsjz{L&#@0QQQYeu8nh*1tI=_V<+cK)ZC`W$$m{(NC{uqYCRM1$H)qwS&!qh3lsqY$k#YfK5kuPlHWGunDk9uy9?>f=xuQ zMX>P@CLP}d8v}bV_p;GX$M)!5E`W<)#iL7D#SMOba&4m)ECHtXdzXl8JfSh%TWr81 zo)qa#k1lLa?O-inPZbZB>|{4s9~dDjlXJ=sz1VYyNSh4F&~rz@X23om`c|8xV7x^q z-pURHpjpxz>X*G|IN!C1KhqnR!&=bP@a4LI!XZ%n8NF}W3yD8GcG*80m3g0ADW@cO z0(<~`+dU_|?@I2cPUgw`InCwDdpkUhk6ZS>&%N@_Sn9*%J@DuHNH2T*vKMo{*zK(5 z<{TbuOL#3g=g!1`59u00g{N(g+WxayWMrSX>^ws+L_UK|RO>UgXW=kan| zx4&q{S{uiBR1bgKJbUhG%lIMu<;1*9M~9G*fwOrMkCl3 z*cq^UkuP1+`8}}HU{Tvp&E%)}!?vLgO!>*#2EAVsnBFgprNPcdur9C#FzJUb+46p{ zELcgPzi8J<)|#c+W8|XK>KH{k0qx`;EPFo^v-J_g9@Ixnd{N3c4uKCrN!HG%bpumtax2I~QPuo|7~FOu=cQ`QQR9kQ`jA2i)ZBkvE^ z6~V^9GGJFAN|(xR8mu!yHxJekp*siG9>KQ3(h*)Z>X)>Eh2N_htR;fgfi;8O*K$I? z!2eBPlJ^4Xu<1$sKD;Os<*&EuR=<~lX5?6Y3~(xTlchD0HbB}mX|E63fX$C%X-}56 zGOlNnXufMXM$eateXz3QP-Pn4dj8JBztghpwO+xGu%4zcKw(8CS!K5keO0=!+)Hkz z-;ZF`U}azut4q9fV5JedCa{tST^elf+QRbe0=p2xR4)BsyI`N=zT^h$Bj2ThY2@b_ z(ngVcvn!Wy-%e+E(!MpsYN&#)9Uq+6xPBJEBri<20Va82x*f1iu&}Qunss_Tbo;JfmOmgc~Q_@ z@Y2Lr(}R8%pc>eFh8bO9HGX zLe~J+9l=__y1*)Uo-RGN6D$+L>cD!zI>GK%`IyZz{m^v$lPM54p7&#NW6+j#EeCUg zvK!N26<~z^9Dj^c&3${gNLre-JC$bp^=<7W-oCa|)uh>!&*ohV=U5%@LB9jNtPqA-28=l`_;ut+D(pZk!cer+u z)!(!1eZ%EHY+v13QW>pnFR-sPlCJ>a-iC$&zP)a~1^a%>vcGPbyg7OK82@#&UN$!u z$irSId6hwUD_*%AoCn~>S8mPE;DJ~{q`1Y(a0Z@*SJB2?S&V4z-`2{+&iDmKFzhPd zId|(gEk3giU+=4zy}3a5Fe_+=JQG&ORLhW2$;WL%k4QpGIc7nLv_SRO^}XoJYsf42 z{uzd*U%cn_x$0^SzWZfI(dAU`YFpRV1OIsca#vz-PhNoX-@r>!e!%OBPrj zY;pW)XnS6Vf932;v2Vg@>wm#~Ma#ZV!r5G<^s3|)^kW0d{u*o3tH@cErdPH%Q#)!j z5m{8P5{PO;*7P4UwhPKP#(5wVqrQ8_e|pzmXck}Z+Nkv*eoXWRDA*fJk6V^z%c70( z$Dr+f!!qB3hmrHQgVAivLi)_!omFWE1nMzis4=zj4{$x0}~f zbnTS(aLcbq+T0OHpyakn+P7!*uY~_i%N|u>mwf#c*ce!=5PKh%vGcAsW0Vp=8PXR? zzc!Noa`OUxxkJ!gfaX4;;gX#j1uH$d9IRv0xv*v6D#IDlYDl{&&=)s8NyNWN{W!~U z#L9aU+Rit-SVY*~CbXv0Z4!N!-%nJ$3cvPLq5qKps|T|<4A0K+*8nyP_E^{c_Sp}X zk1=#FXznNhX0#xRz)55pgB6fr75p+8l#x;cM$Y-)Fl1$S+gdLwuE4LR(|e0M7+@o)Pd^AI`ex z-dyqe{XcZc+m}72TI{Og-(Ii*u#^v3KRg6B3HEVetW?jR#qi9WyrV(Gc6^d`7QVzC z`S}=OOJKENy4RKD?>txy*lPt?8|54ocDBg0AImS}-~=-ONK*XOyc*X79?Mg{-Dqw1 z@t}zv*Jnjtr_CYk0ge_oAfpo*OUU>W?)?}Y{e|tP(|JMuisxg-=HDycA^klAU*l=w z58?~wm(J-(IfwI;P1%97&}E>@=h0TX94A($UW}d-hlOoFqTPb_JhaV{iS2WHE-YU7 z(vZrfNUnYjcL&mq%S|WBd+e^t~_dOR7A2 zz>&b(b!%oe z!R>kQS@2H_=Zp>MS0eUSE63w^`E6Ih$@V|X_syz@TCiTQXN%8tfGsMV$e{9Xp_9^< zDz(36=q922Y+#SAJ!lc_U4c%pq)(k^O{=kAO;uZeJ_v992WbzN16coS>tG^l2=en3 zcT!A6I$*Ow>W`L?SNqXr@6Fu%x)b9t0G2cn_*c2@kUm2C!4fjV(^L<0b$^V?KP2TCYt$%7q-teTeZ&q&BKef_!r1-v3Azqi@*@Mt7 zLi-r*{ru9TP+rZE>gwcg0-AHsjB8NMb8gR_x0j3!1UbS_|EJ&wvEv_verQh-mOEYwKTHNN*!OP5R4}PtN*t z?WR~=;&{fNQoK9y_k)ijtMAjxUL&G(W%!!{8wYE5^>l|eq=e7TGGEQbHqx<=T|`p| z$TwbXqfDAXFv`SB(le@Fhd(p3?A;bT^*&s#oe7-r*q((uCR_*dN2jw4t&op(qCI_=Sc8Px@)v}Q=i2yk_#p@{)HgV zwFG%yXThFn-n9$)6$8khUG`2mJq!B-dHJ>;ss&&8*~P_kkkdc%Tz9N zkLR5Gn`IC8gR`G8R5$uSJ#bKA|7QouSl-Czw z8(@QANuSK*?SPGeRXD7c|4aWEf8>_^XR?Y!eaAu4`{7|3vgDL`dnnGH%1yxJX(yp=_{wtdEfr^@ zw3g4sU})Vec1j>B3vJ7t%ig1uU+X^=@7I7_mith-+Uf;p+UJ+OcRL^Uc75OQwm7j@ z_dRpIEug)Va|hy2!{n+i!;^3tj@hMhZhk%X^R9f%PvzYKHUaj`!oDt;pL;4jXFj-l z$b9t?c$U7F&v!5m%;*qO*A{rPo;eF`_Urk26t*b-2(}5f7{XNUyI>1obOo;5oqwEE zU*VqP>L~FB`jc;j;}u0{-CRf;wByj;Q*ybKrwrIw2vfh>2Q~^eDk7^NMhh&T)!?ti zefdv%IR;(T;<7g@Isy+jl72+HpYae>#%D>NCOxZk`h~)=upQi#-+#>e$d>NF)A`M1 z?=M`v?2FGy``7`h@pE7s=_mBO`a#Nfi86P3MJ%7Zw3TZW+2Qh6^6xcn+w@WHuQNT% zz%%vjWpCH%S=grJ&)_nfqIk5vYgWW$aU>tlpF&n9%lM**{maX8z5+2Iws04b<)5j4 z0a*>}%ibUUa#=*jV_I!oL{_uK!5Ol_L2t zn;VX6rDJ#?jaTintoT;?Mo=Rj2Jx$~&9yoA4A0r(IrE#WpK{OH7o$>y8R>PjP^?>S z&wBhm$SsJaFgvVQp|c9e^bkFx?M>M4^Z2)={4jk)gWNbwp#^%&1fGyDn{OTv70K%- zqv0JaR2WbXp8xIZz%ow7ym6!jnI$R1n+~Fz=r?JX3 zvd`XYrRe(y^}~4;1^J?FrRZ-9+A#uEHYKO9fnBx z%kqrI#ESRni$5cyZx%-6S@~AsjGaBW5`4QTtY1O?_VdQiN6QyqteL!IkXQT26|bFp zwWsi&g}i;YZ}lCoOdYRm$@AK~~L%?}S(I;c%9wXgvjdo({a-!%7^MU4gUfW|19;?28v+b1tymq#&utj#GR4V#o9J6p(VXj=Kr_Wy4q zzkm3fea1A;sK4qr_YB#O>bEnVIl2;@Q-3>)_X@rfDD@?ZP|z7WA2|(g=dl&9LweLg zttk4$+#&uWUVA71+Lw!fUd;Uwn-?2`XSij>`*T=IVndY)4!%%7G6tSFj%{}1@o+z4 zI%)j~TWe%6lPAoc1wI554sY{YShyRpIN1=gFCcs9n!MfrRb?0Hxvy3QSMu%G~AA=* zv?XqD8r}4Fi{{6VrJYCC?2RkIK2i1i7bG97lY2k*Krd?R&J~05gS2hs!L*X~H}$up zk6lhrVN)NJ0y_&`K24B;5CbyEOf!&JBemVp^BZ{g9ktcxGOdm!oz# z2DSwDABDD^k!dhrnbOLY0>1_gPs4i--ZM9^cn4fR6z<2>FEGx`_Y3T3z6CwXk2Pqp z=xqM?5gX^#-$8uyWh>rFVSacWx0g>o;bz3Ia6U;lyt}>o-ldRtXFsprWdh#Wz7_B9 z-E*CfMmgwQ^^}HfdY4>GH~v7qO8~ID%)N_Gz@g^IynxK+{$HO=)nVId>g#oRe?(XY zYy(X9x@!3A13L%yWC0cr8t41Fn zrYo7}kvaK>U$4x@ccAAde|<9L!;K)bfY?5Er#wNfooLVVZ+cpcf8^IRAcEDsx zbye}V3APP(g&{t+3$_)(%9x}(AK|S9+l*jIu#E_BGuXKZ)&Z7{U_D?<5o{1_F@l`| zTZmwjVDk~|EZ7{_Jworc1a>w;cOGmuf?WWciC`7)#D9rk39zXM)&Mpc!CJs3B3LKb zcm(SO8;f8=V51Ri6zmLGxGtx_PJ=x#^uBXWUXD(Bly&m%FFL~O`bM|#ZE)o$j2{Fq zJ>$R6VbR-|-_H2N*YC2gh7nmdU8;vp_4m7?;}UNQO#0Ojt{bsfcQDus+R>LvZB?)3?)qmdLuRC}&7F_QyF#b7JO$k#blu$RQlC2qwgGm%0P4=2*G9kMe{+LM^rw-i zM9J8JzT%FR;G1j0O5cr|fL$XQTy^}_fDM8DsQ{BphoZUrlzqP-*Oi!FHA8y=+MHhL zo7L5@b%K|iUhxwAhaM(%o}1Z!@G@}4xc&IIRh6ZkCat1KnsjZ7v?|h`Cq6rKmq0Z> z^mF;w99v+$PZqis=?O+cx#K-o)dcj^6!m8ebJp#+MC-EKxTL@vwcO%$5 z*v;a#7`~$OtXy>O-a&fxJ68O8E6!xm8Nl*sdco_#zv0H2VZS7ZFZ@fy49u3B3mqD3BPkbjnF!zl3|__B_#$UF3E;9U@3p@I_7_rhCoX2tuOc&*&Dq~yK+ z)D+`$mC+e!W^*)Vk1UQH_WOEcESoFv`*7sNy996ByPW)Afj0$j#d|3)cu%^zDU5|B z6-o%&5@BHbY!}gIzb!Comu*NRqy9ZB-e-dPHCt+ao{Np86!PxSmIuZk`lbp)kM~D1 z;g4Oacu>>(R=nGst#o_y@-bY#vwD*6hWEyPx_{`xoQCwU9T~%ax)Q7tRJnA64S~JC zh|RRvh|OIe(|ITMm9M81x0$w9-U* zw!UH;d4n@9#$|0!OImGj63b2OTxIpFydm$$U+oz7wZ#}Ez&uH&p57fQoCI5}hTGCRaeN}1H zf7rK>GsdiSek_L8NN3XUY`}BGwexV_V77J^u~bI`@8AW9MC8 zOzhBgGKb2^z2DzJraGO2ZyP@I$yp;VEDKh)h`-CdE@4|>eP9nZ#P^H$zy`rErM8~G zNL?lItqN+2C>nb?_3>;Ry8P$1EQZ!LPXCL%mr7pVUZABeK0@EYyA;T~s+>qr*!saL zJsKUSog(Yeg?eN@K+b-|?-?t!AMn}x!@G5NejF`5-vVoI+rP#~^rauf9zg$C?sW;P z0Xq*Cwg>fKn_xNrst&po*ap}e#Yp=J)~qD;5qj4_(>B!Zd!S8yYsLFwKpXog?KWMG z(M^JlNIvQRr1X4yvwleJ?QP-q#^^!sH3!ew(u(&(@yH&05Qzj=mA4JjdcVEm{f^2o zpEot2=LdPiUh93!KE!;_O8(u1)q-Wf!sF{CSSMIGp3n@|5y3jZ+9OyGSQ;!>etO0r zSX%@;1J(i-e(oe#b41=*uvCO@39Je1A;{LHGCB{Y{5?v5?a6*<6#} zxoiUeY<g!KI2L+6O6`wRS~-ir*~ueR0i@#H zhBx^S|2N*c4^!U%2VT8f7rdkJ9^zh?uzs*CnDx638v)w{yT6FIL^lq$4Hj;1Ghka_ zIh_^V0$AyH3(Ic7GnHO7XLwT-OIKdyN1EYfBovh=C>y-Uez{3!9mAFO!Nt!Tciz2w`UR#p{Xhs0>6 z4)!5rHJ)Gb-lKQqTbw6j?2bCY7p1wgWt+I-6@NKXXu!rk8Z0L0TeL??B0Ty(}Od}o!I(8?n-d&7P7KsCV)6NJX(jn`H zDB0MSN%Z;1xBT;>$a!pyeu!F>KiWmwEYDS5bC-Aqz^B1g27dqK`<`m6qomD~HlsA_ z3t4}V+atvKBiFj=JA-?AGCy{eg|}r39TYDiLbpG%RWUK5l7auEJd}Kl_5iKLimZ=p zv%VooQY~p2(w-gY9^;>VzN6DU7Ew!H8lI7VUh&WMFnOG#i@qtXhqT^*S@EX0*Zb1# z^WE_SrUS#ImHz9B_X?$P{?17)vSQa`D?t}u6OQxSKd*WQ+74*15G|L=bpfm$tiljK zcCZ1K1~dB^?*9`n54!)WLf>4LoT|T|Uf{VbB{f$ z?j7))-(K;*mze+NIiB9h(%2ojN;r-Np??17&Hc?zM46i5ABBJD$E;&Fa}dl<6EwZf|L#Z+>FJ-Z`1>2MOQfG9-TFE`dxZ2Q(tlh0T*Ah| zHX_&z*cMoYQTcQWVCN&)2H0i@QyzDmyi?+3$KPvNYEoIHFPdZP_^bL$-s1vsEvG-> zxEdY4TL-0ltD6V{X{=bi6$n>0fR2?P@rfA7V$k@Yk=9z&^Nc>8(fwb%XVA87tn1r` z3BO5U1}xU6zF-3Sj{kPH1p5=#M~f*amh=JtVL=oPt!aaI6W%>|UlZt{`46Upd7sX(Jo>rU$lxUCn~2@95d#a|B_~t}mPN?X@>j}QIpjv8 zr^Sh$Qcodf2$@^RtPIM->?>0@vG-}Av0K`MFxPh-&F!_MlvrnY5E%=|nEAzu_bu)< z4#Y&FSo#DR<=AT3C`pjC16`-L;-Ae8o$Z)BT26@5FK^XP^)&XbBS22}bW9G-t@Vt&#)~mgo=Uq%6a8e5#8T3KpoE>+%KFuni9W4(*8(CuRKK?T zewHngXmipJPUvgn{tu`Km8L5bFEPYl%+iIZmQON%xiahhhvZrxLG+i>Qt+6P)lN0I z*gJw&&@L!VJ*`b2C)8d_yZ4{$-xEB5h9h5?-x4k(*o5e5o>O0*^={+dAIqXEwr+G}uEzdD#S8jL_|ZZGk=9(aA2B zeVTHp$ol(f&35~y8{fcuw>r`flKu$sSh|09yvnbcv_{g@4t44O4zPBx76GOY<}=Wy zZ_U+>mHi-e1JM1E=(t3G25bu~w^w7|nqeDTxcTK&{6QMp?;npfn;*6*`Bho(Ju>jt zRQdRIPZR{vqOEf%Pz%GObQMcc^RV-S!?ff@;P6D1`=!YJf_1?+7@BdQ1&hw2i!Py2p1x?AptoN`u z|MM=F7+bP8FJ}8m8utfgtiM%T+C$#v!?WJoB#$mC9M7fsyLI~UACp~8BLqF0+M?>I z=`;A*kIH(Vm9s#8!t;f4Fg3-NFB)bH%VU+p9I$ozK$=6huEFJbK2$FLi>!&?%Xe;sPY zXL+9|WrKJDIkCDt2;L2z`&PSqPjlRvo(Q@n6|Cy1UGz`Rde3w|M7W;veXgCU(#qZ{ z`z%wDdcw2x3|0!9oLk7y~y;uz2_2HaT@ds)U`|I82!BlU%$Qw>!Ph7o)^Vh01 z^7%bPT3kC;w8+r(YGkE8NBJMgdMCIq>G9|J^^6Yi3Gm$bCH#!GU>!c|{ZC$@cR^7|2>gTXS?{Etiw$)1jTUEclPTu#-VlU&{n)Ph z;01WI@T!hkIV0|!N*vUAp`{lWu`~J^g)BiuS&=08rD+No4mrKv62dj$E zrNAn{)J}D!_-hAi0sDw6hugJxCOnU6>-N>`U$)=#rIqSgqsW+fR@OfQh2Kg3roeW< z=A1q_JM7{x>DYJtaXB?cF*!M#@C-aB8?4z&A!iqC6zp?O&c1#R+o^e0JLNsP5sguq z^3r$~J?X^faqn2@7o_bQ(V@jM#?u2&)$_AKJT1Z#e=wRMweVlyn0?P@9G<4@v;OxJ zHC|z(rJUh9@^F^4k{4vX@9|$jJ4&kOb-HHjsAG0+&lklE@ zQ8x5F0<_CLTXUn&a_Y5$AlM=LlFXZzNH+e4<*ET@E2f-U3sqkGWkPZZd}|6mIONsHWc_T7EiMIt%z@H=YudR zFFH1h&+Fjb>lg!QEO3Z1fnT1dk-z=Qtbd-iwGragZVx^CH>F!i^>MS%9ekDZE6`EJ zuq(;5^fOCZ4QYRcOy6eMx-H7p?VCBlD9nzd3wOiKxHH%zC#M)?3~_YPsGcqIRX()=n+JTm2@+vPJaL>J10*)a7o> zH5ZGQTw<-DUSI90cAoZhD(ihw`JriC^4%DB*m*FtB(6yM0*fr{!JUQ#*y_>m#-1ML-4)bqz=o<_faq>cCij8p3(Q0a9iu<0k1v<3bAD82ygE!1X;t;?X_Dve(#E&6bir!ivV z0_}C27^Qm`H&&xx)!F@IVwOtCTgxCHz3?^tdDeTM0>+naZ@kNu@!=~ko{xiwm_y#k zC$b(PT~`jdIBVh#8@|kc z@8W*bH7s>oBL6b)bV-5xWMMjMyKTtn{Zh8z8@d^=9U9WV4_hpZDk!D0m$^Mpn1Aptw z#5Uu(=h~Qt7d%<2#eMgspA4(9Y+eIATk~0O*VXkUZJvMdT9FKx$+PkpLf+_I*@8Le zQLr-+Yzpi&*gceQu3G-)z(&A6tGp1yJ{2<)Ym339)0?E%FJ!&eKrgAd=-Id!{{o#R zwkaD^yNG@NT0ZU=9xuip;EW8lq7GiqYJ)!W^{lrQJd3zT_*pvjLZ1LGc-W!x47|he zRxf6~^N!bzfv}D4>>w>SzT83t5$$s;mI8e|r0Gu4_>;1JD8$Nnn`exFGwY>!p014k z`6m4@*!!fQzsw$G{Lh~6kFg!mGmF%5bGd9(7tg3!Cypl_vwqZ;%rK&izl~C~xjpIP z2y`Xi$@=F&*jUQ7S?$C0?KuM~h27Po_+>r^&j39Al8xO6$J}VBI@8-^0h^17cJ!sd0~KT9BaH_!Wi;aprZ*eKXdh|#6;?Eu>at5bdQt*IjU zN_Oqj1f6GEcj!*WVt0ktnmL(M$XxnC)+3CuPo~8eG3mrQ3$%;r<-<;9c>S8qQ<)wx zc5FKTE6Y4oM5gWAsUmCb$ecuGR{7)-)(zJ8LpQc?*Z|ljSgza>;HQFpA%yLK?SUN%VWmsx(pKKCBuJ|PYXEz$ z>d)4r#jljEww4oVL1Vjso1p3a=d5?!>CYwXphhk=a?AFQz1S7?N)q-5sBPS!cbnij z9Y4^mb$0ub&&Kc6N$W)(Zn0-QqwL$%&%e9ApWkWzYQc8EKE}P) zL>Gy@C0`%Ww-e>8_$tuAL+)#A-?V)9BD3wMS%1F(F^_P&Fde2(*Gd}f7md-6N1TZ6 zk>E6NExa`QkGv7&-J(32ZFwQ}bDR|b{+`fH(lJqvp0+gQJ1u{Dcz?>lbKoEqgJL9n#m%Ld;j5Y_xy8V zV5dWv^tKo5ELe-nPgti~Wv@9EMduzy6hP;dI1A1J@w}iisOQc}Udd|kjTm8Bum!N6 zaj#4M;1<}-fmMI6vz42T8O>j3r@Xosr26BnY7Ex}XurpAzfZJzHQT3zO;yZ$qE6lPzGStF(vmRe$XPW#i(x=*X#3w`Vt*j#LQ?l%7#oNq&Ev zMph@Xo{rq;{)DdZCmgR~*N-c87U?Xijz-`egx6xER!8|5_s#y0&T2jd?JTr2(4OHw z)OTBbz9gV+DW{KhPtht-jZ?J?AHC*p4;fVztHIu4e@w*SR;`fumdY!!M!ulA7x%i< zo*Tf1!G;3=8|TZ7Rq`=V7b8r^n~R%Xc9M~~M*3{@gK=o!z}Z^6B+nV+In$M^-mR{! zgmpm+r?uQS@1OYRFE7Efcdu1Hj>H=G{I?Wj#C#`;@-{oS2W_g#wG*>L=5JAkTHol1 zZK0O7l~5)v<%9qojuxwYQtLbq8LB^B!rH-V?!D?g!4Mzo25Sam=wg@b-~d?3Z>{>@ zMzQ*KV|dL2`|F!+yfXn^9dyPET{y;R-y^WSIW}Lfy*b5QQF_w^kJ~}kRPLGhm?vYe zWO<3d!d$C}mH+B|z9_w*fKun$m+rL-eM@ngYQCEJ)9t*AMe)~eZM$H-RJ^;1ISxC zxEg$i%8jpV?5Q)DrD@jS!-K8E<%(Lkq(kP%&m*U!Zq<)%m>#tT@jyj6z8P*Nlx7pp zz5q}4BUiokBK7HP9`Oo|_X~O=^U0L=#_wQ%9=+=Qyhxqq`&EUp;@?1s+BokOwDBO` zH;9~`$F3ImCuhJ~?pxeHk$%o79iH4cSl9wsGniCEm#_`6R0P`rYl>i{f6x0wuo|!i zFv-!S|Leh$VBzPc!0IDdJ6K%=>jparrtpp~$r}JmfQ9pX8mu-#Hvv`?p_>J(1`Fq9 z5v(eLZGu&RRoGMg=k9`)MdX!j&<}#;;xtL>%xFJf?X# zzm25fsejz6_akSs!)-mU7y3SeEJdIXC(7gX2TVmmvv4Y-apWyNo^q2su4?{fz?QE3 zmZxmxF3~Q6Pd}lsOg6!$z{2Ie3pNQBE|W4Q*eAg5;{-}xEtur#UYGt)f=OPk&XQow zV3K!Z&`;6R26NM?_+c7AzMt~f-SoqAz9C=Ul05>p2^Ox?aj*@ra9(G?&Vl9fAl?PA zY)D=PYy)fw?2HKW^EZ)rv)QZTL<#P#etLgwg9C}1ON-e{i}|F!i+(+I)mtiJN2qVV zUtpJWLBD_%X&_4j@QydFddZ;N^6M-#y0~Yg++eXfn1OHf_Y2Ep0qhJ|xc)XIA1qf+ zvf(>mV_?4{Fk-{=zODH#wpR81>MQo!@L=4S`X2V{aA7^RgLQ+2>#Q5B3oM+!0kB>$ z)t@f?f7;2*CU~b<-BBrPW^(gvg(#noF{pWWhe;r_5M_0W!N|`C=u)pB+BBhDls9va!&cHjH zUiI$h-uEIlgvq!98-hbQ5H%rYFU})x`04bs$j)8L_ueM`!*zx2t?D1?AHc$8bP%i& zEL=v7U=3h7ds&OTHn1evoAeMHi^pC_DLqH~`{f_@kUmbj_5=FkUh_A#&x3{j>e3;^ zXHwoqp*{G_Rj5XMdj6Kc+McuOpNB?#~ck~aF1A7F=|zw!Xg z?58`)2k6S0eR_9jFVm@b{@s;j%1;vd&gY`*+`BrqjR30OHqxd^Get2!jQZ7gIn(;8 zqVwpPBW!`TAKIbJs&|uK#_W)dv5U>eY1`fpidrG3EAz;j>@KXsb6^t@Y#VGGEL^W8 z=dp)iVco6<8wJbhwrq7B*cq@t;a>R-kHvCdwZd1uuAEqc8@gDmCj;Led~Xn6evBoZ zza>`@l0OVx`^~HVS_5l4BBA-HO|X%PNh`l~#6H9wAA-Y=RXNVVxABry?-6l+;E?8b|E|J)hzT@e>70KvSZLtyBzFStk?}(P? z-mY)Nx$oz&PUqBRHeV5AqiuoTYi%(JOF#V8uV7s5@*Vd5wNvVCm~@`*j{w|Qa|)iF zR~6Rt9N0EkxK6WRTVR**99?RcTVUtG!gaa_wh4Bfh$3~$`W^T1W8o?-NkQ81PuTmu zRc}psCx@YVa>ekRAv;{IID|iN4&NWLb)Egln0U?VzH^793uj21B+b^H{0h3T2w(EG zzaCwv`4ROqK)ftQhQhjFy_VAj>P0rE8QPB5uLj=?3)iJIASg&^)lc+6Kl_H&V13~! zePjW{ul0qht23l8kRGnnNw9gaaGjn7n*+<$scg^^*jX@(tyzf>w25SRTJ?j!(7gz__gADPp zey}dED?-=^SOzTjuHqdB>jblM<+rdIuwk$#hjo+d+f6E*a7V>w7)G{F6l@QSjk&fy#)XHdl&t) zC`CU^S}AE^`Z2Joi_p)KRvn>V1WR0mev7n&5&Au_dBlII+nIiNl%4d?aF4FGc-tTYl7u=o#)~1}gjHA_UPDT?g(KY+jiRy0~ z8PmwPSuzUiuV9Ux>Z4|x`h)f2suSUm|^z^xC&wTz<)qQN>H7 zCrBT-M0$$!sf(nm%rm5Kkp3=}nf0-@CQxBHwHe=4qBPV#Mxaf4W!i-NoygWY0}zAvo&s!n1jWt zvBbf56f*WP(jvy$KTBu~SxdLCdVBIS^0Fd6vc)f2wcqpeXju_qXum%;*hb#qpR9V9 zJD+VtYt>zxMkfc!g5ks3xdTafYJWogy>r#O!SyrYeq9x)voiu8ji_#;-XET^cddGl zm0>5(`__=z8kl*%IRt@nP7Q#31m4qQtKNxw^264{U!q^j#IL-(=Je%9*9&EI4$^0_b`^Xgb-_lpU% zUtQUKs4{~+LtJ`?a{DBD!2Tb4PRRI2KjxFI!I}-rd}h+3oSVX`3$`M@czv4 zhTA3D#8@rC;z55Q04FdE6-LMW=U>qC=T^P9IT@}zTeZf)%2Nyeamx#OEuOFT)9@eo zEAZydLkiagu`PE-igrXXA-2CRVs8eGe6q&+L&-jk?8Psy275PtRoR5pqO!3}e!JgB zcH+*}U;FuA%6H2y?dmrqdji=D^S_yVmtX|OzWVEztv1t%?B2Upy|)y$cQo4V!*ME7 zpyMno;N-7@?`vv8yb5_!$eaG#{8&Z)*Bsas*u7;Jv1PZbPjmj4&8=z|Qhcqb|0S6v zG@_BO+p<+m5C6YP_L z9kaLzb|m;lB-W$ehh!x`7y1`os_doxX7pU?AruI%-|tAn`3}yB(nLoew&skxHaQ$ zJ>y_${8_Fn0xM{9u*&yY_)o9q^R0ez32X$+&hadkZ|d&U<#xuX@_n81y?=1*=dbnx z_4S=q@0LJ+_vbGbzwbr!*9rgl-{Q^U?i1(l|Asg7y;bjFE-&F2 zGXAt}CJfJGC3wU*Je`}X9${XKHTr9mR&#M-^G)WVsryIP$2dK8eP-TXF{yd-a-AAj z(Ef=kzX*u%F2%{K;QAja*E6gCoAUnts=rU#>Vw?9!ha<0SV0jV}lfoa1mA7|(1VOB^SuAJm=nq8o?{LLNU!^I40_P0v4 z?`fX9!E>ML-ZgwSkd3dbecPDmYM#4S)WLS~fIVa_ooD{W$#Qygb zpQFLMI6WZ*e6lpZ)=>XPDxjEiJdmZX2 zw6N`|g{;=YURAC6>*vi5Xe!9x*{=6%B7K_lawqebyx%J$?-$I=4k4%i-fO|UXC1Of z!TP|S!M)$!C|%QY&fjyYEe9q=@;tPY(0(QGe=um_7#zBG@^YNb_@{ZxsJnKgTr$c^ z4wN)huX&?^49X`g!+bvLEKcp0ajabB(T0rE_x)uuY+L-B_RH|~vl=;Pkh4{@7JRD! z$m(?pd!P+9&5LgRXF79vj57rE(KG)Y* z>fi10y~*Zr{C1{i&qJ&HjbMxz$=~NLE&=FkCW+c z;_ok_mq%@%>o_v@9nHgtZCUG`_WYX5{P%gh(zs-o>cJ8ZTMOpmge$Mj;4R>l0=U#>JHVR3 zh6GRtu5Uo+g0pUtwqDv-KED|fc^2;(ct`&ayvoZGyxZ{R-c#6lur07~8C?K7AHgaJ zjBiG;1lUFdYXCb37OukJN0OE~mkizcBASnDQ4c`*UE?{B46Ne_`GdoLJ>A+|H`Ol)s!l>-lwH%AeU#`q@)4 z_f5_OXP7yEM0=8Cf7+o{eSUy@--Z?QN34IPJp|@U2Q0||VXXY-py!SwtM=i}hT6D; zxr&o<&G+Qi!Q0FG1hUeF=LZ_U$<~Tg#cn zb(qc|n@40P!@wasg9s6-pEL`}wvn0hM`dTaz_!4?%{|Xyt@(RJ z%rCY64a5B0T;C=x8zW6YI|pq_fIkNF%Odg8+}l|mve2D_PS4hr;%^J=JlGoq*mLs! z1Z%5YH`=TZD!WO^mU0#n3TGPwqdX>X?x!BT7M$gGhtBf5*mrgY55)S5X3{^Ss|Q(Ck6H82H$=AbJqR`e_GIpL zng0tm3wG3p>|eEoDexWeF(Fp}wzlV5To|`ogr?y9k#o>?J$5ZvZ!G?8uwF3p@ACYu zjP{-#v=0{>sHwpI{x4{yW6jXk{N9@Xoe2$*$c@(LDJ?@fYr%ycgho ztm6&Go!TpF{0)_)CHbqmC;le1UkYe>j`O>Z>-d7Pu=97QyaBpqc!rZ}-s=M%Yr}SS zh5Sp}SKePlUv;(dHvr!fd@t8a^G?O}-(m#jvj3pyxL#J**QG_|?WEScI|Xn_>?YXM zA;yM=`0uz2)_r&_v?jsw>-^#LzVBVCT1=>0n3NnN$(o%`RkZ)PbpI&It^ z_A=jIIxvO2rRKHZ{KD{fo37*JW%?}XpGQX7l(%$$3*NpX_^ir{>Ao9JXJS7LbRXJ! zlB+rRvHR$nKZk9!w0ZS8oL;K4bzM(l`Rate8T$TXYu-!Ue2Me((L|jg!gR*v2Z-?T z{l{s-e13@U^@7U`z99lr4P-4BNKqY5Ab+^Eu-~2q8v+aW`HNtK5xPyV0kE*IwhPuD z!O92%_JOIKb?LdaVB-P%(mhzUcSE-(C&&xSog? z71nC=JYC4@NUwRfNS2*5o}crwF`bRa;x(nHZrCAGd`EV20{-FlHSak0G^&JF1EqgBQn|oct%J>*b1K48> zarzII276HmOM*>-{dov$25Whq8%KgmUI$noSdLfist0Td?BNQMSRY2cgy&+kQ$Uly z;XcgyHTL-}OQaRDM-yu6cv4n}Cwj1*?iaVq$`}`Z* z>#r3NBSqC5Ma__(He{u`*1T7{xZ0)La{Q3m%+=<2g|+@#E#Yb0-whnL@5@c|jLz;g z?*(!Wtk2B*WBbXk{Zd z!OnvHkb9MvwRN3=orpbyM(VFWWKZ!cat#(T@zu~#_6@9gO97v?C-G4|j*st__k{S8 z(5B(5_~W(E8aw!c*jXlaQ`i^6ZmaDM!LtR=bM-76TjGycto!A@9kCIfZwsfPt$qEP z_ioX4qmg_V&)Pru1o-ELQ;(XHNwC6FTSboQbSBLOp{Ht_yU;eiA>WpSl`-kl1!g`X zzx6J)V1rH$3>zM=4_71KUd;{_{ z*nlv_Ou0li0XF=mwSsRp&Vo&VJ*kL2jkE*lO||r9f15gFZK|{edwP<-P969~{ZO|j za_2z&Kj^562(xuY^84D6*ZsCNZ@VHVuUNZreL8KlrmUz^TN}0aM_$=`*8Kgoh-~3+ z7OZPD?{m8|JM!ZJ_V?c!F{Lf#&n~pBPFCstd4FV$@Y}b`*imPfonM*kj>tMz{>S@d z$)2Q&At{pR? zKLcL&;X-=7&lGq9Jm;f`b`Gow?68xed<#DZ-Ul9)y#qc1{%XyH_0jwMBK9a#D{uZ!4Fq7L?naGu227CkjDMsnj_JNgs6hB=U zF>K9*Q91W!Hk(T^8@ly3Q)@Sl*jMzu~zLJjZoPT$${Q3Tk*1pt2 z+VCLS>nGOyZ;BUD9I>g&1fPmko%Mj1{1rCK*_-e>9oEC1 z;;h1y_S_cCLQ!We@J_;;h4&eb_YSRdygkmE?b}N8`#kfp5*Dx&>7tIzT_TyF=d=7;J|FVpaB!!uj>j;5Dxtfy0? z3tmwR`Vu^11m50HvtB~H^kjU(PW}a_bJ`J`{`wba+CH=9^@_&Y2z`k5_oZ~qi!=LI z>639aM6}sa$h5lZdJDdx&#rlY?dsZ{uT9&E|GoN)*2=2m`W{`Fu?xOL0)OuF#3I$t zSf54TSp0iE7Nf$cY($HARbDxWnX@(j3q>o0Qo}y-H_UT(|C*ST@@LPnz7Zis#@obM zS>RLTIh?4eQwodLJna?HJ3OcUi^SZx_w5G0iSticLeDOc1P}Iyi-*gv&u#Fq53H(< zB_D!4gr5+aUBa5dI=+<0r0X4E?Q?6vI#)NYA|~k8{<1SevBZMCl_-MR&lz~neR<8h zRZmbnl>xu-De%-+*8K0-V-s$0wqjn-58>L7t~k~PcrW-L2fE_?>a-n1?35)RKdks& z;t6-I`RnuG*SjUaHs+nJc31;g%~uQ83ABI>ftmexbe&*3VDII(F3IZ!8@Q_w8v-l) z+codBQTcSEk_V=;)Fs|2uxYR_8scMfV4VwvWBDxDFjy)?w*@u>_IDv{4{Y#j`PjRj zQT0&lG1w16bO*tPzn+iBi>?uD9xN9_Q2n%l?c^}(r;mCNZ5MdWH`WUFiS~mXj9?>R zNw9~9o;?oM7Qtq~y1||hqFVqv17_=m!1de>uuZTxhUj*{Iu{GE(u3$5SSCbQ19tG6 zYu@)ldR`B3Sjn8i*9W#`7-#EUb_ zfVCNwKi(bz+XQ=w%U@xCn_(sV{(7E+r}iJ5ExK4eKd11G4)V+k@O8m=O3yc)a^;rH zheA|`iAPW$(7oa!d3t^%Pb%kjcxt}4=FM?09V$Mr%=z>M&Z)m{cZBAvDAmgLpeF<$*o<{JywuojDfGtCi?k1N)8 z5qT=h9^_@J*8TBVSXUFzq-pslMI0+je8<3F8uPJ6J#1 z0}S!8Zm^*crv738>@=9IF`~cFSGdK027DGg+z(8GWx<{ll6e-ay*5rvPzDN^nDAw0sQ&G&CU`ZyAd;M@v$4tX4Q~X^(fjeboX_1r}%Pl8TU%7C#|J49%Bwm!C4g9r}K1%w#l#VPnHl^K+FdxV`$7bAf zi%1|qw90Tqg>#?ca#N&FkzPgmRTnEmO626_txSUQF?6-+Lj^9l^`$$=sJ-vH_iZP` zm8HdeG*h76M)^UF|IM<4^^EuKw_b4eMI%@iEZi2_z&62TE_6wkGho{htPku0nCY0K z8wM+_DQtsdV2KDe4b}vfi-D-T=fOI_4sq|-ue0R|t!(k_%8ByUz^;f)dE0}p7ry@y zz$HDXdJOIP{_Fm^FY>)VOy%jsmZ(Iu<{Y$!yhcj^I~1G5+%&vP-`0-x;W!mird z(*%6y;Cq&YUxe@02wwuy4fsk9u6r*KpY=BybTJ#_+P(5w@_XnLG|HbYVbx&WU`Gw{ zV;*&26JUeF%zo;`0Ae153&hhxdg;T~3;gd+urye;c)0X`FIXp-JrCRQQmlsfhrx%y zuMr`auraW?9IeBq!M4FJlP)=I9&GF3>;C>Qhn)kPf5f`?Q={^AdmC)JZryvaFspCV zL)ABh;wl;KmLAn48IMEz(ttM54ZfmONZSl;<0IF-X64DsIoJNQ%3NnoqjRx4%M&E` zLfiSMbw3_uwCE>+4p${s-)Ep1g$5VR)i+~w7msh%DZ!=ANcqbItv#x|7U4Vn=yiV& z3%`YJf}O2j_wM1!OYgP|Hv5=$@3dkKYU8XbP@v^U{(m>|pUF&;oOm4eGU;SmnOQkt zS+%w!!{;hP<`R0zZ-=MuaqE73EL_gL3R~pMPC76M?Etjj=f0rqED|PK%C6at((>Cm zad_ox7QTkZulwI7uyUj>HD{L86r1BaTK?kPt@5=E&on%54W6Yl)?9mNDZj~{MViX3 z=JCYCpRgYI=hEGJur!#hmqvHHobEP*_lIcpUL9aFV82S672j$2HsJeJY=quz0lr=M zY;BvBxjWm#FLQsMlUmig?LynquUYGjbvM12~z=j3*?fVAwpf%UN>qy@v{dr2~ zlAI>6)DzeJ*t^5hU;|*k5D}N?y1=@hl*i-`^@FuPxrpseUtihr;>yfbmEDIcds`~g zF9>T4bpY=Syp!#-aP|P8$3@E50}cL53C<7?9&f}O+>IUuq80% zSC@FF!M4GqE4qZugVj9M`OywL2i6?Hw!wPAREE05Tk=HaL%_n%s0Nz^3$I_T1Dgjk z|Jm_2fmJXHrK{jP=f*K-Y$4QIH4f3uiMtU`I8Rl%C7E#UIlAucav$;;oIOm(Hbdr6?J@&>(=l|$JvdABt$dEeT6U|V%}D@B%!c)@{Pzkr;E)^+bk z?me6@V*8l2l=R)c8|?QmZrxD*lZk)9qq5f}ok@Z1f&D6Nq7RCzb3U<8{6n*s~#@I2T8SXhV8ft`==Zi7{|6+WY+k@^7(%c}ww$BhaOvx$Zqx!raxy{}bT-;AZbI zGk07(uF)*_K%XWn5{Iz;ma-eW$Qymux;KA0Kd_a7Zynmpz%hs4&NsOuHs@ad6ykl) zM?a-|rk}0qb6aWAw})G&%Ao_=zU$Y6J*dKZz~#WKHJ8Q&7?wMh zVgn;k4Sy5RbiBa%mbS-Hv$n(uNSh;VjI`6G{IGrx-%CDx!e&BrP$i?wt8)Vd?%V8$ zBp*NV8@X>GD;-ZIUU=iWw=Eyb>MXym%+{wcNp$LRw+5uwzLwp%e|<`;t&y5QR^yA; zy$=VnYz`_Phoa3pS*&$o0bP;G*X~l~YX@0l-Rs_~FE*b={K|bhR@;(oo@swb>zL)M z>1p&&FJ1T7>ew1le6a9$Q1WXU_3`duspbB6Y%y8G$eMWBx_6`A(PUAN`{vnfeI$D! z;(uLS*3oj=rYy1+Zdv!|NuF)~Y@; zHbeReJ#2p=m@SoFH#gx=zcN22xB3Umg1x)QGurg63_Cw1sQ)(=e}unpVggxpw-VD* zyW>(HHp`FpS7VP{Kj327`LX0tYHuJC%64<1yYRNWX5BmMcwL{QanS$Jj{T;=c;M!s ze`>aM{`J34efO_>Usfip{RiV5X2^rynUh4^J!GnnF8I1%yY8`Sgm) zZ;13Q(*HvCh)eG`3N|#j?tNSU?Wf55WnzaS?}vp`{bu340B>87vd_nXO_$8Kcv^8~ zvbkCH3kUxId2d<|eLL93K(@ajboR5^*A(>a(6^ijnF` z%YV2Z%dgoB)-c4|i`R>-#FD(T$Xgm_3~@1AX7(qy&h9|`hsEVtJ*&-Dr0@?$*1dbV zzGPqi%r?69Y14MD?tZJlB9SI!bs#Hy2XP{&gHC_Lbv1s#-mqY@NoKkv#os9W=ijmJ zO}nykb3s}mt+TlOfK+q&3%RF;=+=(vlk*yRa8DhmpWi@6`kk)bL1i-hvqDkc# zzy7_%7xav<%{qM`{&k+@ELA{Xb(rzh`_{cL6`}uVguWS(Dd-2r7z4Zfjc9*d5ZfF- zK&YOrFI{rWy0qQp5a-8i!lW9|Cr+tIt&M!6`bmz+A?^}k`K_Zfo!9Q<#0d6OO_;?H$@a71fz zG)>d2Q>iqcBl|cDPs2n$9-(|Mf(?RwnEQ|~Xk)Y7>@}?eE%)Qsd(fABn7EzjO*c3; z@noEXuwIzci;{$B3GCHD_i;z(pLf&Zt0}8~m7f-9W}vx6G+Zk4POz$vxR{K|Cnlrz zm(f96dCe35FtlCJwuqTa*cjM2Sa=?78f*$o@2g96^I!`Rx^rMzu-rUB0=jLm9We8? z$)KIPwSqc=bi(b0XyQb z6#s97?SS1Hwk7+{c+o7-%h0{(hSSXtJ@~%cc8x~ zzjdiB(qP+QQ-)AB{NDvO{ONTs8@xkat}U87!$Dw2F^s+ZZvZAQZ^CR{y<|@zC-IrW z_Am!l4_4uxSIz%fu(}YYB=tqxj{knj2UD|rD?EMxd(y_wvKH*)XPNhMzQn%%nlVYt`C*7QLA7Ho9wOf+JU_0&*$gp)vkNMGGJG_a&Z1dejI21iupfB@x|X%bksrV zOa83#`-Q?e#6_?q*g?{DiEb0D4eZf|_}DI3cLXatPX7ZIj&Ib0jYsJIKW*;=AIDMN z|I2quB630qFkb`+xPSlwZaJtZqIJvJmTlQq5+zYUAp(@3fB*p^2oPYXz{03hNmOcz zpn?kO1_Oo)YKmJ-5k#b-RT9w(B3Y+YZB=ThX$3VPTDSXqf1a7!-CLcV^v`c!FWGya zdFI*KnP;AP=9y<^b6}^yih4!QXaQS{<<;{$!OnqM+^xx*%@vTP6q7B60J^yJ%@B0k zzT*APrf*30XF%e+I&=vZmR6dQm8|EUBJU7+pU=H6Ve??e!Q$_+1~wbR)D|0HYhcAS zYVZGw>$zM?n;x+8LsMEKP$S3Jgn)Zy%YNqPr%LO%6RabKb@I$UuzoN*2O-j}(VR{1 z%8F*jXOo7WZ-Yfo1Hn6xnHG#E) z72h`pT`O1*7)LS2>(FcuHR~tQXf&9!eb8u<{e$GmO-Fgk$Y4J8nMCU|TTz>xB=0%$ z{viH5#X;v%leC$$=g}1^+Zwbdzm7k%RR8*OnA+2iLajyWc1I>pp1La;Kfl5F>GSwG zpv7^UkKCWb)SbReV`ak4ywA=f>4L}fUFhpeU}!pkGY$8}&P@DiN+%ndJ=P7$DD+da z_Xi*Jrr=8KZ&NI&b<^92ZJWq0R z5qXmv{A1-fNiLeN!oT@fkqiiH0~-S?jz!Xg-C(0&*K+UbAk>36@thu1KNx{-20HmP zUAfF(7>y0ItUqseA7ew$g~~M#pZYm`a^l0Kac>Q*5o}vD?$v4BQ~4^crvKe@@$yOD z8lfA2Zm04@`W)@Z-a>`io5|+%VF$G1&=&iL^ldNL39x~1>|>tfeTDYz*pl~aFFW*U za;$nj0k1RnmX3Y1VCTT>ouCn20j&1Es2sx9!L}u^%69rQSiFzdf%PQlwt)?SJrzE> z#4isv0Tv$*JHSqY71viq*9&$ofgJ?P&EFrM38S))fo%hOuyOMwbUo0GkVotm4~|j#NA5!0N&NFUHM-@al(G{F!55qhMF-y|^@P z9tE2P`#S*_8aLma(38968+q_?v*KFfG5)%=3|qkl!Q%4J2zDffsZVSNn*uA2T`?cc zrg5_u+J?U=<#`Y+4_5O2U|nGGaq}qH2v}V1PJ$gxmEYy+$~uay3& zx{mmrh3H)_q8BeX4oha*;nM}5Vp+wz2W$}Rf1`87=Qw;SzVpA+k>Ya>KArIS-;^f@ zpY0vQ`@!dKKVJFvXNCJvB~ge3WJaT^_Ks=H?c5&#H-IgI6>SP2quma^3SM06mQHL3tNsBo7ghW)JAt`` z`MlEapiJK4aqC(Kq0Rj`ip!C$G6uFCY#;Z^&)!O0e{LP=IBET)eLhOV7tT5o8@}qn z=18yjxBG*RFkK7nILW=w@GR+h()Ao&%2UzF{20u1fjw`4JnYxI-F@#gOZs`zCq?Vl zo=NfVPukGAC?3MzA8Zut)fA=V{rgk%;p^k`Rhu4!cK#>Gw+zMyYg6Jyev78V4UrI? z){K2FqKw5W*~!9sjpuZx7K1CoGD!*u(q(U|nyHn)svEE;(u=__$yUE$S-c##r%#qY z>tmnAv2?(zvuZK;1gzv|Ih0~~P;2_HyUU)Z`Pv{fYtZmtXiw%-*pf0NAtj1f8#46@ zCTqta+x%{kJ}~CwoWOp3JkhliUVv|HBvm$7>a%@Yhp?qhd&pkRSpI`U2IqF{AZ+t44wTfQWDpLRDmnu?+ z;)58ip*m^0k@kJe;)AYLh_)Nrv(UaZ^gEh9(7xMerNRo_Z}BCg(B|tFUCcyWci38+ zR~n5DZhaZ{Lf>LAS95{q z*!<4wm=(KJ`qydvGTf{(WowMXui>4G!S7V@;}z<6%oh)(`M_8DuP-Zh?gMw-y~Cg9 zA(@yX&)A_w7yrz=hU-w>m|_wi+*s;78s|1t-r+?T|H*IVuYNi02lgrMOLTXRK#EBG zOkXxbJMg~6;NR8vtX^%t&V1PK*N$RxuHoFg)CbE}>z<6>br@ca@Av&aD!1>K?RMm1 z=sThhX32AsJm*FhgU9-Qr8To|eOXKTlUkIHE$Dqduo&#ToFDQ2lusXs`ktv+d#CDG zU=Mw0G01q^w7mbt_ml3_KbL(aygBM~o$y-t@M7?ihtlU5+c8)H`A?Fz>^sl=>|jYnp)9pgH!@#V}4FzJ_7}K2y|2WU9-BZ?<}U zH;w!8#bAqUyVCl*neop{1Rnyl6K4oSzS1p@s7*V`yYL5#ZZA2X^D7Pqh*KqIO?|@!R?R$!}NzxEypLR9e{TRyEUG8_% zU@--ndz=;jI~Ri=h#on!GvW^G4ADcC=|}qkgFbS=PC;<}MZpou+jtY}1IHGFo4sso zS|5=|?vd1E$@<6v(`h~AJ^9(i*co4@)6BOO`FJfJ=Ssc>lKw<_oo3^n%5nmJt)E*A z&(e$gK8R1zIhd?bt|iLi_VKQhxBl~s!LOR(^L{JX#OD2EViz`T!3pgafk``^MJChDkq3`q%xl%8wiS zYf$%Jr)ty{&<)|_(CVduV$Q)Q|7VK?JkAGs>`mlD8zUhG9nX0AWy5*Sqgrg`{E^CaumE5{I|k(ReZ$tFmcL086P28SR~I(^^!Z= zitmNmd2p#uTaJBqsmrG<)~DhY=4&-e!C&ct(b&VeGJJUG)2^;i30nD*zT+%x7dz2R zzN6$*ySX|pA3M@CK)>h%>p#h+07S@ zrC5Nrv398>mf{Rp4_MLXrG9@NtRGA=qf1!rtC+tf=o-Mr!Cqig6%|?jZw8wIyI3qm z7c|*NF8z;UDaOfL`KYBZra)yo4weTi##g9bror04e$&fF7&p|eO|an*W$$(t+Nnn` zg>e#+tqLZp^;?&MJ<1=oKh7uZ@5-mXfux4E2P31((L|o+$1H`h71GJAU;|(eD>FW@ zUUZ1FjoQ;~h-`^V*7*U3$=h1D6dZ$(E*4(vO=jKbQ%&Vv7ZU;k5=g3oxpSuS6CT{1*dF^zP-(R~)1JWJlSr!BefU0TTAbsJn=|uVJ$sh?4ZpY)?h)Bkci3kNEr{2g z8aGeg%GaTPpR*Kxr>DIAVbZd&dE9L=8?O}}9l538$&ZAgjiDEux0)f7=1s~N{5FP4 zZpY!*uwyAmQ%3PCUnaBOcVTrVjRBkg=E%AVpR)&O-zvwa)b{VUnBZtAZnbyW+K2ph zAnOVqvv*0@er6Aty~?{>mfl-_&TR7t^@kq#^?qb22+H&a`x@AY>vB$>tvlNsYJz;Z z-&+dq^JTxNY<8y~uH#HLy8>D=>2_+UOp4lHdZzOAyzd_@1<#f2`SCZKelnRf0^^M9 zad$FQ8X;+d{@9&M!HVSE>?`l%&8MG9v-&~D#pZQG+x6*4N2opqz&gR65$YuJhcUBx zR`Q}2!L??WWc)b!+CQ@td|wEa6_;@vV-ygFm$gL5ktmh<40$U*i)|%-kxi(5LeI_= zi%gRIcw65ycqaTz)$JS`qMe8K;6tG8hW0$P z)6mwcPA(|t-e)s?N$STnvzNRJC(+)TMgCUV!ZLkH`bp(I!E)qi+~|HI{?mn};0Eq> z$u=DTI|+830BZ|;Cx_CnsL9?EwnQsQ6VR@s!&_po<2Q=gRc3CNR^S(3i zI`N$)7as)gHvZ0o<-WTVyr+sEyuX(xjN`+VtxjL((@)_2N(2gj`wNn4_<+sx+WHy4 z9#{(Qft~9|IxhMv){E57`bf|I?NV^cj}M~?h4bTi`gWwrH>GS|m2U$2slQtauJU8T z9jPl7GZCHnXnM%E&sZvbTlsEo^Bk>poE5*drQp@vyYk6jz@i4dTyk6eCMxAY6|6{zMLn|@$W4KqrQ!9lb_DV=U=6{&MT;^C{)dKVwQY^OI*J(=QsO7UwJJtp&2gJ?`O%|^V_F`_o^NE=JMfG ziXa*-WOZtPkImIdv3flR?d%6nhv%do1h0BC_6OK2X1^!YCcSI0x1yjq38E zwkMO`UOt77FwB+ho+t{_e?0%h_-S{Zpw-W7D8B2vM@d^G?YVjZF1_zbu*#2|4sH@) zI)ra?A4=nYjeNBlJ0zoP(6&O`CEDn`0P}nG#d;kaoGyh-wDkk@XYyIBx5-8nvlRKQ z>|5fB*KN7L`yD7Z_R7XN2>&Vgk8xjC_9CCT)|>jv@zMLuz-QyX`F_fGo_yJl{`cxd zZPoM^>XUp=;oj+yF7x3it(~+k(w-Hjx&1!s&wZrzlcsxJ`hN(l4@_pGuC4qX0UHFX zHpKlS+T%XImPT|5oA&wR*aBED`Qz9bu$}~V9;`co)xOo0|6%q7CuN&?z`?bxon5F0PT$Wp~%2xYREe z!77hNeMo)tELa7Y^-a!wKAgJ2`mN}z-p=|uY4NzTdayj0+E^!+K4~cA{Pt z$9=JSJqy3pW2N<4@lN_b*!Io!Dw%iniUp~9-3D#NXa4u~Isl(R_{4SG2-pDF(|C?9 z)yV|d7}yntxb=f6u;XABZ)-B_#-1EBbEHj^_NStcbda?>RmG_@k>=4XyF+vb@t=P7 zbnvCnp0ssbTMLQel8bAegEhT;sQreTUN$IBah?)wy-@ICRl(_tLbVeN{yy@k;n zM~~Ng4nw;LZLvPo-^Rffz*@ZRUvkFLpT-3@yf+(9{1(W2W-1ylB%^1**1(?4y&IQw z+NOJc<-4#SNQ>8f9oW_{AQz(N65nlLd9ZkUU(J z@VyG8&6D;Bvg^`2tb@&gz0eTv|9Us?54KHpO{~FfI$zWK?ab~@&!_A|(fduy?A7;9 zuarH0xN?+9m+@_d$J&>py3w<`z$#9bwrfAwdFa~8wd<*{EqCdg170IpyQ&S3lehLO zo9kN7nkB7)w4#k58@T|M1^Z23f1%xyOFtjk6?=v$=YOdB4c2#0ZI%x`w}G^A(o8qS z>R37|PueNc4u)%qHb=MlSTt|2@z<8VcCr3;F&#Aqzq8+nY(({iqhM#i%zmd|$Jcvz zxp`6UjS2HW6Fk++DtW8#Ivt)tDC`_q9oQAz>&o(1HH3d3%29&HyrLIY!|?5#q3zU8ykC6o71>}u zwzK_$-ynnU?jqmo%1uR8f9pK!JkJ{Ez5@Hi_epG7e+D*3!zTU2dvyq$gq}6;qR?ZP zwcLe1y&E_D9Npp`dY$UF{XN8Qe)DwjTJh%+)&n*U_C@IdF3HUxSj+6`pw7SZCYuk1 zt;1(ZY(A`L#_W>muR6yF{AS^|^;@TdTckwG*;nw>+Hs!K0dt83^s6%Io43@ovO=}D zrgaC(hy_)@`xi$W1`V6eck3Hk$&5^Q=i(W8wBEOaN%+P+rFMNU*trCD5NsW+sP~n3 z4D2jeu^+4d9R)iBwx4^a2iacW=f=~d)!%!%+&qI5ZY>eEQ(b2{6t&(b&dRTOe-*-+2dG2*q@F5G& z*^{{%dC|KKk-nXDJNL`_U2mwrCrIlitypI1f+?^ruxS5@>1y*)na@sN>C?VVkZ_5J z@uZc!XURKF-Y16rEE?+*{p{MB>6AWtWxG>Q4H$4Qvd|&I99J4iiwx zn6K3?e^iFKdMfhJ4njKv?H)fimY)x3$w}wkCikN6%}5`eg2(*g>0pb0pG`bW<~95J z@@Cm>(Kfjp;WAWI7)s*4F}U@8><3sn9URT_ka9BMRAWgMv&!(cOqsqZ+3SJdnV+97 z*_$;8R{8Id4wfv8f@Q&ywuEfYW27~a_VrL-v`a2+@2trsrok;WoozMUH`H`$hswVs z3d4L+&sc}gssA_~+{V3~Mfe-mmCP?)&4O_5{KaiHy-yQ#ozNBKQhZy%I>0PO06D(} zwz4rLvpu8@lJ*|%oo-^>@aF-cM-N|Odnr?|C|yl(c_+y`N8a~^d1#6%MjC$RCzc(nj(OWB+eRXxx1#eowG)q-dly=sUVUwmH!+V(P-iLFFjQ? zf_?@o?$bPEM^s&vkv3AEM$(%qmP_WO+rjc+%cM&$hwt2;x;r$le4X`*KeW}N<AIDeu`b{3mN$J315!$Nj8!;Lz>MSI%;Zf^m360KMVdi<>4COuLEoY?9I~c?0+b4 z&-r(0PfeE_Wm;u#-FqJg;2yf{@TH@d+*Wye`i|5aq}#grWLqbGpm(?*@3tS^JZg^T zR$R6mv{v%N-rLp*S%f-N$#H|}r&4KA?_tT}xh22>9jubY<>jgeuMN+wBX_ z{TATW|{ZCws+!%nhp z16v1sy7<`K!E8fYFZF&}eUYNXF5sB3oj`jNa|M=z_$Z!a99G-;8-e%CW0r%T`!e3H z@7wvad2EcdT`eD_q$LIm+SSR*Ecu5Y8|g8%SpjV9)%Ut{;WdVR*NtH$nGBpKy_-Bm z{hAeiJN6}*mBZRf=G&~B2qM6uX@aKtam&G1xOeT@j*UgQo%EyE_npuzKvSasz*fP; zBPqKhq^*&5ozfzm)ut~=`iLc^Sh-I?Tle^=+>-rSu&rR#lB2ln=T&%hVakSoR5rjl zXg8j)?9L`PT8ov^dWP%$kgAW=-+?_;U-}L?uktOZrunc9OJV(rn&f{p}{}Z<6-~(vFe#MK4RY@eP;a9LC~px}6?m zW@mvDUF4}6V|;(oa`1Vd$Ls8J>&g}g^(MmQUV=0Gs$$rjdM36QwkW>C(4e+p9+jyV z{=-jR4)^Q(F^TrIGx1%3+K$XM#l}{hOps@lJn?zl6j%YQSa+(68L&mLWIgG*tE8PJ z?d4%zSf91|k`5xnPL1YCI6A~{>u)1pSCp^Y9BJE0yBj(ur>vTWx+ItSZO6|I8LXA4 z3_avoB+tK<&67|4aXb$-mWOVfJV&3h931oIzCCqas1K;)!#Wqp=JV-JbV72Zao=_? zz@xTdIr!FvYzlaU=jOJj-w2~JO}N+g=rn#1d-xg4F@FU*)X$5hAwJAIIA?)dhiK*< zy2vxsxE!7{ew)^&O6M&3)M`Ru;UUZN0E|9nLS3aUV5|vtQjoJeZ0@>r}DJ;^eY5#NuPIub&%&? z=_B-6ybON6Hnb(JBg&Jda6HG!zm|*2A-Oybwhor%K3)#J^DJrSNV9nCNPk)!^M!0a zvC;cg9^w6-yBw}(ALh_Pg-)Ob%{FZyy_NJ@wMDc>8pYv6u@Q1mmk&c?4MlySA70hZ z^J9nAOEizw*Js(|8}&!pvz0tY$umx#mwH*ah&{>k(@&EeZ#EL#na%6)I{r(`!GApz zUj3<$U4WIn%XTJd-OpbRSX%IHZ1QdPz*UThOu@65k50|fuO%z}dj z7_9RJ%fUOmtX%Z{i1Ye~vV~&9)9Y$Rw(KY9=qmo-K}4A6zXt!o7otZ6bV?SnEo>d) zaHYlNvb`+zR((%3f3?*dksKvb*^-eblJk;c9wl}{$b1=vWy|kk-~9?UL#SuUt$%tO zu0Q>mEj5EXDcxR5sp054K3Mf9WnXD$hLNfn??7Ty!QNXhn_)+0nDQ)8p7CFc+GSIH z#`Ru4#cEO+anZMuS~&t~e@*Aknr?%vAF{?~=>42^eV}JcRW0mUNY^fA$*DQ`7 z;NRVuH)(khrHMZ`#|F6_fW+VOuL9O2D--1Jei3s*?scgzOo8=*;l?nT^KlQzoc|88 z?aQ*cmDYxTShmcJOX77NUQ_wy-~}Ns#g%rI_tXsTsOk4B7NM!ok~vs2xF5OLgIw$}Deiagd=%b|yOx8mK9v5^ zpPDXPPAXOYm34Sc>|T!T#iIc6wR#jsI3}`I|E2PSB5%#O&R_l`j2C;C16(S0K7yCE zX#J;6{Ctd5d%C{7Zlc}GZMojzCc&B$9^*M3t;_D5hU?{P!FTJQi=nq1%I&{!VYFsir4kK)hRzZ@{Mdbz`I z7O%IcPgzjtk-8?+I$f4$jOh8-EC>5lzjkJS`f{p} zQ5d`aF6tlnI5hcdmxFH6#Q9}Y-wPRH!>VsDLOXEXa`37L?=#w!p|8F+ZyqyS?9A7O z3H0gp%WmBd-rf8)gY~?4IT-LZ)+QYr??;5e{;>Q5h|la{20>^k2cI6>vXi}y*V6Uf zxH!QxhF-cHJW1~m*&P;}5Xnd}HsL~ji@{>FrngleQ?g+P2NLWw?w*H#z6-y^gV#}u z;&z^-1FTyq;*0rz2Z+8+Q`Ta3>*`$}!yohV$o?(wD`GJr^|{R^JacW8aS|TYuUHPc z9!eSe?LgbI?U=f=W{{2e)ba?mJhp`oQkbn=@p1Uygq_N>oSlkq-rMzFZ|C(Dw-S4R zexdPcJ9#I`dz12VNw>6vod^4dfP@_?-SVM?ZrKLeFnPvrX6`9jGP&lQ#GQAf_uXE3 z+a;rywjR1H{VR4-B6TAA6VTVa8egO)fkpZ&W9KT~8l9^s`Zeeq`-^y=gf-L(0z!Y#qnfH&J@`Cn|i0o!xkxykoa6hu=ru zBu`YZe2?>6(o(-V7&5-NWn-3f!#VhzeDiX!rZOk`m968)`)+^g3l~rgHlF4u@fW>i zIe3wH(cb0b552E<)t~>g`EZf2Y-8|id+T!W*$0<*TO33Kmy!3~nLNcQz-wx7IXK0= zi+hgt*7|Y_+N%U{?(H5?8-=&oP}5SLHe2cjkOiL;$yhAyV-jdEBd3FS-8$`c{%^@ zAb2!=OL-+uSFp0SeUkcq&vI~UC<_T2AudBoy3BAYPoou7RiUTg0~M*VwxS;syY ztwcusIdN1zai^QyAB=(0PX&049g2Lo!q&k?!HVlW(pi;%Kz|2&w;#(!Q;|qW-Z_N-Bdb;x4V9)j z{SY+Uesej{(gk)$PMdGFTS4WTAZ_vkjIrE1z2*Isxzsh`c+ckninfI0Wu81|$@2^! zzYrgn6EQkh>L3C9UuF8w9@__4f0Xrr-(C)mhV#0M*vgFY7mL4?9`1wR`Zf0kcj|p? zY_NLPdT1qUIuiV=%!x^|+G+y&iVxw(5j~f%DX{ZLmV+Gv-dt0wI-CJ(hVFncY~w?z zw-_7IuaeeBT5<1$=|8Y>u)i05)Td}1{~Z~1&YnaU;zSknX*|Tk#?Sm8;t%}YWq02D zOSRTU8y$8re$fX>ILsf*ocCi?(5fx&8ybM2G720?^b%M2k z#eKJZV0o~j?^bz-z_ur_BVf&7#Xc&!V_;1Q>=alIEdGpnux$x!4XiPNZGbf-u~ zPqf8gqJB?8d*mVTRo_{I_9V0qQ@e2q+WcMs8`j+&q<#na;n}@{) z{Dvo(Z!0+Zg1XoCY}olmI9bY!lbn5Zfsdyh$ngEenlso=>s#K+|2q`PcAp1c&;L6C z(tj_KE=Ue~5`yYI&1;G@Lq!_p5}Wi7)1Kya9^n-{O+rV;QH*v4CK;!o8JBoJeejDCw4WtYDe(2xh>Er7^HrHVuKuCOv zrOG}sTN9VxWrFPsm=F|Ffm>u=S8GkgxM|%kGR{reMs{F}L*PBp1taj`UvA zMXQ)hK8tAUAl09vyx?XlfD^#XL{6thxpk6lq>qvQBA*XS4!@7%D_(7+Pmx}XfkTY> z+GdpANBaCl(nm>OC;d5|KLKLQPNMwBNw4^PlpcRCJ%5h$+E}_Pf0X|$=~>dBDgI`U z;@0O0dcz!0HH*JF(om}{OO2g2Vz^T0sg0F*rPB`+Gq7${(WM8U`N}nKo=#Tvz<0{#; zibz7_up(9FQ>154L}eB>4^|H*nbjq14XiFfw*j^lEN<&mPa!{G>g&3;^OptN2KJaT zGNEhcKbgQV}}-qkw+&Ge*heom2goV0%r<>(?db9;Ka{BGC?WXl98+ok!Rx1mfbho zOvV(eMH{;{B7Fwf_Ff!=uHh?@AL4e+Gkko|fp9*&pKn?a~(&7}u@oUw$giCa}_Kiq} zdf<2FtHeKq{3wL?VOY%ie)#3Zk1~f#jJ8x@GIW&u$G%o-=br>S3RbjxCFgTslVFeK zUYF)9t6;~$b_*bG@r~4{Xg9#uz`y1hw18FrG5Ywe!I0-ItQTzH+snbnW7t8kiu=8sLDR_J7+5`6o_mdX z{)`N>i(XUgTqKF-DQI)h?oz#S37ZG&TV&kUJ8-q~w+1%;z;f`hN`73>*6}{NeEN~R zUYX88`;t9(0{_C_FT3-=uPu%3O!y8pi+)o%PAcahd|LitIXqKcZ8Zwk4pz;5@lyGZ zg13S{-pfzir(x>=Hg*)(0kqekj9baCi>$+|er-8;&4qZC`lzlbUl+UVo6Xz5#C-N2 zmxF&*VXa<~mredOU#@m-LMT(MzFZ^lT7y?{ub_X&DE=xMA1#E7*n%?5_M6{v0bY$~ zmIIbLtz6!B2Cu|=7$#s+Q)oQPldbMgu#dlw40|4S=nLArXxq^vRYvH+m#_^` z1y1?1J|J1?g2(g^(1+YR`_1~j?X}X!wK$+7>h8O>A0ztddcQlr;wXH2|C#YxI^VwC zi;}RlPkeuRB;zn0@wMuf?ia^3LRui-ju7%h(J5x*YBij@v~#)~__Kc!!lMOGA z>XX=~(AqxGi|Yv;LVB>Q2y#5or?%9bB(h_gRs7j4yKx{NfExa~)b|H?&iGFvJ>3j8 z0(KPaho$drV~$@JX}1s7mc026^Ha`{xASL_yx%7OZK;nwm%b9|DA_r;$AVfIal#R- zXv=N=Q^uPOA4koYf!)Q20(RV``pl8m^>aT*u=-?-w=?&n{UeZ>9nl4CKeW#hK$9Qh zZ22l~rPBsU8z${0$#k>^WBonSquy87pBlbEU7I~Mqw@a8a&QN%oV{WP?CN!F{9Plx z?)uzt`^P#{L^~IURT(*O%5V z2gx%}o*OUxyrC`WPfKv)hEdqAr^vrvS#WzzDX-T{^cjwj^9IU}%-+~NI>=curW?+a zKYK~R*=2G4n3rnyT9Bvd{TfdZUwCODSmHibH@<)76){+%yfvP8k!SL0y_uR2qyigOV6$P8uP0JT|HPff#tyJ z6IcsaT>|R_+nT`oz-qzbYXn1J)d{*IU{x_p^>qxa66}{$VCw6&)K`w%X>h&Y^|6?##v@fF{U+VmIL-bP@?=WKXY%-c^D+u= zNN6hBI#1pn@{V6#2)@X@8=r2*24O)hUyOic;gb+KB4Ju;S_!`5Y=G99Zue0|vZ#HI z!DDNt5Ijmexbpm+0?UH^Px)&6sQ5bbZ+QI7>tH_~Sv+MT#)#@mOSPJ|f)e!~BNj>?CdUeto&xP#Mp_X8=A$-IW7757rNM((@kG zBCVg}*d*(N@t&~5_Ce(CV!e$#=F77>r95FC42-vy=4pg?4|#g)3T~~#bR_nv<}dlw z>%#i=)SoxV zvp}BW-0XJQ%(tcYhu<2wl5i4*Wy|ykeMUR%JA6$ujJJAX4}lu`P1)3&l?L40++^$B^yjA*f(3rNK1Utg&bNn%F^_C&KR2OXh!-x) zE=%@qcx`Ja1YZ{~dym&3k)z>WLA~oRG>g#mg)~gbq^I%z`I|--EIG zi>fE9P;$4TzI*4qK#xO%g<)g zDxY2mKCLu+FV3_{{bu-HdEhQ+#-KSa8lHK({E3^+E>I7BXIV##>Shui=i%{D@rcVo zcS=US)1s6qPx2hJ{m&=_Uly%Bk9~ieo~I4e?zKhbvCV=&@j|Uk8@zHVAZ7SQopMDOZo?x#eraXMeBIP5_&P)tpfw_5a4cOd%mm3Jo);_ zXJdLvKDM_w=`>nBqYv6iXkX}ME7a*WwoRujBCuq1bMJ7Je8+MH7aszjEPp4#*1&$i zeMPE+>4p}NcIuQOe1R@s0h+1j7J{dXhD-Ia4mJm-dtLg!@~_apVE@k$_g-~i3t%r4 zR`Oo%q(thVMRlP3Ezq8UwrJPuT|2?nz;050*6zYR16lc8irqH+Ory4I*tk4KzWV2R z{l>mtFT;#w-p*#tyr)#Z?a`9CWOI(ZdGfy5KXX%F#=$|i7ro_fJOOhIqB^%qdZucQ z`7(L`L2YAthM4DAjP!3P=9xV-dQKCxtxXp%_tFo(T+BP;Ycv=PCH6O}l!8enPm+Iu{4}MVu@dQ*6eqle`;gvN zY;+0bFr@2xpBEHj`+~6DFEqZl6Oqt)Wli_ZcEk!Zn=+pT-Jj{G>1?m*ezo>Vw(~F3 z2%lKG-9Gu5r^+J5DDnFO{=qT72*pm%$r@mIxdX-V_=7>ceKm2XRk9;Bc=g=ldeCL3T(T6YHr#Zj8EMKVUy{4xBrP|Zf z%>mrKSJw3RS~v`=t-Y_V>EBz^%Z^o@-_%^*$d?}5;F&$U3c-Jd&qVsY-`vi9wRKQC z%TeDPeORid^V*v3c5A@?vYhv3I^o;?*VsRMnE&{>-W@u7!t*u%h4J-shv{@`t!6gO zM-S82^FQWI`VD0(ZD&Td({XsW?=OV=7JZx9JTGB8wbTs0k=d5pX{w`1%2Y*52Hnf1 z=cMz*WMmu9tN$DH_klui7x(D>RVHr)+}%L9-p-m0cn{G%SGO>pW8R6r4f<*5r$YK( z=&!yY{XyvSZ4aIQap+f}f2jNm(05&lbM*p)|5foh5`8T;N5Y|7Vx1{Zo;-cz z`K;cVeiR==G_Ojodq{T;kmn3}5^JOMX)TAk1q#+inQi$W_yjbb9w%S_)rIg3>^l^o zTz=y3_jO&(!oL*Bima?_N5%Qe7zTnR4MPJFjtf8P=;dzv_Go)2>U%d1V zr@&Xi<38|tumV_7hl*~^=P&vf?ES&kpeu?0`mW;_r^|wgUmR-!TTEcBU<(PX3v3?j z(Z0}i{NL~S{em#l%df@)_4=Q*b?Bd|G%ndalVH^^F1T1Qldq!we@jt1OyAE!*92Xg zG8$i}?yrHn-uDdYJ)}QH>0Bzyd9WccwY|%O7l7G=o?CZ6;|FQ4@@bsc$Em1HFc@hF zMQc%^v!vyrI}cq?M5o9t+epUdU9%y2plN+cA^dJ1yj-zbkIEc`#KBZzUpXAkUchEavZSgOvkBSDi)a^ z-oW~S?zx0*1see?&S!)*f(?T`Qbb(Bwu6l&=-R-F4z&Plb$sb!o;($!5T^lM$Eb=U{C8pCAU4uKWG zhPik8(|pjjZmch=_!ar4!1wbL3{C)j>HgXGkEdIdkpC}$T(ox}A&I4t2DX}x}E1N(-(D5(rj zyPQK={rN`eF7#|80Yfn0hzw0fG{e_XBp|MNciY%ID}FZ>f;%sTx%HdU`K#hTn8C_5 zV6w0QePwSUJS#u$GxzZ(-KjegvcTApBY)E}{e!$;;oh}bG)~%f%ukjMl#P(}l4t8{ z3c*XlervXih<+dexbIhgj#pd&TOPc4JnVEL5(bPoVj0(O6m7w;DftPkP}f)$Js? z=(;zXBv0OhZ!84AQKn9!eq?om?e2DqY_61D?)z8pn(8kEpI13JH#0m>HT&97M0RIn z7P(=7lMM(D=0I7hO0j$0`NeXiwY|9z zOhf1T8G1wUPxD)}`!y_?bXym+tI%HR>t>T2Un`p$4N?-9wJ)Qwbey~=1`5G5LK`ZI zt&C*N#~h8Nw2;=kdA7r;%pK)dY&8Iyt?;+B-`o6JmW?IRm|%K9hf@7jqKIvZRczcJ zTgb8TRQ>t`!0KNIp{;#;A^cWS)ZS6(1gqr4_W5e{=NFzJ z-?4Z2G27Zl@$nqz%D)uN`m5@{0NpBdPYUZF9UEUOv7JpHPQ0A^o^0JJ>rd}2xVUNR zWmNteKNs*4h&JA-1N+>_$Mf{ecJdX-_iGn@=842JTWsxnl)S44{d$YF1-^;+d2!6i zd3K4`+r#-NB>-hme^`W9<-7d)nejq?O5Z)V>0AqrStyl7e7o>!_&fA5ycW2xxT#EB z80AVO9G>=(4C$~-+($Ar=Jvs76+UmQ(5A66lHpg4h}6N(*&UZLYkD#$71cx zAU9=HZgGG9S)M=to~>T9=D%mW9WDf)3i~JhX472E>%I2$ zA23>#d6zwz&aw|VV0(}!c*gwuqwz`O*c8|tSll+90h12tE>}Ss$=*oYvJ1C03#I&pf=&e}MP_@iN`u^-p(dBd$l(SImjV2?Azja3D(NwDv$E-Y@`#wvQN zMdIj0DM@PMCTJT!RET|-Jdz8=GwhDH zF`ZBC(o3Eh^6cY2wuZn%!Zje)aooK02()LQ{bkWomP09bma=4JinQwAjn?LGlMiGx zU9vuef38F&9>}~Sf$XsJK+eN!5?-hD9KM+ux4}?^{)`RcN5w6)w>i~X$7xpO|Qa%i@r+kj{f8-v`t<-b%@a{w z0NJ~bg6F`WDu7GxISJMV_5}g2H2wTuovfsKIYrt!Y1U`?Eo>fa?ql9=@z@$z)yIA8 zB$)VafHi@Yk29gFVI9q4xpF%7|ir=!Wl!HJtd*k#Fn|OMQB)V54Bg zd7tY49M}k$=}KloeBH>(SN#K*KOXa&1)G3YHn}dNg`|~Ny|LC^9sKSu#9=6cv-b!=RY&w z|2$(W_j- ziqCf_<-QB3`dK4woHX;HCG40t6bE+bG#{!x%lseOFJ82Mto`=aOr_HwxTI_a(K3!- zH~i{P6oQoc2s7tR-)W8HfkOaO>3IzTtOX~$1|h#G_!YjyoL@GJ@r&$E8&fPk*2;Ia zT!CLKKd2Z#^_hwvqAyMs0@b0ePX4xnErKno%qAnzxV6bn?@#Y5Kf`Rvbk_`C?-rr< zaN3^J0sZjq`bw!T8U`ByGh2!&&y_VU@B-lcY%(=@K>qHUsuFL!6$O09ysy zEzI=mZh-SFQwR|wt~%2E`YYO)mZ z@8GDhr3tf%B7Gy*=(|JRjUTX^ zZY>VhQ&e#g=SQ0LT$8VRNgh7vH0ym@JjBT9NEW>%om&o zs{9f5{9hNsv-aa_CW_8njdvCfdgWPJq{R6>nD=$SqZJ-U{-zLA_;u5ivNxyNGE7sylh-9m7N z{H`CH-^a!tmEbSpS?H6}`&B>2z9G+zzWkef1B|Br9AjGmt&yN^c4SJG7{5;Vt=&%? zK-jL4p5CNGIXkYRyb=xd^fCA~osR6f2A*>YESI_0t8DT6ubSYy+s*E@wt$LR!c=WBHPq?pO|GodN zt~4x%lTZniReE(1x*6!qUPTY+G!pgAb?^fC8HeXs+k&zJ8roT*j=TwVU8|1YT$0^=o2o?P_Bg?RBV< zfvaw>tpv59j(i`4Ok>C#`PRvIqw;YHTLs(xw-F{;KL<7f_Mxy((GK1>Xg*(Aj^9WO zbbB*6;TsuWc&h7cw%{UuEk8lO{2hHi977^mw|BR`<88|R^zTU2H+LNq6D#u(_>Fw8 zbbsVAuwgJgLYLm{6xa}0T%XT_9Zck10~<_W8(;$oe$_uE{vm;7!TJ(d6IgEoYX$28 zllh@b?szv?Y;D}bI+0IBzfMTJlM-xsS`hqm9-oANB*f0 zbSusD+btx%ii72y{>YKuM*7E;ZqM^`t*q_$biq4Jg2bx}+G%L_iq^`H9{^{XPNd2L z9VC67^!NJo!>q{VQm+r+PdaE4nyxc`>_(5JI2}p6PlBHSH~nVi#4;rqLcCQki=@wx z{yFh3){E?6`>L+j8~ZW?rZe$!Do^##k%#X`_HWz{P~aUScVt6TU#iPIdFIITVm(J% zxYgCAbZr-DwLf4Up)`AcLMREnP)S=dm_p2%-#~fwo+HrCK-(@_d`a?3Nw-Xbp9g11 zxA%za)pFzLo5~xIVQkVm{EnaX`*Dix7oJgsJ#nn`CG$MC;os>`KV^aRU2IQ%g2`;nDK1h2W3;d)$_abS`7xp-W_#BqtZB#O>rgO5T&} zgCzCejsxxRF?A*BfwVTq%fNCAbkA-^n8u_b!R0#StXXKszT-s>l(p6X-99@>VIgC2M^{sez@$bt8b8`f3bXjvX~;-J^BB{zj4`0@Lpf$cpYr&pRAF8@&Z*b2(M9ibw6w+ zc%yIoi||rJ!iCo7QbeRSZ}wSTO{XXW^IXY6)qgSGUcM5>WBC3VulxQK+Z{?K|7aD- zcMEyzGAqHqaPM?2bKJxB-Dh66v@i5STPR1HPyIniOW*5))daMY)hod(e0{|CQhGZr zpSmYerj|?(2)ZF=r@cBsgI>`)pBMj!uY~cWW%#$Jev-&b+3LvK9B^Ju&5Apl(tM!k zJ_gY|X&t0>K4K+Y8;$p2v-6Q-`$lNGRoxXRKJO!-9vDsVE&D0ZAQoN z5YXaI+j$B9?-1~*%}h=IYn)k!@3yTg&M(P$s*|!c_ElA+DmuVl;GgI9oW-F@1ssVF z3-l(*{&w#UsT11k|bb)9AZL%i*J#H89dRi+y+I%Hq0t95(sK*+296mEakntVQtx zCTj|2)+dYT5us$E2L~xz3wcjI0r~fN@6cZA+cie`{j#P9?HfS)vdnN;HoVSZ*-&F= zNg&*W$HfzLz`Ldk37F@q4W@bawkNIx%a!~v9n4%mUN7cf_5Q2=^oZsjo87BB?aZob zoV3$dtho4cv#D&HrK%V})QvGacV~!^tz#1ui(PFfRmn~Z`I?`y;`W1YvMKT$gc}#0 z7CW2H+R!y3k{FVDhn=4mTIHf%q}>G+(^B=ARx z&b-59uQHvgIQH}v=kKCVyx1%=MTfa{yh2InoCOuHj`8id1v^QS#P4b0s+DpL0l`#-zqmEa+CXXZET<8h1}XHx6BK z-F{PFur~Me&8aQvJ1$9gCKlt^Cf3Oxzt!^CqvV+-kM4EJ zCO!!^1NJ;GXL0|x#m}O1_*Bh%UCBZ%W3j{Pvm46)ODkb)UOe`LS7M?PO?70THIirB zrKyU^rj_8^+&dkOYQWfVdLeZ)cW8zE*1tQU?Rfr5EY{k5ka4@RJ#}BA-u7nTR#KDZ z6j6DP!LQ+$SAt*k?^`-IW8ShOUg8$hX9ezWU-6w5On5=HAU^BK_j!v0aCRl++^DY7^vV$=m&_D{kH&>1i9| zizgy772b!Yk@V?!7_-Y8s;Ce0E&D#~WeuA-{*HF6gdQ6T8>jPy;)kmd*1Iz44}0AQ zmBU)C9!Ge_))%b=NBuaq$!4;8MA4*Q$`F>cnGTrWdk!8$yHaQoKw*wDB!0j0t^wiVpo+_wA|ldo7&(s*H5O40(F@GY9eSU1n~L zuB~oGYF4T!1OLIc73T-B@gtI18xx5_;aHTC!fC?RN&ZRl)?c|2+!)Fp!nw(3u0YoG{k&jq zzs>tX5oBGi{Nz`>&%-<0{(sL~<6dV5eRbVR@S=FR<71{Grqg$+O|a=16P<-hxG&`` zsR_Of3BP0T+xp^_pvLpNh^ZSL*`cbHg?oK9Q(9; z#hr;|x)QlFzbc<|t1G%W2gCc~cO2WvS0LX4<*wknT(yegg+EhJxme8x7=UK{rnsKM z1_;Nc?(|hiMWkiiHyDqRr}C96!3V^bOa1;7*bo>?I({s`^HdryjR)gq$rw5?oVA$m zLSyQA^5<_^3AUEzw=r7AE!)MST#UrZldECA@v4lBsgNh((Y6|S%p_QPQr8RYgU4LLYa)$VY>_;F>!u4X1{szoF&iH zYgd8>pXYX+_Z8PA#d&$^XJxfn6SACp1h(?)R)W`PF~G)qbWMD(i2Rsea5Wxkpd1{!;`i5j6MD|(OMx1jwJ__x) zIG^3d=fP-H=J?ZhXIKb$P|nI#%2}$h6e-WS^jVu}{%6R8*XrhaE{ANcRdZm*8v|Kj z_p&^gVT%EwNfOogfAu1%_itj2LQFhtGqSlxbeaht1&EcJZleC$`zXePTUUZFhdMm! zuS@~cTT67_UW>_|AW!#OR@^rL<8!6FzRs(@ja}@0(X-GtymckO1oVCoi?dm+rL#^3a|$WI)fAF=6ki=3>Hg4tzzmfFZO^mgwj;M{2cElec#w#w*C z1-}NKzp3nyM>D^z+)&8*9i04epPT>loT_)M1mEy_>>{>+9Xt6(>bA`2YWA6Ii^{F3 zijjA&1Z+k3bw~TfeMmN^w(}?UbC^N;C*}Fs+_D=M9q^ld*Glpm<>lH!CiZ_)Iy7&> zQlTR9`nCuMgO=z!__y+Rl4qQIH}+My=6;d(&fBrio2?;yx!d4X`54BhLo31OOUDwl z21sguR5{rA5dGb4Ma*R~T&hCR|{rxL0-kz}| z9t#=CsLd1PZDb)-Ax#Ot-vPPtH+%4Mlzk5V?ISC}b=5p9va^xD@Ql{})Ze*&9a;m_ zGxnakdI<3;(&+@WKa;+cRxcrID~>#2#a+(>K@B6Coey4mJ9_MQlw$u%Y`B^$1hdzbxyLpD*Kb)^*<)!kA;_eIw zXP=^pWzUb2Z=QVTeZIJDjXdalg3UfNt9945bL1cU%axKil~u6O1a?m41B=J%R6QR3 zmB8x3h7wo~>>yZi&x-1~1#A%P^(uEyO?HrK_D5t`97qr8v!o9y9j6a_?0ht^>x09j zH~tm6Q|VEE!upX8^y57BRlJoS>?C=H$#a+Tn65MbA{r#rbvfI=AJ;t8a}(s}$Xhpu zzeIW2^B4Ce7EiuM-yg`(MO_2o6NGfz6H=UC$DCRDkf&RGKWhOW0k?QrlGM*S!A`_5 z`S<(4R>3R|Kaw}z^L52nbMbG`Z9w-5^2FYaH}T)6B~0dEsZKTj>>T;B_pAgvl#hBg zxzn6JdmW;B7al!6^FWfyvH@)iw6;H?q%3a?%cA$l)~7hfj&(uqb*cWEz(&B{F5u?U z`Xh|O*I7$u&t2T#?H(&R=_B7f`7ExF`ojs&%vigoh&AMIl=OAdEnbLp8bADQpVE($ zp1pU)?d3N)5{H(|F5eDwq~}S0612KxC#-_CfffD6e$2gqEy4m{8B;_9zhrLP6H^tr z`&NP*7;9a-peN%#9R>_75yr<-Ij~iaz2xnfkMypvgJA7o#n`X`uraVUu{g55)*V5_g_-H(59(+67u@(m2mHs%2y9I z52kxv`acIY7sDFCTEJ$(_K3*zo%vmn>qC`pcO$)tB<1gi_AIpV@n;z94A?jQJD2xA z$`6njDA1-QM}aUG&@&d`*ZVh-%xa7~19k-LH21EI*dyMDl{(;5Ik97{nd{v>B{plr zpTE-Tb%CwH=^4#WX1=ko5`0MfxP-NVO@Y~3k;l5hy1ug#yh}t}q8k941$&JlZf#{m z{J!h^ZZu}l?uRPHdHQNNFc~2fSMEUvX#P zzND0w{A^CA?#{fuc&jreLzZuiv$SU!onCSKmC;M`DVH!`!>IN%d+(au@&Zc7)PZ>(I6R z6MkvY73XO1+ei1-5IbW zV77J(|5pCagLQx3$JAI12K&8k*SG68`AjqwS}E&AKFb#vHE*8G@3%ct^YA)*79THsb*V1b zz^ZiC-jtN59>`)sUulZ_9eKSNprX*Y?OOW1j^A+Vy} zm3-Ge6L|r9iLb->nH79+VsRZk7ig5SR*S7OE`Ic^4912cQa&FP&Wlcs*tN&3#oq?l!uge8MgaZH>mG{(Cw^*FXR{x^)W)2v zsTmBgGVRQfTjey5_;)^=`SpMP|HEJPaT5L~;BWPY?Mwm9wWYKL(#~8UZJo6G|5^zo z>)Nlvd_Bxpy^Z-OY5RTJL7%2^vyrr6(w^$mr1*sA!6(3NyoH}m3l!c7exeM0KlmK@ z(>x!YQlPSofUkki36I*N{5+jts)@1<;`W{|z^ga#^HI|Sx7wTNIqRfNkai;M-xu+9 z&TpZ5%CtNEq7h!(e}Q<-Ee`~D$Q~}4bJ^}s*TI>=s1Nl*JCJ@Lki6;=b`Wd`%)UXw zZ=f9&VLvq=Lp1-_f_XCD@IWU0#4RJ^=JHxh3wg28TvmJTIp{{9i$AyOIgVdXnAh}>p4(B(tmo#Sn@c>m1#I>qJhu-_L89 zuj=)g8M5>ux3&9W>wn@`nPdJDdxm7Y4(uq{#p+UzQvMd7zgQlH+7wWQ*A$?ZQHfsVwuP zZ6mE%7GY~(jbPQ{%OxGT0oDMf=Q=y=B{p72?zTRc^$XIvv{u8}5~GUe596J33e=63 zesQGer+0NaH%RI;K)ZqV-0eIg`!eaDZ86V@`on!S7pS0{u{5PkzJvC)dbZvA7-bZVqI#9iw2b%{r)Hk!Z&z(x|-2-q-K{23EqLkVmO>|g?$0UJzUi(mr@>?~M6 zSp0n}ehK?DLAMpG7wq9`A1>8ZBUn!&?{={61lA7LmB4zyIuqC+SVsaI1#3@WlVEKL z>;zbA0-FVENni!Ad;(hs+n&HGn~=u@RtMIUz_x+q5?CH=TLS9OR-3?9!KxG3Ij}0QxU5w@AN`r2s|Tw{U^%e!4=^#_H z0;_!i`Y(YsfQ=`xX0Rg(tPN}|fpvq8Ca?jpkpwmZHk`mFz=jgo6xhK8HUl;YR+MLr zZ;N09U{^_j*;vZT6sxj1ex4&u_45{QW5#2f6vO$U(t)HROP_Zm{iOHqJsLx&g3Gu%~dZOV|k50GN%59-9CgOVCY$9Zz60V6$LP z7c(yLTLfE+VXBj}U=_6w1pRt%SAve)^+NRVBOeG}M3Sp7^WS6t-H5^DTtl%X zXm|b}dAiB-VdY`Y65l(Z@J?@Mg=-jn(9c63FXs^0*#ve3tm;vvb#@G_0qhxi7MI@f z6j(li&4YC%ur;v37{6}vZh##Dd!lR&D|=)wDulIU0}$SN{N0hUL5PNo4Ywd~3l91i zQjHarjBX8VFhwnJq1EA6Pbl4S{V>U`N0@6WB4ZfdqC6Y%GDzgB?#`Yhbep zYy)g9fmQz+`r(SwGH1c+6Ic^ia{_Ax>quZ-VEqZKA8a&%4TBv^VB=sj3G6u7Y66=E zJD^ZU~OR239K8ekiZ7OHWJtf z*w&|(mU#j!m%ygL+7j3dSZ@Mb1RG9ZXTc^DSjCI5M-tdpu*C${2zD-kZ3nAuC@ph4 z*tP`L1J;_r2Elp~*eKXg0-FSzNMI+xPA0Hfu!RIx09#LB>tNMSD=l+n9(z53)q%An zux()72`mqG5Ui-Hq!&BD#=$He%4~&KnC*eOH$Tw;=_g4q&d14OKI&2MDezMQSSRv( zZCQ`>=TB<=;*Nxm+WXgL|3B8w2RyE$I{VVDVgwRG6jM}c=mMsQB8n&~Rl(4;E!%5b zu{Vj5C?G%yA}B-w0R{w!pjN_lK~4;)Ac_G8)Z(_H2x`EzrU+tE0}hDR1w)Orl3g%h zz!aAnYPjF;Ju~;uUag$8`Sy8a@4j>9+_^Jn&YU@OW`?|Nzdax1l$TGAzf)j&u>TNX z<&Zmvg*3P34$!}v=1;C=i8Nf*l77+qxBO7uYedn|wWZ|B9^%*`?CNf5yf{M_rCQ2gy_O zw0XB**|%kDc=|Sn(u?nLXwF0Pd|w|)yH*R>&r3EYd1Mn-ZA8ES-n@%B!w))|(TNz8 zo4+-r6-f)v?Md1tW=q%_fyHafE6Y~V3U&!sWK_fn(vY8RglAmh8Gp-nXLr(MS|iG5 z-s3DtdJXo7Xs4kadB(guSCcyMYbwybI!S7F&`D^Iw#^3|CuFjbEPK3;<;#vgeJ_RN zbr3_$t|&fXv)#+Fwgda&ne)NJeZ5xZ<=5v&stKO0P!ImxltFlPwtKsSwX6)@X1$;M zV&kM8AkA!Wu5`YcmdJxofgb~ZRMf5(qm8X%XE0&OC*_4$a{S{-`H^g#g~!yh{Cp_3 z)lmpUlE}WtjMXZ26I=H9YO=d#6XO|qLYrG{&{w3g9_;p5078+Jv~pc8zP-A+il=<-`PV;ms8A@O-)=`&cbI`e&w>1?epdco}{V> z+1JdcathWX$HQ9rRcou>4x`b#*e5ZmYHzi-mM#OQm5byFX4wzbZ$ zP?JGXI!;bo3h?hJm*+g#DX^qGcY&P+OUiRUSk0#S#2LKY8LUaNIt=|k$1}#EDME8f z4>TQL)VRuC6h|bQ8EEP^U%p?QfTkUq%k_&qye>gkwFN(~umAG#LR->fEyD3Uhte{k zKA7Li_y!M~<05jqwe&}vCSy(Q4vS1?Ed;uL=vEj0|Mx+?$5D9i*)|{iknf2;67@3z zf8rO}yj-@$qjnqi)Ak3(qZ1yb2gqX|JjOd8SUFC>qy5VNI}h1vP1~6t!sAC?HcV%h z$9fMUAY~nsW!Q0bRt%Yh-R1O8Km5ja{@=@_HkyV1LV=x ziM(C)z{)WMkG88H7>^_HC_O+PRaYW!*F3Otbikv%>w)pu1CKKgkjHU&?7Q}Xm7{S7 z{+R0?7>_P^oPB^iCgCx0{mSLIKRWFcJo4Qu^SD3#CASm*>;vS{2am}c9#}aJ!lUDP zEAzNN^>Gd!=N|wM>BZI}{)p!%ZJ=c~iybgurWj2Zr7aex7f0aN(}PV>VGP!!>WfL8 z)=_!vItq{G7d$W?wO8Tafk$VBa_Go5g|wyzQC0|?O@;j>-P#F{su!_FvI39Cmhmvd zFqh=f3Xgs8SkpTn-LYD3lMH5`As&Q9gl4bW=&GW%uD1StQ{pf9C%{LD~vmcuO5{=arH*St*ucm9<9og>QKX4q{ z!I#b_?*5Kw*suQIR zkkeZ(Dv+_5B{{q(fYj|_+64`$8p+F_VMiYZ(ZhlkWQR}$HAfb zpxg5p&uok0v2@s#j>(L5vpWm!BzaB@&qw!P7iv@@iwirT^Z=`>B$8(Xy|&g)}LP}zIQcVuKf_;o)gk9D(rSHNYs)+M*ULsGM}k13A_#1!eZIwH_L1k{pO?4a5ZEEGO6@m6+DX!WUu9-(`W6}~$Jc4_ zs&}E&gj-Che4?B(Nnne7qI#z}Xx2b;STrnk_?Qf9N6B1SoPr+npxp!Q*yR1A zJp^sjd+xgo>VqX{_d|>5FO#p#o=C7a)nzwJb<N~g!p>J1Xi?Kc*Z!-D87F_;M(4}9SV15@2J^(#rUc#M<1l? z(R^E|t&c$8cwj!-H|W=qST7u{A-E%ZeVI}!*gnnkRS$lhptA>$Qk=alC9LTGQ$*;F`251gU$6}zaYjdtH(fqc6@%s8*MGu@hfLp4kb z{Olv`?7{iquf>z<@cR?v^JDF9v<$kg8I1WP&!x(?alw;XAzF=6o6o?j^RMTF&-nIB z>RL^6d?SR5o~Ad>kmuyz&IkXb=d(ve$1)+~`1q|`o1UzF5#^s|-WAdmV>@y!X@^%x z%ae9#g|r^h@*kNGt_gXv4>q)0he#W%kfyO{g0y3#h5p>+JNk8jW#^@8xXh7vj=aNv z7sp)b?%13TD^t69JN$z9LvzrTtCvM?R+ij&(b&s)@zHs=|B&^$Fs&Kd7Sd)(TUD-0 zw3NfDwHI6zrDUud+NqCuf4|oGu8rS)7ikwst5h%hNL%;utni#CSIBdQJcUpH@1E0i6ZZc<-2Xh%-<{+s{o{P_4Zb_wA;ZVd zc~O8YE^0uLsM%OL4E??%^Fd#Eow?8jFHVT8(H?~M#Aogw?Fnd`K06EE;R`fG+j(=v5u^(4JMMgGYz%?Epw-*hrvj#p8amR+Jx zp1b&r!j zD=?0)w73H4g>P0I?%Kr;`!OPW3^;^sw zTVBD)|58KuiyL}5V}mVvny(GRuj)h`8v|ta{RH^Me~sg4gsZ-$!Ow#~SO6dC*;%l2 zV2>4mY>a9$z*o_q^7Q(y&j5etJ^eS!-@(S>_^beABty(rT1YV97^KrE*G?T(wXyv_ zIa;%Yjpy~=jQ;&Pb3he<_V8mFgHmK~wbB&I8964m*!4~2j!E&FhF56?UjFQX)>~4% zIxFx}eO!cB-#6mA7gqmL=Br>2;k!P?~5 zpY%uaU7uF|`oVUAz17!yQrDv;vu~5$j;zBicAn^d^2~iRo?#fpd_6qcmz&*4 z9syPD+)a=6N=Em{#?<@N^fTU_!dK$;*X~R<53AZP()B)TNk9DUSRU0D?O=z%o>f5) z#PLNwCa9SCXvLDD2W0Pz!Rz2W_D-bVLf=Z})sfA)zAoEGp)@R@_DnabUT4YMQ<@Jx zz;~w`F}a<8>@`l=L!AiR*Yhrrr+?AM@0m<8KKQlWZSF3*ye>RS38mFl>n+6ZEG66i z8fwa&VkTW(Bz+y}?^Ai;?dK#4JbY6)_B4|;1l=L%%=c?_iStJ|7|B`dPIjiCZQ>nm zpMl9+^p1W&;~h80q1t-KljOMo|L^&7_`9v>X1i;mcf=i8_Kvb&P)E%B=WG-7Mz6Usv~{ z@T>D56>cTo4&K{*e@N;%Z?m_$b5T%zxNzMBWrNL0$H;r~2lMW{ER)ALuE_M7{MyW% z%PJhhNaN)!dH0{24=(xV`Y|b`&$HcBN7-@G>ieDKuNt8L{AfOSi_f1N&*OgV$8(~Q z{s>0x%XN(PN9lzk{PzDCpW07S9+!byY+Sk|9*JQo%jA&s~2ny-%rEyrZSWE zUeVYgop6GD-9KT!d3jry?8{MuaTX6Y)T8p$-iE*PKV#d;`;Ew>ShZI37xNG|Imdsl zcU?!G+)w9&U+`Uh-Pc{}{G`pg+sN*Y>8bdxTg^wd2VN)O6^`wa_5EOTVDWh_cJER= zcFMxyIHfYVplllFPm=f0h56vK_hHxO<(5c~=xiQtuc-uUp4ZAzK2%FIE8lMAFT5Q8 z>7{s#(74e9Rt5HGzUw1w5Ud`o-VkTQjDgjHnZM6$m>bcl>+K%A1EjT(7T!HkSw5q2 zhGp;y;`Mx7GDE6j*h6MMGh|PL|Wbc{;+oO1`9_SI|B@e}kTH`;=lk z+WMW{8Rws0%)I?F&*!MsiqGFr_lAbV>Fnc{3Xm`oK?u&j_Fg`M70`iTzHa zx`~YR**<7{G7G^MM2jC@{tL!)d2I-(lZLj@|0Utq&3E5J+Gut+qSir{Ir5()|6R&& z<0|?6IS6+8uIs^@>oD28YYsmX-(3i>x!p95HNBGf+w4NHC_W~WofP3EZU(zqm*8nC zyT$Z(2eeH!3+`@?SbxX;RA+YT%t4SyQ88fZIV0p9Ag|r$RCb1lkHEB{-PP|jw7DzF z>sNj1sGbk5@A|azcM@zh*o2=4CC57SS@yBna^HgT*1rn>%7e@KaS-|KSUP{J>7;$JNcUn zQOx=>KLH(ZbQS6>b$D$Cxhxx6X|x{rO{siq7J@q8m%YxeRCl(0hP9iDuba7*`?@x8 zU)OfKw`-q7K)Rylwaou=3&9N$e~#L@LuVQ$@2#-=OW~h2Icg_Q-`a)XVdR&rpr+8x z&PUWmS~qEc7XqJ`H9u8#Yhe_|R3Ex3FU7=K1GHf6{L+xcIa%J-fYH1lIqDGF8ui z(t@)$qx6SG=`EyR)4ULTSM3_5&qwKaZI^l{Ql zEer1MtS~+E<*5AAq)$9`A#qN;-fwr5ew_5|@2;GFj`UZN-ceS*XGhPke|@IvT~AwZ zHevXD4)qM{r-k$nv@QezuOGdC=4a9KJ4wI&=?lTXmZg6wN*^Ho>A$z&?%9j@|60U< zob;AwEI6M^l>YQ6eVX*mZ3}L{NRtIf3Fqa)(iP;kgUJ8_UY~swlmM^mmiqTb6!(l-^1DH!hPtK>DNpXd!rhS^le|{NtoweVO!W z()W_C@idaZH(PdVpW~!|g7hns>6wm*|2fi^NZ*)De?y$VemGNgMSj7ZX&%;JX50v* zPg_VIAwBekN=N0vhQXc_@w9UUux{ZZ&I4=Zul9E8 z1ME$FFRzcCkqt@A0)~A< zu!CSpKm9SVDX`FgqOzO3tvN zWoEDL3L2N4~2Y7PJLhERaE^g5Mg1N%oy!<_QvADc}RZi)}#y>&dT(b~d7qt`q z`|w=!e~sG1<~lj(^U$yBT5xy!m|j$>$It$i#wc!y;kaYOn_`6uOLEmT#(4L9Y_+J| zjKMxG0^OwZqI)x+OqCE_#L9Q`Hj8^Bl#n1UEuQD#*AKs%7c2y?;kz6E5zSY*7zQ~{ z)E?u|^g@%Y`vYJ-U|~JW<~Rh_4Yn=f6~@H75m7crp0rcYjX-yO4L@v*k9Cgr7X3rg zb+u8>lGu|a=fFC$<=%ok+_;dwx6_tnm+tp zzODS7OnQ90#hU2Lor#P&@=cPj>*j^v&3t$D#gNa_G|^VsR9{D+nSmx*Uvps7V9EMA z19lKh@8fud_4P9AB&sj@cj|GX&O-N5-{#BK{dnQ!*NAVhbM_15ZR=kM-Wk1TT-V&C zlCGy>bwmHP4THT6y*yXt+C%<{m&HDq^7ZlF%zq>shZXHNCGzLUe~kPW1}(k0#Ggu$kP61_pS{z;)L8wGR3d65v^Y)Nuggk%g z>ofUI^2|A@ad(~Wfwtxq3xUp6aQ8}B{n>s6b_99a?dD%S1nt2=Ulto@-Ra+hWSt}J z6lq`Z&rHTz#_=7QsZ`G`$R94h9lhMCfkK^PY?25^%-&_Ul}9u@PyMlD5B{T9Ed-N% zcXgB5@emG=-bw&x?H2s=cp0Tr2B4dP?xUikKQ8l&Vb^m{g><32LlzoTh#fLmrU~(# zoBYGC@zt@c3!4M02WwQH=OgS4Snca#dr|dt5v&I6(@{Oe`VGIYzmGAD+K=A2<9^i> zW1ntyk8)97^{;_HL;i*qqB}?SW;k!8d_A+6t@3K0=64OT&E_iy$=mgMKQ3FF%dB8o z$~>QEI9Mr#mB3Dcg>xmf+Xb+bU^Y**Hf9F}xcFi~8hxny zq?^}*>G|)B`U+v{$r#BkOg```Oec|MX<1L^e(etonX)AyOURUep7*;r$`$l?P_1{J6)_|Yr^CfXD3ULcr3L zmsR49_G<6JI57t39J2-G!p|NO6ZBBBJ}t&VWjO?&i*H#7zQcFPygw(6zO}nX+Xwx1 zKHKUDIPl-M*Y$*7on3kn9#gv)f~zDz@VHZFoG**xG#hdoQ^@RlhzF=pIa*e-kNSM) z9q9MBv9=_{bdHbx8O(ep>htuuR+5LH?Hl*BJm2r>vooD`B2L=J8CzrP&BmA}Pvc(i zU$yr({b}!Q@gNpuk=|%!X0xsJom2V9|FK9O%!d>Em123=&eHZu@pQ&e{bJpntjFHD z;P#nOo@HaLZ_hk>UJ`*O<$+GCuOa_1`3K2=Bj26uY6VEMCby2VpY&PM$2FE&8_~B` z@;Mb1D_5a~;I@|RXW>;dk+i>UJV5p`E|LkgZvB5B`V6|qkVhY3Yr*=#Y+XUW`D+I| z19rXYlD$~E9gMjx!QPlbgrE{qVKz`NbZg$V5R5>kIE&qqvr%NeRn8MPoD{fOLSxoA zw1d!oUbI%9xSRam9KROJR^0OCMaj}p^3}eZxwOxh^yNwO6SR^PC3~lfaunw?M5%JMDbP8-1>{SBN&)V#IB=*&2%rrl3)-Cf+ z_L|;-yu4>2IGrW$q>i3bM!eF1xx9UI+KbdRxWOdkljg08fr#`@r^tCEH*M zY!WQlR)@hRz>>bJ<6!$z{7PWsiM)M0_X5}+u=kYf^3?p<#)S?kZ1+ z7mwM|ih92uCPTCDFE8UD*b%VbBwZiTje#8l3&%BKlVC@|l76mfuoBpd)#v!M@;3{% z?!ZF%UDFm5@LC$!`D!=Ty)^ty^6Vjxt+QC$G7jC5Ez^Ues|xg-+uSIW9LoH@ zn)V6g{Vseu@QeDY_Y-yE8em2e_c?E`50EGS!MHv&Mvs841ACk2#FvkrbURf8U|;HyQI~W8SswWq)mT zrB;WJWV-#&(SINEelOf7nU`W7gBQU&rA&9QNXe=9^9*JiGnLA_)kU4rn#tt`)3=x4U-j4MW|h_MGPF6THtpaYjIMR=2m6w3{q&yK9D7w+q{{esBqz){iX& zvr$`FKQMVvHQX1z-%rC?{Uq=u;~YdAY+8%mA+9QOrcxuQ|JMEm@(1rh zzNgb)_bdcoR=+VjKlClUJ~H$1g+79s4K2Jn+fcr>p^B;X zBVd>AC8oy9sBb?8w`ly!_oXCM71&DNBjlZ#^J9Oq9da41ggB?pN@%csJ+LnGpyOqdfwL-f>%WPF`j?KvBF+Y7qfp*xr=M_O@(Ho zEYe*gJmb>8;P>^i6y7VMMWmf|nhtHOV<#GuBDT8V3S^Tcg=7~RlMSt^F|^nntQwP# z!)s~lz0M|->k3SL?hJVQiSjnP2-cRu>fgtB02a2{TJq+=TEMJdSRJ!yfoF3o|56&W zFZ7H8bi1Gn+g9z<12zbD1K+D|h+>&h;tD=?yXQC5T^BZwwdp?c>?h9}FAvGHZtyN> z|6Q3~rSbGAdG>rATO{g7HjY)Y6Sg&sWV3ItJf32uxjiAP-_LmZt%cy*kxU{&mFJxt zzf+yPt#ZQ~KePYgSNOJ%OHp0$5k3q)0!FprC&9+R zuH}0|NAqB`iPy?obh)E9%=Ena1Lza-gmtHS$bn6Rtym8>zIYwbo9&ksd7w!odrwIeGY=vd^dha(H#M+0t@rzz~;a%k@wH|?tCh$YnBvz z#pZ!8K+{jY@nw1~>4z&Yi&?+i3y1P8!lV5z#+$PX!IbAw!9H-7R+(+lQAbFFmIk7k ziw%bG)BB9Wv+?`o^>YBMK7}0us|5?&TX~Ox)qsU{Azgn8tP1QADx<}EGro>yuSDeU zipB>l7PWKj2U$OZ_DvPu$9ylE6}&Aq5V78SygX{%d_!IEYCeZ=5x(xZ-5Ogu>$>?@ z7$22+7`k5QlKp%iSWgO@0_z4#zVBhMF0k-@bMQM3Rs?%1-(A}?2WGUO&J}iH^OW<@ z9D$}nolHe_00=kpX{jT1FtJz00H(R}_O=n0uN7}6_lZ{7+lI{!O41ZQ%{7Bzn{p}RA ztv^`^{y=Vi7m4@cyiR)IZZ}`sp^?|~TJK`kAXl5UP7!}Y{>Ldl zA7LF}XH!@=Sj~Ty(+z;-z>;e^BVg+in8t+(ux_x>9}+%i8oUUel!IBYPOxz8Kx6g^ zumaeaGFlzohy-vifE%=hTDdPlHg(083=k~iBYOmF|tN9|DR%nip z&uFl-J&m1uA(|Fwx}a(PuZ7?Y-xD&52I2L*R9Qe5$?}7bL4Ou{JJ*Z$8qK`SYJ<5# zRi5-I(rbUV5FF#X<|dWbjWv=pIo1p_xoSdRR=+t5j|q4@Lp^i)@xkYZamGty^&_*dLe_sHb*-}5ygcRN{*Ti zG9LU-+y{lVfSm`kJs4P9CYzG#U1C&zyS;H|&(@!MCbowcuv zL4>_e3KSB}KJkO*7QValN0hj!?#29bH;~%$5H#(-!ah*l#5zzhH7||?j3616uLSM7 zs#2s&)Mqa!KiGD@yZl60PypF#jRYMJkQU2s7%StWFc6fDwt3J^uVmy(h706dTV0A` zZ0IrY+-frf>7;(rJ4m1ByPi3kDU!Zj8wvThmw$^^@B5&;1l?xQ@zFa>fwgB!LD+v) z2ZzNE%;dxBz{_)Mc=I3yWo*wudj{G)H6^!i!S&fYc;I?Ju`-(4zrlZZ#mY3T@M(c2 zzp4}*@iLk85y(7X0F95Zp#D|PUh*8TEd{pOsJxuoW$!8xUz*-?9NN~0l-&I<{8n2X z0P6v>_+=}5yjFdLv|iGZbu|aJAM8r<>Lb2qz)pe{4RP2-u+?>?$bJxA{oi7LrLY`W zJy^ZZTj2jTuv)MOsUBjVi_N!E^I}_(M8j9;oE>#JvX8*)czwy)O4}qCl8E(n3@{rc z@16Wj>3I*O{OYGXFRB0VMfo#vkhik^WE|GA2!uD26*uQM$JmsNUl6|rWJmmBUyt*Z z$c5vU4a~Yz3*m0GwrH8oRK4|C_qsR@O`a4;3JbM!fwZ*`D+RCQdxEF7+q2P4TyP&@ z2dSQSK|2I(at&k;*ch1ll0K^E{b2jRj%E2lIsMtOsd=s6mzK}|T+1}e=N?<_9GbK6 zTK$Mp@Z0{Ky`Lq;%j;7v9g$;x`O?mMt(CMV`~J49-Fey3RUBAIB%#)qlf#~31jWAu zk2SwR9rE4joy_NDSEwB>kv2zKyVCdwYy3O(PYPQL*8J#_vm-rSJ6Kl=>jWDC+aYFr zy7=n_I|9a%o86`E&#+;|WN*!tk&ivx%VFz?%bSq+$fMQa#tG+xJPhBO$CO+Q1b4LG z!TH8vOiJ7*GFVb&F>IV%$l|mgXie5W%ATM8as|$)NcT;x!{{>nMg~4I^j;8Qf%YGXSpxk3(Pi_N**}o>wumdj(cjuEX$}dO|7q z&->=3bte3Q6^iBk6E!o~+rLe_sc$65)0|FLmNsB4A?ETPelQ*3$A-E|NY{~X@JXeh zK?ZqTH*ue$C8K?_gYp1ZP=iD|+kymv$jgirx6^ic3O?JHsG_$m3$(H6^aRB@N!iXk zr4%eieKh5}jLW7F0SwLxWm{iIaA$>jqs&i}vRPg-{HNFnI%{cjdUeJ1ufdODpYOak zIvYwdHU`%GH2V2!ex$~eI6mIwqJ!-nI!CWUp*GuD1at7J-&l(FsQ58jP7r24UJs+$ zr$a5zBlVH4sQ)|Rjc1l0j~VHzo)%AOUw2-OINNVEl=9h_^yxMsR-5s z_V(zVQoh(&Uu;vD(+_FO<;!9lO<(MX*UXirptgbx$8zDvnZfK1b&2J?Hd{RAS$OR# zmYhv)WBxY9Bx-!d!1i+CeL<@avA%OvDd>ovYwv&zCD$~)p5h%U+c%r*`l*jzc&+Iw zMQd<=45N*czBY=1-5~{#9K$x&W!LjgX&4>;yk(%;<2cWnyOy?6-SZJv0y}vZl>Y?dLl0x40#RZen37>@qiqfQGVw1(A3upays{Kr zu@bLj--6c{EAn#X8id!W*Oh_`EA`X3T&C-!fGf$g?BXNv+BaMZS|VO?45RfAE{MmVRR6Vk zLgoFc9d=gQL3s83X({-m=T+`+E)x3}`;-+Jp`qlIp1&uay8xL^z5sp}{K*2)^P?GN z*L==LvvI`!^{;U*yo$u-s$+E&@lsMOX zc!Fo-2&WaKKlhP$;H{;AC7Wb_isd$L1M_)S9t)klbqZdyr zQ@tI7-|Bb6FOoI$7nz-H<%`Fi&AL?a_KN*#OI+*3QC0IF= zy*1k~i3lBFtK>mKs%A1Tm!^9UPk=CG)Ty(nyhA+W==(}RQ&gXo{99hv6|*m@+;uma z&2to9lOI54;4AxSZ-%k0{I0%MO{>e6Vkn60ld6A2-pQNSce8nJ#6sybzH3O!9U#ru zY0}>jdYYKkZm0{F+xfAR_fsF}Chyw2N-qAWavvC}&U`;rD0gP+1bO#-uoQGh4kP=* z%Ce2^ySZXXLVYyAb7uagTptbb{4wx@;Q#JrVVS-_cA2%}$ISOOv~S=?clZNsK%_uf z!{Ya#7>XBUR_;6*>|A1sELRASbA_l(%{;s6GuX=?DFvtX-E^Vz+iB)ldzB7TvL-cK zq6OMHXlq5wrOr+l{ENp_@w#ay(;-XB?g> z1-tmJ*p^XS$iRr-hQl2w$KNq%R)4JI;(rq~w-D>1H;^rK4w?~Y^j#nO|DT9Q2Fpl3 z_^3`+gAIMW6!Z!}cD>v?{}AqS=ge`md1$AhJr~hNcIENNuB5N2od=*D{QFYy6W^bb z^WT);Oe4f(MPXu&K_o~8c}M*IsuJ$>%~_s(;SfF>FJsAf;$hjRpkU&_iVbzy1_6kR zd)aWA*7|naXX!7WD!ILxRzJk4hkK-nRrPr`XdTCYH=E!fbudWYPV(-JbnA+JO|ca# zOqyx?=dqdpMQrBJyt3gUyZlG+f0U|k2SoXuuYMC>HUYef|6eMqt3B`%{@($h-#QZ@ zb2neM1Ki60>jBh`eAe-|W)}a`5$06By}T{3EwbI2|FU22^R5H(9! zQt*3X$Vb>9*mw#X13R3;Cc)06uxYTye~S4@R%gN1fz|jjjw_~jclIjgyMGqdKEAdb zwCAABeYO-_;=7;UzMcMU`((oPhsMt_9$bb-y1fmWle742{WFti>uz`F2e)QEORdmj zBKwAs+TLIMKUZ?=Q1H?_jDag&zT_2atW;O7F*TJw4AM`%99cQ?1OF*-iqG`6qRUkUlH&@HKZy>~yn`o4hAT)g-Q z8wTqIt2e}9`@lM%d#^iB#?wuK6;gQ*gLQy~>%QW594w#0N?_|!c`tyqr?A?)@gJn} zt^sRJ(Y1oLq_7UK<`mWqwl>9Y04xWluCI^EJOZ{Rkyr9C0oDZeCnCaUqSesNby%l( zPH^I|ti#d?-_=I5&<;cU1}}?Aotm0sunk+jn#ye?o3#EYiVg`t*yg>p7%UIuh@Zv;WC+ggm!Kc44d^V>^4hJ5#r~ zg2~QKIn~W6c$JPb_piV!RX4J02otGLH)wvnOY;|qkNrw1I^(m<7L=FNjT7po_Q~^a z4|!U@itpIB%}R5rybkeA&!ylbSvUZX&bj-R1(oqQv@_7g=Y(5*?`+5^9MrjS897jp z-la>Ps(X;XuO-(q;`+9IjW%zvIW$MvR<<-XI7)sx;njMg6wHP3Yt?@H;WzWGQgCyH_FHBzU`_v9#RlxCQ`yeK>%^&2@RIu;cjb4;ZmS$4siP`P zw%Y$0dt$K^Y`t%rS^O%?7Cl8}8-v%y|6m>F{`6sYr^fPHvtH+P$_eMX5&ObeI7$xk#xG)@oGk_KRbHD9pswU;lZK*CwgI<6Q~SM=+uxny zujNyx3Oedu5q)=lv;p#skngN`6aV1X!it*nvs~c!5PN@aQ8%Dg=p9U4){y-$yw-ld z6x<|Uwr;2>w?f@jv{w%3BCEsOjoV^(< zTlGcdZdN#gkBZ);(awK&a&izJ6X)W#ckQjU(hXJ)cb!*<#kHJ(w)Tf57e9xbgyob@ zIZxUe(neO&QAz(2eiCG?LL;~{4%U5{@$IL+4a(jtJZYNOVi&ynL_f3>_k&jLG6C&L zXp`-75bQ(>I|4SB!sft^C$J{?odG)r_Bg(~wn0kP-)(c5s^j!`(*E7+o;x%=l<)1I zt7f=Pt)iMvSV!KG|MKw{FN$?V7x-atlRZ6?kLq9m{5<#;0oHGrU-@$p@bmh9-P_d2b)m;P}XUh7DoU4a)~3I9Isj;MZU&p`WZ%HaBdi~rH)1(kab={5hIEVoNn zxiz*QBz-OE<^zb!&6Tnx4i!*ovqAW=iAIL zH3ZFt%g{*A?uTaN=OuT4W~^sT28eo4v|l_!XP%)?j=vM+tNleOxF`VSGRl-VpZSV= zJhM~D!9{4!Kr<J!7~br?%AmaToYS@YTN0CH-A~Z&`2Vw3}5&^GC|9zC1(TQ@<*?{o}e< z&nq|SjpL-X2BqLzeAlPIUkU6I*wgNhO+PqP(SnkWSDm%YVJ~DBgO{k>ah=HzAJ-Y> zR9U*AU0bslJcaN22pa&)gZ-LpCO&!oM!-627lXH`Zt+hh?P}&akxt0IusZy~aRHoT z=fjUA=SSf&`H;oLxv1z0+XMZYuqCYzor7)`x<~oCNcw=ba&m{(hhiU4hsERNzJ`D6 zp^HxDd6wF*4Xn0dF_`AN^jLCD6T37#JLrybrRnNmki5g>tyf+?s+TdaA+T^>sCJ$N z+Xbe2S6z>COhYYSMSqC2J)}KYX?!GW$H2zGasn9hwDVbcOW@<+Thp@JoBeS-_HHm+ zto~n+*T%)fnL$O>qwe*-DW-MzYqvw&^=pgKoi)BLtzERJ{NZF(vaZ}pSq8|Hd&FY2 zXEfQ?TN-o?WnBAYF(1?c^3*?aF?ge7Ce{IF%jq!k%m!3C$j-0GveWj;yz3(2|5)49I2hiC74+@iZD&C2P|PRVEfCMqT! zQTqQ7v`vp+40cK&sFMo%W28F!U7D=SF^*Gn7qgl&uN09i<5WW#wu!rq$^f2XV^qtD zOx2H{yclec`akC{XE#LWD|eFq=%*}3dvDzN$|H7uu=?o$>7%6oK_rXh-!z)dJ~`tK zA@Y+hA0$1TzS&@bS%2K+K~U7EZOS6jr5JAhxheZ{((5Xi}Y^N zEe1EtpNY?*-bMObNH3PPPyBupq<@0+d@}uYG5V3(`sM(r;l5;_!$n{9KXWu z_Awt8XGOASu9Dx0tkU%d;B{&9V(@Uj>tp&KtaeK|b_{HF0+YTy1(pN5MY=DO*Jd9d z%-+f|j-eNbV_}QvHEz%m@5Yn#jctq3d|udEux_wN^Iacd?O=UizhQ`*19pN9g54;L zdSh?M^%}H9-%r|6(i%Lyuwk&-1g3FsAJ`GFuYzdo%OToWb3RQ@qF-+&2(OcpVPq^_;)G zp2O2_SHQ(61lK^Y0fG&91UEpm$rEjYXcLEYYsIdUb-10Z$8Bd>uYh5(U724(=Ix&Q zPBITvl2FslbCi4fn#JJpQC(=Zw@D{)+WF4sNk2lm-P3Nm&1B8i^YRsPC0uqH6$k+MIc_#P%_W!4Ar!-GI5K_2K93UxNH#>+AIO|HE+_<_od?W(&D z&9TH!wfPk3?bnsd(nnPaD|51Rap^>;yjmp6n~VVEe&BTV2oD1vZ($B*S~aCcx4$SuLbZ zk*4SUDAEr$zqt}Y(Ecv}V$K09{wJXC?=COLS+Kqob_uK(%=U+pPk9^XnJ<7P%exkA z4_H{&DsMa31XzymZjbLyQ@CdTkTyx$2A{_MRT^}M$)NJ?BK;WY&x!I5SYADUA8F@E zdvHdHu76K~oqe8vmW?aU*U(G)tmsLr6FvI?DzAU}xU78UOhw(!Q4*zadjVJVB@ap} zz;^8d@6)pwys3iEFkXkSeJIa1?BC_Q51adM zVfvDNciMJGbG!DLA^&h+EVrufqhN){uiSsmklsz6P%hiaa}lf$?CE|k?B@_x4$eMu zF?vK`l=Wf1Pphqje7!U-gW9bC)(4i9n;x+9FOHupxH`y` z)!thEJ_o^Sz``<$#}Tk9Ftw-S@hamXnLSC`TGFnq<%ijz@w(o!wa;Gd^Qdg|fKF5AuicBVK>R=O@`2V74YB+whAO>xnk)fK?~FW?sX*(aXV|+LM$# zH^r}ivb^{=OuEw+rYUgA<^+72U(Y;R0&Q)F>@VZv%fveBiOLGcJfdx|I0L`_+v!V@ zd}9CZ&Tez(pAf8i6{U$?FSZsYy|U&E@zsBfKZx%thwpX%*cYI@6J z(8qVzFLC(PqC5CGNZJ5tulH%bAJBtz`il>Wu)DmS=t}OV$a9!H*C-F4B7cWf-rbCQ zdUyI$@(x6++jvfc3hJ#`T+H5s;jkw;ss9f1F?ha$?}>A(=}VlUwZ(Nz^lnFdUMRK@ zq#fkDNWPa=$oJ;T*(~2M`C9*!aaH-K^W-_kek^Rw^pp=ldfp-O4UzA46`mK~v_d&` z{Jf?aHdH9zIlbTiA>Z2XqL26d@1NI0z9RW5)eAe{rG+S4;`mj{C|R5!-yZV)mXy88 z;$?LAY&8nBg6<}YLb6zbSI^tMpO!NonUgQDwsW^+@e*nIcPzTS`|(@=NoP3lIuaR) zoaoX`t!J@^$@9Ia&&6enZ6V*MQ7uQYWGa*{nqQ2-uXAECcoMwzk-SfU^@G(L;`={X zUkW<{)(iGH(Q!(J^3H(`gXz0ItNA+vHUt*hufkO~m%vBBpCG{YUb8pUr!{>K`reE><)yBf7^+IulU&^jmq(E@%(G z&)e+OUveD);Uhyl80ips)xkmXOnhL`-5+cGBUje*sAOLYo9f1)Jpt|HU9>lO@1y^) z_p@>|F?-LtS2YY>&DvJ6VQ4*O{aYl-%QtqiH~9rhS$@cd#WAU_`+mT9J{|k()DA;n zZD6)GXz|)_RHSyNCP|XnNz!+b{kPcQKZUVZ-8;5Bd#%P^R%M$wvW8k7u$a$7&>n;KqmiA7&6_;GIkv0h2;5k) za_Eez=c*s!&-~nC@Y+b9r}oepFMq~DZ|2AFTJ9S~`DkqDgjet97lUU-^W>BbWo>3- zgYCh6rR-K$NwjNJNm3IgOZ(whJjObgmjQpSyV;)-Qr*KGYl9oix}H#WOO*{jpbW*aPTk-P(6T?}sbWlrAlV!ko0 zJbp#}6SFFzLsj;1^3HsX^-viVgZVb(nzV77mIe^O2Ls~0o=OtTw zgbjk#e=8n$tp9^Gfl2S_qqV|Gu(e<|{#t)PE^Yq*x-cZ($~OyL4|L%?dbjps;qUBV zux^D77^q1b@IO?|0_hwB1~4&g68bbaRgMHqy_M zZfD3*C+?1%d!zW0JT%?VocZ=*aK`tm%55nd;msA~aI@|C+z*d^3;4Y}kK{P1MUQVJ z#UBrm-gk~X!=-q9Nae}CtE|tsyG?5T6Z?H}G1?F9%WCs`)<+_HCZB!(70dgKiw7vc zW8%Au!5gA_X3uzB&)MgfO)=NoI6X|B()SjFc`xrtdqaMc_qz9Us&iu*{rr8)`n32#w@nYQzKC1fnG80cI!^il(l;yJ^cMQp z_w$=5v#ZGMnijdQkmdQSxqv-JzW1x`c(G{A&Sn1Hy(%XFF(-B3=>#05_pT_R(_-Zc z@L2uR%6+B*H3EVd zjhS=M_xx(n?dLPSiLQ_Pq3=UZdKofo+^+c<@)zK*kLrhFB=03d*|3$Z%z)$&1_F-D zpvXtvC4N;)kv~@L*$>tR7M`bm+4jua5tJEHA}%-l{YyizvDXW&6g!9ibl z%i0^8XLMDzi>zgqpqy-yml5)xs$B|RBqc$6EvpygB|1xr`E(0&$ zQZS=_LoZ*(FSeVtiC;%s@M@{GZuijUc7<5Js2+IRJmJ44*YKR4#Ov$=_S*Fi8k z+HYf>UBIEb?I+LLM=k~5@b#1$mogtuRxO5mjy(IxGxzID!6n~zqxe$?vmd4^8&N`q zx@l-;p_y)43cl#|M3S$@kXI%7qHWlumcuLSnvkhYKAFx5wGZHDW}3|OHplzQG%q)= z8T>ixKWmnPN0yIy^k=V&Xz$k|D@p5+fGmf=+$nD2<9YWZ@H+5YO98IHq`r^!8ocbx zUYI4a$}wKnapgOZuBrb8{-DPri^(?9*|NDJ-O6pHHbnz%BY*3lAAG`6S)6(iYyd1= zi%}o!1M3Gn%XimbZC_F+=Pt#uZRlIss{5dAS&N*A*7TRzYm`A}b@ygoLLIZJ>*|<; z7#sRw^YVt?Jmkm8J4fE1`MfL1zMc3j`#Cx5KzpgIjZ8SlpSTokQk|CTmhnipU>vKg z>!6)^(o*m~UtdZ4CA9S`oSAIn+YotIKY1w#eA}&5*7nf{ano-0_R8biX4~&@6kf-k zvJ}N*jq2VN22$BHCDP83c8l*riLspxA*x5~N}2u9j}7kp&r9^zr!GbDJ!WB= zj)ENnOYWCA33e1LX?vaX{E}GJFBz{>bgRJ*r?6%)l`oWQlYg)ou+XpAM45`7pX@sA z@fpqFxZ$hl2S}TPK3u~SHUg&i`9r?zBWwcfV&Ylidl2jbSdQ6c%YX-){qQ}jk#jCF{{w;Oa^6&Pte=&CvCQLxh&su+l zzxHWMF2-x1p|PJ*sLTcMDe&;!q@Q}g4uIXoclG7UW22VUHZ&AE8;Zq-?wt+2T@88k zR?2Z=&zOc^Rcm=0%z|Cw8JqMBJ}S!zuy*JkYly?nf^{VFs!lI~<-u~IOVnvAKbz>7 zqW@%+X17g*XQsZGItjNN>3B@@Gk20_jyzTtY(>?L>Z}jE_UUomh^6}GusT1u-SHgj zI`ePn{0Xn+HrJu>NVYSlRj-H0S0LXZF(P5Fd_`ujjk1rdmCYMc_jE=K!%cN)`&j#L zQP+%rZm{vZrYc)?7=DK%y-)Vty7PXtMu%2>o-7Ho$Mjb_c{-l46s%Vs{Fh~R>E{w< zXWd@sEgCbO7rOp#hLU?I8+Xo=RqZtfuRB)gMlP z^@F`s%#u1hM?9iedDi~W%|Q3No^BLBYgncx0>+P$7RvK3Xj;H#!L~|g^Ujyi*_a-T zneEG6Wkjeyxw@f!<1(9TySWCxS}YGgv2}_mo;&%>rC`76TIV!BmC=As+RRUuf2-EC zV^2i(55nT@eI{65gbH?t@HuE3*DVFl7a!OECC9et&PiXI+D zkJWY{iUg2s93o%sAH{7h>=;-LSaJ+F1y+^9&VyZgZuz)Slg(CL1Pk*@hMK@GfT_Q! zk9prCey@Sh6f$2?9=bI=V}s~!jC@7hS?%uA>?OUE^iUTKLbeO68|+HS5xjl9rq-=} z%u;XWNJT*+n!lM#)UR$Bq{i1b^fEiIP|-5&Y>YU|GuzfL1%2gqr`d`d{h1Z&6OA?5 zs^N~MWo!DXhZfQXNqaTlCI6M?(XYX_y66k+QVQcz@8zD)91A~r~Gr^ms0u9fL#O&J!8eQd&SxApy^eH`e5FXQ;mx9-O9!b4P zcDqC=R<@h#B#TqzxwvI1_;0>DeTHAhjqj&JeJ0+=p_?l#1;e5FhCU zBt!OF)hgt7>r&zlZ)P7T079c|?8=eeN&4eN%aEcKQprg>cprGT!*hOgw6reL4pvCh zSU5=9InsXHNava*3 zoxTp^_mV(<&J6|edtHRKuecO^NOcg)ihr+GIR?t=TXNXKL8K+}*qUXMe@?;MuG&P` z1zposOM%+RjWbNEaRy-0P_2?IHy0j;t`)l9Dc6JX8Xq0PpC7DySan)j1r_JcQ9lN+ z)z>T~_H*u_iikUH+-z;BK5-73ebBtq>%e5YSnPs5&*Ftx7tX%5x?xD`dRtliV?P<| ze3R8W_XH;d?^B^93{?UNr~pC1^vNZnqq}%tg6i z%gS?J<$2*!@HxsSxxYj4w|jN&qK{>?I^pQ8n#|tixL( zdVL>O*%4BeJqPRhdd7Fs-l*p&O*22c<(NYjfQtOJLUUaC{Tgq%o*v9@l|GCV^_Du; z9W>o={+cay+5N2f#(-Nh9fRk|o0ozg>A9E?2KF?OF|Im~iF&ykqb5n8 zAl=%+bS(vOV?M!rdWzHKlDVVMo`tqUysS)GTG?Q0Qzg>YysUh@ZHMe4cpLa{_;>gH z5*yU_15Nxef@Hfzy_!V{6nP2*mB*@;@|+~kQS!X|em+NXQ~xl=quVZT^UDrygRUF8Per_K zt<%O%w!L@}V8aW83KKn!gi}o<5~vkIXs%Xc=ixC1zhm(Gf#MRd- z3hch-N&V2(ykg1in=^UV0>S3GYpH}BeD;vuL3*V!l59SQX=nza`G^41gGgpFF51>M zqWS1c(Sy`n%B;eH-9`3`@Hzpn@5*riucZ9j*oa__uG-3mtnAJVTe3Q^CwKTG5}7Ec z2P)H#>Kny}C~2 zq(fi@Fs19Gesv7211!Gp5t%gKJsQ}n3r>%-KqAFPNM?4JhS9EN1jSPv`Tr@MiG(X$Ui5kzmOKU_l3o* zvPBpk*bIH^Be1{7`vT>)_N7j34=O85@zlZeWDm46(2j^Ur6;53FeytvM`fHO?*;OP zby2a5epx6|vXoJEdxE^}!{zmT7OV^GaViTRy~`!AL9kZ|NWM!kgBLg+V?^7$8hv^{ zX!ZOqXq(;?KTB9YSX%;H4K@r`1Pf&w$jUzfUI71f0eqDIAXpdJV+?VzM@PVV!Bk%= z|7gbTe^Gf)k~T)#fB7^YXRmm;Z>Qg_hQ+w<+n3z=(N+&OAH>(AdqJYkW4gK(+T+mv zQhZHD&HmnIG4cgRjRDS8eyr$65hKJb`9O5_tzGcg^XAwt_cnx{_w|Nm<^)9>G4$-v ziEHgOO}?3trQpdLv#p#MT9UnD_F%E7; za$re0-v`!`z?z_&0&53*isw7Ze&AZZOU`FW>m=>xKFzQ1Y0m%Mgh-gKJg4XFT?+O@ zw2_?O7}0L3;~;uxUgn|8HKFgw^L^#Hth_S`isXG)_|?XlK6o_WvE=S`qh7e<%*wC6 zFhW`hT!C`yrh>;8Nx zc!ly|`c}TP%-bk-%2Nd!#m6D;hga{rmx2LUx&B@*Z%0U|hFO1{1$WDGwj%?{#2$zVR{C`I@_Y{u_jq^%ET~=VVKL zaTvN1`6tTT-t6cdP9RaGY|j0Dvh|(ZA0}_dd%Qgv%cbSTgQ=&GcdPji&Okc^?I)u0 znE#ZWeVIRTr1Vt$FKYM3-^4%g7fZnhypJf7$JWd#XkD;7!H2|N`e$smwUq+-cD-*Y z_t6WZ8-EN8+f(h5@=!ZI_`eTW_ zEq}e_Vp~~bT4qOW!PEE1>hc=0t6U2WgQHjMt{KnnRacg5v^)m?|KBl3Q8|)wt>`%E zKE#MZ9O4HOzzG7feg?CauhdqOe<70Wy0`tLO9 zGap-W=Z<-77OeB*<+j!duzs-jL8FhxiL+oAz@Dy`v9fOq{Rt&kX;%2E9LcK*K(GA- z>)0xXoh>R~Gv&bERB7_S?a;J+(#IaL@7}LL<3HG~vrJ7Ev+r0w@#ru86>leELSqq~D2FKd%E?RZFjbSQt2ekdr zzRQdABaU{S0X*N$d1&9>+l47L`j!Ktw+_haukd3FKYV`|?uo zW#8_X)x*W?ZPac1@-=mL9{e1ijz^%I!Se6!pi)(mziftmb+&44ZO9QD@~?g_uqjlYo>l_7%N zl$8f+Tjjo!17JO1^?C*$$@(F%Zm?|vOxCq#>*D?9NE;{3_MPCSN!HPI zp<2}VW}3lW;5!DJ+O^nIr-)-#J;m?BT3qs6DMi#W;HGWnLLI@>z*yf(&@U!5z2(WX%Y=un6J=r+7i}ZHN9iBN|L01%6^(-@5wYflJ*XVv z*Y+rD-Gb$hvdn(n;v9MN|A9ZQJTEkzb9MXJ+D&(}0FUR_uUz82|un`hF$vQ2bry#NDYhwY_lg?9XB#GZAXQV5h*sbH${u`@l|uX{>kpnu%7e z)8!+i)$@*TiPPS!v>d?4RYRexq1YELdPPHlz0UxAi`moe97Y?rpm)hQSUbF!9|7HXUNr5jDe2cJ5izq|J~P%B9+M*3*BL z?~<+E8PzGfS{hm9K~i3BUtB*w2W_$TbnwEcpPLOU%dAc^;4a&6`#GChke3Ia4sI50 ztXIsxLab8u5oCxpNue$eStogBA96Z)QY1I#)37`^B(pavkMjT_|5yiO$=@4{$3A#W z*PjkrF2{r8i=0wr)+Qd&?+xaUJ^_!(hSTnR7}K%gd7tB&o9@1Xvl_5p`HJZnizsj4 z`sC`T(qGAMF;^z1*_LWLrRuwtv`Y^=?P6lBzP(S5?W&=ZM|>n3J;%{(SSTkd%UQ4qus>Ac_z1fMHVd}i5clqlzsvi9 zJzJQ)-^*>DE7@!zE%)%#kv|fBWCv}wkyapW7is@gE-z-A7YLfl4weaw+4LF@NA$d3 zJMGTaPmPBblZ8*q$F}G`JPwgqc|0t_Zw`Lz9(mgBcY$AW-NV*(z3v*RzLBslElj+U z{}roji|g2ONtxJQmxJfpr=bsj{j}TTXYz0zj$`o7!{nKJ^y$RBG@4WXbJQKFDful9LVMviPbbe*mi}fI!P=4=psgHp(5+cR zo0hi&A-Rg>@3sBzkxhcml}y*PVvjxMbmH9ZNTzp1!#@_sI%r#=-4E>-`0nNjbRd65 zda{1=nGY?SCMf?P`CA@)I{3wX=0CYCzv_90{O8F3vB(bF7OfFu?_@dVE1{Pr-a}s`CzjHeHt4I&V^^B1ExVfF` zS-(KE(lat!$5a0*!RJT|{Yyqq+`sSx`Mccd54%@warddsR%dU8S%q>bgweJC@6lhM zj{fuYzgKp|c$P70cg;4pc0N*_{UE)x%!-x?X!1Eo{{6py+MRnud6F^YTrigTvTHuq z2*_Ly`KHLz{mj$Br=q&0{e0b;jEOc=fA-TXYdg<>raF6dH_Vy7T|Ds3{Leke61O~meekdSqtn43MQvc? zk+p%H)n;d`T!|z4p-9E@NvqoNAUtY17>|A2-JKcZu`Rkg%6M2iZbg}KK>_VZ+omR` za@W{A>LUEsZaW>E^6$J?{Km7LYDc@nQW3B>rTsN7Cb_K*f7OoD(Om_M0~j1waL&Vp zgFx1tvtfIo9oWfuqRKGciG9Kb7PD+T%@{O$ikGK32+h=0E7Pcsjzcqh_37Zwa@*1N zRmAbVw)UnwOR@u%+tFlIW7?YEhtYMX-9DmNR?+FvS*@+!ia=pHki+t_m`w8FO zJJU>=&oW+Yv6_({8-ix_^{4+IZSMmf*HPVn%e#srkg^yMAgG~BF(AOSYH^F&8dy8B zE!&Et5JLorWJ3fIL4X1x5kY{!#u$(jQ{2{oOGRJAixv>qBYe@ z+7tn9>++gndf(6Y%5??eI7XkJcB@1@k;R z9flF9S(91JEApnTz=wq!V85^NUT7FvHp8XB67*m(2yu84|HJNZnVTm)w~tv6K8T zod=qy%JJaso09V1I~P1wJgj`w)BHD)MsuAvg|A_GTl4#r?=940_#W3{9P~i{&RmOs zWjSApu-XW1;T3bi$HRUD$-PLw@rDfj0t$mJN(&P*FVF$reW^lac7SZ|QPLQBb-H|< zB5aJX?a=8X`IrV<0^4MW!%ASy{d2)OkFDqbd9XIH2kSj4*J{5}G4tJA9>*(&B}njcag+6imCEwVB1l;_W{UF76pO`t}3!0@p5C(c>ojQjqo zx(*82Lzpd5r0q5q86(cn9dp4U<-uh6xwKXM|Gs?{fKNkn9-3=C-*{d$1~^pBHv0~x zL$iV%<8n7PY1+v9ylF1@nbL{sW)}^CHQEvkNRd*t{WfUJ&<^`HXwT&=Un{ z`=Q-99KCbAKQO!2#%DVjF+Bw1qa`sO+h+Fs33!~`GZ#Ex>1lqAm2%|erTo3p{_d>$ z3z5^cOT;^~7kLw4W%mNp(W;BOXQ96c`?%LLzAi!;`WK1_332a@HQY&@jl?OweJ=Q{ z_*of2u}|k^FkgEerR2^@+);mJSYn$sXX!WT*j{X3=w`2Pgv~*CPQlaGWJWwukXm=^ zlD8QYzt(CqOQU=`R=(53Z`e;?pgi%8(K*{aED&1-*y}o>|r=2Wyg)>&%$HlU31|& z={>3_eA^_brfl-u_#E^JG&aVK%22CoRC`o{6{5A_0<>!n&bd4HqWUtw2clf%Z|?v+>{XOv${0e^23D^d3)IJ-%mr<_5Ga7`Y7^W zH40^(vRxRpL#a7~eRKVe1Y%<(>HD>tvNfOi%PHrpV_$w{HIUkAD`B;NJ{P=GGEF_0 zELN{09bc9GUNSZFdr1ZciNE`UbK$&h3)l!)Cz!3dN6Mmg3Yo!}+}&IeLFI9rIJ3mL znrE%SVBd!|tSugM*LjC;DafLw*D&Moj8T|-;&@kV&Cql;U^JC>{ zv~^eF?>^?+alFkJs@uHu;|6G3KROp&9?HGhq}JwbZKzD|NWyF^tg`7N-kRh1wt04S z#b8U%eDZup2+tGVEx_JiS!K3d`Ud5sG8%)X8=5DDG>(VDrU>gN?7tLdvXGfm0!q6~ z*zS*eIdOOOvZ^WCZ&pVm-b?sneOWQ4{}^)6uE}~75dF9<^{}$q0PWx>m_vzZj}pGk zXt!0<7NPC_Yd;o_^rLJ89V!*}rzZc2aGykV zzg@_@I1xv3agI1me-q6^g=?k@nbYKnlqqj&Ee~ye3;O+Uv88x+b;7cOp|DD6TC;@Jd}=OsZU9}q_6rm;EN1il80~g9v~^qA?*r{KG?`Bc z+$kUFGF`rdh11z=CU;oNr$=!a9p*o4sehWP-Ia$Td{3R43(v^1`f>Xh_mBtY-oS!r zg?0qmme0?Hdn@9;LG#l}2sS5lI`z~}+)3h|BW|s4lXtnbtkIboHm)}x-VP1Bkfqk; zYpC4WSB=}SFTd!=M({51Z3a7WH$L)^{|=4y@W1;xCH!x)J^HizQ@Xkb*c;{}S|1bnxNHx*?YhvMTgr=CAFgt% zX-B@N7}xnWmtJn>TiMEhIlb7Bp^dQWfLH#$xd1cUWGH_2vDKe^iuDvvRR=8V&e=sH zia$LUt}$0XISRHO%=!y{OXg32wS)Zu&#q1OhkeL2VSR)}?ZMpzCs|w~te>!9AJ67W zS*)PuZcFmKo|V3A+RlC_XrCR@UPYVR#d^}Znj%;$;U&Ufco{!vFTUKOvkT%rX|^A* z8ZpI`VujD!*_XhP0koy_OhcVjHRz*vKSCO3zUjyQ{Fa?K2G;P;bHR6c*1L!Mn(~>+ zN|RO@%_#rSRqhnrlgX}LMc&2t9APKF70rRGKdRe-e1q9p8WCUJK9?;ZLta~;#aw^V z3Vms2F1!nz`-v%^J`Uuov-a3U_=a!eo4Ba0Y3*?m?H>ku@48UbsG@vEeL6ucR{vd&8RISIBd z!E*{MpTN$5tp#fkGd@=TU`=2WU44Yrb-40~V{5_IB;vM!HGnH~Ofp zb$Nb+0<15Ojg8q7+hYy{H!j%=Z7=a3;rpHg(%sdzbisC=Rp||`F8r{UK+ zKNlRA?3ujmWM(jcSPi`0)`pyiX5xP4#URl~ZL8rb>hs^{f~O0xHh^7c>zS{uSOvC@ zX#;fa&{gVKL^t5$$FcojyP=E6Jp$GV7O#^ru#N=Xgy&b; zccC<9JU{ch^V{^F`2E1It%%wx$|t`)xx(G>@--$_nRZKm-fjX&^&uf<~#B6 z2wHPJar%fe_Vc;mB|N(}!Q83V_sdP7;>V?C3YK8$s3Xvyh5qrPxB7BtN#^-^lCawU zoeS>vVLBVPAd}tqVJfd#r3X#?KFhOU$H6MHB3`wf^ao(KcwX38}Y?iQw3_t807?ZWiOd_F<|VwJ@L9sY6Y6HM{L6|FW+yhGq}c}W zN{aGU=v{RzGDe&9IVn$ zi>_uj<7Y4%WAaln+6dPB@KUf>;a0A(zWc^p6U9Zjx^gTiKD2jxo8Q}B-WP(opN%U* zw?1z`{2x^cZdAR&Ec8*gWX@AlSNm;4_^B9ZdlkW~;Fz{5Nl%<0{^3WLf~P8fCY!N- z+HJ$LHarX6D0Inw`kaqn=^ymYbx%X$n(}xYn!@AIdpx^(F&`M~NcPnBn1r*wfS?w>Gtl-x8|hN>6Qeuqj95*XL=JX3 z9p$~@`N#)x;xdy5JC(pTfSm-3+oSDZClYksU}FiaAM7~T6G=}WrMnkw63pI<-;&S6 zV70$qa_69#401ClZCP5YNcc&@HxO=xL%82xk!U~uEVn}DN2#iDQ$1@^)5c}a9$b4J z`uFjrSigvW+xadypo;!l)+BjpgYFn~lRT?ly!}e2v9H#jty##lp%z#r75be!>Tk<6 zQyr)*=ZJP?aS&eXf1~8i!GWF1=O|b&SY_|EWbh=|0N5bUHBzxE9_mrL`!r!Qggswj zmLC%FbLN&G6x^-VmX53cE*kL@O70G7qAKk?*jlj1ix(g9-vHJMX6K)o?ljplU+m4? zV%D_nUNi*f`|8?pl@r=Ry!wb&B;Id}5g%d0U?X6awkYfn*!~1|3~VphClry7>3^{N zx>9)ly+0Su@{z4k58%?~*fHG?qAl3uq{G?A6_>UV8;0rnPH#WqqJd9Vv$o7AvO z*Psh+Optw#PXQ@FRV|T#Teo2QT=X8@#9i}SrEtw{9;_d1BbfQ5Ut&JJuj0}pCf*1h zRKACxX>KXGGZzq!RC)SZwHHP4rigdu{}8YCh3M1Y{(nnP@3)b7oxf8Geurm$@_akN zhQMxAe_(b7{d;y5y?|QF=6cZ#Kr{KfrQr6kOr;NXw~!XCyK~(RL$mJLC3pWbaa0$_ z!TQ1GWjok8fRWrq7Ia&Ec3w4u;8WXjzIQ=h7QZV?!Qc7**4F2$9$Vy5^n$Wod*yvZ z+czIRXYLIHHrHQYp@DBV-?kSauWhB^n^M$?eBDO89hQ@}dNwwChFhwhE0^hzT`a24 z#;Ba{@hJT3ww2u7IY^4uxiDpk9YzcL1%K5c6v$Q?9vj+A!HbngiY9TFT0h+Z9iD41 zl%QHq)IZSgiO2eG>U&2iJhwQ(0~c2mg*oO6@!y(Mlg#wPqr0ONyvhz}#Qg}i7wqI6 zrQp|n-Y#-xhW4y}ki4b%(stT84Abx$87c)_dFJ2KWW?+dZ4mXZXv3^#NNQfpc>2wy zU|i2t?K|^{%AS4&Devo{Jp*lAR~5i!!74UY9=hFNWv~zN?An0D>^-gt_`Y@!nt|a` zxF$#ON5Bq(nO~E24SQ_8Onbe&T?N9A6Fx@xb$YkzyzX&tW~wM#7b&J)^_ipg&V*PS zIt!1fx0Zsk+7NPZm-CZTKKp7}Y@vPoxSwgRRlXMI7hiup+gfXDeiig;9yK?>Q2@;;Gf za{Cz16X(#OQt&ySuCHrr2Y#-Cb)PpT+CjU!|A@}5=}%~<)iQ5(2MZ@w>Gb+2y=``9 zXD@Nq{b?z9-!HCHl^N5PDJl*<+{pW$fY;#RNVb7&J;oGxKlrbO`HJbjo5Qw^nKyBI!Og zz1lLYdb}x9I|ZU_AWqXqOTpi(9iac>I?Lv9E9=lS=u7G>@7o)M z$Dxl!_SiBVAMNMRtf^MqrM4x>$^^WQeZ1uMreC~WZqzSy6Uakvt;`?u2SL9PryHZ5QE9S+HVPd&7bl*McW_1 z)Fv)~kAvIXx2>vEkT>H@Q6EuQ9du1V+u<+(tdBcCe; zw<;}cO0Pf67Le7C12IfRSNy1t7$8oWIJUx5c=fWc?WhbGvKIyr=8cxZ_B35mgnzoF*7Tvj3H!Gcezvx;I^(u@M{T&Bc#YE~w=UV*JL2GcrFVt$#>9=% zAAoieTGL&z^i_`s37aD9PcNk&$5tVFDfQ^j&zyx<{u|8q!PnW6(RxeC;swH62!F7` z`Dl!|=9Sbh*pmg&&(Y>_$}nlePvyOZ@QsAupm5uRhxW#&sIU&gh6&rGFe`)GES}Qp zCG12jEy>6b*cjMO(OZ36nV|N}<29K77v)cX3!kB<`Fw|a}~>pL^)^-WLT zO7tms^?$b%+~aw9U4_mI?|JUeybi@g35UuGtH=7kS7RT~mV#BaRr!eYhvmcc$5!4Z z`#uUJ#pbXz?ULgz_)Yw)ual_14|V*l)CiWWYyLayUlZ#l)bn>r+3R#J>71kRI(eoP z-qkR|{LyH}&TdoZW%X(A58c@JOTnGh?@yh@-rrls;rnCYC~jRp@BeQlcLzAKctB_Q z`87B;9%l7lw#Z9Y72Z}m6R3^2y(PvAUjDqzhwmf2OQK&Vttx6*{XX4c;&#k?+l+LV z*^4HFnRiu3_Wpn3juZDQDetRJ&h@TyMOm4g{1lIt|sZ+&9?RW%UXMf;zXhk2`e75bQa%*MV>M;+z zazO5-M<$4Oc&X&>WwUrTFNoaJT*3~3t!&JV%Gi;7o+nO;IJTyrI6mJtzO-`!qjtx= zSd0@Y9JvxH3i}h6L*%lU#^xN+FiUJS~7x*3^-bv-gg6Wn*O5{ z%=$P7*v?sLE8Cn8wV+eusth2~Q@QsO_Y`se*1zvEd5P9^Xx^WF3Mt}3Z!SCX6uesg zs}vmb`(om42Oohyr^$v$jkS~>bANIDZEc|oKD7hL&reIio4oFe^Re+Pvao0MRxFU; zPiYFw7W^v%%4F|A-893y2=7xr_v>Y>PsFCyU2AzQ%5e4)MdR#$XwO1BLp)a(ww}Z9 z6Dw$;d{h_cZI!_|agO|NDd<#r+FYdB>=q|85Q=|$Jxhe+rye2>zGZAR+pCTSd^9Kp z_pOlj-gw%Ka`bK+iBqVV5BGlg{s!4m|IN$VgpRXWd!aoCZG-spkxeiJb~c7JfgJ?v zJ1`Y|O+*@JpE3*B=#LXN4ZYfY%}a7?#A6(639L~VpFH2wVCTW!C&270W}fOg{RN-S z&N&awz^eJ!8fw%PHjRcVTkE4ksfk#FI4>MJ`R?D9PQns;O% zoKK+(d89f{+Fsb}ny*D;pJCz;)y@Y`@b+$%{r-+nNX>p%Igg2c^}IVH+S(I5WoNh8 zEF!zSC}_?nA9GRp;nq->iMOt9-pxf@JS`a5UcZ}K&BM2Dkn$ybGtW+Duu$*^!a#`0 z-+E~Jp{bO&>Z$v+bG#M=^Y)(Y8v;xs;JKDa-O z!+ZJlSg0Rv_TW6v0*4R-JEI8{T9wHJaVLpeIsYK?ZQ5DfPRZbnc(x2B3pB`+??YU#j503FY$#GetK2I3HT!4%+WS=bc~q zFOcjO!WV0+Oh^zNNBtWsZ%KUh zpJVV?|M2E_$c3=Y_FXb%Wl^_gI8<(A)0Pz`k{Fn&u%;@zh~Wx{PryycML-_3r*#$ z#f#LLU1sqRy4sW%vT?Y|XIlIoJs*6`%iTrzX{L8O6_vuy&2z0CLjHdZIrO}$eOsN` zKOl0{9yitJNxzdgeQW1~>v(p0gk`?0+jk{`2#}6?!R~TejncwEFa0c_Mn&muY;D zls|*EMg7=e=uSLoKJ{*o6NDWjOu9#(7QT~8AFOgWPTb!_MQ45zuPStIBXKSe=U{Wx zr;3+&Hol4VEZ|!DuaB^1u)SdMI@<^~oWMH4h7wp0*dSQE-xvfNNYIUd^@BagQg!~8 zQLsKR^T$x9dvt+-&(kTwlz!YMm?+PiA74N#_KJv^?%ScKV?4HDw&G(s(g|!47)sZ>7Rx_w%L043&blt zbv|eh<5l_@ZC~(>1>7Wz@TIsv0{Vm1_@i z%fyYZ7aasE#W0oi2-q1gyW2Kx-iI4o{8^A4m=WcbTBLZ*z^n1;^X~qtG+t5r*1>CU zUr7%Z;I-~8*cZP!AH34H*=6G+d23d4Ur6?8u<`djhPA)Ne1pC4IQLug?p|6ezniW8 zdf>m8u)3D{;ElEXFd3s?jGx(WV{z}h#)t4`Ui_+D3+f{7P+_K9ha03QDOH8!X^C|5 z8|IyV$mGx2cuqIFJEc^1jc=v>L-!4yl^@?PMt&q2WGv0D8c*-QxEDayo!^DNfapbd zt^M8kU`c{qksEK^Xxj6wyTwG zc2@_@nfVtv3kt+-*~@r-+kEhJZ!`I|dJG=@K4_c!=4c46&tC2nXsZ{G0eBqS9?938 zI)m*%)_iXWwLjZ(J5BsHSYW!vy%v7W&q;W+?TFVQ%NO@#b#xtP6@ z`zzE{_yXg;c&i_}s?0ZX?XcOVzXg~j%Xt%%9_?(n=Pv|itFGTic|3PMybI3j!N_MC z^8Sll`{rC{$I84-mWJThf9-tm7V_p z$0>L;RhJt){MviH>O`WfP>AX`FA#Th_k3`qI(_Fmx+B-jj4M648@9U^;e5v%-j2S0 z9y-m(TXr6e(%faG7Z$H)<5VN*OScTcXAC}-`@FnvNwYysx6tpmE+5NmtsjEdB)ryL zHy^wrY?svgva{&Cp6bkQT$StEQ4uA4oGE;n9DaSSt36ljFnLQSGQUKD^xOB--@btM z6UrSOpqD%IA==(3{3e-CESELPqZ=M0@Hh*PZMFQcelTrp=g&64tMamRoBYc9K8|$m zV5Q48f3&mm$9D<-XI?xXEciV7^2Sa&P`f?XJaU=Y7dF=`W#)AT}m$t ztiGMOV-&;~2h$$ofPqntzTlw);6)y=wpjO0?7N=%VCPEp=i7GCu7pS`i|zGA^4tNB z{+G@NA6ThOBHy;ol0Y}^rf52IgShuuxtk(`TXm%D;LT8JVol{TMjFRoHXnQ`l=BtK z#U^iFw~BJzLiu+3@-3z&w5k4egufKJYomIQzR%OKHoV;1$O)N@=1F`#7v;xDc@3)h zQ@LIY#I9WLCK?oc2jN?L%Y5(?o|Ce^jBjV=W4W%Ya>W;>F?T+rN%);dnLI^d8g}gy&Qf*NXqLMNv4-{PQP+KIFKS6%igy?b2>M8Ew#SuBK_u- z^$hL@p9hr&;d+-T(x`d$eDI9$T_V|t(y+5#sf*12iuo{YgMa-P4JkQiJI0rDgIl25 zZdAxP>1;T_{;K|YcSqeXl8H{%uU@3?Bx8HwH+U=l`jyHi8mmz3tY@{dcCtjzos#eN zdf61S@Ew26eDEC4H`S*2+l$x~Ue~R=6MOWv^Fi@a^4FR9?t^n(yK}{D^_{t{n{&l$ zT=$WdP4XzczgPSRBAex+{a~lgDiHrR&!1GVWANH9?;7E~k#9--UpF6|;5lYzSU<1z zR%|PdY~;53>!kJz9C-sntM7GpvES`B{4HTQB3IS>={hriz0Ahw2O$l{$*$Lzd$*>@ zcL09p;dg=OWZO5Ng4MU5hv-DgTT#9V4<-v*hf}MbI#U`mq;cr>`QY?Qbr#vFbjsPw zolL#J+Vbmiy?vVaP`gf-FOCKvjg1HKx4nMe-A73~h_4^1%p2Z8A<)56V6G6h;f#|l z6aw%W#$bJw)99~%;^MCzOwx+m0^3!Rom8N zyz>D1EDCQ`xEhwmcT30k7~eG#RwnGkyBW7Bj8&Oyu61Wy*Sv@IvG17= zZqyvQomXH!dbW(7zl<4U^P8-Lru}{NU654#1^L(JnqQx5;j{~U4#0Zf4(P_9`?_Qp zF9bG?HuN2}SI|+3dfONBZXd~V)h1-?&cHSw>wZxX)r_GSeK!0d-KDbr3H1sNYPRzN0?5gPhhkxY4m22%G zo$p9JRnyLAd9!|K)+zkhe893{pHFmJIGdwuqIsCPZ$^pa;@kK5{* z(_h2*PHJj}vle2g(Q&#vB_kE?~B=LtJa*ja`7vaifH$`SO|cqTD03XrY;W90Lb zQGc4I@3dFR&S7au_$|=OO1B>#BY!g=%!PGsWodRA=?;)A7MdGv%5S`eI7f-o{;9|} zyaDVaSR2?QLtloSBf^+D`$Wn{94HfaQZQRf@Zh*}kIoWr{bwRxYIn7Ng8vw7gX-6{ zyC=zxE6|VJeBfL!bvlPMN;|_YYWx(2H58-v6_j6@7H_~U^ zRY${wttV_-821hf(|aEwtVr0X!uSXq16u-98R#Qfp8#w6!hG;)wLA0cP^NB9{6k?; zQ2vT@7TV+E^FcwhFUDKMh9TMvj(aXt)8C!df0Y@BoJtNZKCmWGgP4tE7fHiCZFWd4hRP$;vME( zAGlg=MN1cKS`Rbc|8nGajQhmNkN4p*jJBOg$;N;t$|9vnn07V*??dozzi&QZIirc*2thMyUiL>#{@_9n>nfcliD8GCs;I$uK@%g10 zu)San;?GBPOJKubY6kiUt9d{3g$b+?Y%qZ}gAF9GjbQx=tP`v+f%Sm(Ca^)Uo&+`m zR!m@{VBHDq1Xx!Bn*`gPz-GZZ!Jeu2 zSbM3u9w))t64)$QA%UF*+XxoVZ|$EkzDrg$Hda#xRRsdU{z;=T*C$L_ybqQ<; zET6y*f~`$pN5PsB*h#R)1U3b>CV`y+Ye-<{!0KYyI?A-}1NfuBo}xmo*h8lKuBoUv z(>E>9iJx?xqjP6*s$Mz>Q~D2A7$4CT!Sp_P0rdU*xZFjSh3JO})BDHi4}z&Y^Mohq zj}xZykJFEXsXo)_X9-jN$LY_4b*w<&@aMFb1brT?dj2w}qs`Z2JP73il3JD8w919oHu`U`}OCg|6UVjrzQzn-wM1bqSQR0@47)z?kf zIAM3GE=|Yp2-m>Tm*}jC!m=&)evS2E;x^7>yL%hJ+dK3_`#4{bxat9QriPpeVGrT% zE;&uyx-$KNZ0xu_Sd86!fjziU`T8LC#(^{Bc_-=HK4{NE`&OTpeZv?9Y zvpWS|8Lhc#A*_Y4jf73{TtkNAbJKL$nz4-rci5lpko6E}hB(g(ZHlzHDSxMLG4pq+ z?i_eYPmRHA>PO5mDE${JZ#rLs!QUor7~EFh!`}{qW}s{P@qExB`5~Wo;WELNVqoIW zPK`&8eNV%46jM4ld`2FX6@LypaM01rd2`hSwozcA;+NN{!!PhjNMkdnF zNihGO?cLv=p0@2JQad^dzhmba%lowNWQ}E&4@RE%^R6j`el@=b?hJ94e(Kj8*w{-p z=Pp~+Ba+VVOt{8b88(LG6OGkrU%I*)1CgpCMej zK_BVGcCgc6GXkt1u(N$_jIB9_V{yGme;~a$M4aKv7Gh&9(~HsCqDV(+bkE}NlsCfp zsq&eG*Tm`tcUP_HoakOdoBN7**_lDw)Rw}HUeW2hreoNH4_XLr}|39$2EZ}586hn`(P#BMR+%?d0=>- zg7=vRfVaxH>0|i&9=Z^GWaTpMOe^C*NtCe~l**wOevJ=*V9H?v-sJ~~cm6p2N8=%=m%^cTZCnJoXkBf=7jQ z$sHp8p6O+6;!GyHo-C!2kWm+TAd``g#|_a~Liv(e;eh?=BJj+Ugq1W-Bw5aO3RweFWvYl z{P(Y22=~`1-Da?LV7sf!ccpZH`hQ7xgf#L4QM$WHcNA?<33F(FrBR#_0?N#ZDlKQ*1aA*;`{ey zJ~>}6_)b1e^kgO2*-0w%VfZZFu@Fp$a&?h?sKxAq({<@i>+`4J)jzZlo@slR_VuKX z!?pK!RXVS2b{E(8xv(N8u9Z~g@Dvpu-V=6X7aGd;YpY|mvAJI&-PcDofr3KAFRzjj_t!KJ%f!0 zH|qW2H}S!R;N>a(H3rN+=AzkA_B2KpvPeRc)8-50hi(1>^93KGzvo#W@!SY@7OZmS zf7}L$c>aLqn9g&E_-Fny;;HvO2sR7$pW)nLq7TOjNL)Q?FV~YO5YxpZDs6{$-X8%4I6XGerg-X|NrrY;PqbSM|A(4Umt9jEnkS+Pj1{d zNSvdeSO|)~KH|QPv^LRRfWN+Etf2#}pPPN%X>2(px=`{R~oQmpOy1fK;80?0N*0II@HVt+>ftA2!z+Owb`lwx;2b;Kip=upi!#(KR1eOOo z1y-4VQQkLzO@iflPOeevBy1`{-vc(Y0{t*yvkCe`VC58gr9DR25@C}{8;QtjDJSKo zb~r`Y=sgR;j}*rEEk2If!O-n1@g{(VknGk>uzqC%o87mY_*|07E(0Ll<5D$FW6n|Y z#~X>;@(&BaQ@va*^OHqmp#Mhtld@oIE9A4;3!kP*d?CtD%Dnqg!rNB}SD8!@K1g`l zy!jczj--T11}+d*7?0#)9oU+GKz^XNvlqxW0nz09wEbs_ky-rM?R z%4gXa)AZH$-1I6rbyK=!c5pOib2F>j>B8D`Wp-DdUA2|P*xOl@-JaXe_aKY2H6~WR zkCNv8Z!Cm&?cS-ocD>HA^CH-{y=S$~iA>T^ zzKA^`nQi?N_SAP6YxC^<3_5MwmaW=YqKojo-(3hEAEuY6H>O$kt>$pSJ(sH=U%^+n z)7^g#ulMDrf-kDxAdX9k8Fsb1>e>EOrNK=1nEv}m^zXt#xHoi}{*#~TZHd^(l*()) zaf^!!?j9ubYqEFR`{um;XYHw|b&ARPe|B4tsiaOcyR8WC!|-k^F9eV9{p>~b3uR`0 z&NOeX$<^{L5FMruE|5mezw_=s4L?VP{p;?qW~+SU_Ci(F(naSnN8O^vE%hpc!k1b9 zwX_i2Sgli{GeOKA(24gCOX&ix)IE4fucg(Elz(&A+730AR@EZTm z2hKlHB)`RfVm!D}*+kGij54=1p-VB=t#ir1%+ZwuHgnAutb?jQ-hM>}}!&(Vb<PUpHPJWIhj?E!7WS&_PWX8Bb~VXjDsBqtH_G_w9{b6z`iXWcJYQX46JUAq;UnICVAEjV6hOX4 zGCN{p^p?!W;2my$g}2IMlsHq*Og|6%6k)~77Tw--XjMkjq6d2p&-w@}ft?4-3*ght z_dHnbYENf&J}KL|%PYL1lk5eoNTv(HG&NZOSH$xrs1f586t?6o6@Ay zFC-w|vj-OY;nxPgJ}=w8zmMi`BN@_hp0CobeohA%)FC&!a>exHOJrl@dO0h=9V4Lf zJWDzqmoK_=y0v?iPG0h*GHLia<43}7t*4|i|uw?LdmPp)_TeF2j_6U-UwL)8h z_Qj%QgK_)}EE_kn$mLaLbHT&CJm(Zo-KX*#AZ}ey)T>cN zmA#|7FUUQsO!gC}_Q8v8?u_5k`A5KNz&^;cYsciM`V8q7Rb2gZ@LIC?T)Ep##E<6LT=$2kk-@qXRG+3^L*ayygJG@nYT1{diTBXn$)|i?)gX- z4}(qAF9shH7PU`p&HpE-&siXgA42gbpl!cmF}R9neN=WcV0*zT^XBn$TOUQp5KH9(=r}C@)XWHXKX(v4E zljqw6wgK#7dowpe(+^ENubp5+VB!(aYYRX72pc9W%|E4z{aT`LG5t@RjSu7fLVg@X zjuKMXDe)uhMN!xeg%$WcL)e7EBtNvlJGKAkfcF2y*KqCRz%SiXog9X3w{iE{Z=pXP z9+kl!ZLnwftn=X|V;c$2H!cP&2Vd3)BxFo-@vL<7rp@lL+YhgvM@D^&>g5Pn5lrhq z^bs}&b{s73^PB*i0h==_r-Np|27Y@g_znO5@o{bDgR~&8leMNxAJtF84CVQ#MR(pX z`qJO;jo#u6vFE#1N8z{WIxKXol|g|xQ^dI@wDDH7ebjGpL`RA{i2g_AIRdXUk3pU; zr9Aty??^At_WB~cX5e*VEixVQvb9<}v|nULI4|t|>YdpSh}ZG~G_I0Ve3SViHh!D& z>Ejl|^N-T{K$TmS=V3=Z$HG)0yuH)WBk(&5zXLMn5;jF7PnKs*t7Jb|o0>UWTOyr5 z3%{0ii^0Rfy0Nj5`3}uSiEIj;FPUvg9~+s^Uh=X2J1~0kV(`2>j9et z`#R712pa@Dw0<%8tRW5?0V_P6wiLrg!A26;39y+2HVL-wH>>r+ELbPlBVzo{f_2B} zG^VSa#lH%+&eQ3i^0*d!6ud)q$ETTZ3)t*$ExJ7~)-U5_vwh<7Flx|6zf5h3wj0`F z3+=gao$(Ierhmb{-?SKfif7$5#6DY2U*e6>XB?WuH-O%R6;E{@G^B^`KVB?lZXL-MRr|zgpnVw)eps>o>?O*w-%kN?MwzVw=A5r?R zP=4)vBkDvWmQc>DCz7m9LO%h$jayCD?5q>f4@2)njWMqD;yGyBw=4!Xs6MW(-k+N| zUq+5gil}vY*I=WWuY6T?(Dtv)e{V&mc-E)Dw+rkL*fV?@@%8_i8TKkSZMzqtnv(qA z7)sctdd>k-*J@>Z1Re*s`EfjD8}Gv_V=R?uqBoJv9zS<*Q$0s6XiTKMDZl67+tgm& zF6z!Oo&}5hu-1aD0gK<;&;r%~R*@}xf3U&ri|$MapGFthUa*Q^LUes#!!c|F*f7`- z*bbiE7{|sD)Z4z=mr*X5Db%sui@ePmA!Oopl6Z%R7jFwwV54AhKg1cZBQdOX!t}Yh<8+G|ifo5n?BJev*?YGVuXME^n-aCaw*zdrb1`JcexsKlHG&}~c zU3Bxwlxe)};V5Zx+I&Yn8pRF3i6fb6n4`TB@BKXMBi~LQZ0+vF;5DJFFb2O<_t*J- z$8r0mkhza~NE`auy^m=XlzAgD(l%C+w(>Np^q(K~;YF|$V9j9XE=gvn?UXEWYhQ;< zEkr#rSKMLs+f+iIUbh(DnW8>xJ=iqZuk$S5mQ$GHaLRqyn)`_(O-Zm~~->CXelS%PvT44Nt<6`iWP{uCG>pAJXcA9P1 z1F!N+yf4PRmhIUa0>3jm<@~BnxzIEnf&LvKeC(#`K4}c>I9R+aCcut?RmwtfXTXjo zuqCijuy}t~vq=9C!&EA+WPx@q8ZyTZ&;y<0x1eY$MNVTV|i`$+DNN7^We;Hw9fy&!W3efqXw7 zBO{mRv>X~aD@54-z;y&D;%&Ju#^Sh6iKD#LmXR;w{RYqa6!1DTvXseH;*sc^IP5jagroSeM3X(12DZxIet7SF#bPk(-)|*99{nEO zW|9l{V!&ex9%o+3ct3@Q<&Va$cO1@S|CoYGX3+cw;?wx=%y+(eG5DQdz=v(HpIV7e z5kB4U8M}2csP%mA(tJYtS|K?oIm{?U9dT{}qwSO~a)<4C87GbI*DeO#VH(yyM=}=m z0|;xjE?rN#J$Vg3VEq5O#bC`!yi8ub{>1-Mvl26vq23>UEw?WQ@8r2A!({367#j09 z0DcU7*GlPFp09Cto)@$Cq$lIf;2ww9@z>*TrRgX8T^oPdofej7E;H3JBq^OLH9t)B zh9&H`p~Yalb_HIRFXM&(DVrV1=1y|s&NyDxNxsv3XZW7sTjqO~?|Ht%Y`ogf_h4-& zu`<`BR0kC`Y)mLQ z(CMSH1F>y4*N>XbYRn#r>g6g~KR?Inu`4&Zu7jcO7~hk8$N5h3o#s2k_YB`M-?OM=V(nV# z^=-aqF9yS2=Xu|o*+@Gy&apLU(&22Als2H%P}@6Yn59@x!`@JLT_k^{A z9ZFywUxkP5)(G}8F|+(-nC#~y=}r9ANw>U+bWjnxZs-O?XXg-Lcla?e z!zX3m=ChQa5opJteY|M-sEkIzroj3I?8JesZju5N{VBro@2Z}En+97C_6MSOHZ_)@ z)2&N{brSZhU##CXU-e(y3Bf%n9l5~{y8vbXs?FF~+`6FmYW+{-pt1}6wROxSv*kF(%o;4c(z_NvWip#S4@pl>vbIn?`*s?3_sF`g&x(-fCa zf$w^-vtV}%Fn+{Zwhmi+(Nnga`}IZr@EH0dKPG^OpJTK&ry8h#FFu7tKd$#UN}OZw zSq$33bffo(?C$GyV_ejKK`S{uL)?+aOa)zv8|e|Q17>{28W*HhA@iU~$vD@pn@ONkZ4rtdBJP2(G z9@|6<4_1ai{7H3rw1BNmU~OPcVDa|Q1=g6r`oPwJ#dYg2 zSVMyD5Lg{pydI8$)h6gpfz>3iX|M}_T%DH^*mSSdl*4R$7h^@GhO;_d~TNzfezJDtFegH40Qb=x@DR02B&l*A9J>If z{5@SV#z*qL=DaJv#~R|WbzrKGH+W1srxk1f>~X@7U-jI=JHdw%xa7STd@s29yr9=) z(pD`bAWY-?{e&MP{5a1sdB=aDS%Av)jbG%6xZ^(NFd&C3-;>0z{ZsEF;kVk*ELaPe ztsS8k&H%?2C7O(VA7bFX{f#-Cze5$^yz^ijKN20IOQy=-aoWhDHK z)~?LIsY?#i&uT;m_7HslUgg8AJrpl%qlqz2G|pmNOmlAqNO);^|C>?+m{-t8Wim@T z|Phd@8ClYbjgN-Gy0@(2cwj1nN0_z1k3Kmay2y8Tg9Rxd) zz>b0)PGBd&4uQq{?ql8ht)-B>pqqX}gzddrFTn3(zP#WU-)pFCiP^{ScF{`V@LZvO;!S;gF}PZS z5XpYRZ*M*Z*`T+jFG+Ft+ns{f^ohkF=Xs_3%sAe8RrcT6&ZQ<4pDeO9C3&(@`*Y;$ zvx~tj&#F)6y6?8`ShhU%D7&f|n%$=sW9NJ$9~C>EIaqJZS$V7NbwOW({;A^0M_3|BEG6xi7WHVw9vh+6_HgT>p*c`)TK-WNCgFZ}^n z-0sYSDSt`3Q#x@YVQYAw_k?=PbfVcB(fT4gBL+Q&B&Apy6tCHq`{C8|dB0W{xmf9L zrT)xEQ)^OVr73vq_`yFdn@^ApSthLQ3;#D;cwK-!PTaWPpcU-UnyKLT;H{79w*#yb zx_G@6!8#Jy09ZR%ydU2Wru;oqWyweUj)3)#S7T#fN4^-@qk8WNu)|=s4%6gUw+Xp+ zddAaV#qXFNvH5lLYvG6LuWt1NGF{F9|r%VaL(QI_6>bR=34hw7&trK8hNF=1pS&X zRk!b&Ol?g=Zpw}GNOvFC150+4r?rHMUiO)jfnKY9*>kOgZ6Hj2oC{-ipXEV{JqXlA z_-?{4!N!pT@`IGu@>%em^_Yn%lh-@yuTQ1N_K^&pChexlWxgZHVAa{xddHe!4NEU0?%Xab3{o`Bmn3mHsf;5Ogn9 z`piLTk%StUWbO!I(}WEu%ygp7!P)p7ncJr`vtH#o{BZcbh3lNE4$Tu=zGZmT{^Mfo zta1EM{yv0ge%|C)e)VspmM>#W<#|Ib^7v)HUeL)#V?+V}4T z?W|4d6d3nQ#*V=247{E!UK(RiG*|jD!#bc-gr6mRi^5HIE9-0qL%*QfPYJrFe~Q*E zXw`!73*h+#E?cSbGTJA2)UR1tMeh)eq2;ppSKeW{fo|4?v*mi=H#mjuMfdN@gq0`p zd9Y~gz+Ro~#&nyF(AIZmVu)1$V zx>EbR&d{%kzF+i&=~*BB-wSp=hKa{vuybH%cvib$nGCAT@jpS>$~hGP68P^4m>V;oHl@ z^h$c~A;QlP9@h~E!Dhi4M8rpQN5N*m;`YKxu+v}_J*2!$flY&%O@dq?1gw~KWmYEa zTuPYQQEeUa@f{z}Y6m$nK zf$ki1$1Z_x?SpD-#xH@c4Z4|2pzDL~>?P10g0Aknzqme5L6?W_<kg^-5R~` zY3Q0}e{uO;fUe~d=+@OE&zC^g0bTJD=mwx0yac)<&>g%4x(VoxT>{+_bmPB(u9@;{ zY(So&3slb5ud;7s4`ApC~@m31&02POC|TbteQ&M>9>OnAq(+S-s=cuk){UP4|pi+H~q|C~JED#jjxfz;WXA|Dd|R7zgVE%fnM2^#iBD2ElC1Zg*O{JNMK!&Js34*g+Au zH`MPRUUSVAm$&6chu37>>;ru?K}|XO3+QYu3^s#53)uFM+qjY0zRV92{-W*mcO($I zlRDv3VhL{5`gAK3*^VQmdGLpe!7G$E$~bz) z@HzpnpLnz&`=nK= z60Q~aU-@c#t`I-IC&MbA<+dZqXv}qlbjNp=gs{_n@zsHuU8y#-4sv8?_${fJi zhC|Agi7Z8p4`+#A^B?RVl-+0Tn7b6Vy1Nv%j;wCqb9wfYt8|M3t*;f5hBfHJbBn<@ zcy{G)d$2Js{n0#N=dBTPX>m#g_XE*+4T7!vAH(Sd5EAUZh4qt>u%K*~xCy zR!n!$Mm1wnwK^1kOgH4UY*1_e*<$c#sw2}ojQ6~6oO0GZm3FaVmDXyje{+Icdp+KT zD*ot?A}o90zyHEwcrJH*U#+sm3Vl}T`f_GD0Ph~{lW42w`sDaeRu1@|6`z&8KWUVH zz8Ku0wr=mR?EMQFCZel!CHYg_+D68^tIEOs;rlO(Tg?8xm$OjOUTJbxAnt6Y9G<@% z%1(c#6v~dDo9=`5U~M^gw;G%Ep`^1?f9!k^h!m{^YXVBA+{m+Z+evtp9#jsVAzl^T z)?T?M2Gy2nmu9oRB@am%`g6H*a1+l;dxZWVe+xrq3K3Cs`=1}dc?j`v;v9cyIXEgsQ^`kXB_C+m?G+6x-za@6^y?p84t~>@war<0SqtU# zGt?8=3yXS-$y&UZqh+~Io_`bYtb0t^-KA~%$9Ci1?i>P6AC#fl3k_48{{7*u`3tt~ zvSG{%pR=19ABjBtTG{PsqO82XfNpn0cdzQKT%DUCX}`uKx65RR%U?Vl5Us;23mEK3X=pghXzg`Z$!?UX=(_6dn5i;H7vxz*3 z_7t>*d^tQ9a71g=byj0b=FdY~Dz^x28QOJ^F9${6KGOSeKUY!A-i5TcF7KFk>b95^ zN9C1fZ+1M2@z}a@FumI4-P;^!yaTniuMFQoc&<=?_9y8kqH9-&;dS(><#10)bQVj7 zdQ~|vy7&IL3257&R(59*TK#AKS{;!3vNMD&5q2HV@{3?MCUm8eA*^>ovaxpYVBeT@n(oO@jGQVR^+$x zzXZ1C8Rc-kA>MasQSgVVSnaU<=O2xJ+fa7rUBRP+?*_2C-z^7kri_1q9<#d^Z@WBI zm@Kb(SnP#g>$A#kPcjDLZS;V216bFx%v|1&LDTc>azM5Dc47BRB3nAEkI9igix-2N z6PYDW=jL+IOBC}h<4qUGJU`D9c9gIQg?XLPA~RBQg>EYVuYC;huZ(oNpM$o!BbC=% zeR;X&zg3s2L^=zZQCSt?vD8)$-rK;BNatIdNbC=`{r`V{S!!8HMH{~{_-(ufJs!5P z$Tyo9AMRk)boSxt{K7L5YJLrS=DKq5Y&qAW{3XV(<`>_gGs-@&IyHavN>0Cb!mp!P z4la|tzCmM{9ic6OpMB3|ok%%8{$|co%D3H1uQr9BhMN+3?W#obD^^#Myl~kpjbA?eq}5dtX*|V^r%?Z7qhJ+*-Kfbl=wc=T#o_#F-?{ z1aW3m?iNQ!S?ees3G{Y5i((0y;a+4hMRpRhXp08^mDnkrfY}t%O&cG}c;Ho(A4G^#E)#YGN@yr&H<=pLz5i4OQ>qnp)gYMeUUP6|Z*-L)T=FF<> z&uUZiYilp$k6wb`_&_;mSGv~bZ?|!Ze(HT1IE4Hx;Rn3^Q{CR#UiAeEBx>O{AtAnP z#B0C39IiR$oScxaba4;iy@cyoAN2u)U_D@85MX)HwB`F;b!}lAysC|$Jl~_xo`?1p zU$;7AAjQN_t&VjXqy@+R*Hp6fdQ@O19 zb?gtqo>^@tn4iaF#K!uSd9rLSnOG6sHYdbV;Zz~5+NO{+2e$nhJ?ncXG-<~e3rbqP-hvB#G zo!)M-He%~-sQ6dXw485S_t#37O+ecP?LYIZ_l=)-XyZ2xvR;wUWNtdm#;3K9N4|*v z1jV;9;80{9#XC<}!@J7iT%d0gHhwqWW`yjbEUNURy@$qDMdJ63l*2voHl~Q5YbQ0O z-LqBEudG*lJVM;@1LQ00^J)M4NHFH!v_RZdQ8e}nPqd&N@{1IeY zl1s#`?z)@+TWyHtLnpzq1ICoV@IR$VQBw4^ULRA zi`88hwCg@n4$nmnX@w6RU@-Mg;VfXTh9x(RFl(4YEP z*{v@mzI51Wu>Bt|yS1v+|6LrJM!#V?%-W)jL$+#v;Z8c}M<9Kz%f~vK>Zhn z-}stb`=(q0e{#||u^w3Exb}(oL;t=UZ1Zw=m-hSKnT>2$D@S`b%2ED~lw!mVmLBPa z*M`qvZ+l+xv%+lLZ(8xaQUolw3`hQ!7nSod;!k{*adhaLpiblavF)9mmxhH+p{2F0 zUN%$JijZCEPl|jmz;pO><=_R&+I{?PLHQE0cayQ?e&MTFYQlb`&l1iW?PMvUUpkb| zlaPydPN3xi(ug!OEW2L6L)KWBU-2#g-_#K%l2agQv#O(j*9!9GZe=l8uIwVes zIQ#EIAMh-FfMr1kq90!WJ(>9u!ngXey-POxGCRxr_d7F7sW~*O(AiPD#qX=-;G;^w z^q;Lem(k+eyN$8fyxGL5K0Kp2)#r^6?=11kif4Koui!q$#b;Ml4!yKlp-F;ILVIGm z99$9FvMbsaT*i{ge1TgPuGN;&E;gE8#km_V0UZL|0(cAmJNf+v{AY2Cu$ z?A356@Gg6s(bwO^m$#B^qn!3|$ECaeaJisK&L-h;?px*Xy!>VBN0AGBRu^asnF1BT zf@U{tZL4Pk)YZ1s!2zyqG(Cm(_U&@8C6u$Md`*W&cA)gy+0=sIZcOkU);1D8%p!Rn zB8{={U~4K368CyKY8%yQEM6pyjiA*p4}aRS^U;0#<6wX%rnkRP z54AiMd#L1nZsfUojL@Rxl#%w@l5`1B9Bc%QJh`r{_rh}$o)1(xwDam^(l|O_4t|_c zp9#BOg0=;Hmm=BQ>!r&#JPmtfu^cRUd5xEWw>KF(H^QRIh%kFb@dt>1{{H`4{37vB z5dYZH16N*>o2K>ni+@-S4rx)N$xSrhov;bF=SEj&&pjlyz|3!>^6!P;>6-h4xBX&$ zrR@WEti(;_cLH8bm){>O@T|P~wjTMXU0X-jCOUq|ZTv_4N#fhO8M6;FH^|^`BYe%% zYiril-5;Dw(M1>%w&qfIvwjn!q|QEj@f zC(a0QI_vKb@5~+1c?J9MXWI=-e$Zo9wtJ6L(B~WOcXqbzpU#}pdx+NzVI{(BPRshB z_A6Gm-I+a5yPdmM_pHv|8qG_HzV0`fFU;K^Y$m?%v#waZJ!X^t*yyd7lReT3{lFvd z4~BkmeeUE$h-_!N-^|Jjc4nK8z;kr%{lVvb8;zG)=2M~R%ZVTd!yhURb>)-9UH7>A z-CkFIE042a{a}CK>oU%dDU9r4T4*$UV)u-u)-b)Ch22*FlK4+ruhMDxE$s9B{o%P- zYAbDEyHcAUtk98bOKufn+B`+LKL^AMgHykgGcI_kFZ9ty5GG&oXZ#13|0$PiTnT4 zc0TZRjrSkFz4w+_;w~(kZnEvNvTR}tD`L92ZPPYwgCHyjf*>>qf*=Tq3ew6bifn=) zEUXC2sOjhkVlpebiHYeZ$-Q^WCbpVze(&#d&V9}~H|Ipt?RQ_VaQgi`pYQYk`#jJ0 zdCqgBAI(J;K&H+!tA3>1C`w1U6+U$yKy=g~t4xc(5m|#H{@H|EjZE^hmu?5_>#PXz z&Teo_?JX^iWQe|Xgc~CM1w6}7?92eN-2F$4uUmCKX-s7j!2;p0l&6QCH`jZ) z`!F9nfc7KG)qKqMqbyG~6Cf#zV#0G}6aK!w!jjDI%f9icj`QnIG?X>>;_y@^RZGaaIt=AXLZ@>+pqvW6w z<6f)n@GjFC=5_*?=d)oX?{Dy07ndB_dkf)xv4?X`Ur(HM-Xv zJYsxLbe|l_7Fidv4QaA<$i|R;N5UO%h8sYZ6|?H>*hsecQ8pthMAjwYR6VLSwc59` z9JS1=i!!Zq5o(SdBWUjTn4iH@@A<*A+LF5aFEs}gA9w6xb0Ba|@x)L{yQoA*>%0;3 z4sXs5Q6{Po1#18s04wEL&K0pxQ<&s;4OnXpShk=yS^N*% zW@NLLjTlQM{N;qF1qw|%oZ6^D9OJK>aIumR<3=e%x=X9PG-~aI$_9C7r1-o@>2l@Q z2+gJj?7>WpvlYWhTb<~J)yyQvsQ+3wQ_SxGupSAGJ&_BHW?5d0;4><>L z{-NBSA6j=#A1c!}4&zvc*t|15M%Ws{roI8}yq8X$!q{Y1gK6DpMkD-NTf4>T?x|*U zlpi}{-rJ{asoIO9X|0g+7ELp;rPwBEYcOeRoUM>{A#>sNaJ%7NXwAc{wTRO{%`WJX z%)VS}5tY{{{6Hb)Svg|fc}{&b;U$R4JC;&U_;88|GMg~HCynUu+d9Y8lpS2LoqG3u z89wICv=~;dSRJQ9L{}BMYSC3v#oS%b8&zE?pW37|5{)xLnPE>$uqZRMy>~6r&!i4F z5zodmN6c@&+BRQ&Fnq_;+&>_g%3t_E>U;T!QEb@+Xa4N9j`sh&>zN`-v>Sb;=*q9b zZtJ#~HW#$pqRa)^>i3*}1b-6gn^A&YF2ziB;AC0DUk7f>E*u_faoP0px1K6quS}B^!1rlCXO9>^6aoI*R`GFK zeeeo7r(1w6I4%;C*TWY?suyr^Y9v}?b^^?lwTohobtUNPILDeBTWu)=wPNF{!8*a# z@@$U5s;^6Zw5O(0Wk79&%dZ_VswVj)o#%F~J+rn@=q+lc>ivq?Q`$gU?@;Sx8Qa>> z*M8}UaT(8!xj%Ci+wv4;GCW$QR4p0^Dq~AO+#$GX-fYQ+kWDm zGkJEzA^SsX9p+8xjLv0$fv}fKSbn+u%|VuT#fTA-afr3Hx+z+nqBGM`20rV`5%bV=dt}Bt#27IlB)ACKvN|$J!Wf>;az=U zb)HlWc2lO=%En4ORq*Ps8_{Rqm^ANqjmC zGf1(`%!TBq#y`S!wT>81Ynz&8b8J7NIB!FHPq7x4y2|+>^>@>VKIi3a5A|8OGrTLL zh#Oj{!^v;;s+3E*8;ED<<`Ls`$sab_I%mkJ;k=(J_*&Y;t4Q7omeGufmpQD`d-74y zkG{aIBSyJZUMu8GOH)Xl87@2LG7HQ2v5X_&2nTLpI*?hwyro8&zdN!Qqn6R_A^W{#CMJ@F}vy%3AN5R1JK zi@gwwz0h)*FXR?Th6DbFam0_|%^#b=i}`lWq#QO9U-|7L#;z2H86W5Vi^P|6*vgr$ z+i^DbNI4s;{E=cC!!hR5KOHgNvi4}4{!ENQXn)Es$~4(5>_akTc5FL&7i5Nx#-U+P zYSfgq2)z~P9q1Y{zNYJ!c4_TdseL+j;p!vhCo;5L8!4X`Ddhl}Yl?04=}z=?JuqV4 z%T7OVoQ14*=DmP82M9a&wU?*$UQKu&^@IMDZ$tX*EM%LJrQRPXMwX9k2-ya0!_?d* zZSHLO(qo|}imh<6sb8YzeD&z6dT2!7B|K@~CT}FMxOdIktoc}vr1#+w<36igt^S!d z-?jE!YeN@$r^ECY1m-gzTg%#m{F&pjS{pMi(|M&?F~~3Fi&xeXN7>CeaH`>?%0|k) z7+DpvK527mzD0x4=SgE}%aI~=XF~&=NAI`ydBZD0t;+18Vhz~l9@aYUJlbWgY?@Wp zm7$Zp^H`+zus5TtRLA4~$hz3|@B-}J6Zk%P_Adi->P>M-C{+$~;T6D3m4n!cQe^qa z_O;UO>`T_(KxuGza=psf(+cjms!st*d+Y+s`NfES2Uz;oI%L_%nt3+Ut^8B! ztbpy;m@h97ST$LkS)FS#x79yZ$vaoFf5~~35{|jNi8A?qG>5x5bzi66A83Tr{>+Fm zAnittaq2+L9ZdTr(xdoDgSw+n);isUjcph)+N`;uRkmuKq{?=&oGRa$8J4TpsPRVX zIRU@z#S!B+o~68;b;Eiyh{wP-Yijg1*WI%hvR?!56=|GmoU-kh@~zOxWlw+&(sh%) zD2voN;%am>_gj7`)RgkqfNU+YjZ?O9xsKtONPRtre2R(3j_-y~OQmDhA!mR8L_r4F+f;jemS>+NR_oFX`V10#mC|I}|b4;9GAkY6N1 z)vnZdEOY*2Qyxrd+s%Y4{+-+Yu0d9WOx+hp7@2o=BdbLA1D*p*WzKY-)f>$V1Gf7=@wTB@l{;YX~lc; z=KSk?OQ7`D)^ypa*(eV!ft zT<29=utvOcO+C;9U;(g!A zMqe$UaxS9oREg{+##lF2!XOI$4YWHqc?5 zr0xnz@F#2;F;?(w+B9ss>`|A>-i~D`agIp8uOMvYME^nz_j(=BlhAn#9;i>_hh8`I>7l@B$1 z2>yDo%dBx&&0E}Obce#yG+hlv4Vmg2QAO})eLQ09B=%JK)YI1As{dK`X<%lsFS2Q7 z@S@1j%p-W19~qc=x(G@U9L~c$5qMfK&hpKZkld!jmDwg$>SP1)_kM!iwbF0xbBhaI z+NQ2TDTgt__J2BJoWQeL_G}_hs4@PTbtv}O7%?8z<&ZYdVa_e*uo`F7Pj2zlc_BJV z(a{lHh)xl9C+e*9B?po{fSnz|iDzw&@;lpT;p;6;H;i~q?+Qoby z&CvFUc*HIg5Vk)&YFr*R(>Q6LP0g>=RTn#BW($bhdH7Uq+Do0)qbIz>sPQxDe=1Hj zH{xiBKI?~lFH-NVbP~2DbJV!S8n3srKsJc%O$nsZ&78*UyBkt{w*;u1aH~H*YCNNTQcJbJ&mNPk zKEYuc*`X+;>?kj6EbUI$E^(r-3w_})jT#+1n{C6kevtNix=^I&xV=sxLRRk(;!KP<%%U#+*q-o@be?>TB5FS_jhkmj$iGKWU0QxOR&`D%bW2KP{l%REwDM<3SG-l!B)>M#=Cgm$cS`h z1iRVaJc@_;5yGAp-`#`0E$FM$w#Cl(r1MtzyW`&Ht<-|63Z3Dj zm{0y-)EvLl%F*8c)Bf%vY=?)bT9O&$WdaX>x0+WM6Hg8C3>`db{9Q7l$^o12Jj1X0 zu-rYIRuDKhobGNJKYG#C92<4q(ZtlLDRiQ&f1cNa);zUuv6-;t^G5Z%p6WgM6*32H z3X9hw)JTrf=6W^6k$W`hoj+=xvrui@ilZ_6gh&hDWo^TcvxdJ8{<`>E%U>^l>-p>B zZ-Bo|{0;Fp%-%AGiUo_(StnE|PXR^n@1Fsj!vmVKZv$v${2^tQ`9EXxdC zD(S|@WZDaLE2#a?#p>{}MzN#vld>Bpp1k5w`j$Vblvda{olHSUyn z=#Q6sYTTUJ|zqLr;bdK|!@o1XKP&PxHUt-ntM1HaIFSo(XuNpP>LyuWjC#iCj z_SOwn3N|K~T3hIK<2j}+QT0_5$vYxaP^z@6b?9bz8K;h#d+NbcRp%~1#RT$Ny59ashf!$gDd;g zu0h4}Fi5;P6_nQ*qlVZO`APfELpB>(`q{%Aup+QxumuvBb^ayTPSI0=yb-xP%TLOv z7Fh!_b#@@FO{UFRky(_^6!79Q2z_V!+gS=*F zreh1(?3z*YjI|nz87ZuDfYjBBnTJr0>YfJ241@(ZM`2w>D+#GVeev9Q^K9VdC1yPBhwlS zoas&*kK{e4S3O4|mh)EuES)qw(YT)gpdY1;Tk1UmsiQ{X?>=wTP-!_y)+E6rpQDnB z!P>#H&!<0Wzh>Gz&+eb<9wT0;^N4DZvMa;r+W3o?J?}XWpGZ9Qqvp5jXhW=R)Q7Dl zeNnJdu%mdk+K{?TQLwpS*ZN@PV9)wsbzmR+U~OP?F7}SE8|*9}tPkuyA8a$&J7D%2 zg)?yU1Ia_6l0Caiys=!clYFp3u)BS*GO+i+%0$0ep2|Ni@zsLudg|4YzSDo1nm1hST)$8 zK3Fr@$v#*I*o8jWIjC?x4>ka{-4)(todEla50-ISIPe`GY&O_@A1nrTv=3GRcBT(j4|cf+CgZ?r zup7Z-zUV&=m|v}Njsvp^J^=S_xN59ZYdY2l>O8X?MlmTOa8%%OhG74qOcHe^DMa=(^{B zpiBB(FS=eqm)fIp^&fd7)_lKbAq!o3QI?FU^>G5u2XNGWi!Z0j#fhF34(xdKsBy%k za(Bj4?c$Wd*$d7wQ*zF6aa!P%!s&E#@X*QmGh7;G?eNW0vmZ#Eu7k54jqee`4$_6SshZB$9CFxRjP9NnS9s4E99v8!3`(N-|;Fq*)d;ERyhqsY0Z7HJ`|M9iX@yMs1%aZ`F7=by{E;(Fis z#Rfaase7C@So%*5{J+6pEM?`2-|9cAkDs6$v~W7$%xIln`EG=>BOH5Q!>2C!yhy6= zNcm=+#~uc}A)ejoYYHE%-bKWF8(^IPHfY$IRVa6kOARij3WPQOpSPqgzb zyzu$Fo45_Ux$wr}UGrJ-*;T4+TOGUwH%y<`4e!Qn;BAKY?l$mp>)6j|n_fDl&6dHt z0^Uz_xhPx8SjJS&o@sDU!?gagK5Bt845vsqydbbby0L#?kfb|A8*aYwQC2GdFt8DWp%QW>t0r z5KbMOHaN--Od3bwq>ZD(>4J05G~*eB^E8}?;XC?sdOaMUst2(F*%yWb2i!Dj{MpS> za{~_>aGlczNIFa5{{enX_>=PHJx6GU^A|Yh2}jvQpMJ}6iIlxk^B;I$Up;-^IJ{%F zftP<#IB?T8@T%awvJJd;c-!AR{rqi&H*cCesk^NDaNtsS(`lD6IIG}1s_V|Pub-4^ zW2*hb$+~6hIa1eMaIS-MhK|Rljc}CQIoBP6_Y}O-K8qJ~^JZNf4vfI7`V8LXHci>~ zQg~myb$atC$zKb+W8qzA#b@2e&fI!McnOw-FKU=80H)We+Y7{&t%uhQ?>UR-JPV=r zF_m3pg(oXKkOZ}yW><01HtF(YOF z)8Y)C?}$>ZgG%AAf}d}lPjIKXAf5kDCtuRs2LFv-dk{>YZ$EoeqBL^;z@T=xIaG4fl;2M@ssX zZBy?BFb-Uystt3d*4@2?dy;T3NjSUSOtYltoxEk@@E0ZEl-|#K1j1ns?d+S(oNdjFN+IDK59mJNIJwp1!AetZduXQ#=NemV><`ZLbDP0E+&+P>2{ub1@ZUBx+j_-b7+Rom%Fm5kYT zD&ei@c8>Axd7Ca#bF^0dRMNW!UOzmw-lM3UZHGo~`6Be#%h-u6w#HtmlTGkfK4hP* zx9*Ive3hv+)=4U{sXmp}6b{@!O->BXui+d%sa&1wKQkW5oTRM|&Y$4eecb6sO{MKL zSK7MZd;&+Uk6m*fD;_oHF^!$%N6K&z&W;aT@9NlnCS}{L`HP-^T<)xM;paBv7lHrA zq`av%lg_^^onHa}`#;}yemndD`08DwZAkwh{L|NNJ3seo&WLOyU)ewSH$P(g^qpQJ>C&Jv!@$z$F$ zA+8EFK?ag`nYAJuc!;peC9JEwowm<>#WdBHV{kT4lT!z0*T=R#9x2N%I7h(QV5QBk zEYtQIS9RFqIhI-RWVdi$?D4JVNZTxeb2c2c9#iec zZR53t!Q%(4ZF~c~pTQfD^eG(=Vnsj+LRm5?(R9FI)3MZ@(q0Id%^wf2kz+ruzOVqn2K% zqf=~iFM4CWv z>Gi^s^w;w1*w6ZdM$BoK0|srpd{= zJ{9vbWc=hlugLkV(`K$Bd&a=&x#P3=D zT#@RvkU+nzB?gIO?Nd&hky=a09hh_&@*`tJxHTO37vWOAr&h^gYE4vUk0+wDfUsrj zM)kMTtUK0dp>n>8k;l?mPPl6b_gOln44Vo27sA?pAh-R{{n#-_ls2{w-d<0S8h7z5 z_QPvTpyj5oFP3|auNf=Dd<$nQ##cug|3(4{Y*z1Lxe( zy*JPX=My+T6@9i%Ot(#p4W?C(s#4Zh%6to)B%Dh$$EVDf zrdZ~Akb+g=z;~Y+HSV@}TUqA3lf$()dX{6_um*HpjV_=4*mN6quj3*cWdqm2kFMV~ zzLdcP{HNged{!B-s-!B^xFzL1=LY)xueW}T6izjqbKoqIxO{CG4jr>wD!*zwoMt%F zIRhbaZG`s%yromd#kP+Xm$c)Iws7EWIAxk+-f1J{G#l)T&yE_m3#QtnyRGQ)o&99< z*|3{-_aRalpR(c9!#N#}Jj+l1--_%MhfH*LAUhG+zv37J=9^K`0TyOb^{KLx zxMJ{n;4Pdot|N6^!l{Gv8#t5qnVjjVmUrnw&v6@o93hZ(`0oO->P)S&%@wCAC8XS3+pTymc>?_C?iNIx7oc)B&G0Uz9X8=zA zG~yOc_?B?s;AwIS;T$ndP7Rz>r^)GnQx8YI6Xsh6<`IUJZQTgxCOE0Glr}Sr>;`1^ z8r5Onj&RsFR_ZDHCiXLWD}G3Lukq|R#|+-hB$H8wt>@G>Eh{Aij`@zHp$1(?yx`o| zaioEdf9PYYjx@;F+zIa|@a%UBF2mBB=hD}MZ2(i>N>SxweiKA^gJ5rg?a#B>et7ZI z;%x!@&;ye)%UKf+e7?^vKWQU*$TE?Y^6Z$Gl1b-WmNl5=e3G)Ofb&f_k69eAxni*C zv&&9&b)jn&x>7!NPhD4Uovv|o{ri8UD|Q=a|6d$6o|-C;*MD}pq}*H4^(wmLS$>l5 z4rDJQ+s#@hPRchI^WzLpU*kNNe$HNWCD7IJ(x~wpQO-PWk}m6PdzufeHQnzeZMpDv z-lcfiJ}cl_GdkxBj18>$H;lS_VHG8F# zD+#>%s-&|N-q-u5&uf9V9Nu)xWj(yx;jQpW=PCZ_+yZZS8+Zln_y=DZHLmuG?_~e@ zs^K+FlPCS41Kt31yu1A%-BN${P4Ta#ZfU9vyt%*{$+&)w*;VKC?{u$xKR<{st z*H@kI5S_1Vwdm*sD+HS=E-9aW!ktLCR9Q)%A3}BDA}+ ze;N)vhOSdBU9P@6MW3&NHw14wZClEu9p2{$yvMIzuy29wC23LhbE+QOHi8v`+3#bS zWhpwxz>f04vhL))X0Q{rPA*=~u-^XydmJo%ES35x0(%u~p7304!QM!hx~L)CFyUIP za9e4A%hGLm9{gT(&HkNTrp|BP%V(jitx$E}(PqM)xD{a~FWDW~6T;eajg-&uTs_Z} z_Eku@#|f8eYn8}KkUfIz8V{eQeV2rFFMTQd_J!PTG0CSKItZWUgPFkhXe1UYr6fs1YXV?cAIqBhbhMPW_Syx$&WUo0hr-I_OJtGb)r`Gcl-x$14;9cv()A5~Z^YRFrcR%-c{K@k9tF;r` zUDiFL%o1GVZ5d%#ZADlaZyO2wTf*9N4mIAg=g5F!Ip`%^7vW~UNVNDq z@(DLUxNi`yo@e)5M9%EQ`0zrMiK>}P2_NWU-9dPJk0CXWHNzk82rua+r!rW$UV1^{FI|>=DYuWeneL%x_*ML|2AE!{iEw` zblq&_(YL>u(>;AwBkw`Za{YPKc-7)L?T5#CygJ9wrsi$c@Lz;~mj{1}vrv=fCt{;} z(Dk+VMvW~Vy3B*su51i2<{|5ZjeyOvb?RO?T=8%`U>siV(_A~Z=Hv7Ntq3uwq zc8#gMy?S`p!t>l8=lXX)|H4{$Z*2o_7~bB0nSOlHZqCZUJJ%{}*PKp{-lkr)PxJGX z!|R3TWru=C`SaS~ZP^B1AH2f9PA@*OXMuvuPI{;|}lVn_nI_eHQ(MT|-!9 zn^QiEiy~aqYn}&9fWH9l-EU;bmiL$SncAN?`;GLw{D)}^!`sHsgJC_4+xtYYoyPPBRddT zYJQ$>19hLRv~?B0%l|oR3V8OqC^fD)o%g5db|Z0C!g)F^{yJp8M3(9s&b7O^7E?8V zCn;6E>byfYypQ0$g5LDDz|F9iQ-7QbNwI?`IO|W+l7PP=ZkL5>|7*D$51DHJs!me# z3cfWVCCS7>$}Ep?4-w8TGkcyOyHT7!Wc;NYT#}6_fg{{t(QTgDa3No>OZu#g_&k1WIii#b-?)^oQs7+UHat# zYpwGjWw!}l9lTUIN?sDkYLPv!b+J5le&@w||KmolIcDKw+%1T%)H=`ChTLkGfwcEp zcy(jW^BiW`%57VMw}G#j0$&Th4%|LFVe;j|QsEDPzvsi3@*D%-{vXcwTikV*8qVwO zW~t_Hc|G`O;2j=B3H9K7ze(Md%<<3_+o?P9mvL457lK|_u|kzJ)S;{R1N*%yXFpT- zL*o_`$N{()aSK5Fda#H$so$|eDR9r(Bt55_e= z>v8V9{BYF#?wYcN=s(})=YwAYzPFQKW#c8_*MKi^;=!2KUjx1t{JT#4G@IWF{tWno zPCR&*=68cH`Ir4o2<}ZM|95M=AABSDb1wdq8c%><^l#^V?ZSUS<5^FzuHRzaTa?Ow zuvFvu;FaLEU4Vauf>rsJfVY6Fb!CcwijCKRuLl3VGkxdUcq{nB;Ehf^c#)338$9xn z^NgCLf0@Sn!RLdkaWxfx@EnaNz;6fN0zNqehntzf<#Tz;6cskqbXmSZ4Td|zk$XDC?JZ$9|D;3ZBxxIptuz<2!A>7$^2F0=VH;NJuPwTs`Y z`K{m^!PUA3>t}Zw22B9&_Sm^H=HX z1`mhhM${GmE;{~x!Dq(JyR>!sO#>$ROMq8`w>b3&%?_;c|0Lgq1i#OP|3s%RANF9AO%689ZHYQV1t&yq1TmHtpDC<>(fTfr~NjvGh0;xEzhcY}BD6gS3P`1=Z< z1-~D>;R|u|JEST7$VK+%Y_$eJRkf!yT*i05Tzct`ze~mJ5>AyznZw3F;*WNz%TknTz`u}_3t`6 zeKp{#!PUJ`n!j4}TfujlO&f6Ke~HGs!54tP=feM}@qX~__K2JJ2x_%~@h0sb+#TDR-+ zy+z|$&$7PxPTY6?oDcpQ_`5Fqwn^K!67ZY$i96mQk@VT~^BV9Mz%O#8?`$1^EBM#; z^-o_n_)oz7%BLTE#`ogp-mT8xDy=^OUJrh?EBy^R{aMd3zuPZvJnc$fkLKrtU$TGP z^uKBS8#G=5{>=m8j_+(p{>wC816~ELz7Le*hfcKHKX`Xx-2BF)#&6YlH+cT{{qxrk zeh>JwuJr#>$DaUScu?GNwn5T&s>ZW6P=DaRb@6|r@qF-kbK~Y+TB-B}kJoq!_%-0N z#@FNHas{jYSp$9t_z6xtc$DV1g8uD+V_?PQEj)8v)?l;C|KhJ$dvAFS}i=WW^0`Px> zAK)9JrbB``{w+rWPdzN=F|Z6vg#ib8$QriU=UDZ!37^T@NT0S3T!IwWqC zdteE$L%>#eU>SX!#{qNA%`Ba>!3qye8&|+&Op1Z^g5BiQ8N5#AN77RXzSm)K$2S78 zImiWT0DA|l+?iM8QU2C|?Rq%vz*P?is(JucajzrHfk(!TzlcDW<)Dsx5d2f{@1^ON zbZ-Is;!$za*RQ#MR$Reny~tby+;Hjsm&OahpE=rpu3ip)-jCAq?eMkLgYRDMKUZ4= zeiry$uK3sJ_ zqJIMXB5-xblFq{xorm0h)=Ovlw}H9f-&h`Zd>>Zoz|i~(@XVUH@oiTgchhCq0RF|Z z;>M39!#e&J&2I-^0lv_Qn=T8p|AYSwywQm}{KbP3|JnY1Yy$jfaC^U8(!WT@pZf~$ zr-PsD(r>qsx!^B=pW?!g)%*(Z&z}DsFty6@QkFe;xR}P5yJmLGU>EjV}GyYW)-7$2YUycIiJs z>(3ovu5&fz@8S<>{#@|0R>XbxgDSvp23KbWbp2eV`3>NKYtrT%LE9hH4t^Q<0nYf% z<)YdD!B>MXb+wOqx_u0S|LWSfd2UX}-=yQ80RQ%N{{E2M-!WeT-^&^Q$%?Mxp9@|N zuFhs_{Woj<72t1x`}rdqz;|ek`|c;TgRcf(=8Qi$U+Z57{tWm7F1$nIgW$z0{pYe1 z;5XmET-e3GOY?JI<6X8k|NcD}e2*Kk4=%pFA5;N;IC#4YxBU?f;IDxD*`Idsj+?yK zdr@?*1COpw^C`=E%4}k)j)n-+N|@EIG}u0q!0%~;H)Eq*__?|aqTt7ZAMe8LHGK^H zR&YO`T_yMi@FQJ(+h^Da{%`PaJMoiL^eX)w;4^OVFXQ##dxN{?`@zF>`iH1@aU~^^DZ^r2l{mUmEgYv_w)HQg6FOA_ZfD8 zKMn4;XTBc1e+qmE{4H=lpI6{@>i0H(pG6e>Y;Zpt90Nb)c7LBrCHN!YetW)+;KShR zJi0EwMqPd#;D_Hq{kUx00oul`2S4{Gao;`BA@KXbpLE&yN3@L(yn#>W&baZqtA6`+ z{88|Kfe*RxH#Hsuf1)F9EOw>uhdO%lMY#0I+X4vi0iZ-1YE{DC)_LxKC**eLkn;9Fez|GS-k@NeDk&#we81E1&QJN7Ia z!7l*!>t7wOmML z8~lE7KO0sA{;3ZhCH^Y#qq^hfz1*qviBHFz%BebNAO^qU*T}{L2sf zmti0Hd~mP5AxXn9_+{W!i__IpD7x$#i7m-K#s|Gt7>|Z?F^_x^&5lK63B~0Gq{yvRv@H4;* zgpf*~>2gr~e(;OI{cKGF{C4nhC*OJgZIH3<32d>eeDm%6gE##GpM}fTzpib43HZDx z@!2@_pJ!%K@>c_10e-9#587u4TETAtf7OLQulqnZ_`;`{FT2urw@P0WPCxj-y14Oo zCoXOLT@^%?(HLRw_?7<|knFcy&9ftlhQzDQuY6H)H!F!K83ceQn_uv_>Ixx%(f=fHxNSI%|n6^)0VPjygfR*!a z9lwQT{fYI+OKInSz$9IHU^jvJ?VT2bKLl>SZ%f~E?9En#KM(#rbm@4{wA)4t_#b@m zD3mVn1o)#)zRdMIZ5{oDx#VU4u|5HQ8@ONp$a;r6^}+r8P5I#OfcxdK1bhqlcb)Ao zw5RSrHQ?L75;umOc?iCv+g2<1tKdaW+;RS(8~g)szw;6O;CuYm-`|x0uLbwpAI}X7|xbk6ZDz^Om@Z(Tm!;P3p-+x|)$ z?FVmq&HsE$0{ooc`|mGiz03P2;0@0BL+9)K<%4Ix&fby>|FXtQz;}KlZr=5)`*ya* zYrr$#^dEm(!7l;d>9M5?e2;hV)j881T&&whANWz=hr94%jSqvb0QVdFGv4DqEO6J}tYdFF5Bz&W z>R(RYtGqGO7WeHR6AMtQGuc;HzEy z>ova{{Oj?!v7IxIp-(j44?Z*LKfg$TA1t^_|KXaS^%wfU-`Fp4;n!(AA3X7Qe_uoi z_{ZSqx!Rz8{;UT4kg>S&9hd$+wEkA`p!3%X zUi0s?eeK|hn%@oH1AeEAe~ae#gMaTM_H$hLB8?}&PyP?(=fbNsp7lO^av#Typc4;% zq~p&Azj=c5K~6l>qxmJ^`+n*_f2{$37u>IYTEUka^dDFGy`tmq2H!1^@by*pgI@}M zmy5qf^Aq3`;7J$0S>sv5yrVrMVO;3S-&s0;`QTp9so zYrua4zK@e%jE#z#HcFBuW5sI1{dW6=@lO%xv1CN2vj@B*BjJ0_awGVM;B_v(c@RnT zkApASA>q5PmNSAK0>8z@U#a7t1HRkm66QC~Qt1nQLzhz-_}-Zb$2TElU+yH$uLHjb z+_e@D?WFmu!OzV~c%BiF^!I?j1@7l7*a-f>jtS#_SNead;~xhvh$M_k7jB=E${A&z z2>vr?J%#Sp^*jgssHAZdc=BrrzrBMB@Y#6@^ZUcv4&1BbZvcN3{BBqJZqs-> z_?&Oi&cg&q@k6uq8K8CG^Y%`d@AIbc;M1Bv2>w2}-+A*1@XYV}+lk!2b3OyS-jzPn zp(yn;7kmJGxeGs8$6o=yYeB-;#fcxP;6M~v1NhG1w}<#gD*ZAZUK`RnItbJ9y@c@% zrw;RoiRx$T!LOeJ9|B(m{*IF$d_(IGj4>yj2{XlJNCuuLu7w_>->kdqkJt5crGB629x!z(46DCH`}*DEKcA@$Vxs z@I4Pr7%#Z|nZMdj8kp2?CHO043FGUo^8b=9|3>isqY|ELqA2_h@IM}%FvgwjNBYQn zb|2Y5m zsbW_7EGEpMCnS8|eX0gu4xZ;Khp+2$XaPU}ME`!&1>RSg@I9~D2VQzo!Z^m2hfX9QG5Df$66QVV zx_lp1coa@G_`BebyZGG-7m>u#N|^I%6TbV*-QahC`<-X(2X8nxVa#&1!O!b9m;kRk zFX6kFpY?CPS$4kvSdtIE^92ddv+k1q67Z|RuXV-WsN=5z|J#NB>+@Fdb1w29i@U*> z)F+J3OM#`zc#&Cz5`RBkPLm*_Go1^;WKe?P1RKjli+ z-mWtKk>X1p+raO+3jMD1Sud#~6F+_rVS-Hw_qk={(gp^=_5<_tgO7oqHU*yjAI`IZ z`}x@mz+V9O+k+|v|7Z$+E%>*Z{rhkm_~))pnD@)4%GdFp`daXFz+Z8d-v(WN1K_#W zV27Q!w2^VMjYKJv(A^6X1`7 zyVmicfG*423Ero>A>lr6A!TreSq4#b#0c|`wuJGbGmR4FDZ8Ai2y@Gg{{FaT@KNyh z&}Wy!A611(9G&0~-IOpsOpn97`aso1A7L)PIpO=>*f4mI^wB!gv3v8@%wIgz=!uA8?oU2lRtKd%wRwA_0C;SHg(9=4gM`Ytbx& zGgRIFe#Lz7=N?KpzS}EvWb+V%s(GcKQWvvuHSj8b~Mb9|l?ifqB&r$>*(CNqt%na=P4}bsb z9Pm@Xz0NUYqrVKi@SphABtm|3_^U=%hU|F}sJ6-Vf=wYlMjgC~>jSxVj2qvUWft>n zUOKoa)4cx;UIN~}R-b6%Go#VqZ~1_ANhD)wCb!C)#G}nmS})B+eI9?C;EjJ^`DhQ1 zWUmk&7jH}G#hFKPTjBHEm}Z{M3eT7sm^Gfz_u4cCgV%FOVR7b({C7!aK>R;>gxN@# zMZ>3~@ooPv!u<$a0XyL_m2q@qq)$kA&X{RtUC(VEn{SJ&bG)vIemo zD*fDjXMOK?Q6#T*rhR|g(#X(^(BEf}Ebhab^mzv8GB+p;&J0v-VXwz3k5xggo?I#A z(Hd5FB~uE)RgvPlNa^vB^7=?+StNFNr1+dj>Cx(ABl==`bjeTB-HOhkj}pfAN@B`7 zkPW8EdXQ~GmMV`z!uKKDh)m5b)jfer_1%8zPB}@>rRL?0v^?{Y%%aSIaKoXQf%5-M zpDXncgF6UUwe=EdXX=w7s*Wna#=!QK{3z@sRY&FgvmPwx7l67x&1SWMjG5$b8@SR2ir|(T-ff@~tOhK-4M>?bfVF|uS+;FOaG7ZnOM^dl z+Cj0|U4-2nNNWF5Q*db{TBFRFvUh#p;TcKuoHu#5>PPO8?=p39lkwtAb&u>gVS5R? z9=%ddt#Z|?{oVDNNFiqHH2H5q5Q7}mS3A$kRJLT!cG#C-(qK9<$(ATvsM;>yLlIlp zI3tt@dfE~!yg42ykMLWxp!O$LXElq{8MlZMQg58G4LT zlP>Q3uE)I0xzKvh(UqArPPO`XtMqTH{xEZuk>W!lrR9<0d6>LDXZ_LEE8&mB-;|X! z4$`*A9t-UHvusZ+SViqEm}G61WdrL6Xfh+Yh4mU45Y2IU`>~e*wAHlMBpnkyiTkBFI+m|7yfe9qsiSgqtU*WJPD$etT}Sr# zkXA=BA{=jy56dIVzwJuwXeG%?zxWn7P zEr2@!w`7;3x$kV-Had}f&!V7~?qJ?)jX5l~(jU%bel;s;d_mI6PujsOWV4Y)MWEWq zVY(g60m}nhB$#Rk)J;=}kH}T4nd|~WNWyPV!z3Rt3iPlU4upfwVbD=pjs;>q|KEGNnDOhMTuXQqNzd zUb~RZMmC}Crka1KdSyBjdJt94niV@a2xlzMyZqIC-rQ6y*3H!h7f3HL+jZ`aGXu5X zvfH)TfC6MS$PSP|s_wb)yeY)@YN&g2<)ZpTIpLZK=WJ6o$l8!ah3jZj^6wU~)nKXf zolVTI3W8keE(;b4T*{@JFoAE|=@Hp_WE1dYjU_*kZA6wwIHznFSs5~CdM1!nB8v*q zksi@8D?k(e+yBMqvtVwkFwRM?uIzNkR<*ONPUs_yikZtscD~9?WuuWjA zt+*zAzeC&C3n$xG%f@U$$DF;A`kVI7JE+wh8S{K@T5`o+$XsmB=Vu1iz@0DgQ*KQ` zxr6)AOlnHuW#D~2xb*Eh@Gam!u=p#2HOjUK)&`cFKN*wu+zl23yG@TP^a1DGLCv-f z#)P{j4QifM1wR45WACIfB7NvEu?=bCKIOJzJL~&=m7(?COTgmH(7=pH#&gg2zw+Bx z=S3=;wqLPb>&%tmRiPUgtBO%wmQDNHCuzj3bWVzAiH?VfN|2?y$7+VTs zG)@v-{G_e*i2gZA^PHq=YviL<)}AY{@vLt|E3@7-)1tUzq7UwRQRc_JaWc1@;Q2dY z@AgZYdz_{E`?-AP%8HlC&_TDM2nxpIz7+2v!73jyds{9V7*y}=oQ^9=$^g* z|6aG0*JgBYLHAcI+qsgpL&_Gb@> z7i_6u#BHss)VRafW?k#v62is^`yC0(Zx(-*$SROY|3!C{_95n6we1G5Mlk0(xeZwZ zvLhutKb3!EeaO^1)}&!le^UL{ny;4zd+1L{D4F?=&)O1cCHltD)&GN}c^>4mbXA5T z-Zo$%h3gRq`X!FC9M&g4Od2Qq^?z4-Rh#fowj}c$pE&A>qn9{(4yK&8Dh?JN9x;?; z20J~0`I)SK51UkklDC2{&J482{{QkOW7=xs=$e-_Ubp5>pHbiVKs_>t;d#;%;2SOT ze1OmnAslC}!;6)a1d-$UTvl9yU!CCK*TS!`kxpV`ddF^9iauu3pBuP=*4j|UMO)QP+W zxqaRnBQ0~z%8T@BZ6TSEumhsMBx$~+>?jX4!5g$&2``+tE>aXwrC74CK_dYH?)k%+LcfJzKA;-!fDr&^L5s(vW$I=<}O5 z)&{SgJa1f_S&k6bET&&OuZz`srRdAF&!gRTyc}5$vXl>A+GP#0Y-A5enW*tl)#Eap zJ=rrN)y0w8MUiS|R7{g+nM;YKnFR#xgxB(;q;a+`OZ6=wRi}_bU!fh^rB|ZX?VI3i zC{OBlt!3RF3oh2{3DG-2n7}ctC$wJDV|}B@Z>?PL73KqQWPF#O)Kd|%VPxtaEy~q7 zmrl(ug6SW;U6d(qiad5@^o&F1*P?H==sPxP{8=JU`uG%PtE{o?@!n&e#bn<#n(d%)_2HK^(O6pHnM7DKNX@~ZxqpTT~p!>y#AB`j&Te5-1{AS=4F-3>n=YszLgg~#KM5suQY)|9f*Wq!?!g@yFjZo<_P?p_H; z|FilOmZB*fTtHHY54VQS_aNcN2){zYTfZXyKaRZmgrs>c8qTDCKth{X2UPM-%jAxr zx|1ruxw)k0#H6vCrCaP3)kCSPfVQ*ppU!TP2^)bFN>Q7l`k(G&nFhTGr*o z=va%6+>?^#d1lgngM21+RS4gjb02Pz_@0+UDuWOCSp?BFfv&aa`YX?-eVJ01@4TuI zdhu6TU!Tl4WX-XiWvcoB-~A2cFz(2l)L}o$;Woo9JT+l{l}W$76jA%MDsHF z`l4$!U6gsKd&Vnmdm`M1c%k!?9GX&fr`z)$*e#@AR6S0~N03$!ivKyglH z1Y@*o;pBmLo{==a9l*c4`J0QZ0P_r-QNRWpBd;zCiYo=5-tbXrZia|vT%)U z7bM(VWC3JOpGqmREM!q|=UPI-*MMcGg>OWb>k(e;PCHl>>}R4&*@dO%_*@XI(T0cK zF72<6u$_cGL-(yozJc1%=jqO_@oSM<%jUHGPyk4+Qu(zbY{Xh9Kq+FxBQ9tJ=ja{rcgL5y{ z>esO#pRaTEM0~hX-xY8J7m#7l3cZt379vqa-qM zWDYPtGgy^+R&$JDcpKrZ5uUOo_;JkhH&>=+n^KqAvsph}nl!$&ovGhBj$yf1%(TYn z%1{Ao#q|A2)|Oc9bg3N5k$GJWy0fpu&gj0R+CD8^`_E$H4Rp=oSR9CV$vICFA3;*!R2I9Cz4I#pX~MR&o9q_L}{ ziC>hz4rFtY{aS1Y^``dULXXWbcm7S@2Eq(qV~<0{1l@#e9NBBud}PvEmXX-<^~(0i zt0dNA@LZCagRa?oGJn24X}&=Ohq6m49SIX|hsegUFm^QiW_2GPSO^xb?`wtK8vQkp+;Y z(j#TkfouZqk3IT~nj6w$IewnjX%=S&uSgRyf1ZWDG4z$RCG~xpO~Esi|3UJTm4`n7 z%$dh1vWhg>9AxFloOvupR+c8KKvs$@m7lr9QHxCCPtCcV>m#yqiqlr(B)`kyCQ$y3 zweTn4tM_1({lkt~wmx{0?ck973`+bzcIRhI;!l%>zcn*ZjLeyzS;&eUvKadEk;Ra` z%Cl*ERot}CrZAII%k(bFJWoF_$P6BrlACR&79IWQNR^4qy_=EsAya3oR3Bfi>O`WE zd~|{jJJKSuUSyk*sWUTHxPD|~Y2k*DB^)w|Z`{)NO`h4f%RWN+)8s4RX1~e#HtPd8 ze)t^lj2r#&GVod8r-}Y0VzY3aaQNslVkkgV2VM<+w%}?kVhmGbkyVQH&xM($cb!Ky zes#g=gk$f!DtpbI`>82wt;%YEaO(({Dqkt9&B%HkvM91G$a;{;QQ5$8lmVwt%`c^k zz%2LNy|71waoT|bWc_KfB4mBYoc*R8*@m=mHOSUGWHJslB9rtEN~Eeim&#Uh9$RD_ zlq7qyeUyE;>=?1Wk)hq(BkzS*b(6jJmU8V!)`;vWt!t_78#1un=ImU|Da9TH@>#E} zp1fX{u{0Mf3U;W3bIlnp(q%6377?zPaOz&Lv^j}*ogQ(<%LFVBPCc9rH(NdkXB&tG z4L$ziNfn#XN!a0Al18hwK3OUAJEuQLIdx~I8$q@2DgKVl@C(-@jq5CatDLjbey&ow ztL=*{$_)M?Qhr#ZazUheex!Cuq!b1Gq#fn&P5Itt*K;+sOS6`*%N0ns*l~p8)=5PR$g66@qO9yNBoWd8qig2x%886E=yv22SanNyj^m z*7>P|Aepn~T(plUVb>6L17VNn*~~vvxHHY7lsUYlZyjL*9hMzZ={riL zng68nIsb;xqE+FgD`zfg-EMKy_Q4U!tLY$+ddT`N?fo9RPe~k6WOI?JIk?&zG|%_S z*gO}k6imJINgYg@V>$gF%vbL9p0B7SiPU*3`m*m!8eiwx%(EGn{8Q4`ZQ;9#fS|m2}Jj>jO)rL+Z8| z*=A%9TH#j&Q*~>NhI9d02S`5a2wVNY2z;>mfToqNg6&24o+&_0Y)GIW=yzbt*FJs~b++ z&nK6glusX6Cs>r{^!nN?@q;A4d z@r7!iqy}BFN8IUXL^c=M?viePGVZKKR*p<;x8y~y&7$X~tb{7pb%bk7(>H*uAx*X! zSv@j!4+koxPPQOxMwZH})JfL&Ons?+YxmqV7G%%CwrSS+lo*_KkGk_zhO8G^O1H#U zjjRV*7SHk%Sp%}Q$ei9vraOKF#kex3?e!{Im7VB}BRU@*w z$ecdZ)yRsGMTO`%k0CnNf|aC&-+-*#C;SjtMOyfAWYs?5v-e~FCoTMJWc425rQgNC z8o=(9wBmD72RxX0h+V1x3q0=a`xLwZykH8v9lX*9m$=t~w}E^4PB($|_+aB;n>;Wn z-|YSIpHRQ4dXxS*8`&`7%Xv2YW9r;J5;qHU7ex8byla}OwW9wzjN*rdrD4+}HJz6B1T{XLyD-*HuAIC=Bi z!>9~>*W11=Qgfmbbk+VUX`H8Rda0gg$};^RmrY-w{O65u);(kS29&L13CtWz#-td@ z>i{1FS9ccLekv9QoKCdLeqJUow#{1h9IF^M;5nGzXZ~v$|B^b}jE-5q{@?p&WeyZ8 zWPOS5Ypgtb>|MozEbCl8Jut!?Pbf9`*uR;lX*x&s@MMxKXHY@xgZ zr{-&xf2mY$etNXeqD;wm;epI|o==+J7F6?Z<`mYN#F}>%1fL<3ECE>Enn%zM&6Hg{ zr)OVHJ`2#-g1(I}aBiDt$Gk$#2V@Q9+Bas#C}ZO~IHi3_<7%tySINA_xo< zpjC1fe`R=Cx~^EL(Yyc3=@pNvw&Iw55ccMGN#nV#i{pyv#vx_WLL8kh^Zu4c9Fxi< z7P{H5Ohng4bQQjW9o`yUrJ-y6bXB4&I+yYDwWRU(*650bZkcZ0r7txT$EM$NE?LG6 zb?!>lq4N8xcOligsmh)&jIZ5KQJ+ zRp{#*WN+Qlw@UmE&i+NNW^kF5N!N!1bRX)3KkFUaKOlX-7g-LnLCcmo`@ZV4s_&zC zhfuc1MvW}R)SN8vL*|=*wsjXG&q3CO>^)2ON_n@}>06NV!p~aC)y8d}+Dk5lTk%)U zs#@jjab9@sjNn*WNfoQHuodq5KfYufC|vxKq1lwNIxTCib-Te!-%lDFfgLuI^Vdz` zlXNAr$6~!bNsX$twX}(0xZ`l8iOEm=FB8bd95Rth|H(NR`-EKO!So%Z_R7`~jkzJT zB$E?Ov+x-f%WzGR9}y{7pz8mqlsJa2N^~WLS$jC!o$__!pr2(P$6J`m`vcZO@E1h;?QVoibkZBHN6to@d7z3A@J&Et0Hd;&G+k%ttksNWdu=O`3OZ(ysmX z_F{6FI(?Ih-X-xC#K;dijzzpi{l4M_#P6P;3)6g{c50rKUey>UlF^^9Y;8 zbLto4VFGy+`R-O;tUg40YL#>4dfY1wzBRc#EPp_39{#+f?GLc#Kcr&?XHCau1pi_# z8qEnnvGTjr!O8er(%3^1!}_L)b5I%b$X^>+F4#4et#FpFnxpViu6{=Yt8p@2q!25X zwg;yAx3uLU^i_;G=eO7wYksTrsdq6J%Xz6{2Kbn$o4loF`keFUv)=fJZ7ZZ6V#r#N zox*c^pA0hnHMgU!^&epe2&?iz4N*> zQgE1aY0mWWDd)dsV34v%pdxhu^7%f`d7saZ>vMgwaX)U~??2zq1ZeXAmROVNPX!78vt7_ z^3hG^+d*$#;SXnIs$Jh>fUskP_46VJ%P`m|*d7rYO9NeA<~%yPENOA|j%5(+RSlgs zu8+ziqx!FZ@W!p(Tbm_6x0TQ)^n8R&D=nd*H(#ye#hO*bf08xH3GGw&S4Mrlg9|uu zBB41^heR)JK~{?wz8{dj_ipe;a6jLq{D#09z-lEBmtdn{T`_DNY#<_2!W{+c2aEbx zPJrzJ%R-O)SeC4&|Br>Q2HQ7J_y%Yr(ENHVzKu2uzry6l_sDIAeiWW0y41sd=u1+Q ziN1|}(CQLs;)586)(-7oxh|}gc#*OX0q|7CWqtsM^iMmp})^{Q*i#}{zo{d}$0wZHnc3sZyTlfk^5#L)sa0Cq(X zht>-n%f$49#?g@+2dnm69D~RkJuQqw+SWd>k?$w3i4(nY2zoy}I%kDF)kfza`ujNe zF!&cm?}c?s+zXtFA}W)rg>I5d+F(@^{@TY)dUc}f(j#cst_9N1Nd2jU*7^9!V2sq8 zK2Q1rwZ${fwVFz=)L14@Ctcm&) z(&~zBp*3>oR6=7uPvL1hsNF4&nwyfV)e7}p<&o9@j7jhFB1^~H z_>F80eUTpw=g}WTSd#XFeG`8T&DgWgp7j21{b}-=d}~)->2H*8z7(I-73G_mU{9}2 z%;bi$PInSPs~$w~D)-|8{XvY@{}FHBb0$4AeY8&;2kQlUnuc;?rK4a&U{?vIHUs&; zP0k*Z{a`g>App2~Ber4c zBz?oswh(@w&@_FzmWQ_dx*!ACT6Vdg1Cnn?;VG?~^lk`vG~ck3$hTa;wu%J^o-PB>XwbYn(5fH3xbkzVJk17e?R|`!%Dd} z5O(_olkR&;{1&VYtmMKFlfHW+ST|UgwVxf*4@Uip>*;k@Srey-Tw__Tebx}X`&uWx zakCkU$|C9`ChzV@?z2R_YoB}qd9@c$I$vX0&sBG!0CcTf&?%fJU4A%^& zd$MiP^X5xaRJYKNb}uO3zMvUjZ&!K$f;HuX3vQI7cJ4?lWbqwK9D~Gh@RCXIBC{Qe z-a8scSLP_^`K&_f^~5AzZ%d58?7St!QPPTk@v=#G4qbY$9<8|nyb8RgW74}` z%8T49~1L&yl8T1-Mw-?NMm`fXVJEWy(K#`JJXytQo|%=b;Et-*)<0-3crKj z;=AagEaJBlSM3#(?wdxc_n1{;y<7UA^OuO-yO%JzE6ui|zRMXo+4O_jVM(1k2)*K} z$-uuPZEgZ=8QAx%&RPDcJ+8J6g&nMeA6}68aI(>-^+x2?yb6DL=cG3flsWdN%{Qq| zQ2(6TVdu*j;&Q2nlu>Nt7s%^I-pOkwy(Q+)C@Nn~pZe$YT+UuB!~}V=B|`hVapWDm ze$xABkiM9m7|N4Xlj%DX#jVzJ=Bh5D{BN9$oc)2U=o}~e!qO}rj*k&ZirVV!!vDHS z@2-UQu4i(}=H<5+w|CJM{qXMTn)J@Hemm-;AuoFtiq?9F%q`e><@}U~;NAX)$zV;9 z*a62x9@qy9>p{}kuZi*cFUb~iDpqPVN~veH7vo>s6v~%ArV(t(8z&=sw9y`BW2S$C zHuhcp>DQ^IWjLhe)eT?s&6AOHWpyn>I9?3vr`YvdlB;J!SvzSsh^(C-9kCryb$B3Z8Fy? zWzvyZlrF3f1eHA70Pmi+OuDtn{1$mzz*^oq>1~iQR(Xsed&Spb`+;OD@Rwrsi<&O- zM&RB0_DSzWJj31iS7niM?EOMp$i|<83o^e< zwuP3Ly^2V9Z^kgu(`lN^*qmBEvLJn>94B-EeIwE2_!}hNWxFT6A6Plrysh@r((^Fd z2|MOBWtr*)k>Bu3+dPVl1Mi>oZj*Yec9QM&%B9&YDJCByp5dQAa87DY7l>pTIL{Pcv|488kqFTrA{Mxn>gsjf7g+jMOy`tN!Trf zO?_lCm@Dm-dDd+iP6@&;{Zo16W#tv?sjjLgh6uZKaMF9J>BC(zX0kDRxIVzf*ywed zO+q)}eAszpRep5Ro3cHAyTlGFTJvOO*}Z_JCkeU`pNhOguATA1CnminNmpotvfCXt zds}HFosc&Yc49C7Bx#tBREPRB-r}Bfby?=#$0nvISW9z=ct*x1-MV$+>6K+_dPX19 zM3N@lNz2P_^v_Gs_b7c0^&6h|k~Db__P?*d@>nZVvn(ZE>8ub}pK1x)_O;32JEw%j zPgQzu89N6{+sg20F!k#G2Yh0`Y=mzbJ{^Z}YQq&Ag;kzq!y~DY`qm3Q_w~tO?_!T^ z^G4M9`kz5032EkkGtOoC+m(rF(KLTwGn&>C@PMs==)nfSNWG8_e zAC_Fk{3_v|BjH+IrIU731)jQhGWgyO?};tRg86ItzgF{PmCS;(FpFJ^|iK7`Y_waj^DpP#+a> z{a~M$_W$tpZoSxSx6)7(8jsp+lAhYj8Sj4Oeox9w#?x2v@`5*mPk(dLdy?VO zc$e|q34Q{+wNQuY+1awN%c`W--$ugkCVcg`c&|WjC)se?KBWWLn`{!UP<=Fktc~9Z z>*_YYE!3p@f(D9RQ%SswJFuU>YyKJGVBKAg7hErQa)- zBXM*=Ylo)$W!7=hyd2a=BvN+0&{E^*IEjNxutBh8VE!Jg9N0dvYOpu+EbB~d9N84i z-?@3q0<&~Q8D4N1lfWYN@dPqDk#W1opibES8Tu8oJ!Jn3+tvz%Fz}P|sl9^!1YTW} zsr4!Bn~VDTuJn%*YZIe*Nk=!bPJTa>W#2Y^k=Yu3bFe44kO7s_781(!Ta1>+s=8 z_gybd3(f<7Uiy1M`_lGXOZYtDhkiWi&J&A;=PiOB;tKx}o@$BfD)cFQl78nuAs#*V z_bQA4mfv#1Bd@1+OB-R261M3P-mfF`tc2Hd?O^~J(?6N?R!V$alBdI9%YJJ5ZDVz&awB$n68`1=DxFLi%BP zNpN|mz0k&>X`6L@G}a_DR&24O_g&6^tPMmCUf7M_|e>WL9dls89>ifo0>si!P-kr|8KCwb0 zBgbDCa_WyydMA07{EW7H{cZ@lyN5M69pZtLVNJBv(?d4HwhtL6ka4DLoY6AT`Kxd& zANpWef|brZa7v;E*0Gz^iIQv4=YM2eEANZ-o&Kw;GEHw5+VMY4dKX$=M$=2`f;D1Y znYx76ZY`JtdiUz-AgpoH+7+y9qyXa?<;n#rZIE7Wnuw znH9XI%HOm)YURn~X5qc7~l>O2T_)|)zy#JXm4^&s5 zFG9+(MdGCvtTo+;oSM?9pbpm{yBn+>?DITJ-fWZaA@pP}Ko_}HJSeSI_ujW0M`C7M z+O_R{@En6j^2)!YjT{8eK58n^Q=&5_z^cGBY-qPIU%){elJCfujzRbrzn1=#u>WI1 z1KT-L6IftoCaHV>Xh4K z%5RCgKk&_xOx9nwLV6NKqpGUa_-3M|y?p$<{Mx{jwA%Q6V8D;|ojE6aRFnjY1^ z$c4Yg#RU*fl?<)Z9bMA@wi+87PG8kW8AcfWBe zIJ-G0yN=ffW#_m3!-U;^^OW;}z$^OiIM@W(lTDA?UYW3Ng>z{12@wY2QHDrEi_`Ceh(G77&L9RqX+8ICa*Lc{B>CSGx&& z>}^xtUnT6kliQe zOgWoH^-20lO>FwzYCB51Y9!3otyA8+EgmZyte2h=D#rr-oKMtK36J!x-S8c`b;|p! z_~N4VK9{)>7iyqnd^4JoQ3&q%DZ52?Z!NP@Gjdu<((>J&(*=-9+7w3l(*OF znb|{HZ^QAn+ThIHWG+c=hO2emRMz_?rWhA#5)(Y>!dx8BB$eyDfb;) z+DUZ$&sLP4h3wPOLw3n|dTuwJ&NmYa^BqB4Qim7cg#YKxDQEYqJe}_g%S{$BO%-xW zc{jj!48E(ay%v=>e3>7{%X?*+#MupR)yJm1qdZGn*L@t~tF2+Hq;)|oYPu!(fi{(Q zAA#=>dFibKs!uDHpVpU8FUXvgoS)h^NF8rOUjCjb?{*o) zA}={jdT@^%ixN+i_L&{94kD-dz?8Sc+Dc;GI*U<9L9t*C567StWq31Vfso(HU&$NM zXWyk?w6yNRUog*nhcs3GG&5zK#QpZ%cVh?7v!BnA! zsU2^l}0_(nQw2$ArAR?pd=D+Qt(b) zgs=MDl=o{HyW_jHb7I!>PG5d>Al&?4gq_G!hX^WHC4a+U8y}i-XF+Kml7Z-GX-5Yo z{2!-0+K90+f3LJgNDQb*X` zg!Rw#>i}y88v|Pr_$B78N9UJMFU-7nLHUV=Hv3Jq5 z_iEykYbk&G!A^i(D1eq1{*a!`<es=OLSl}SXb$^x7qZVw)tLJ6CV21GdE&X7Bs_EW%3T&;oVm@?X|p# zANmd`+(%`4VY8J(w=p^p~{-NqroL-rF+pS_P%0mCb=KWoPs`VHE%T>}2biNQ>kp4U|t+v^cM%grP@vbhDG0t+MtkGjM{cvl_p~<4@`jOR-to;jTyi3VXSN2K1 z2j4%H`Au@sz*8aSku+1MX-uo@(GXQNGIntfVCD<_7@ffxr z>=>9|<`V8O*ikUQ%v->YgH3>`Uy%7Qvk$^KUp`Ee{*9Dv>}zehzdt&NTCFq5HOS2U z8~UMqCiosjbli_VmhHX;ExR3_P4H}Z%uLYdBFnVEU}?fz_}d6A2W?$oYp6bt*&628YSF`X z5VPT%KFZ+m@cKTBn|!W?mwOSVZ70H zC2j~-u!il**5w|AXRLB2SSupwngAOG)AHcA)U!O;VX$ZO?Djspb2cU3iXQX}v~LP6 z;oa!~!+24M!qWiH_A_RJ^&rvnW#tv=)(1-9&&F!*hQ7 zqk6aw>`)AA1{(+S>yq$xfE@($>qR}-Ca?owFSU1%maXi-k{&`=Ajo%B?T1ZIYhBwX z{7)`S&jGOgV9~gbfQ^CqaZ8j`W z9&Fou=??3)ba3QyLak<$B=+h6vbvu(<9$qI(I0F}+x%lq`a7cg@bcP@tVaW*t(Ca>CA(zs(`@1mYlGTRr(k;(KZk{9)a zpMLI4u&yz>jyUX3)kbY9??|)wHX$o$UDe3ij;xaBhkcIiEf7`zVbV!zR3m8EeS{q% ztUo5(AqUO$s-Na-L0I#xP7t>K1!gy>KBo@pz6{%!j#xJcanqeE%E&ACsN;d`zcYUX z|L;iSJbE>!XDnce1X|ScrybswvuE7*{)oG1-h#Ia&hp90p1p)7jI10{4emosrHMX<*+i!~*Scd*7>x(sH>uCZk00_-T5|Bg}z7r&eF0hq4!(E8ux#w{&rOfJbwXTS=79bq@s zh51nh)(qAKroK7lzmehcsRbedj`d`m(4v8rC|#g~NX1=2Wc!Am2! zq@xk61T3nf+QG75aUCUjy%}09w7W!TXlF@#zuM)sYwtCX_Yii3u%8XW>YiVQKeB&6 zm);q*uV^pAa~Ph6my(CpUZVDpM1rEo21X9`X(K#~chFv6HskHLc%nSI)=O+CRvbQp z4YgKA2offc&l3JZCYO&}h;NwqqV=H@<5nYkSFKiQGJE zkYz3~LFGt!R_i`Sum0xdUA%klk!rMx?e!@lHYXjKs7`6qh56pir z;q3$K1@r5(*lc^iwu4>Av#TrWm)G+5_iu9wUxTawtz4-+h1zUV4<_Iph4;n;TT|-6 zmDGbkPhxj;!n0%-?c)`pJ^%1}P1k%Dckv9zwj^b)yaSiCuPww=kqgJ&f=eFk2CoE< z=F1S+k{C8>{82k?9BeV+qV4b~ST$I@9ZLSB`sg2_U1s$tYKu$$d?MPmu(dj1sfB05 z@)_@d<*Cg(Qy#(hS!?vf*@9^nmU?{FwF_#E?<7sL5>7%<1P&4hc?)s$6UU*IGr?Jp z(RCZz7WK@Ob>+F6${RP9w_H-*xV${adj0t}FiO52M`lMuVZBVf2YU<5&uht(C17n} zm+|cECz7Z8hh7_W1C3>cXB#xavlSk{-b#CE2kQpYIU?1w>H}rcufuOHTHad;*H5@; zIrf9?28)*CUa(=Xq;fm}Z9lYcN}5A`YW6{mIBvr+DEdy?)k%0dR?T>;t?YNm+RH*; zXG{8W3W$;o%8UZa!CUuU`oGmP-XD!Osw;6D2J2#T>5nBAis;)d$f#-je^1{YC%!)7 zi{^9cedrr7zx<`1ECJgN=9lGWuxhZaVE5SjKCHggU8@O-^imVF#LK<~`S~3;IFm@iXf?;O&Jr4XsS{$|Id0pGzN2 z%rf-uM0k39uIH3(i+UICDA}3Wm2O1rw4|?j#+#6gQ=9x@#&7Jr`4y2Qxm`q0)W4tl zdjbARs}pfQ*{)cdYlf!_o~jFHf_=h8bJSwYbM!&1&51Lz;JkE(H|j?kL*B;L8SgWu zi+72SExMOe$J;hfFuWjhaq|47_LovODsH2EE}9AE`lL*kf^EO`e((1@>pp`YV%B13 z$t64u(1+lO_V;aI`@sDADfzV#Yz*wj!l*h*_q&=MS0nEj>L~P#@C?GU@nV}}QXb|( zw#goGJ-aE*{BX!anj}4k;5iIWw9X#`tBs^b!kq+5#nN4IJN6g6{#>V|VJX-U*q3-t z(yaw)z)>Y_rVXCjwi);RBGSDh-6XnI_jSG5@9YRC>DWrx4TO#6Uq4u94BHFV5yQs7 z+GE%uur@G1?>}NcMtS=|@2cayn)~AanFIJT$EWXq#srj=9*^QSJ>g^G*2C%0{+POrB9R%wD zOX?qwLE8kaO9E?O?Dy&EH9@B?_ON_JonfBjPt||W-@^0nLEEB#+?i<#_Ro_)Hhz~A z!B-_WtyN_?WNkoJzMcFxS$5Vivh1v3+NnDO?l6Pl8nTRL5pgJp?%0crvCC$>Cx{Hn zE4i)fnUf82qBzc)B;}=3(^~$>>+6^a_Mh*P{y(Za!uOMncVL_q*`}*eh4e zct0d*(nieJkF8^CKh{$8m;wcQjrJ<#wiVvGD{U-D*{~k<4w*E`K^ug25ZbFtoZOv~ zMmsw%tXHz2^zW>jiCcf}oXn%hICc#>WWKs7I#=fXu$F=>H#;Z$LFOkn;MWawypBBs zyXt*W{lme-I5flYg!w5tkx~8H!uq=zY$;f@{`P|9z>@0k5VTfk|EPT@<$DC4X?WI) ze@5#|QeUTM%SZ-(Jh}ch==%KX0qXC@8Fxmv>S4-3=5%Xh_-!6DRt|{1Y$fc_4N*Oh z^%$-@lO?GIIy(o?c6eHEobetXlo4xDiq0;Pg8F$75ph>V)o&3G4EU9qu@mX%EH zo=?13;La!3SeE%AH6~hE)uf~1LzMR$X1t&A?DT}L(UsdB&@;_f8&b$|h;~l1PM^idKNEEn_HK zfUGQQEd=EKririjEi>NT5})cpUGpRFcWdx|tcsQTQ}toSr(0&c_XKIfqY-_-P(O(N zlZ~tiHmv(z;09!MzHP>R`%mjnL7gaCizt2806gRHMEk{Iu!CSx8-7370WiP6lR9`9 zY(LmO^Gz0xYjc@W5*t=R_kFU(AE7^dN7zTo7%mIe4A#K2%P&381HE>GUmNsH!$!hw zBAlMBitXywkFPGf1XGDqH~8OZ&kmumz~zi9PF>{x3Oi`xYM$4XU5$Npua30`k$dD8 zlS{rm%w9lg!&xZ<>N=`1TG#ky4S4bVP@|47N(RxtTMP5K608=?&r>OnWneX6z6~My zlLK1@7Op+iewF;e%5k#`+J|o-TqofcOFnW5?-sBQuy+ceby50aGK5hD*`<^J%OLF` z+yTPf7laG?ZX18lVe3k6XA>VH{DybVc%9NuK2n~ss{8556<24L>JhQ@4zYhje^8Ol zF6Us)(fXp}WbI|0eb)*9f$d?wNnUOS+YjdFhxCKJU}Ipq{(=3x{&xW+{7@{swB=C? ze>Kl8|C)TA9NIMWu@d$eVN3pf#(PM@hV2gxC9Y7@iG-DMS#l@#Ghy$Nu(~JHU%W^@ zuepzuZA-U6swZ5>yJozLL_e^eCORe#=YLkqdHSNb^NCfnv8=-%uE|)V51AX^jSlD8 z?e$~!oXWty7uC7L(DysM_CH>#UW)yw8=(RjDDtF9ysf79wrrW*) zh23)#2`8h9+LV-8?xX0Vol*Vp7G3Wl`PdFEwQI(mF{t&Mkpit=c9xuLIziI2m2j1P zGw#f9t*=S_w5|n^Q&KKWuCDHEpK)XzfA5U9HF!7d71P=JZmP3wT|r0Ygvcs>H}`F{ zsy(##_s@9$lOU^T4!T9Apb|teP_5w|Hz4cK?KalX`bS+2Y=Rouof&q;@JPN4z|-A7 z#PZncGs-(UE};2j)=^aPaluMal{HO; zg9TkGA^CR%*%N!13k%*^&;QajCShGr-vIB7hcF?PqQ*p4^~cdycg=XO3v2E|;aHViVS@=vLiVoZhU&Yu=G$n+5N+qD=hy z91MuF#`*Ob3TYa;kXQBD8L!;xd!b#{qSFSUB3Q0_#P+~*;&U^>*^Rb-TC(O#^j&VY zo^L5!6?9~_{~5lHeTDt*G*~-W)TS)?1pX4RsI5~8)*8c>fwh1|ZO7d6rACJeZ^}YI~I4 z?b25*fpm}kMcR)w@N+3N$)6r6GxZbE#-e9`(1FO=AHyY?OBqAPzXd2NSZ$Dv$Qk^? zjN7vpZTBrQ4Oi(V5Y2zqPuQ&^GhSVxj-cLU9#1Q>z^;DmCv5+JF*cR->7JtW0Q2t7 zP;nm-!z;{4ow@icWfumnC8^sd;meJN{ts)jTDR@|q#9Y3QBA9&b-9Ynq68U?ai~rN za{8qClgRrD{_8;BhB`8|E7U(DUr?(euM+y0HM$?KA6X@1;e3Pni_o{WZ}~!MKg(SU zd=~4=())p;o+D{@qU(+!Z`0RUyJlr*d%v|Wi1k^rhxT@{3zGUQ(ciUusSo#J5A!T@ z1=fbK`OghnU_;qkX_@yi8GBIcQ3pXc!Z!$?o+liuN92!x?)$rAZ`E9;FB*NTCh7NL zukQ9Qj}yn<{n%WRHf+*ueAh5C9BY%$pB(B+bF`@kx}bp4892f!M@mdZPF$ynkDSjTr~yjKc?@)}2mwm2YR?S08(lwzIwxU@9g~?MWHWEE}eL4qMwoTldI< zV#YJ5NPHHoz#xqD7p;V=Cfs%@i*p10px?n@>|;wbn#AcZ-gaGLn?9&tP;4o$CKzne z4-Fuv>&G*Z^HX%(FC7i1R|Q>w?)^MK*nK~tPYd2PW(TqhyhN8{7MOy%*Gb|k{Ve^> z5&8n2rJY6hXt}S>lT1hwwwAC%gw^lmYCpz0$(CK2oh5FSBwwyzk)-=ha0g+R{hYO! z32iUbd8`vFs6aHB`<*%n))3*}5ZyJ5ydw`{t4OCxI&BUhT=x^6;jyNCc#+ogqwtLU z&g=rxiz>usa&0N~Ip#w*-XGWuIm9jj>nHsCEX}6h)sHGC>4@I1{s4d^G zs`{c08TsGO1mDaxeG&Gp?1xuxRYA>NUDg__e5(^JNjHudC610iFpigWYWo&7!}%E0 zj?(o~z3AyL;(t?_GiC@T?II6f_2i6q)Y@5e-Xk0r*|-wT{2z&Zp_(W;fVqEZlCekw~~!(mVvV59}{IyM91zu+SdRen2K!_7p3g)jCWp zQc_z*);{dvxf$z`(VbNY+wizI{LE7~s_PnaF$c)GW$E`P#9z}_SsEk%t6G1Hp!9BHP}eekn1&MQBx34Obo>S>*O6ezsPwCC9^@@ zj*fZ7cEVdC$A~-qi4Fhxs6JgQ`4g(!)n%Rhr1iMaQdRU4yXYYCOe~x&7$;7E9f@Ii zu)|=!9uixqbOiejO!o(>F1=p+JCVB-+6ic~rCP2={_4O=7R`Ep7Jz=J&>rOM8F{fg zT^~lNBT?7$-cUGlqOXB{E3!tA^%RkXclmr`7JLAF9NhPZp9`J^-v@pee1+6aIrma@ zJl`+CL!$?PN}3N7X2T2acW3m`+0}p@2b(@+)_XV45x*0C5{uj% zlg`+E-928NUytuGF zc7g4UVOzn5!2C5g^3MHWd%&J4!nmX?_JWOpN!(KI9FeH_e((d}em#*g5*bIp$HC=U zF1b&G9R&01veRglEKfw(*?`IcimS^aM6};25+bX2MJU^ufR73A5h0!mnkI*0Fga z(P6{T_d-`6Cuu^Oj%6gh2cZo@J7&CveNs#MZdV7K(}5h9dYbww_V4Ml!Me3550;di zq285Qj{#RuQP-*8z8>C*O8OzQ0}K0r7CwbjSm{K6bis4-%vrC;(rD+MNteMg0P|&A zJ0Boy#}f!*Hd-_f)z2Ur5B`EI z#K!(G`BRN2ixPHa!q;ykk9H%k^vR*#bZ7j0&96jmQ$OKk+%QJigM>ZL^o*4OzQ{DD zo8>3oU*>@92ZuQXud-I`JHat6oWHH&Yskyax^*1n$4>bsOVK){CizOuwMq7()WcR} zG(I(~hrM$4iPd2_Mvje_VPA?al6truo|31{dK2~@_B{gHmaU&_VnrW}1$l_~LiE^v zc!!qG2IuSosUAH7J_hce@o(v{aePhYOsaL5kkxuNWX0DPrmn2M-{}V2`o4|Oh|Fcs zI-W7>ecj4Ax)!A=I6umtkCkbwI;_Chc!YMBMb>6yrHM!TtMZQMGHs|%pA8UZ>{+wk zup$l{25W!ztoP{%wjb;S*l!H0<$f6K&~s+JKMJPx8k^a^$3?eebzzNI)Aqbt*TPiX zOM6&0>n%4~lD|vA4udty7}+jqclF>EFDPt_Enthm{I)1MtrM&i?0v$kZSe|P;dLy} zD%En@3Vl2DzCe%Y`9MwLkG_bBf(Hu9sX^zUN8mYn&aC&6Mabm+qGQmQKVMunZ%7>K zVTj6mlmpFnw-Mf!)zq^d;$ILfIbTSjEm-%e+2q_FP@)%5_;LI zXWf1b|NYYA^7`5*RUN=ShJHZuPs^I}iq1#KWSPvy7L;~VS(e~!@OHM-kMitv9v!{t z3$fVnT1egBLYUNRX1!*UAJt)@AI-k4(UJLuREOfa&q6_D9Y9ve<)IFZ?zJz{hnxaA zn_RbKXs(y&z^ZSdU#=+B?=@icV7`8r_hd-_QF(kJ^@5uzE26eRcc;RtGj9jMSSRJr=IPK6&Ok z0Fl>DxZ#+*F0j23c{POF3N{3$b%p%X`Pd%5gV(|fn5EfJwx+yoJw4gV@)qgeN8qWw z=AX}}Y4`@K3j*0nG+d$#umz_8mL$3H_Uqbq!Rk=@!W7;X|qf#Ve?7Y z5yIv-&wBf#Vb|@<>?rA7$ex{55>ynWr0*zU`?nUR?*!OxFh6}+!Yw|CJ_V~3eZzNm zP^hSJCI%&MR@~?OAB5?BC$>2T#@Z@*QdT);MNIJR~gp~$Aw7x%K8{a?c>3EMQvizL@ z+XNOFhkuWv(7q3{@>P9jA^Xo}y-Vd?xhnaq0Xu#>eTo2T1HE0xQW8%yv~0im4fx%_ zUkBJI*d6l2*R0nGtAB~!Ite}v?ti0dSL8f2)tR9! z#sUL|I|-e!IH2X-8^23=429(?{e3&wG}zZ9Qp&Yx4>#$guCgdrMm51q=NkE*lOR|x zXah!^Xk}^hdy&`miCOPVDUVn^(OoDm6F4rM8C&RZYF#-BU)$ZY-kXGvFnn6Utv77R zw9^ep-jVOi%Q_%ee2@D1$yx8Q5>|D&t`pVy)g~F^s4iC{W5eEAcczTSp>~?aQDpP!X_Iw)(I_^KB2Ofb$B?!7Q?uUlPV>{7v`0hxo+kMg z#vP@Josaf=qN6Itso!70Z^yIK?H6ma@Xs)*fxh^jSuZDaE=fZJSRL4}tSu(lgqZ^v zn+1c{eYtNZF37wv*)WhTvYOvVkyrUm z#@76ndSmAlX?}-xhRN#^_hN#X;roBTPyImF9U@D0G=07HRZcSziYm9OP_rVS)KRKy6-M(y49}0 zNJ!u5CtLJm#RK@K2&a7jd1YluKVa)UWg``H69s8TCri0C!#nZqS?|`szSnx4H2!Fi zPhz|=x!mxGxOy;vyzKXAxBo}-jw7$-fm!#B8LbENrcb{a@b%>MX&)gvul~PL>W8c@ z@LSq;3)lcycY;kD)?FLVb?H|T613_%9nTFQYy5|^-sS&@EcUTHU&eFPiI}FK=DM^U zN8ZF?{K$bk)fJ)Mp=^WmsJb$3$*=GB8Ppw;^)|EKXwXJuc^MtIcBQ{a%8GqKl(gj8 zR%BHlVg8_mA4%n+vb24+mbYw96eSCJx?vwj*6{~ty_*yKB1LVTI{0h(>hxMh!!6vG zQ!8-@CZrS}#*YcGl7Ow;S4j135Y}@+UTv&IuYFYc8T`7LL6$Z>Jm!Fc}X> ze|i#m*<)rGkf!Jw3F^=`zUN-^Z^}y95})*^!dLr4`cwE`Y-L|K_sACjW${G#HoC@2 z?O*shev7{x8Ln@+jK1Yu^+roQ=!M<~eY4O>PxSrNw?IbW#V$}itI9Z&MYcU+GNRT< zqT8c!7+L%O4`fL@U-~2bi^%eAR>^}pusqnSEUi)BKTa<*Kjht{Pmr8*wpbT@RlhTz zRlA!{u7J{9Q{ULNhfczj z9xt57*bG(z7M;`T1*-t_$5CQ$4}vWQlRR?rnS|p}%4HN<7Mfo!OTfm#s=%^5%NR>G z5!Uc{416j08K(Q9-vyBEdvu;*jYTg>d{sXtJ(IKU`#RcZVhg(OTOE$}^;wCEuty1- zk~X1X`Q&^0x2{akz!GL7VaBFxUNZ=D(1oFuY$Qw{VFsr0v09&J-!=~C0UF8&7o_hm zA6l>)9ds`D6$1Rb0qIE|mJ4zl50?>SlL1%6$`oU(pZHQgq5S5|w@rO08UsXajJ^e# zUrDD>tjSrU{p~~oigPQ3q+Ur515Xg;mb6Iu4v@CKKZW%{uwk%XFu%+N+Yh!K%%A&~ zdVUyeE7+p>YzOUA%qN2~-;>;T(&F6My!xlK&%ZD)5R|X(1D5v5Y4FlM8A1?R>P;(Q zH~e+hJIu4I3p$rC9zZK?d=@Hr^n4hnrQrc_yI zy_*VY+Lq;rCl{2r(ePH5Z@?mMDQ{6b{3x<2OXh;J0C%K0<5SKH#iqq3knd!5pOQ%< zs31?(Zpsq<(x1VRjlnc((d_>Y^>`23Eh}Qs_59zc@-y zuh#%e!5W}{0{X9lwt@V0;UESG!gB)!>m%k0+@csZ+<1(@{R>eLg`a#B9SRR47Z; z6Z95sT-s3GgZN`kn=4o|(+oBNCjFLwN%}j%kAa8h&WHZtg!CUsiZ+Lwy~r7U?3{O9 z(1+0<*}O99EVF=0k;SBU1_xS##nj>NW}V-iM#hmPb8fDfy3mupR{K*a$Hf!)YoNV? zXUS)s`__G#?z}p&V&vUx30L~~Iqzx-$0cpP5v&u;*Lgk6V`bCVyEZ~nE>ZPj;dF~a@4gZV#)I1L6)y#iAizt!}dfE!@Kc`K@G?82C+ik>*G>9epp(ezJ8Lf32Po;2d|2{7v^Q{3y>baw4YoCg)q{1%uokc_ zF{~48a}3)Iwh2u78M!2mUa&zhKmP?A1RIE9`@s5R*a5KJG3*GKykAt_G*~ZK^z6Hm zUpjeN;)|YrSHsUNG>zZN-|R+IZ%>IhU8bUTBc&{Qt`(lmPnw(e47^RyhoGyEjs0`m z(i^o6cEH;Q?I5(T7LH$W6Bo@TalZK55>*u6cKOXhDCZTq0#>PCAx|9DPoMMlln|ln zQ~JZ5nO7ymu~xnV`{I(sXmlP{Y^{c))R$+?c}D}i$`ab0_~MJxytaHioq03v?SwX> zV+xVC8+p~wo%2cx<(;1(kFTa7FWGj}^tB=HDDsXyf6jY`lp*I?*tn8BwY4?$AB;o` zhCKAAD}dJA%dp@+M!yFc#C=DbFXA+=N@B^S3R?XnzrH z%k+iWnypgTbkW6H>7;|D5xV42{l-@mx7v^5F#caAoBNBWFI z&`Mu97pzAX>=;-HSSinP33d`J1s3feDt?Rqn>6`jNeQ;#zKABv8z1IvRwmuH!e zV~wKDlgOGb(P3@SCBEMY9UW`_KJvw#Te&LQZ>*3RuPl=s4BhzHA-V@$OdT=Lk)&Y= zd3z#hT?RG^HV7s*rnB2^UMnk0NnzGmEg`!1Jx=(shzyaN`W^ZU%zrn*mVk|bMf0i} zY+sDG9&9+q+XA*1?C~O-tA@W$lh-YPjz2I`)vlCPnJ%5{%EI%sBn|!Wl;py)5gT(a zSPJZs-dFe!6Lu+Km-8%_V8_8az@qP!`aSIxELz@6z}mq4JgJ1Y8mtve?FO}*WjBhO z6K=5ZXYyO#uZMB6(8Sj5F!?#2-Mj0&3uDjge6NA#(RRXZLcZ=P)%p_7fy-os>~RUJ zM1$IIqwq{G5A#T(koP;E)&{uXt|Yh-jL83C8s~&Xd{a|~*erI_b?GO2mr=3}_wtP69IW4g>Mn)Zf6Ub>^ zJLf&Xv*cycS@n(dFi~fk%tOoAv1*F;1+VUx5`HehYr&6!zey4IuaR3bcuUiq_gjI~ zu1=bZxAkmY=`SZ*!PHfe)sL(^vi>WO<@=L%h|enetzHb0d3>z&@RA2dk+oqRc8$nV z`f%&>w>ivGOYB1dkqiJNFqOP&&^qZCP z9w%ImaLSMr++H|-%O!Cy1D|Ly|CM1mu*K)kx$hJh)(UnQ zY*8eh4Pb{Zz{VnsT%wP*fc0HC=e|{=I?{bBP-y+o_CQnJqqM8E$w+zbgLVL#t{V+) z3;L9v5*))p^Gh?eU_XMf)ik^ZTj#vDNZPbLGzE1*Ϥ{fA-=0)u3E43ah?^)xq& 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

  • kih- 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

  • 3$11h)_ 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 z z0AmXWV-#0cGguS1W?fqQ{#&dS?^KEV_OO08f{19D`m_21d zd!MMB_%^PIV%7SzvO@(BzZ=1Tcx_;O=3VnR?2_!!1q{P5S_OM(h=H+J1x6a(;0R@} zzhq$SD-6aF-c^go+p00DE=h4P+&rmrCBAiFKY=lZ=LVuTfN?+t#x%352u79p@B;^r z5~=9%kpRX)1Y=RO8jOT<^!*9^ZMRqi19pvWU`$^|r4#UJ*Fy*f)GjTW1~4$b1Wz*FrHf-=GVB>kr)8E8+PymJZ>oK8Z1}d*jA8eJvcQ!dzEwi!&*ngRZVGS*KvODX#@k}wSkfUk>YRQ zug0Fy1&qE*Dv}`sFj7=tZ2FfzXRpj;V4N)s#*_~9)h!q3lAJ>@a#@!otyqS!iVuX` zHiJEQp1@f2m5OKLpl7NIj4mC|AQ-Cxp-W`Mh#o~{w_ZCdJ(~Z zU85Tq%id7wdkDrQ1OsZ97R^bZ42+sQ+stYJ?Klm=fYrfL6pZzJ*JTwz>}3Q)TWkkD z=6oNYX}yAAK&%>!4ku_+AK)m*RRjYf)L`WE%fv&Rhmo!?7~T2lkc~f`bPd6{{+z&g zV>Q`_R{t-~HN1{s#8l0Y&%75SkNi=*OR|O!lKz_y8O9C0!6-GG*7qnGc3uX8vAW_Y zF{*xDF{TI@7s^xY<8T1uCI@2%A4h)T35mlk?O;qlPsN|wLEvo_7{Sx$$$O6!1=SSu zGdUFa3^R;O1Vd^qZxfw_$G=(${W`Z5HuDqXSvEBHI|PQvFPhJB;?`aLz*v?+YyOE7 zx9%YrU)aIFd*rI}+qp%`xw}}GBzbatw9A(EL02=xZgj$hmB21Z7J>os+Q1l0JcpHh z0$q~(x`6R63pXjuFaf}LpaNqcWf);)@FBK`g~6!sg^HB*1TeByU6M=1z*s{)^e`iw z>G>~#kw%@mFeChBlt(Hsjx0_>Fq#{|pywn%T8S|ZdOk)l9z9Wm(T@h>!peC;m*fe8 z0lP*wFj`ZV6ILGYk~~E)pmu4|G=PC|B$qa)JRRy+nY9_624gU z6@u}g;v}4h@x^LrEB>t#GK^dVU%9*Y7PzG+lA1ee~7pvdw>I ziZ*nIJ*>Ay`SY4M&*Tb2fzYq+lU0O5^U|{fR#9{UEVN3%A z16Bu%X7Fp{xQkSI18ZpW>>z}&AZv&$9$STmG{YL~1`bLh7!a!lV?TAE!y4K_L@5LV zBGh1bMA7;h;_uQM>I=ro%T&A(&ci5;U^KQNFbu4#^rdebkAx;z=0CwmtV;1s3?aiP zt2Y=1T+k*s;l&8SuvtAy3|d}K{8$8x1&wK4O*cS>Va&mp#dm2lobg>wI~dU#|2(z&UFia2(skMwh>L9ed(oCp3w7KxqpDMJ8f#zO;z%b!g-WE$?45Olc zVEB!u8e4k7^Cpcoo=NFkreG*MlQNjI*$TTMl@Jvp)<6=bUQ}+*T&Uc$pG_aPG?f{= zbUIq+`gt*ppYgWX%`rt(AYL0PpZFip2JfU))&-SeO=z>*6+jkJMTN>?2m0I|eb4X|#l(b1;@eBA5i0ZPwr7~k0#K>0LZxnJC1xQG9xxm99RJg0 z8GuR+M8(%ijS3$P43ql+D&~j^>>Axrna8hG4mi21CZYnhOG~kCOWt()OB}GR*Fsca zb+8mgWlSfE6>I^O+K7s_*e@G+tP;quKvW=BjY_-a6yfLy5p@t1h)|s|c&C+sN?pBC zF`_$_VI5KAdWcH(C!@rb$@Rp3Med{=+D7Z@xEoNZ&r$K=?aSE~nr8zosARJ?<4s+p zFlQy?D-E@)Vo06Kuuk~;;zp>7)Leqh?S)0=4TSn}O@tg8W(ez)3aT_FRa$Z6*p!f_ zIDK*jG#Xld1^@g-|MQGsF9YTaE6XlM_)t&h^GN8*&xmW5SuYR$jGccHiXP2Xk|KNm;&z+Sc`Rm>Yw z@zK_xN^6xW*{c#zmA*~kDYoX$JPK85gQ_Gts#SR{qwmLfgDP!N71%YpsnUqL>|q`z zaDUbgRe{>2MH32^s(jx_tMfor+Mz12I#@J=UmN$GM6qL?K^1#cMT*tr>b3EvMm!eB zM%$w*5UW<@+F*)c593zEIh6C+lz$eXR;4t*;jd6$eyB{DV}f zWbN3PzV&p6R7LntRVp;+@j0N1qu#1`^6YkkFYLSyl&X9kEe>i}U+hyvm4A3@FyT9> z;>1<4r@4b+?15jVO2^-*;xwMNb)qS#;;dbj1!+8R1LP{5P!*}U1O>MhP9JU{eE!rx z7)m2_VP4kI-aC^j{RUEDuQX7li+;JvUVcrPgq<4~6r%<^`c6WM^3K~xrQ4B$M7y@< zWNB+Ml|f6A#iZ-BvdL+1xVoYk5U)*)DGw-q%1G$kbkjwQZ8SU=*ry zvO5o`;rjvrp1qe4LI^KH2qAi}2_b}#J$ne*L-r8bv&1)FA%yJNqcJTSl0(`xbI0*?bdkUBy%Seqv9x~7{XT%Zp>aYHw(n* zk77X6XeY)N=Hz^Qq4WS014@@K>Iev8)H*`ddAdSJ9*ANZ()^&v6ph?Bq2AHF0Xy5KMrqkhLU>9X%p(ypN;^N?TF`#t$qK<$dM(egz-Cn#~Vj7A8)xn}3{8_YsCEt;8(CMe67-nLK zEdDr;&!TJbvdOzd7jpB}A`m-GATq2meg2c#VSxuY_ za*UM3L zt5FOnUB0LzAc!%EW&R16EU!T^pgLI8gFlO`*a_W5M-amY#n2RM_?C9$5>D~*MKK^& znPVIp#Uh@9DSjvhL@33GD?<^Nqd^RRUBzh6S~?M@nFpX4Ba%oA3-Q&XRQQ#l&;3(bZgNykHcgU%iR^sq5x^OffOq%4pxNMS&P=nHXnx)7qq& z&^^~_5W_>5Pg-?3MP9c8G1hAqBe?<##CN)FKr!Uq<@FkSuEN)5+~1pRxL(Ze8<NwkpJU##4?VYXXll_h&!qZ@oc` zZ74?MIi(m^pHk89#()^xQ4DAr?Zo)Xz9m^MAVxTf0j0|qbp!-4+CQV}-s6bp4ip2b zgGD{~vnYW5fgj34r{9TUXo?*{bDh_GC;|_5p%@Tr!0u#oG4Q`kHD|j*LVvIv#5g4_$c!|C`QB^62nT|bUORA2)f{26eE2^nl!n_QEBhP z>N&=ut=FWZKTv#58i*08vlvs})AqRsq4D;i7)Mej@+m*e`Jq-n<7Evibdh)eB$iF& zd4L%EnHU#NQ3+q{p?e^^6s*5c^B^9 zVsq|Y4NGniJ68D#@C$jE#4uu6{I{o&V;s> zofn?pwIRaB$TKyj*`577d!fjh!f=Q`ief;#yvg8JHdQg~uhC!jXDEnqOdBx<-lk3d z;`6(XE5y*J@h~4fd>qdSRWYRAxQS003pgYvOA+JpV2Uh@6X{No7@ObF%5rWX#%YBZ z)!*&L9AiRbi6BPvG>R&ZvpS+tj8ExGF@B7t&xMzR3Syi=F`#L*6XWDi+Pb1Xh;bIh zfYRlQIs$?i6<)9naI!%RiUHNZq8==ae1=kNr4!KUWhjQG*k~Gg^3h)m9`Gmz#45!| zVSlK|86sj)42V#Q@na^{XJ8FtoYPf|ua{_Z;fV|e_%uu5+xNcgbez>;Bc4MExld)h zq!*83tg4bGwSEvKZM>|c7!&Ah*2gdk#5k|B7+qN7RSAK{yMSV>p6bRgt=yDvF60=h zVq9i_cvXD5MgkM#XC?Z3s^YU8E|wxj*Kmrg<_I~)CCy^2nacvxL5#~NhP=DD{A0^~ z8`79t__if?(vIScTtSRP62sJ&R#rCxF|Oz)MlSK^(@-A-xQb$Q6^{P&rtz{*a|2}o z7lmsjO_!a`Eov)UIN%8Ht4EbJ!js5rC!i};a6l;M`2fT}7Xo~$sVEb5Pg9rCe42V^V(T4I;pB89J z8j1lCN-+-5V7yODBM{?0igDsJ{V}RNWrHC4q`mO9HYIM#ONxv zK0=?ivV<=C@IS@aYQ*9bK#X*q#b{2aygrs*(9n-ijL&Z;^NEkm`A5Rduc~5H>rHjF z#(UWwGcm@QvbA{U)DsP2z@y_Xvae$sd=SS|&0>tFi@H8-4uTlZPz-r@Id{O0n|{4H z=l!=S_v;2#-PRt&cur!(&`6L^+k6n?g>GWhh@=v2@T4#U#poj({pp+_MtgsmcVa=j zeTDs<963GNrW0rQiIXW_;tGfBC5i#@s{KGU$GAx+c0Sx<5aX3LVqAVjRoG>K7_Sv# zeA!FuJLCIOGF8Qp(7CrymlKdD%l>zc&89U zv}X_I80**A3S#`M%A(Rij4TwRdxI5GN*hAjW$X1DZxVG1x;Ze7Z{@$M}F^ zKw6eoRRSf#ei6) z81@M)A`49UjAB59Qj8^e6wxyr#K_TAj2y;#FMALp7scq(o5biNu0Dba@0AH%Fb~C; z&@N3n?`xFw^+sim(X8)yTR1Cu-G$eAdDy`jl*KTP@kdn*m&WwbR0$lCzbFRWFJDp&>zXX`DYT#-i4ns3gu55y7{WgG6+RM{ z*rY8eM&$$cf*7yr(x%hgL5#8}MzF0?j9M}D`E-2dUpW*5nnpV@))dj!Gx2fecKgp=QIT5GaCo*Dxw&gV#}~E=|ieuUMh%TfMWQ&kr>WmSN6*>A20A%MlssF zd?5AsdQ57!w4@l7uTg29m}3~~EQWbJZNC6d>8hX@{wY)VB3V;DMYy`Enqzp=2!YSS z01%@p6Jz@yDq#^0%vUQ#jFB|pD;2~rMloE3qyPBI zIoWY@AKCjPL5z;FvmXC`u*u)JlfT=S_F#nt#MeSGApZZ0kri0CJH>nBywKX(h*86h zHd!?W#HgbXV<9_RS&dg$O;p9;oM@9Z_zbVQinEfEVw?$Jk>SvS^+*hkE+zQ*;O%Vn z6=IBu-i%_zukI#@(T@H2`rs>;Oi_%q5lS({>}%qSGq@U{7|=A@iSgc=cFYe)J{zJK zP`Z3kM?etcFAcK!2v1`We)<}r7*HK7>cKgpj%%p!013p3Q4CG7qjykj;26jt%uo!7 zRf-`Eqlh59R?-;7fC!}+dWR??I03|HqN^Bn>FR{f+7lp#If{|Gio|dcH|j@)uXBek z*z`ZeaHC;ZpY{0Azh*j%VP{G8t(QULHAgWHWl!NZ?QO=NDJDip3dL?13Sw9=G2-dk zgwKW|_(5w?iWoJbX!{U+7Dr3XVp#5@z>N|RqZNuF?=D+nY&lcErre~zjk!iISzI#o zcS{nZ#|c`w3EzOwS~oG;vV#*g1m=ZWsLeK?^WpPYm~Fn`4pk7I1~F}L?x?sz(kJ+l zmd9LVU-O-K4W%v0GhXOLE56HQ?Fv@Ow%ruYZmxdoWc8?-^A&-Quk1P+lN(WVW9z$XqzI){3*6yCu$U zf>@*PL%TbYJWJSF=zhG-rISLQVF{shcJrc_AWuz}92`i7T*U_EX|O;k&vo`2dJx}$ zAVGPcX|$6koAud4sc?29MR}lf`J#@AAkQ{d-C?{+Ym4$gb+D+ILVBI)7rZn5)>KJP@mtCt^HBMB%)S&L|H=DCOyQ0LOel9($B$aLb3%|O(b|)V&^;YWk!J=w4?2Z6#`P>A z&!)ENQux~rlx072rz1h0UMP>eyF4G)g>w&T#+5BHI8=AiliZN9z4EM&Ikp-rE%W9+u*IYVmm88~eDv8{*m#@b1>9jJ9lO?|d?d(O*@J)S=V_7Z$@I8BmHCha?o4 zfMd`DNsN1p!HalyPa0GSKe~R&y`EwiZq#doZ7#FwFACo#18hQ+hac$jH-YByVQA8&?!V-d%2u?ZvtD zXvew5T5zVzDeeJ||4kq<=FFj$>3Sf>MBT&?vHnqnll>>57;}ZA|MT}&P;su%|Q$g6a!+F zV*G4IyQ+TzBIcqP5TO*KK7HkVg~t>KXE*b76=OFI(fW$g;Ou5TiZS~&i7{9FYa&%| zfS3I|QH&Zd9!UN3j!CN?Dw$(+rL@x5ARn%|EYMku77eMs%6QFXA&Md1HI?61z6C#_ zm>91oQLLdJh_Q%?F_DJrd<_GjdoC_Tj2%di{(F@Qt@OfZ(H#5Mv#R5u-N)=XER=KfOesHoz{s z9>rK*?xD0zwd2yhi6zA_p=)8j4Z=W-4LXZ)iGHSi8#+Pbg`gM*7r66n+O*{N6%(Up z8``&q_=w_-OpM$iw6;+sbk9wth~Z7inXlLdMo|CJEXE&pM9uI%*-#Wi-d)Cj?#|Ub z-jZuPrz2PYD^=YXbL!0`MoaeF+r$fUjDK|#LpqE~wATXxwxAf^!qFeN^0;iUyQi%F z!-Du||7{ZUlt{^rZ-@BtJt@AsDa41N7!a>XjHR9w?_daGY}H1L85`Ipks!u4g&5_G zX?;(8&(d~PF`o2cAE6lGD8^?Y$4D!YWBjEQ)wh>Bh_Qpjc=(Do@0AZ?>{N)6G<*~0 z7)uTh5yY@KNm0GSL5y7}M)`cD7?$?*xuYHA7!fE2G>vv*I5hlj03$#|a z8C?(~suVGv&}f$Lz$g&osAe(bUlM0~$T5zg81nA2xRX7%!?7u6V{FCQ{idp&6QRE! zCo$&c(aJ$HL5vf+iSdaY+reu=fRiYOzi{+79*vTv>{}$e^{61;`OtpJ;@Jk0an?uq z5E{qu9cB;lr%()t*Cd9+2->;frXa>?ZN!Kj!!}6=F`^Y>3}x*;A^~!YGpb@tXEeJ+ zz#%!S5aV76F+6BY&UYj}iz9}_$Y>qm4lf9>wTi zeWhYv$2x!Zc^rrli()|2XeY+OAliD22Z(VF#emY~i~1K^5Mv(8mc|-FM~*`=pgLI8 zgM~RD3#jn1(GVMtVrYuJ#ZtU+0U*YC6a!+FVyqTXY2z&*;sS~R5lS&8(WE`!@%S2q z1YN}tg;52r-XO+B6r&GEV)%<4=;jyS30BYrFQFJ$pFNN+$vq~mbFgHNaW$4on~(`P z#$}zwxNJt-PYi&@OGGgiu6F0$r?%qP6%%6!-5>8e$sEME!o+yRntxJ0bkD1$h*9S# z)#VlmVqDWKMrHQPJ=qJyNJ25>-R04Jj_Z8CF*n(*4VP9(1x~@UlItYK#jdn+suhTF zLpL!NG@*@`6+rXfL@_oBN57IZO4hjJT-mv21@SWbGZN>7Zn6)jc|L)s_!T&>BN@ej zcvUfG36K2H6PCY!vjPJrQ~YYYqwSV9Vx)^{6Q7wNMv6j=+U#if>Vp`!RmFHrgO0ww zC`M{2Vnow5CSN~%O7R^M!y%4p^mhg^?kdFa`Wu8|>>oN#5Th$QyY?>vG47!lBPB{P z9BB%RZ$Jcyk%nSG(`YBgIQC-@h;v8pqZm-Sd{IY05aZ7y+UY=?ZTB(9?&mH`oL`NJlXswn7iO`(%{CMAqSg@x0{`iUARQ*&QsS433_m z`qsKaj`3JmF}B#S&5J;cCn(0Si6q8GagF2j>AFbhvQJTr!e$SpH7t)y?><)-qp34fv*|7fg&^ ztkZ44hiGS%BE}e&l83m07%w%8Va_^RNEV3k3dN9jmyQD^T+4=Sx%bmsbAxHz(RU-} z)UQd5SF8m$nSvOZx`{Ewg#N_vB53|MC`OoY^fNOL$8#D{P3k=WnRw{e(x zgC97a;&+BY{96S_ot|ek<3#0hyutl-f1I-h@E=vUJGJmDa80lm#BUB7=sw^ zRmITvp}pD@4v2qHh*9#aB#rIQUK7aDK9U%X7SZN=Pkc{Mlqmiv=hUE^|k%@WS$%p14@@K>Iev89AvQW4+RBs zQ4FXK7WLp9(IS>uA25N~JQPDy>>UI8GY*7<7++8fh*gTQfQ@_}bb*MkCr-x0T3x5AkF`WLg_(%}rht6Wme?r?I zv4F-aKrxQAapygaTJv{>aST;4-nM43_`I(|CWb2;8j7-n?)kG6F}jA*_EFIw#xKoc zoIXZ@!u4xGj3N|6-d$Dg-*bQ9xbRVq=q zp;u`BzbHn8aP(&{JtXtHI74>qmGCBn*3%^g*9J)*pS;KKWleI!7~=I%42ahxhFLW# zKRFD<5Wo=jyKT{g5pCnT4Q?AZsJC#rDnMAJvXq&hMw{G{fEZ;JV*H>PK)$!|{*-d6 zVw_~@M+#nDEstX42;&$f&r05~@7Zm0Xu%33Mjm4@)d<9>s1T!8OdyK!)W8kIU_a`q z_+*|+D8|QmN-@sTluBRW1@uCWp^suf(`Y9~cUStW@0!C|i3r7j(&dXf0)iL@-Pi_6 z(2)&L45$v4;^P?gSY~+71!60s7@A_^*maeA`QU*eiUF}oG1xm|eA7Z9q6&%u5lS&O zu))Inb|6MoUBz%<*B0)lLyl1m#dsG^Vnm3C7t$XtTrd>6pb?6Z{N#c3+2>=@@ckuo zjLWP)3D2?@#Hg;b7>?;w-@`Cyyc#IRbxU{Nx_=wKQ!z1G(sg>@bbJ#+O(w=Ob{#Ao zQ()s##Hh^1d>`Rm^R+aK5jTr=>QMrSQ5(gOcbDv69k_ncExFHrwp{BXihJw`{k;x} zao{Jdd}0VWhKX)sY-D0&;kA#tD8>Qd=sV0mC<_XAm$iLU5FZhD)5h83kImA~=Xe+P zwfW!yhpQfn0r8r|IPXk5myKs7^|cY>7R`e3{d5AvFja^#XFe76*#mNn2C8DXU!;$6 z$^+sJQHv7Yn!tcTCfp`F^cujTogmB5aZq{Ule2K4R=8d7j}Y`i_h6GLouvF zlwz#zL_3jZ4`MV%F`#L*6JtIb`TU{>Vl+W9pmh0CLX0Eqr}hhWWOEb)s)I#6I7ejV zK)d!8=b1J|G32qub=exoV&lMrW+(>4D#b{uL=pK;5YZgPfC!}+mDaHcyjEhNs~GiN zX!CD)t)vBtVHHba91u@Sp-;c#V0}vz!%^>{bfe*M>FbLn#kf0&#p6A&t#lS6qy}yO z!x6-=L@`o^x%0IN!Spc2(rZQy9l+&BWOEf=VdB`%~JKA_lt^(6^ufa*Vc` z#hBQhiY)X7F|1Gwd3TBX*p93A!Gc@;TFPaYrMRDl(BIpU7;jmN{7e8b+Uq9902;~k ztBPQEKrxOBN54+~L0N6v>9WXo1@U65RW^F9E}scGevJQm827->$P~n|Mlm2>lNfF2 zi{Mwo9&(J1+KADRu4((#NCPoCDa4pX_pSKVbOkYNRK;*zNPATi=X^>~j4y&14@-=E z8qs*6pD~IdB{AyLm&8xFZY$&%whA$tgwn{TQ{*&3jDa-T;a3Z1aB(Qc@}o*IY-ohc zuXZSiVTWQs(`Y9~-Bt7_)WJL2I-?j+x_nVbK*%wskOF>n@Sc+{CARvB^4Q{H%%eW$R~N@I>`@GeRf_RGn0B>pB#6-s#efK<7|qI1L_K`^Uw2)_ z`1ycso(VZd4-{j`LlWb-`2AV>w0;0|L5KeoBPEC8P4SJ$nI443>xE(r zpFE8p*WZf&TucnBeNF@9ts`EDchyR9?i^rvXcYRatu7fIjN#4aa?mB9SS{((LOLX)l4p zG?ZAnmcdpg0ZYRaEQQ4SQzBzESzzf^I7M}v34^^rOOv}X#|$G`_cwIB=Bt+i7Y{Nu&4*;h<;EG=+^^JlSUy+nqn<1 zsayvf3K@+oL9CLc2Xqn7&mjX?8iOoBgp#GXtc;$E;nZiWt}OMAqFv~P6HCV-OTK@I zC0@LZ5_i8|AjAEy!=aVq+xQdp{PM3H@*fh9KuOCweUNjK?j zwNp$*&q|`ezNWy^WMoO+UHt1=aCPpq;ABT_xB)cMHaDfa+jT56%&NVTs;Y3+VKo zD2Arkl%`bfSoB~4iUF}oG5)Y$YvE1kf*1=?42V#Q@xB|CF@6k)u}D`jRx^^uVUq^++O(Ig3>p9yxOoLG$gCbnJ2L^_(Xv!$ zF@!$>9#8Ez0q5f_LovP>&)|=xx8og(iE)f>sr8$PmvFt97{^)WHxVEIv%C~Bd=06t zNj@OPiV|XkC8kK>Z#%H@UkY>+gBUAO40(4c%xTLdH}AlOpYO=c^I~xc(BHjDj1J#v zu2Gs68u!fV3T3|X5pQT{-ua< zhIOCWMbLr)Bt}XbDp|N2T@WKsAx85K-Y7=bp%Vl#l2}^mftPTDP>lN3ycLr^MhvD> z<`zJX5sYF$(`YBgxo@=fd_12IBS42V#QF=-D)EX8SJ8+8@qWGC8u zSu&jZY(g>WNJ)$&@d@@jPWOiY^PggbPovV7dqIv7sTaCXgR6yr&=>HNIV z_WZ+E>VqXC>1vkWib%*Y{$*m+h@}!%T0;uFr4%uG>9fdG5F<>p82SuVZ%+_oD~ciS zE~j!^ao6rya-U9Haj8~R;3^~N@7qX>FecclBoJe}Zelo&qY~HP4X@!S#%=xW3HP%LV(ipL4Dn^E!Z#Ge z*rgETS|eH?h?71dRK@r_oPBf<4$1CP#Q4K(4#KmNJtW4b^R#(TGKjHPAx0iUCcdofw5@+17C&#(oq7N|!I{2nb@d zxk?+Xa{&bopcqgcEb75IqRGtd^+phT5XI0GyK5?yyB>#E51|+ks}!ReU7_&XFcZW$ zjAB59QVbJ2Dq}+dAaY zY3)BQ&^=FRebE|=za;9Tmp1!cQUzBR${i{ zIUmdZqyq^MAA@2*ye2X3c~kj^oInhjHe$SG+5Hi`gv%?$ux0*6;Z*ckRWa6YqFSO- z;gFmwMT{NnYkkxcS}=~p2xB!K(+4r)6=F19>w#h{8#GoBV`@LD@hT81LA4^BJ6#dmY8- zpEaF-b)r2#qS#r=+Q^1{34PYg!v)4Bhi)DPpu4$s*Gr$4J&J#_tFU6mD!6 za*SIjhP=D%Hj;2|S6gtVv!vXsdKAZtp}(h)7`OMbm02LhZQaCRPaE^QizkJtD8@_S z=%-iPAsaP$u&hy`aJyUgX_Ab(u9C|0;`n@U5hLm| z{XOYo$T99I#OTZttVc#L@|mV8hVy3HM7Xpq9FqH`h_Rn>|I`9n@BxX@S4^8f8v|lI zRERN9-yOwRRp26s5m=p~Uf@*pbQFX4P>PW}fj-Z$0x=$;7|=A@i4pvfwtguFF&?8B zP`Z3k|6=RqiayU}8{h?*Cn&~CF@>uK=ZcION3W7Wm!~L(JXT$oTv7AwRPJl^;2DYm zu}U%8F%L2qgBZ_I42V#Q(X1zx@dm|sp{p3tuW0kPrjTP~pcrSikr*$@vD5v9ODr?k$x8kV!YB>jKAzOEh_*T?=^~X`R)up<5ma$Z!s|r9-)1E z?+jvOGBKL5EaihKbk8@Xh_Q_w)DKx8##_x|RAavZACo|gcPNIuyGY-5mGp8fWI!ilBtbrYj;O)BxT6XXmZP>d|$=x>PKF56>1Kvu4(AU-+i zro=^LFFE$?1plBu#peV-{6`c6;x&n}a3aO$g+h*zt&JGNmeM9)>_Ci93NhM#VC%C$ zjL)iKY{;jNzT(8voKnOvctDZ)IBh1E#Hbw1R^sh$c?vO3t($^kRNOmM5M$F0iu#5( z$bLaF%C1+6@$D9U{v96}_7%l|rqNCeF&k?5fz!nDQ4Az0p zG7v*gvl##W#z22PHxNVkTIC7n1+2U5yTfr4ELw8}|AHBD_05REiiE zX~vF!h8&~?g zsswV3Dkugtjdo&K(wEG?D&A6G6~%zkILVD{Qaq1qg2Qss-qYXs}#erkRqzPLPQM|10s}SjBh{@HS|D?n!1Y7eKFfS z48$--F?!!8F>=Km4PN`#lt34(^`BzgryoWCnol9esI9XYUJ0}}#-7l4bx@4+*|Ydj z1|9hg#l&dKQ*14K@VN;S!)PB{i$7>}OA(_z>-)9sK#Y2t#VB)-imaUtV$?@5MX#QZsHzh3?$OmK0Y9Cpnpt7&mFO#oxpU&Pp2SCPod)Zv0z>Li0C7F@6X~zbJQ$ z>{$8UvWsO3x_(muO#H)&tsz(dl?q)+j%>J$L<`uCv zV*FW8RkU#iG0YTVq)>M0FU&m=a*W2RVr0_Dp1&0iMmIq*U}9;>tE**{?QtBVsX~lBQ7$OP!TW;*F+QYFR0l&C`D}(_geED)@a;^WTbBnhnxh!dG}?*L zfRZ==j(GEm1&RTs%NO-8wvc0#okG=hEP#&O0>yypU{Mdw71c1H*iKmx+Y-gl6nl&P zhS;Qo2dz*Hh~2C){{1E$v)2DVgSl<@KXjJX7bcf?f>2h=Rvyur*?@75+6yF)Iu3G6Vh9~>c>!J^h z*AB(Vy*HabyRswiC5Vxn?4)=d)BPn>SC?$aG1@aR>Yk;wT{9rZ=unCnbDb#CJ{`oc z)+~l>I0be~1~EFK81n97@VX~g;MoZnzcd)g-n#E_yG5U)v$ zIiDzAm@FdX7`EDoVLymAal)6xatblZwWIa@T|f*wRWUl#_>TVoCpaXX6*^CbATX5OZJ@}gtxodqZrTLD8)#Qq*4as z!$iBG7|=A@iE)z7#r%h4!Z=2E6az|^FX{*gVg%C&k^j(4=*T@#45$tk_2695ShnlK z(je9W#n2Qx!IA!q;fWwdPZR@Um16Y#N)aRQYDzB@10s}S~S(My&`cd^VcvLSpP=%{m8PD?L&n#<9mkP>f~c2MS_{Uel&?a6ZN;6yv?&D#d(^ zv+?w~M>OOZqfrcK8tud|VNTAS31W;vF`#t$qK<$dhQ1k9HxE1VSQG=QgGD_!SL9KZ zV(06D7~@b3O|i$>j?51MF~*}95UUj975jbUyL`% zx@#8W$zBRvf;Y%cLowvtWt4F@ZvIUR?$~7sH1!~@Scqak>GDM#0YQu!Hnf2co?b6PF`znF)Pr+HiFEbZ-xtMLjACet z?UGLA`mO~JmY^6As}v*Egd+S*AYv(s0TD_u+}MeOUlfS3Ojj}Lv6FOvYY@W=#b`5> z#4s|;%%bZ3G0k0$V!X(DB=r??jE5>YhFlDX(-a>t2Eo*h`6aYEKYRzKoVvGeFL5{Ho#gKQG z2Hy5uZ?ooH_03Ywf%zXC0y%~ciSa3eYFR6R9K%;PF@`LljSqOijVUeFUX}2<_0wr^ z^NLe%iiy{U7(cvu#oHyiK-dL6dCb*j6q9%mB=JXiOoU!^<7bHMY>jTR5mgG~Bi=2Q zn0MbM+coe#U!6wp{jZusd;rP=@tWlM#$>x@0=Y_{Hu7|vPrGz28*-H(g*?4jI-e8{ zxk|9AJcheylj{zUtE^SX^Q1(sa!HRxrooX|NAetJ<6bx1K%Vsqc?>G{MtK%2bQa{v znnau4#Me4)KzWw+R?3s#ojy;-TqOkMfu_+;p5Z@f>lD07yAkDq(&dXfCW1UgG{??A z1-}rRP#&lb7WLp<(IzJIZJY!056Yt{);f%KBo(i@grYnUtCVL~brz8c@@z(VAVMk6 z*IyKICj#X8S66vjv8?Yd%CiOKSu~gAF){O8PleybTqO+UIWB!BZ5DD`8vB3bDP%)n z_k2K}tvbsS#8G`|#*pZ3LwR<3&*ts6OL>c8@~o-DV#7h6?M$A87+QNDyJvVQ^88}G z;C>OvvqK@z&K`c!V+(@p6tm6!Cs2_Oa6Duu$|LVC6JB@acHL~jt?1C1Yekn6{U72r zmt7=Jp($;gjw7fMy2&G=OX&WYc%$uZ6r+)F^oO@tFY`OzMYgC~Vf;*MA4z~;h|K({A?Bdo}JiCcT zF|3_t@!m6~{Qef|XE*8Whddw8Zq6_kln z(f{ooEUW#>M%K1QVSL7F`8D%~J;%qo135pz}XU1G4G3?&a z%BImE#wCRqPRlxCj&XVTa6t^ON)*-16~wrVVpLhJ6vO`vecoIKVkDv%&@|eK5lp=* zpaouYxq@Oq>GDM#0YQw6#Z+Aj8HjNe#enKyQ4h`)MN;|`(9#8Bub~*4V#`v#7SIwO z|C5AbK&(=X0y=3AXoZjexsGB$gi?&qinMQ*5)k8tu40U#rw#;ICV?0?Q4CQOiP79_ z3S9#UXpMvZ$tcF4@z128$4*Q8e-)mo#}@h7%}8U~nKpVL#x0%2I6^5^K${|Hyc85e zoIZmeP+rQL6cc014XUecDC8KonHYCB(poDV4@oUW3@>{YnE+zkDIvz66W8dDwxZ<} z*lsAC-P}bnXj6U_LeBp*+ zL5zpmh%x0aZPF(n#7I|&VNSoo0e$m9j7O?sxc;C``bB~mj}>B+JS%C&#OUt|<~|`Y zwrr!#g-bSq7*7>q`1i0zF`V~~7Q_hrO;H2&L5yc8M%_b7G46a|pJ#&@&ru9$8tuer z^NY524uBlv1&RTs%NO;j8iE)@=vO9S5at*eC?>UGOc6v0w5`+J3`nsb@+_F}~ATOu(>k5aXTBVx0D-y%}x=Vq~EhVP~iF zH9Fh!b&H9S%wk8FfEe$Y82Oi|1Q(ob{-G2xQdhD_yrb=-W-%H!rofS|AVxNdA@43d zHraB&Dw%TTj-9zUx&9>#H&g%hCieIo0JM-6rdQ;G}?(_G?BJ;!)q>uC8i#P}ozflZ` zP>SI?gCeHlBL@HID#qNJZ1YqQ<1dOaE|B@n^jJ{|vHBFUtQL{w?p)0c)tfX(vF8vM9#OPt*9fT{!-@h5A`ZrP&laJr2Yu z$HeIKmDbJ(h3;9t6frVcAD@Y0RM0F&>z7pItN;+BB8nmJF4HG<p%RJlg8l4!n1dMlx{0xXi81#C2p~c+?1iJh&)P>ept+^&di}!qu$o2^`-R^- zC5*bo@3y8rn6D4<1}Fx^%bOP-W2}13g}r7YU?Dz~w6Zp0ykiN&BD_j#s1T!NS*m(b z6yz9HRK>VZhdx?t1&5?6iUBjhO6C}y{a7SkwW>y9G^P=VfF;%-hLJ*yU>hqGp zw06}{=$;Kr5yO8fMXoLnXC;j^ixC^m0;50-F^VDYE*4YTa^+UlX40HB1-+(W0YpRVH)+}e*AcM1#W(qMZm?RnetSAXTsvU#`*t#mH?*V)Qoa*or>gl?GkV`ai|!_nP8&n}8S{brwUyeoywe zLF08oF&^%l%KLTY`1oRC-2a#A+KVHfHcX5%Y-BDHPnspAh>?7rw%_*@#E@zhV>A2G zAHbPlwkU?YyZFs*!zEDAcliNjAs2?p%~38P8GyRV2NO?6^PLj#pv8nDTaiNU7o`ixb;FYplP%d;}ugY z4#zQiqZm-Sd{IY05Tmv;{mt>1V>qH1P#rAl!NMph8zi}42%WwUilHgC7wcmQ&X8mD zMKK^&DaNMhRP#j~>F9@IK!j3^Ki(8^$sKYGCtbyO#L}nBZg5u8AH|S5k{AQcj+;~A ziPq3%2cQ^pgdC%SkYm{YpB&?~KgD0cdte9ZEJhytid-uXjpvMF#ClHQhx>ATk7DB( z9|lleNtSR{GKh)cFqhU|_kOYbrIoi_A;%c5n;5rh(Z-n>(EKA%jFH08-{!nT_IR9` zETc(b{Lo9AB`5lom)&1|nonZC9`6Dm-UY>gcvUe*C|<|(F7R)6DnBb4#2BfK7!R4V zAIgImqZDE^VEyQ07>F@iRgCFtsg_STjxk1&W0Vx*6>I4nd@|2i5+l)xHqUhcF~%vx z=n*YOF>c;{yGNEN+zHf zP`Z3kM?esxe;)00J`UkeL@}T`Sk!}aMW04e>^B_woP=U%itXn^vEOl&!VSfMSWEUg zrm+U!**L}zy#6{F#ej&O-RXr*V-1eFQyB$gK#VE6iedVNHZK%|7*kPGgxc$P62 z#c&mlzV9IqS$l^@vdhg1DE5x`{V2)zc-ZWDXqh2&c)xejlEI~0gO;n1pDV;vAnFwMmMKPdhv=gH& zWr~5dEJ2KACxuOB|B@3*b1V59@Q4CG7S+}X& zI$@AwtUxg!Rw>4HO0ok@@L66fQ4EMsim{2(!N9usB6@FK#b|qncA=gjh_MRASihFU za5azgw&H=MJJp_6QWS1{C@{mmmRR(1?K~=sz_7GI58AVYNd~W$asLGR-N>who(&tiZP$d*qfu_+;m2d1| zNpnG!&8P~LE??B45LAh!bS;oG1u6bTRiHXp)Pse4ShmovarqFt1yzy9s$Zzd6+L2I z&dwWD2}4yNR;fx4I?)U4Yy=ToQ5A?#s$#;v$enSlW1Ft3oTOj=z%D~UmF=j?!$YKs zyIFvk{+KSA@WU34sw}a2Chffbv~<|5l6lBDTZ$JRYA>j=LuXZ%G9vBqKG~h9it+A= z{J4ZJ{I}-ns;p)m(H`e)>|&}k4WK>fhJ*JJrKoc6GK)-xJY=_KRVu%t!0ux}l|876 zyt_QA+nH;ZX3ACk(2?8xlf`91f8R^0)Vx6}dxU{1k-Djp`+_!hcnYfQ!`bHIsYjrA zJ-I5jET(5D9HRZG${eAGn01~ev;9z8HnLS=yiu3C5^tMCo9DSn{Ck=e7}zTr;t!xI z5U)uU{W#hOM^jMcpf;)`x1de>B*NLvA%!X{X(TJKpB1QbSXGsg4z!6AzG>@7DXRSV zOp*N)p&6n`m5lYYazGTQa#W$pKdbAbDhv885LB@{KvB*naCUPHRWaY8RAp;d_BrM% z$59n%8tqgGJV9Fz!q-!uKvkf0`JxVmph|KZ+F&qVr9FwNKy|RF2j_|o>}RoSL6uXe ziafTsDvKyV4;+FsLr0Q*565&^12qbd-gR3$W)>KlqP!OrNa$_SQP4aJ#Y zXHgaLHBx1cS;gg4_%JuB>`3%RIU^1OmIZNZYfy2Y0@px3_ zXx;?A%g(O6V=-0EuzedLf$@-7rb_uLw8taTAXhn8iYlufQ>2SKs1m1HmCRcdI1)!t z<53lPcky~`%cVHf;evy$xjyXNVkBOrJx{8fW!c^+H&Eq*ZmPKZP|f4Rq4^U~j77rH zkMHOvi*08to6@>4zTn43Nk;9_f*3O1p%KNqq8JxZ42ahxMluZ^1x~UAF)nE%h9B!M zlafG;%L*|TccZG^@S01asu=z~*hjf=NUoq5a4+r45@$EhY0x5YGTs??mBeVjj5eQw zFM_+K5Tn6HQxs$VkcEO61_xPGB#4oOV$6zFis65ZKA-9hdB}AX1DZxVG0HWdt=;V) z54nM2Kb^X6UBh)U{Mdw6X|cI*y)(FB%>IbVy)Sa)bvR3;1-Gj zu}U#AXxc^K415t>3W@;{N--wU5MAJmd>9Y8t*aO-H`4CTjD$QS6~&mANn$KAdl*8W z&T@b*d*?sJcwUjkXFwiuS7$LUtfcK{F9tF0p&0cmPvEa!x92An6C-I3#m>Pe{G>54 zg0Hc)A<#YVmm)@NPm1)wyYC-p7K7bx94OqlE#x5&Q4D!^dB2k5`qwb#uKjAw?O^As zbFJYQGM&VzNW-dub2C7UN4km8h_1Q@2II-)V-#bRaP*g77%uysWhfhJRT#hc(Fcir zfwPTq-~Bw#{-kv{59A4o0r8r|xYU7~V1omQ@l+czY!}idAt=T(g%}wu$Jm5--#=Fs z;~fpF2mXVHtTKB#o<7}yC)*!U41Ko@Y0H~uq?Z3D$9T&m z--$U!w$5T~*-Q29^nr%{gkl7Zoxrb+?#6d6CdTwh6uV0wa*WSRjN0rseb-tLBc~KG zYA>bjBa9%&$W@3@K53cs-|~m;6tm5*uyMwSFc2dT#gKQG?g`f1`K+d#kxL7%GaF_T zE>V{eu8NTuO&3rtyYX!ZUv(2Bp#p7uJPN?hM==6~qyM^akgWE^^0IyH3*+6T#!~w^ zUu-I@Ji!0UerQi3@ZV4jh}R^>qAVy}19AhE-5jYbDE%=kfNIy!OpT$>4{!)lhGpRg^@g^Kz9eJQP zi^7>;MJUFlKT0w7vEC9B0b=|{F`#L*6XQ7>Z;|0Omp>>5lrCS?5fH>^PXqaZJmwgG zQ4FXK7WLpf(PTr~bsiIIJrqMzY+px;jkN?1gaam|JP@lC!=xWYoWq$PWl;=>P>QiV znMEXn80B;oBd{`U9*48d%cB_QEl7+2vnp&nGAY*hpdL&9bhG9*|>H(M^o+>?G}uCp3Rm6eC19`jX{+WXD>RllARb7_VQaoK!Zr zx5W4W&tLgLdvI?p#8*QxAYPLgzwIdgfg$7=M%sw6aW&fn?@y_&5QEL934E9Z;}|tm z#aKIzHc7{8E;Uh%Z~s?}zl9X}=pcw;Ok#BMrIn9;Ajhbs5Tn-liYUfA*Xe>7!K~*! zIS4sMZ4{%j=^DjMu%(r#l&2mbMjaFbnnpV@ys~NQXHIZdVuE5o>GDM#0YMCxMr?yD z=*V?Z45$tk_24{F$`guxj)`?W6hl*Nb#|Wm0_Tp_M=>B)DMlLmLchSPGNvd7L@330 zH;C%Xz;TQQx{5L34cj~sa*T#3Mx|aPMu=G@)>1EBpbIwoPce3OrP5wujv>}rjOcc3 z`!Hx|GZf?7W>-GMp&MV&Onr3p0Xt)QZ3<#EW@4=CLnXWpha96xDPrtAK#`eZ$T7?{ zi_w=IrOZeWqbZ6Z?=JK0thp-r63)lOjBEOi3VdS@{k<895km9T0^i`<5Sr^IMvDzp z;yZh2ehU<1i*WQ`RqrnAvO!OF*QPMuuy3x!X!r&j*MNAQyH4?0IF8W*#ejHCV&rtE z_z!qJrKL7vOlQCNAHyNXXr&ONmpv7gJrl&RR2Aa``%U|Vh_@~!$N0>0q)*Avf^A5Q zSp%r#&mJH~TZI^VEq_QaRjA>xx}BRKMqS|tN_e|ppm3YIAchr+F;uD)BaP*rx$YoF zI}`(&MmsUm*;q;*j(oO9F`#t$qK<$d#uzq2^aUqDcR(?qI#|?$g>ej9+V!vI(CMvF z3{A1t(^zaSTLXKghs~C~&66ALm5JQ4u zI8P!mwwU$pOojijf-WmXF{)3>kPf(UM(Pw%GRHW=68Hjq?x?NKVq`l}eFd4&cpQrH zvxh6cHm4i^zL*$ZQ50Jk0AkoNF_LG|+MmWCM(0w*FgV8|@viwUn#Fi_hXQ|Dff!v; z40(51Zfwmxv1!j$U1rKH(`RvU(BJJz46zHXESd>9MmOEW7)K=r)y{?H?~Y>Z5{~|u zJzZr^%YVk?+Y0xmWJO6_jUU9EAD+NJZi#%M^IxA@L(W{0kKLk z{?d$+pvFZI;f!KHgi?$F><~5y12G2aD#nZIw7cdw6KpVwvDKTz*k$%KpM8o$X+!=~ zj3E{j-_#z?N`~qzMlDhxs3}g08HQq%5za~?+AbTT7B_mK8JO`7Qq3 zV2baECy`@O42ahx#%fCCgKX?UjB(nC5zf8}5@X0Q#w)~lL^(!~Bnfg1S5+~_)2VHc z6w|&5D8>)rtmIt@F{U$iY%M{Ii6q7!Bl@FkGa$#9q!1&v?@P=vj!hmfh|$uFqPPeU z!wtnav|K5MK^lE-XAfdbMlqmiv=ieZjYb98WrG+~Pz)$tzNjN0h%t|bRf0O>l*Xwj z22=-&dT^eoCv#hv1R?0+j$+7T)vvDRiB8aPOi)*xkueR$fLNs%yIE^@Jpp1&M=>Bm zDMn)^l)VRtF+*1|?(L(N?4}Pn#!M7r-vJWikl7x(lpfR#FYnDlG0F%zhP{wuaQ`RA z=--P<>+S?%%+^_qTT^KJ9yn)X4vO)6^LYML9S6R!SdQ`L6pIZ3F+7+U-ZyEjgC&SD zw-hnfm0^(?AjUk+Vr*hf)N?K581qpKd3Ra=x(63Or8T$mktuhE;oA%QyC;dUkj8R@ zdK*HHu|PL5wlQu-<5|W+6yt<&^tU~4qSNudZSkmZ#mF zE(0j!sB*qD|*!A@33~xw_{ZWj(i5b!kf*39Tj~IV0Qv6JOwt0ZgVtk)W+s`tB z#tTF-)-@l;8*Fvp2N%mRJjb)xBoHHriE*d`t(}e6N`gxfWA|r@oFf4-)@l~xB#lo5 z2`@Vr#8`)7$h*r^&u&~pV;k=L!e(4F%LhFYpuevtF}koX!Q4m?V}ovD3=5@QoNo%v zAA(}YgrlF@p^eOL>a&b7&aAYlO=i}#y<)%B){4EWDp}%O^gTh(Na7ln-$|2Z%gDD@#Yk{49)$Q#5mWJ zt&9UPwkX87wDS&%adHKSanq2Zyzp6GVJHSCQ;P9tB>TJo#Mp{rK+|X^Myn3A_3|*t zF}9%?P`Z3kM?esxI}>9Cj!kSwF`znF)PwUxD<)9kEAZ-SIEtYuwtIVu6>drw#Mpsi zK&(=XIQEmdG65oXq8JdN6r(Gh`UiPCgBZJX6=Ty8+6C`y5F-M`uz5vd$jo-Jv%ghd z&}Dc3rx+tyZYn&7TF5c>=q$!(2IT4p5MwWj@$u^zzD+j={!lS7@||hV*N8!kNG3+l z7Hlov1G}#jF>0~zvX2Fbv0t+oJy_Q0gLlmzKr!Uq#cTt|Z9dVByV<)j_tk@{_Qn2w zki=L?<0?VExgf?N-NaaxMkQ_)L-QX-F)j#4-|%{Knb)=ZG08m(y42l8O z!J;0VCmOw$Vk14F)1O5#G{ySdqu707@E``ofY<}V&0 zfyEGt*zW{l@Vbg|i-z@r_CEzNVo?n5za+*5vmACD4lIT)dk)3u5Gdpr@6SkEC8>{m zW`BDiJ=g*>STX8glRF zQ-MeDIUAQqjH7H^zFmfUqLY-UfyKzWFA#9tol;9V%$P8plP%dW9(A4bu@^Pf?`1F@Ih^Sm1ubtjOF(6hcMx`K%h{ajrcTo(8 zP>Rv}3Pqe-3}W2VRSZjZIO7~aj5HMEx~T`w;JRjJ`+*9ND}pX~AH}F5oRuuQenx7y ztE3pd>?|fe8pL>@vls*E;!)6fcWCH`C`JeUF}!(-1HW4s$50i+x*YAB@OT12jC3YO zq(5652Ho>fDPo**q{sv(5aY3CF{UvF6Y@cfCn$!zyHs%M#Bn>jaDC0{ah@#OyXXb| z{V9o&{*`LEgwOJNrkfaVyU@m$r^CG`mTGsj9eI(s0PbjOew<>`?I7kk-k(zN?VoZ& zo9M}7R}!4$<>6+)v&{#LrKtCKcJmJ9c~sX& zF|XrsBKy1uGDM#6BrL+XDlBj@P+t*@<4U4s0ZhX zioB`tkI4}G5#`YoJBt08*?7$*8|8smr95XDlArV-oB4$DK!j4BHlwM&Pk7DcGsS_ zG|Q91z6@VHK%Va?kG#9s{;=bQ4z%SeY^}v@@};VUhdPwOX_c>p?&0u?R_5b7>kD*~ zCypfs-_t;VLKGuiIQoW<8pzE3&&A~TFN{yv*2%_OT)$JwpUeDAeX8t70mT1AF(6*G zAE@RkL$*@ zr-FZ6pauVu7`!cQ{uiGKrl%02tz{^RkyGDE5Mx#c7L@_Hitv}13v+#Jlwz!>o*Ar% zb4Saf7|=A@iSd($ri07i{VC;83@BZ`s3RbVagK(4gUcj>0_9N*s16qO;5^YNO0$B? z;vA3)D2ArkqE!4dgUjNx%`2i95UUj9A^mCum-7ZODxnwL=+g=~glB+alofK7c|xvYrIM@2#i)3S#pB)gm30<_y+1m* zq9ru6A&J3_=EXI8^54wW#ki9}bybW4F{&^z!YycRC462-)l$T8r_<2jN^y{@RMRZR zej3LN)^`Lkj8F`DcNy2ID_83f$F;cDi0hm~RqNy2(dv||)P6@RMP6`rQ$sf~wy+XS zaUxz#6eB}8`fXzB$)4Ul6O%izFy8xIb%}S6GB%czWPG>5R9S-%5W^V7fOt(}EF3`b z4HttLwX_jq^gpyoBNq^(wnB_|ZnWO)Ac#>%Rg4$(qZHgE8N@JAw=LVdJ3b$O%sz8wI&=2B z&pC5uhKX^8W+3^t@CGp&p%^oUDaF|BM5VMef*hkUiUC!lnHcYz^R1I0$7q6LK{$YWIt{;YqQSHBs)Pss?yfLNs% zb!XF_%`ppUj$%NBQj7q8)?4d>7{=O)VceH?&>EjRYJy@+T}EQ0H}6Lyn!Xm;!8S!P zCQf`Qdzv02GyRPirzmOiwMc;8O$)8X$Ty~=v2=pUYl&hcHgOgw&afBfln`TBERRhC zFH&-?sRq;?^jJyt(v0 z*j>08BoTHrZz9yB?vigiJ@|#RATb77(q7snf*6+Ci7}j#VPC5(5TFf;@rIrKy{y^AKB}UQ{9+?I;*pb9YI!Y_0t{{fB zLJSYnwJ1iWZ4V~KxTh2)(*ZF$p%};K6cdAE#3q+8F>Fu_s2a`0c*wWzY!6~cPz)$t zzNmh&nHUA%>2NxyK|_|J7_d87N{ZosfMNwth?Suj@>tb^KkJ)LrC3`7$RIkS7!a!z z!jP6{F6dIB7 zwTl8VdXyo?CmTA}?zSLCPxWFn4CaA}kYm`R81m*ayGu7A;aO+F>b{9^b1=pAu!Z*C zi^S-DldntzF?wq!hBhFVMd}3#RNRfVQV`+Fyv*GM*2qA@1?}&Sn&r>gp z4&`ZQ<1--M0mXoLbzd?pQYMDpIf`P_8JHM@ zP>i1eN--=l==13VKnzC|1FA+dF&5A`o$m}Oh%p$&fYRlQ>KB`dF`nmDZndEy4?!_t zcd)1if7ZWFmpy&ma0GQIilHuc#sc~?X2yaT!%z%}Rf_Sb7DcdW3M^tciUAQyF?!NP z2H)9kkYkL{RtyVs+JU<*h%pkyD2OF7J~h8OpMRPLP0$I&XukfXtd&lz%u|0wEL8y; zNay1i-nkS%XBy-fqqG)74B^}7K}C;7F+7fp5%;dQ7k`uxV>jj5!=Q6}t(way5fEZ&-iQ!x^mhNb?4WvL1JrH9YiXm?4LX2}Gh;sSHQm&USv zJ$#_Ok0&wS@qXHTOAy0FJ28Ilradpf$^H{ii~@G{hfOITo3SD|=ActSeA@g+((HB; zX~N>0;zr)E7viwfL=*$!)rnDSKb5~I6mpD7nuuY^`CJ?ZVz?^AsKM7SNdPe>7Z<~z zDec8;0GyI3igAq6VuT;&k@(K4sU*hEwX|}nCx|gkA;#c7UMR-k3hkH}J^2syGJM|G zpD2d@Nu?MyDpM)TaVFSw6a%V8Gci25liqmEWd@1?rOOvp1eh2_f6?w%*h52hLor}? zu&4%q)<4RBx>jUE>`W9xU9A3lDtBc%crXjafLNs%vv?M=Dh(oLqZkmO6ys}eDr2=1 zh~ciS7#>4u^ED{O92BEsI*C!x++idC6tB6=MKKmncqyyPdL@N9-lfE_c}?+a!$6FA zT8puZuA}&_!*L7`6l3uKXYtUlo?`71y^_MJw6Ar?L5%raj4+Ybt{(=?b3qwmNPqFj zY!G9idNFSB++l+^h~bH1$eT-h`yPVx2y0>AO$*`DeJaqmHi)r^#5mZ1uf)6N7i%X* zv*Wb!cASW}1jW!XX1Dm?$&bl96&N#gOhLT8Y?D;Suh9DPt|T#+Cs=_zT+UqS`VQZ+o02HG`k+WEMwx{S=LX5R- zXkUl(L5x5y#y<;b?GYSi3o1j5T;9fy;vH?l>ctp&n~IEf12IBS40&@|m}e_2zhf=b z-C`y@ok4N`;61P#NsR5hMvmb->qE5@<2vus9LJH&O(=#QJNq84A7e6dR>k}~mgN|` z9Hi4GG>=_3`>g1El8zuI4^G!+6a(Vbi7~;M;>FsKV{FkxjGy)RCiwKfFohV+`4Ign zdk|x5aWQIe_fDZ0+sY6_%2V3Yg&@Xu5`(`-(l-uAKEoAa1Xp!IF}j+yWMUX^rsIl_ zgI>uF6k~g~Qj7;&?lbtV`M*#Ms2a`0Xn&7NKZ{paccK_jx_nVZfQfOGcdrxhqF)4x z0lR}mHTbjsGrDN!dk%jlccB>SVi)nR>p8q%Z8wSmu}U!{!|71ZCxaM&qZkmO6yqpY z=YkK25vi>h`*@0yXbNKNK{2*8oP+Z^^o;B90i47LXo7oD3=fuL{K0aJ{NLmlOOxqv zFXA0-`?MBg_Zz-_K8O*8VlXsOP)%Q0r+F|j6ZEidu?DbXkf z#H$lyo-vi5Q3zuEqlp+oIojk^3gj5a6k?e4qxG-7L5zQki&2>;j&G!pV;nC-3_m__ zo{3|}CrFI#i>TzxOz4%IRESaYLI0}c5UiUGTWMKw4_|E-J)|6mKT zr%?=bv4i+<%!e%SAP&WVSfv;ZuTg0q@y*fkC0%{}K)j0gE+MFVM1@k$9X z*kg=fVx@0RIOG@?xEMcg(b`-~Xr75>h~YYtBJ=PaZ5P#xv77e{^Fl$4ODKlCxx{?! zEDWvDS-9fgPWU>L3jBgk|GP|LB=e^81?P??X(z@CkxKl5U|&Ho>anvQx$j|&(_bDj zmnIg(XLom!MxTm~S#$ibm>y2?g()D+RTKl_e_CiUg&5ZKW%tub0Wq!@7o$4mXny6K;FR1zF@CUXCE2BVCGAK&zjEo2W85S$+TW)= zmd9%)DGD(zFC2klj0$MN#MnoZVf-o>LXL3@#b{%p6r+75Dy0I>$GDARK-Fj_#)cuZ zwJwf)-a#>-borus`Gbj3hq}Cex{07bDvANSgGDtsNB{dgD!d}j$GD4P$YV?DGL&)* zzly0K#yu1RVwGYvrJkl=C1;4Zk77WCQj9e;o76Cex;~Zt{}#H6hk&dDTaF-eQst5IYt(W0ac@!7zbAI zt>Yla_<&+S>GDPOi_OHS-jp^l9|jHiBZ>jLgQcVxjp&!g&m6}*KA{-uV&kK!+}0l8 zK{kp3v0mNjeM&A>%1@yP3q6SVjAB4UpduoQf5|LjL5v)2#aK(f)P9!urh{A*qmvhj z(cCzVW=Z+AK{4`B4BK@tWiyLnWMB1Eua%6*xF_2~KZ<^BA|c24qO}-RX-b=4Tb$Pa z6~*|;?oTlo)I+?)#4vXb>>_Xei}p~}w8eX1zi}~6yr#A7aO5+;3^4}G;*ogQe1Uo~ z8uE5*g(IKeQ4D!=*|@%~(6v%mq0Ki-p(8(=?G2&5{~$41KA^p@DH5z#QmCC6y+Uc@ zj=CVmPZYz9o&C^;=VF|^CdNGYvmoASUzpUp!R(V0B}Jn9LW;MxgZN)42E@y&4DL@U zF2-p7Yh&XAIYyBtV%W@~UD)9BLUj~k+~qAr5&<~|D=7@V97RR!{oj+T(k4=zk5L}Q zDEw`X@t%gJ{G@qMgB3^&JGxHcCkq2HbQNOgEpG_4&Xr*6a!+FVgy~M(z@WalBy^ML@34RTu2dJ@i`j?+KLhU4{hGf z4RVZXD8{m_B!-#sp~Lj49sbBw|4%V222gx=e3n-Yt;IPTD z*n;&+ii^?c1I6~hw;24v#b~vKuf^M^YL+2J;B<=Y84Ec^E%joIn@xfC_->TiD2BYb z4EJjztp3MV7&wNFeDd#KFC%F0bx4e)&$MxGBM_smc4Exp`FtN=xc8)u%Ka(k`lpt_ z{VDfoT8f{G5yaHP`%_{&uh%cn+NM0Ft_>Z;L_?6IKFVXoT9N7elQC(jBV+E*D2R8I zE|I2R{~Gh^$4@bwhIss3QK|+g55%jJr#tVexTb|t29!`v;GdP zpP~!$G%haBN}h2|!P}dgpgb@W>|?3kO@Hcb`AwC=nP^J#y!x9;o@NE|G*iga>V5^3 z=jQ!tOrCReVaIP8KCiXSYYM7urusc{(gLCu)X@uF2J>r6Wc}!6rd2C6g;=WP2ZiXOF3zP?9mGW$& zfge9Nymzi8$^#KfdEW5;&rEB`Ra$8)PdVyB`^`KK@|dAKmrs&BR>pq4=>TWhLX$N| zdA7N{l({^Mk$IKq-9WD5!V{-i$&jnG)>x{Csv*HK&^ z{?b7|cYLnMb5$Jb+lD4Pkuihi1*UALwV%Q<%p4$F#F$5 zLjSrgg+s3>ZZ6JavLbm#@$73J%F|vuc@myci5{*{{T)yY2|N4lix0$viM?W+XR)^- zJlrHrxcx9@*_3BuLnDe`Xaw;cQ4EMzC&qGq#0&F43~NoqxOati;TZv9bW(`%lqQJ! zEy8OqHpRu*phuf5##}{Gh8TLQDRK#lAtf;)`Q~1=K@6EfjE%ocQH*&#DlsuE(r8mJ ze71RK6r=V5r5L_E+gR!bVhAV(RE=h0Jh!6Km*G`fTNDFImoKUau-=W{M7}{3G~_NQ z2J8+N)!-ccuGJ`(J%fYAc11DN#Xjc)Gs}}ejBY3f#45$m<3GLLE)ZddVnBpajCp%$ ze=BrAjPBZsvG^9>JP5?-fnpe@k{A->(0TOfN;7DJJyDD>CdPOs#**KNv4#(Ut;9D_ z+iNYxT~6pK98BtkVr*P6R&<+fCk`@J6(jr*9owo*7(wmL#ppo8oqj%{(E09Dh8X4@ zY5UbykgGVT7o!(X+*c>V2x?yxL*87juW2Xj8r(@ZHp^Ie=1m2z@qk~*ek4ZjGFrLT z338SG+KItmnd`S6=V=T;F}ks{pLQoQW}1&QW~)1UXZ`p4QtuJFZCYGP60h(d+6~j- zbPYr?AYPpq28-z6{P3E~|1=TfWOdraKO4jtq!1&#J*^M$f*ixKxEK;%e}T4eN(L)> zH#wzpjDF5kNMH)o;1CjH!B1KllcDa_ec~2b_a`UaE|_*#&l>K zu}klSVyKJt9l>K$z=KgJ2E;1GFz3lsD2g!}#efK<7-Q_IjL>`#V~n<9WbhWf$q&SE zMlnWxCNa7hKj}+_Z?=RcIQBoqa5%@~@&1%?T8rVofwte`0o;y9F@D*O6E{n{iT#_a ziqVN@M`8HJB^NG6ZEGqa48@pGh8PpyQRG&9UdKfBV#IXifvF(IBoss5T*}pHBea-r zC0Mu^3sY`T+_quR-d#zI>iM*CyDo?^SvxV7@!rkxP^kVXC`Mm)_LF5nF=+>kV%pAQ z;~|;nrFPecN^%Coh-Vhi&Q4@P{8SVJ;?;?9i033R&X8kF(?ksS`m~E!yrb<;g%}fB z(t0rs#F$=OjLa4E(J6NjV@4Tbyrvlrey8%G2Hi-ETz-(J@ofk*6=Ecfs)aemKYPnF zF(6fial!vV$4G^AXX`c?tLC{93nhW42V#Q zaf$z|v&T*_G3IM4#>h3agM<_iV*!dWx&B<7*U{H_Q7!uPoHI1Rg($|9IngS=A%@Q$I<^Zq9r6yuDp?NBP&&(jlSfvnSDIaEj z76)SZsEDCMdr8MZ?bT(7aeF(D%z_$RLt#2_LI|gU>b(LNShXA~76|&y1lz=1nv-!C(|)m+foW9>m zRRP_f0^=Aj_=sz!D~J)IwHQbEFIZ+4RNh7uW9%bmG1aZB_`^sw$5_L&qqlC*D+%Rd zWHzTGewznkY$`*HPP`So!~0V*Wd&kv)lQ5!F2=`fsQzszh7&vcR^KMX1TD@y8SPmRpFHKO z)MMv1Y1c2O#K!#U#%Di>-;QEHygD(a)1)5194Uwqu8A1C{-VDp=P`(}Lm|d1K75xO z3S#_KT#R-6ugEilQ?e7q_{l~-^Gfwfe)4Q24`-W4kQggZ&>p|wlZtmK#28(4AH`_e z;ujMm){sZxOt9T3#t$>47`^z{ zV-0UyKaxR=!zf0?#IfS3rMBYS5;?}zk+iSE0U*W^F2?-pd~GT;&!c6Cv6V;u#CaXj z>cv=TN=5#%1~L9YG33pqR{xg5wP9Amml;Na!+0JS2Vxu}F;aO;E}8~n{HvW9lg?v_ z{^brq^&dwu#Lk*rHG0cwms7F&gAil%5&n7;z|ueQ%{0*M0csINLlP z#ek~OOpG6tYy0ctUGry93@BZ`s3O3`=t9>c{PmNdA)iGtV0W;n2IuIH-$jR31)sB# zfMTeNEjNe9rh*6OPz;DwiZNq3MO4KsWWKF??&kmg%ux$r_8&ImUx-6kp8~a*Rt_ixJp?Z;!LhFQXWn zE;@_(mj$t1iILBy)T{8X?g3&XaWSkssf6nJ&^)h{A;#FhDYAwa^h&O(7vlzR@rL-W z`D-YKyt#OuXeS&@?j+<#8Vl3-!5iXi^JEeuB8v9%hbf40T{|(#(}fBDp(w@;6k{qo z`|E1-h;i}kdh*#)_MD9!zEX!a{!+8(WYLgPLjU3TB%hlo2E?lqqcV-?`;Ww4Ns1<7 zwE36*9w!$N+xQY zW2B)NP`Z3kMSzKsIh{6ei3Bkopct?_SX6^^^k2=S*a{2_{=F19moV-xUN$s-g4 zVwGYnn@golL@^$t7!aWpBaU)m|B2}!#uIJDn84AR6b52EMKRX^BO%B5NMbBYra+m%w}R--a=8!hk+Q`D8|+e zN-?(4l{J6wVK9#I8O4CA(M*h@NGg4W3y6_}VnFHgMHK-iM)Wn>U?nP$i(`&^&*ZA;t!7i+?DH@k_lJ z>C{#74{!o8ick!Bb7_0TR9NM1Ep$CwUr78xyAH&+A?T18x4O{EAbegZ`%Z48W&{5h zE&o+S|6JFxcNFl2eOK7zOZ@LAZ%cco{?v!}qMn7dY^kZ2pj+YjLn`^`I^dx^a^lIF zhNnmE7@cD$PF!EbUdL3vo78hpiqvfJWpU7aia&;PYbqco5U-At%Zn-g-}=yH(ba?# z@gmdx&SA7#EB(uFflHWfaohY zk(xY1P9DZ(GER2z1S8e}IH`i1yx6DYWW_NmIu;Xlgcjb@xo+(=uCc=L(@ass8x z7gZq`C$eUI1MGWOLr!3Ku&4&-=%44m=%?I(lj_Kcy4WUdsoc}}psyOp3B)QnY1ouU zV5i0qIe`czC!=}qGQKfz@`tvZY~g463??8ok&~ylh!aoaZVt5jgm7rGwUCoQ#z|Gi z$@<@L(yNH#&-p+CQd?_Ibh+CXbfEI;ASYR4#)>-TGI3Lh>0PsEXxu*$Z+EN9Ik`xK zrT&+3WUjkT_XvM|-)Z2MI_c?Ko*h^Vt29eW3aqqZr=o>_?pbd{QU;?!Pu`3gT1!cS>EZ zxk|cyy(|hLw6p7Y-Kzm<{FL0mVNqieqXuX2t{aG9q7dWm6Pm0Mck?Y1<2;x5 z-eVBM6veQ(s1&1*I~~ORAV@%3pcqg!nu(DgN?WJlAV*6S14@@Kst7PKjy9$Z9@K`0 z+zQ2j-N90FlII_M+~`3%#G0WP@>tb^bM!OnQMnHzAptQ*F(6hcMq}PtdNcqcTB8^c zp%i0QCo1EyC5U06tr*+K^Ud=i0kK3eT74ohyp4M|r%#{Yg_Jh`DaI-OTm2LhkhWTj z@wgoA@0lJ{UON=SaKu>AY?4&;C@~d1k8Zp1f0hghh!q#(Wg99X-3OXy`!d8Rf081f z+kqGz)QjP}l?P^l7#&dzd2;-L{VFmqwcID2pKQ!^IKU^1|UW0%13}&EPsmxLj{wsC`%u??*gknD0L5vN~Qg`a> zU7eMpBaivUzYFYv>I@|bqO_JZu;{QWCll@`baGwCuI`S`kh(<7l{oG_FPa!rnP0ph zUWzC|d~uXmJLJpj^^t=p{%bg(B+~>X{k^owH*ZK|IxA2Lai#V7u2367ag4JdU( zlssN2QK~{0Py7pUmbx9H1XZIMN(X7yg8xsvy4xL5g3{%SsvQiakNj|c*~53G2ciVK zgQX-&fmT#?MY<5%6H$`KsurB1-;$=&`4{0+JnRuAh&{&dmz!9{raG1upmQ8h>V+sl zgqSbZC?>*sSi|-Qiv@Nj0KebhbYOL%VF#0g8vr_p`dG1 zp&4~k0xDTUdmlt7g}kMWD?J939JNC!fwJ`gy&w=^Fp3e#&VKq&@uYW76`N+h1@Tc; z;-#_Ux=U@Qo)J@a)6VoCL;MgF1LD<*@i&e91XRUY>O(aVqvsCVg#q5zGE5;xLU~$W z4X@P@sXHmekaRXdF|6A^W@1dD zydl64@7f=QV#F6I#aK^iPJki4RdO_n0ac@!7{|uYf&CE)<0xZL3@BZ`sD81T7!!}v z1~pL(XA}c=2TMsY*2eJI3=m^1iXo3xEjUNNEp=4`YT*;l$DtSys}!SY7L`_87sMEk zVnBpaj27!Cq7FV2-9=k5;>YpL@tNooPz=$W#0WH=O}`ugb#dr#B8qXf)@zyD8Bu0f zqT>T%SoEdR>OO{!&m^tInBYX)*TY_;D~hpf<5;oBcN=j5>-ZEG<0j>R0rd(&jLBRK zgWgm^eLoOmN*Q9@uS1ay@U4@op#v#H$lS!v8WEj=av)M2u53j2a-rS?aSCVyvY>-+<0IA7plM zF-{xMQ3+OXO59P5@~q?Yqg0OZ){RFdf*5m1j1gRRTYS#PT!k1%ZuCPj`geQ6#P}Fb zn|8sWl6fe`m6mH2GstdH+859TpI7REVnEesCPvNERC-su6K+0=0j0|q)h{*^V*&r0 zyJmp`3s4N$9V{iq;4i-l=;i~l3sDSttZKnI`X>Bm(hg^Pc%m2(s}y5v7#*q|<`|1m z42V#QvAd8Wy5oCj7i%kq$!ETKI&^%Npcoe&NsO(=6}SLBJfR7C{ihhOo=|B$4MB{h zT8nX|Bi}v}DsLHz5oJD3eEO!7xSWl=78j$}B8s)Q1~Ha%F`~xuwfI&^?=r+_%zu@7 zIYGx~g?cdxCQy;RvLVMR*jwM6k2(vbgn0yY>@o76lc=8%zq6dOx?7t~qj3^jt~t{qP|RYfub` zS0~2he2O0s3%!!Hnuu|qhSmZGxoFSpmkb_VR*c~h-#pukx zWJB@x&tMco9;;e#j{Zg;DtB0I$RI*c42V^Vagpbx!%&QkCkxcNQ?;MI8*v`1di@)Mln)YjxmSj7`18c$oNb|3@|SjETx&}u zdRl=PJ5h`%IQzqsPZ-Yr%Vu>*L420SV`=)$Kcu(Y$B5mtD1Nan#7CeQ5U);*ojgDF z!Z%m%(nO3ue$p*VV95fTPsoFy^%RNjD%Mj%Fl zLX0&-Jy490W2sDx!uhn5jj@npoI^1pmnp?~&7})<1ToH|7*I8uiSZ{-^+U5jj0-3R zlrCRX5ny7}xlM<&$rBVvL@{7@u&4&->eoo7*v+~SdlAJ@7rXxt9*dV_E}<9@s}$oS zO^*%OA_XxnqZkmO6yxqfDq~A3h>?V1xIdynnc^))&HH2b@oX*(#khiEL`0DoM~(aL zqr$ghntN5P7|o+@{&=Er!LOok@6kIswKoYz>jSk zigBHbVaB@#+g;!X?M4}5WIEHaZbvb0su!awUEv7`_kmtX3W_0bF5|nl5w`hs5k7Wn zENov&1@34J?fn*sQIV&dJJKM>xUHQSla5k}SJFX%J19mBoc+C9I_Vf*vJtkhXQJ;o zEj7B>LDF^ZNpUM(T@AQ~Bc-V*2E-R{2gR?I7|f&cZ%hL*?rI{&o87d@O?)Q$J%tzr zJjY1!12OIw7h_gk+T>OWoRYLM#ArzKNdj);y@U@)jQn8Q{Ei)n@lYYgq8h7Fj8U6z zF)^CNQ&cLx+wBpG@nO4CjLW=brAC7ok5LS$8qLIL5l*Gw#b=2j&JRmRF(6hc#@7Ifc#r{NJV!Ag zLMg`ecNFp19>jQ|tr!zq(dJL_Zu^%g#@mY|MvQS9A1io{;}{tz#y`H9vIp}|%P!|^ zj-@Kl(UFT$o)5jf#3>)Iv=-xp4Q~WnPT^~^lh*u|uEnPGW$oB&=K4~IGV}II3fgR)+*$Odq zE&2Lv5aV-kG2-}_`8&>1&ryh>^Z7AWu)Gm{FM7U#3i)9VHJD3cJSxXmrhyoF3Na?O z--Ke!{&<6l@oOkW6?#FA@dd>wIIk2##!uo;OAzBLiUC!lnHV}psPv!dkYjv9F`#t$ zqB=Ce#7N^C{KC=9d=vwA2TMsYuD7Mai>#p07oZsGVrS&?Se&K)9mRlHr5HD8U@}n0 z3&i+=VnBpaj4zw8jKFfHAV#6KVr;m=H&29djGrjRmn;(Fobe<&*@5NVpvnG1F>EJg z$^_Oc@kuK!M#2^{K?+!mUFCwxV?lJdkE7&T^#vjt$hz0 ziL3Q54JHKY;>c(DGQ@CMLHlBlqGn=LP%p+UniUgR@iF8Wx+sRcxg5y15H`fv2w5?0 zh2~yVU?rRsS&_tuK0qrg<0P?4+KI8D1#Mg%JB5`|j3jpU6aJZClQ6K6WLbDYyrs!1 zsbTeaN#8R&#rg>pZ+IL|mmZ1%@#@4#pl@j4A3h+4z9wQ!;eSuf`XELXg&1SM(XMOa zI7ZdtV%#Rg18dm<;sy#aewFH#lp}TmYbApi)kutibE)Lo_(Y%T3Nh@m>5bFf)}}Bq zGJf%>JP@M>iqRuoDaM{a`n*mUh+&9gK-Fj_#$CD+6j;|5#P|cnfYRklDKUilsJa9fnlJV#m+I=HOXoB_sQ;eJ}if?=z#xWXb zEk@KA+P+CPR9-_AqmA_#@uXn~v0{l{i5m?^2R6k?VvV>M^(fH}Y~}&YvvC<>y;-kb&)l6q-RA*xU))dovQF(S6$37@rzw zq@5V!Cey|ySpCgWj1*{h=}|Tb)!R#M{8bPi)^v%~sH>m!qw5YaAc*4GgUQ+HGDa~V zUY!_Y22gw}LlDD66ER{a>kMp#_s*Is#Hiv-MVYxkj?tpH7?Z}*N9MY4N?Mj7Mi07n z6KEa|HQ0*8m_@@Nfvxd5qh<;*s-D`1ImYy~>r9M$A89A8Q$Y-K6vOwYQjA*EH43!w z12I~o7*I8uiP8OUD&2Abh+%CYCXpds7 zZAD_F7`LEd)j+FEXo4M3j9x6q=*e=74Zq1T(t6Xuv_Ax5bktgmXjj_4gCkU)HHz`7 zV6>R$)L!%~A;$4KJT@Dyu6E*L{NM>e$92#=ZORZMhDI0y*#pFx7!vhj6wwfCpfx@N zOp0R2n~Us;m2mWI8)27CXJG*itORy?4DDS;VvOdAhXn7P?W~;`ah$(Cy%S^hJ3fRw>W*Srjn= zZR&^eK!j4Bw*1RF(G2A2udO`g>}dxR^Ff{gC{Kz#$#dWM`epibQW`YDf&VGb%$5}I z8VmCLPiuJw-lFX%`$6RmLU|H1M~N%l+l$F1UR_kj`A z;o8a5^E~a@%>b%@1d8#Do&A(?FKp5SdP_F`T@Y{Abezp^xU`p!OI=u2NbI zH(vNWQ>Z~_5@QKn_Y0hd?}!_#5My2Y7!)JxYBCdJ`Ul#HM6Fw@j5U;sRKrvuPMSV;hy%; z=qI8W>SAXvq}WAx)7&H!17ek8WYa~*z(r}0tGJ>V5TO*~?@TIVF+Le+vbJIzi=)k# zxPll{P>co>NsMR4Z+pYm8 z|LgUs{HHT62*jAHi5NHdZ%91m81ocj9O78TCxI9q#l>iUl8)+(Bb<`?D26V}F)EhI zF@m#sB#wtHATgYH=jbfv7z-6*H0^N##b_9Hm5EWWD{XqV5XA6AG0ev+#Sr-qc>>-v zw+O|6s?ki0%ZI7-b9kHWViW^PmoKUaFfm&9;~OMELtcVn!0upC4bIi?%iTWj0I^;u zhPv4K<*D5B_=Mx7CPa2Suk=X@;JRt(Ep zw0WWnh~bT5v{+AKyfr>$%|FH7%?cEwGP~yD$ga7JDsjyvDejK!dV7k$h))JuskIoh zdh+cHq4HLt82{@qTC`qcC5~sa%>&QRSKOa6a~;KA@&Yk@xENmi8+xe_n&;{=#CXUD z_AYya7;Dsv5y2Tu!Y2c*MKR>fC9965Fl?H+aHCNtVKnbFCwYSy>qv~iM|6}|@UH#! z+KJ)B#kgt;Vr)P$vf0^pnAKd8)@rH5Xg|Bnw%&GWUf=!FA)AkiIvr?dS5X*W6a(Vb ziLoS};;&_b7=D_F;X9Ewxt2A6XR+Pic0YSF+xy`xn4>!T1)BkTRM|yHE^ya~UdaDQuUT z3D@3R3;bcxfoTcQ-glE2hx${EJaB;=<8ST6Slfvpo=7WyNAT@U_rdI;V-G>-@ejeo=IYoH^moNLHr)%1me|k@;;K{ zf208?do|%?G*9~qvw)L*3Ql(OM)orcIEgCGiN8pDVXwkvoa|R{QmIq|;?92ye&s>+ z9w1HzZ=}tOJb;sf3QnTV#~~;CM_pl@WL3hbARWAU7WfzsuRst}Bm6dGO)Di;U8i${?Y*c~jY!MXZ}s2dVg9=j~j$cehx zht=so%Ht*6e~=T1RdRB}h$1TBUHiw76Npf9vf6-0U;^^5wwyd%Pn+vv0&*NViMc?W zPM%WZ3aW^A3B@2Mch-y+ z-2<%ff$7CLxk*>Pf-1Q|0uswP`L&sjpi&kzPq7S6a(LBNb_Y&Qspq8rJSws>-nD-k zIgvLPvurb=?tN?FytJLb2IyhVWsn}e#wm_CdBFFgkHf3++Hn%zluB&m0s@>tF^bsP zkACMU@d#ZhIdZrlzJ5q8nRm^pC!-^8i4|{Cd}DWrKZ{~OygD&Feo(v-KFl;h6EP|e zqD`9nff(l$VvMHY(ja3@K+YEzmaI)wX6a#h#i)wJL{&HSFW`{tRt0;!L*a%AIg3NK+=rt4r zVwGY{t44b^$D8hxQ4EMsim|bfB3k1sC$DQOh7bKf2DL7PF3SxRL+3e(QDnU00Ts?J ze6c2Y6UErg#7JObH2;kly?DH(5r~nZwHTMV<(61^w@?i0a-+pz6RgCOY|=+@G45ZY zV{3!2Sh&r_2%W^&;-rr|Wr)$0x<^56hk+QW>c!}|m5OYe4++R!6hq!zej3>bl@cYw z`rJ0ckfjvYE&_fb?~xc)>Doq+6%KOT*G`P|XH=rp9;!bL#i(q;E~LDhBGJ9=D;XMH z5TD+llFY8IgXI3;n_>eR@Cxc|2=Nb442V}J#&gQVgKVQ9$9SlT7-A3|QWtv=v) zEq;7`3gj4%i;K~5F@41DE@fgoQREn<#W3#8BQv1}pOP3~`B$J@IOG`56k>Grzl36B z7bY<=ax2rOcAg+cI*KtcRVjuYjTQ!V_X07VqZm*%nu&4$G?m^1yDTqI3@BZ`s3O3` zctoRvK|NhTftM%-><$*y;9UJTovCnpLx{~lG1SFA`jf}vRPgdf7sk zz%YQdo3#yAP2?xgPr~Q2Uke+E^U;2I#v*W!=k(_>3j!i>iY*GAL$L6hL7#Z zMKK^=ofzf#UpCzv#K_Y`jOqDwNHYvTj4ui?5?b-~cuW1);$jHb>7$u?AjUUEj-g*F z$9S`WB4^=+lzb8+W-niv2x1f{#JKhMMHFMCJ`8farwj5yvt2-p?yH#R;q9EQZ@~70L)!{TB%(Qt84 z$YT)W4@HhqS`3$#RQN{h*VQC3_#?4{LUlllS_&~9Rk(#>9Bc&B#O&J9rlHs?sf}Xn zuD@O}StG%PKHp>uV$?w~plUP|qdWI-6HZ01i()|O@H_3k`24`S=180un;Y1A=jizkTD0L6eNFvnVV<((QG#B#CDQ*Y8 zQpA+RDB8hS#)23vv=ieA&sq*o1F&177)I>ur(M}4$Yq&!$a|;SI9p3Nc*Y)B1n$=9SjP#aMfu zK02NWr^G^$V;GdmF>cPK$P-DBrCE{~<$KY}lgB}fHVQF(Pp6<52_j7IGNCC1K{1CQ z$7qXUyzitG<1GK0#D;6vr(FW}Gn5-eU zM=@Y`u&4&->JQ=FI@}FWnT|n^(wvb~;wH70^58pl! zDo=)D)YWkkZ)CRg}SRcgbrkxnwD$vFkaU8=A z#c0LOe#EMy68D}FlCh`QIL0YsnZtncvB&Qo7YFdx!mdWM)72ftfOvIc1a+nIlN>>e z9-4@;>l$rxMHh06o(eH0-QnwFA;+*UF2*RjwiR?W6i!L6GQ`N^KN!~rfEc|=jFf09 zIoTA%=%Wy0Qq{XC#R4*F(3H01s$2J8+N)!t`qO}-1_<6r;02MtH#dv5jQao;H zC3Y+!#ykGgbvG2m7{6}@Bb4u6=6 z9?_ci`aT0+CUH-}hSEivn5UZ5O=`Y%I5#BcUC&~j6 zN_nn5#)x3{Y+EMJbZzCiM28#9E1AdWqgm?njEPXbAGm=JMF?=4-L@?OujFafEts zrAX-A%uz4T(g{>#WjBy#F3KZsF5R!U7aZr=3U)q?gx7SzDOe95V?2-K@$5z$vzHaJ zT*X5>dD3}x{BZ~bn2%z}*x7eqmMCdF@}y+**@F1+UcaP9BON7wc_)a2=xY;PYaPTd zKrtX*ofuV?(!tfm#~3fvL=4?~v`G_B5W`a;#tHhe2RFs>kVVDCC`Z4I!A%c=7>iMi z%1jKyQexbHN`*JG0=t)x7^~m#mDs!SQiu^a>=lYp?;JcZERw#{!A1i>jHM{X`YlQ^ z%qgW0ZjP^mT83gk)o3QhM9OP}jq$d*Kdq(5nW*C^=vgcj$d z8yAQ@mzSNdO=WO$`xzBthttG16DOy8(aP@LkbrDaa8fNX2RSk6b(e9H>qb#M>H{ZX z$jR;FN=_Cp;-BL)j<+HwP&Jxy@~sPP-O~XQkZs5blrCRXh0w{+{2Fca!g2RXPOPFaW|PL}gi+&>Hwkp0?m zvV#9~4~PZ<4xktg?Cj@<+>}@+oR(}#EQmKcw@T{We~+Y3M^U^ohmLe$8pIz&F(6)@ z7(UA=eh|LF_K+rG+@N8DV8=p8Kn^R!Xib+af(PRz+#|)sNROet44DR}Z@TutkD8%?*rMD=?;qCB@<6m28C&O{Dx7qZV^9o;Rf?g@aT|pLu(2oxL@31wpe|(asALdB)K(0C3p#|+ zII;8;icznS#BeZaRGEL84NdU$e~RIsL-Aw$K#Vx8#pu10ws*!WU-2l$updLjpn`T{ zLJ2Wy^UQ0kE{Ji4i}Abzl`u96n&;Uv#8|*H#c`e>MuK`VjH^+R@yE9}r~E4cUOaqA!fIZt974x^PW9w5dA?ZjXQ2A%%krFcOm5ycq9&c4gz`;zpJ z36l1g*&A%F%%mv?_eiQgydX~fMe)mVBI-pH1LBK|(Vm(u`~UU&N>wO+1rD!X(nJiO z{j|wS9}wfRLX0-eX#FZv$T5EH_aM*c~jY!Fl@kK2zaqaneT$ilHtxVjabZxABy>srSOkNs$%r6t;p4MUv`jd{vHww7Dk77Ky zF<3lbzn%DwiBbIdgKapKemG4mjf)YvmP+tTgXa053^9&5P^3RjMSrMXj1#=u7@z|= z#v>F%-dyhJwiC=!It%@D+6zZ`juGGk?fo%{k(Nt)VXw7iVm#4KjMqG04Z{29pQ0Ee z+1a0_^HLIZ`kbWum4f()N|U7Ctw%{VO}#Gi2gU{mGDMt0VYNlD>|I5m@L0VF<^JFs0Qch+j{X>ywT+yilHv{r3uAu za{>?EqZkmY6r(4NTL*8qf`}{>10s}SJmeJ`ZUka{&{mAPyk{Ps0AhSZG4|V#7$Z&c zis%4$I6{u`3B_p4dL>4zSCW;bdO-%n;1?`|ci_94vb7eY&js4wUtS=_XB6XY-NE9+ zFKw__Qd|tDofNwh#mM1e9OjK~Cr%T~EklgY;k5lO1IRJ*)Qe%TmjZVif*4;=40&@I zFwsJAY;G&u_G&9E;OFXZU1;xLNsJ$pXyd=5L5y$Oi6N8H#^?2*`twnY3GD0}t;m(= z{d-m7n+%t5bEN5~%f-Aqog_x`wCjQ^#226#5U)-Qeu+5vQhgBPyCz~3y3iqAN`M^W zheC`dd>rsH-n>#+TnxWww8`Z{K>R0)q0fdz>zB$gGS5(CQYh5mFA}5DX059QIKrvuv%_gB@_c9lwx!oNc+3t0b*3vR*bX!XXd63h@ppKoES@DOfY$Lg$lokKU(_# zDaMrT6ra)9#96M2q*2QLE{ zk{J7^&|dD~GmihzPK*XzjMOX;peBkjjh%h7=RYK=cW+24-(+uIkv5ficWz))ZQxyT z9shFOGllqCC2a9TO zp8h1>(|DQ*u}x77b+K{x>CbrP1sOy$6a!+FV$?67i1gYJVT58pgi?%Goq5C|5Tm)a zVx(WC&7XUN7{(~Zuf-(BG?OkB_@{-?1Wizkb}YxRVmU^^Z*mO7e<}WDI*4JawHWq% z{OnaIR9*`d6{nNF5s7lE`kcx4Xrf$&9{Mk-XjgT6{#KULh5+7t;pCfOvIc=osJ; zhg2Q_VzkvnjA?ag6TL$qMmvQVwVKj;eSD9CRdF%iRHBcnxPln%6=KvYm1CGMp~$MX zP=g&vjD>A!r2)RHsiQ)S#16Gl3|TFB=k#Ivd>YapXo!P%QWQg7 z?1<46`v>M2G86-1m15|)Qbf(hAVy~t10s}Sm{WTWshJ022-=FVj4%wTg}oA66r)cV ziQ#VIK!evIwQ;gW7ZfAv;d|NUqw%teC9ah~uVi5!9c~?*tkG3#F&gsubmN<^#potirXiy@gRV0YfS0ToGO2k6U@VSBgii#q=#?}oCC2&@ z6xkZbjt7t!6*kjKi$joO3{;4*II%H`VVU@ni81OEMOoszn*N7kg!(GQh_a*4+Z+cm z2B8>GHJXWWg4_>j8wFxGq8L!Rd{IS!iQ)f{cGu1u8uDNi19k_CYH*(Z^41h7hk8VhNy#6{2#efK<7|9v5zYduo#&8rPI&(c9Tk)2n z=3PyJG`%vUV6C}n$lW#Pb7h;_PO>m@IF`~Qab_Ov#=odbuQ!?ZjPFjmm zaSQ!1Hh6>VC=?^F{{O_45)1KjQ`KGxyRQ!}B!o!tDPW_y80*t$trQM0RZrr6v z8BW%4RxidE>W7EO@Rs_qD2BYbOgLmDeErc$@OW({#PUYjIT6GdM`8@8DH0(`C4RCE^vtf&VL(7v;1C5mfvOL7#}`Ljd~52hMW+^!N)1SMZ0N zq!8NCh5k)xS`ygj)E5<4=_~2*| z!yUzVaGS(fZj!=(9){pJ#vBwQw|tiD*UflY%Z&$OsS4P0WVjeLsh1nVE~qmx=4vfQ z6W%(84S>pt@EnyfHFiPp3A*gv(T*lOMEqPZFbc7_A%? z1Y#`GPK;n0HVqlm7z9|1VytIpKfG66Y2$8hC5dST@s6nx(gbH?>Fk`7;!z#i*;ssL z$`TX<;?;@Ks6WMz!-sHqX(EQxc-mxqDC8JR6=KZc__%n&IL5N#VyuazO(x*8iI*$H zXizH07)BT8Lnhio4SJIpbE#(>GRX+USfLO@*SRT*5jFNb6Qefo6}iTN7%NeXw>Ony z9N^jVWPEJTDii~%Ml&()uctp@iW7+8gJMAG@d<;0}s}s7!a!zqvAV?nC1-;>rf1cP>S(k8%6wS2sy@jZN-Q_ zL7Pw412HzB7_SOQjP)k%d6S(U1x?l$#mIi}URIvnz zbTl)vKn#Br*GQ=2BlShU^uOvvl z7=D8(aF!#85sYHUo6Fk%MuJNNsj#z+xnRZ#n%x-MdkBePx|cR~w*oOXYA4327PRr4 zUvOheN0pmb_H78+2sf_`eNHhe5+EiNZ(eaaIH@VC6CHU>uSAOR#ff;EP@W+8y0mW~ zwQu}UQvDHoVri?JQty@?C-to3#Evs5-p>h6`(~5};(ssCtM#9HP`tk(@8( z#|`nv-c6W7p5|w%r~rJA!q(#Q)ZiIZ0Ol&&6up}!rQ{j%h6)LEhBL990& zLS_X$re^8Iu;>?!wub~C0(o|#JW#rPQN@JG^WBwp7lQdm1j+-ugGDtsPe03n$0ov; zXBWz&F18=fRW>?+E4xu1h*iq7Y6_LM5g!=#H_8JMN_pnirHD|R*Ac0$JRfL?HY7A1 zD+~Ev9^}AINi{40*;UQDhjtSMs2Gc?Kl#z%Y>K5XvKOF3T-i z3b$uj3xV-wLR2ipZN*#j50gAizw?!NYyJ`KE?AYPpqG5m)j0(&?AXd;GCj&`xj0dkdN3NcLj z@%4`(SNXTN7?pXlu^UHFk1NDzTuO|ibZH}GH_pC2L1Jv@gEoJ=L9TLAA;$5w%}|U* zA3iZLn!cj_N8)Vr7!+ek6<@`?j>MDvbIes@Q4FXW&2kl8ehho?EpZ}>0j0|qRRowA z^?4_I4=Qj9#em(xq8gm1U-<$Z+Fnf1Poo&>Vt4VBY%gAejYBaYRw+iKQB>MKocR%t zVnBpajCbZdA`5brGunzVZv<@~g%1oni()LaCNaWHzJBGO=EILx0*X4(Ngy=TVFWZvDl`qpigSCB*QqM#pvlbCnBRjGwn??Lo{{ z63Y<7btI3(T;-yAF{bi^I#eITxP)TJn@eAI(@K@)9fW-g%!Q!kRNx_;m2jEFNUlLE z4`Z&9q@5TmMB4b_I;j3DD8^29_A_oYlqUcCL-I#@LAF=d7=iAz=}UZf^(_=5v6WJcbWi?y z1dNB=MlqmjG!tVI@3>~*dlc@V7*M)=QAL1>F+7fTmyrMsITgi#-NB;z63RUNCfOAG z$^&BWq8Rd6)q?Z%kMpZ)uZ~BY$UG9%(JcOa3i>rvsJu7{#b^ zpr07v)LM)yA%@Ld+Sj{q=-oWwV#M+6^gX_LcbE9bTo_L*7;o%l7+4>yPNqhN_485Bd+KDlar~27=)%7Kcv5%d7 zvt7-l(mp!USufcADdp}<>{j)V&NoUHE11#FvT+_r28sdk>cn`+Masd)|Gd&fjCDt7 z7hfDfjMoY=Y@%rWSDZWgrnnfD_+`CsI3ALz5To=6YSj-^$hRyI<1LBd?nNu}Jt4<< zrx4>@AIdQ@jPsZn7ON<#0CSA@C`PqjN-@m0^UtF}j4Tubszx(09@M9;*$w-wSMmYH zfYRlQ>KB`dv33LBARQX=M-&5g2TMsYx^gFfxIyeE6hj`XT5z8JmIhSr4}4TdHi`kU zN-+YjQbb`8i18W4fC!}+%T7@QdyO{}BS%{?uG1~(AwQ2puOt`6(4S3W>@#WZNQM7$ z05S4Vj7BWSXu)!fh~MNGfBW-zoY(Q?|CHT(Tuj>+0PqmXGlaaOiI61GnNA2Hgb?x$ zA%wj1&g%+!_D%?Sze4CBLI@#mt`Ikb5Go1RZ?CoX%ry0z?##KL&;8@f+WQ>)?7p-1 zKKq=}S&Z^2RQ``AG+r)>F~O_56qjcqH7c~)d>Ys6&o2<;I~U^wea!~y;YzT)V#IKn zg2xIh;SOT_&@9G_3lvxq*N*0+7>e#v=DNA~_=2VQc&U{*e>9Jah5r7N#Ay74c9!x7 zF@EVLMinN9z|El`P@s(|RVfU?~#AktSOLZSl9O^_5~ox?A9=n5%Y$nDM zfeP3~LPs`0G2n2p6&7QVoMPE+LKbU?VklzOE6z6jH=APR`rtu16a!*Ub)sKl8dpx= zpGTa9i1H`~L@0jUZCtrcffQlC0K}-Es~Ar!QE{;@h*1&6s2)OM95w4ow|oNGJx10A zE1?*3*gcmBcF*O;CiNNAeg4RMuIHwBx+|FK9d?6r)zDZqn+YCemL_ zjO66xct!U=kVmoY@R9l|T#P26w6{Ix7*&fAV?8Bjf$i^u7}Ye3vAGdd*#Td|VT@uZ zx{J}vhT^(!jm5A%HsT{15Cu9KK!2}JVkCW`!j8DEqlRu`Ord-}uv0QLe@zr4j$M7X zFmu5m+dw$;_DB5V>=i=ROS$k*(q+lAAsx&KXG%>_42V}WS;RX7y@F!cjiLB%P9R1t zZNzY)QEXthbjUGkE5$JRi>h+QdoFbfic$JDebjv~h*1~CDF1)O*kDSLJ)NNi>ya33 zXxJU-@(Xf|`bsfQA8w9f+_;d(#8_LCiuT?BVl+T8Mz2zd5iy89?}IC^5sCqagH1g++i=)dI< zlK8;>9^iot#ei6q7&~34w*ILQVUA)zgi4GyyeZs128F`A$lBaV|8 zab}-*p_lTt(zF9H&J0PZ2nd#MgqI~CWkGAps^K%=y&Yb z?$@*vJZJ0>B4SQUuV@GqIKdAtmko*m@tVZQyh-&>#CeR?+K91b1r?c$GoQ9fG5WNi z{ZmnlHU-6qT|*yD!^L@RixJ}<{|23ocWLcNj2aRZpN?V(N-;jaYKmfXU+{~GafRm0 z183mcQ8|inV7E$)Km5;<{lYBEG3-$cXd3OrsNqfLFbl;HQ4FYEv8f}##3(@%@PV_V zpd&k=7;re))Pvca#{sH*4#u`aF*L<~n@zF4QQ$#)6a!*aV(9-(5p!`=(gDSQ2$dL{ zc+Na;1Bl_Ms~BVR=>YRRAjjy4V(dvFF%rz4eWp(r;Hab%iZPqrrHwiqFK=3CR0281 zKK{qG&>F<(tg{#|`SBK2fQEKLG3>T=k-Td*k?yg1jDk5vQY$*QMVTN*7cNGdqqKK1 zKBC>V7%@y}z!&J}4`OuFEXI^js&a`Zh~bQ4D7wqWi`Js`m-=G4>Net=@f5ez62$0E zVwmwif@O{%Mi1S@Xv76rjuX#4QH-nX>Zet+5q!H=5j;My-<(bf5uCOr2@k&>k?Q=S zGgxU2Vz{6f5U)v$2O}xo|32gxy|fYI&kriH3Ri;lR*F&4llHI1A8_kaPz-%ebASQl z7_KNr1(stpDl#hRLH9}m18^RrFNv{x4%NIi6LO4xN-^f9wL>ww9sk3`Sn5Gh>oOt7 z=#OG#Us8!tDTF>}j}tR7+)xZ?8tud=8Aqiz-iI7x0Ez*%D>iimAjhaj1vX_tM;?e` zz~Nw156(8+xtwAHab@}-6hl*N>A@5mgs<^(M=>B)CB}yD6v5un&P*AMVnBpSj53)N z5h?>QhUhBB&jD0C3|~q*6vfE;NMc+y3*eV9ED5^cFcf1Q6XQ4&L;OEtSn)ruaCZ=6 zxXxm9=ZzPEVvImBY8!TuYL93v#TF97=Nz5+W?Tt2l8do%Ki``S-P5BOG5XVL!@x+K z#~7tqjE+1lj?4ftMxz*t?()OBnHb!}R4m=KwfL_C9eRr&h%tu5;ExLgZWTZbPu;}O z-$pg=%z)+}i(=enS3fhcwcs3AU5NkqBYw8LtlUY87s9t6l=|{f%&z+oKMuu!cuit# zpHB7fNdqy)Ya@nLGb*wd@0EBd#mJ%+If481VIE^bK`|bdq$2z9hWA9}JVwJJV!R$i zk^6D(coK>6`z+rX24Z+C#hALJBZ|Q+a2QpBeFiIu0}oh(7?V+qb}v<8Y^Uk#zyk>& z#uO9-nnpV@V)|0;2i-u7sVD~2uGrKOU}9{cdm4cUQ$Y+L6ax+in|g4z;g8-_`5`}u zorYp)iXF-4APyUW2h&juh*gPkXgAe%I1(aepcoLL5<`rqh$8}sF;iDDocYYdk^7Ki z%tA5b<$ZBI#%;4!zo_yUPw0ZP|5J=zv^py=27je~j?QBArS%_yM;Acj`Jxy>H=HEX zMopx#g~S*mr*k`sGoN$07^nDm;4ysH?Yv^du>MBnj~hUaF<-M74;S#j4Ist>6hqNn zMwGJJE3#3OJ$#yVZauyCZ}$+#Y4J&MuAhQxSc=0*1^1Cz6%3vNI$GOB-+ ze^_)*?(%5(QHn;Skp*NuzPcxmQT$d(NuR>yc;Z1XE0gOrl zxftbmbFjAnupA?(7%}wu6#nhyAV#oKjGj*)3Hq*m9h9rhO=NUZDf%Er2#TTTE}p$* zV#%(x#XE1Cic|RjF9maqP!gjHA3NQ_U#Sn%O^hpCj3;+sU8t?v+R>WzR)xdb(O7=V z=Q%#69FD4_u^uAZ;V3-3Qd=!&e!^oheRn=aTfZbDv#cOWUBD@LkGSN168)8Dx1tzs{C3?wYii~m@3_DsK8rC=s!hqa?yV(1`E zEkKpCsLIn$Dpe+S;Gg3RYCNg}O{1MEcGMq(n&Fdi=TH@>U9qV{!Bp8zf7?OLjX;X? zs0thoHuc~f!;0(Z)SAaZYyzsHDYpLzinVkDRW6_^5UWx}+R7vFNtlbM3Ph+>`Tl_- zTHp-oC0$jyWJ<-Yj6sz|ROOL3sghwfn7$Z-tfHU`Uj9#2PSFf%P)jGsRj%l)%6j5E zsAV!V-c?j(QXePj@$tse+(N2E-JmnKc7a?aiK}8wU#&sb_!hxy#i%lTCzWsI394Mz ztjd(JJTMDXxq+%Ex=Y--`eJKWOR?L_X5xd@6la605|T-ksJ*naHNLOorf#Z~yhep> zqoMh4p%|ap)vw#pMF?78F3imP5%2Y*iTrH$aG}!t49S}YY(Z^t9ms7I1L8G_;Y^dr zK?1(pJVhHZS{$cS67IuY+B-@y8f>Qha!(NBZb32H@sI3r2K8PsV%(zX?;!gq5aT|H zVcwi-7SkXPd7u3HvQ4DH_&!;>@F=QSpF-HBSTH0sA=;jfM0ZpTw z7_OzMbVn!1Lms0TP`hGNPZyXN?f9QnXUs#MpcrsC*b0mBJeDeV!jaJ5D2Ark68x{d zt0jo>6vcp8l^C*TR9n|Lh)6{-AVMX^-?J#9n+xP2&vX@|`7K@?=R=;O7^bU9jL&9e zXfz+>>;YZ&1&SfC(ak6}x``fAG!N;$mTGg(1ToTd7K8t=Xi#^|Ltdg7?5Fjlv?YzD zQ-#FX@rsVsJrBfq#l?_MqP;y9z!%y-#fVX#=JJDj>Vp{Rn#Fj;dwfrS5aTt9q3ABA z1I@*fRho-6`^ZEWuDc7a>v%(AEEDK_TyQ?*t!`pGyG@11T0rw>pcvoT)t8O#Cq%t& zEHwG~BYxdLEBXDG+l4kqGo_XdD1JQNb9skiK)fa~{?No=&;dVyJAyEfQcbL zOo#IcfUmx9Cb-q{;KjNiqGv6|a5 z2iJA{t62<3j;b%dsrV0yq3ABPTU&?|E7^#tqgsm5VRUF;%&GNAj63aU=UjY?Ap4sP zq;3QM|FihtKlGocKU>ksH}y%59;O*nq!=P#(pArqND}b2M8Y#9jf-#HfH`K<$c69RViB)0=d- zO+L_(E20>1IM~#Ka||;dQEVXQBb87LO|h;0DK-f2xl~3mAXX(t&5Jw&=U9zU42V#P zG3gXV1fK;ls^}`lGyZoM5)EQhMKNaGA~8zH8tkLWL*1YYRzorRu^eL#%Q52qPmZy( zCdG&0dq<6R7DN9AFCPmHT^+?ZJg}1#+tOSbTS$y5hbT52-&9f7}hCNZj(9^0HX<=9^CbERt^_kvig6@x9E!2)B>aAgBNrhi2*i+~7#A<7 z#ArE$PU0xej+&zw&@|eKF>WR=jVr+#qZm-TVpB(eiQ&xNG(|BWRwc%T6FdUvF`A(m5TO!deF8g&0wu$0b33w+)0EubTJL^0rSu&D><7~1f(I1%3l)CtAV6#LPL z>b<-d#ORD-K&(oP%Q+NrWjRDRp%@UM5{Qr}D`-^XZ~l49h$o_zT47g<>eWOYM&K;<4G5;?G59;?$=U zchevGdv6k>g%|C-bC6vuUAF>p!zfL7nk~JBgPs#UIg#J_E(D0n9mcu zi-sJ-t)Lj|s!@^mo*>2m6r&Q$F^Y6vOS8N(}34`uyWC5MwZk0ZpTw7zcR6eli9zhM*WwyJAyEfQd1P z)^!AZih+(i6vcqU!KNO}@{xQxwa=K33_~$A#SY_1f0iD2FdW5z*z5ckm%Pfge?zrp z#X`gg6ayl<@Mqq<${9_gh%cTX#z@GXn=2kRNbsKi?vF{aZU zrr;7rkYh|%ieXFlsDex2Q}a^_iqV%kQE*8gxFl1R^BA%sIfge)s|J_C9K(mict_*9 zV0|YLW13QoTBE0;7`~N~m>4&r=$}#=bByUI#+F)Zl`FyIRq69GE+EDX6a$(@J24Xb zQR%XEL5!Iw2Gp+D)Dd7}%x}aC;1g}LPz*R6Z0f-|hQFFptbreN`q?OkrdTtY=?ONp z1`p<-7!a!xqZG|j1RG{SgfEH#5h^hciJxXMy6vI^8R1j& zOHd3&cNy#3M;va_Tx@>YLVQ5?27`_8srjWO#xTmdf~(8~F_!5j#)!LgWNQ;>{^ck} zQ+D-D7S9r9w&^4cDwiLhl9nzcg)bIdPu!4d@s7=I7_;~lCS0c|(rjUr-F2y7aG*yTc_}RZNZ%O+p6SZvb;w zlNj60skpcS#8{&gBhO?SiXj_%jfpX)B1JhQ!l)zw#n|Vl62o*7ecmn=#8``BK+|X^ zMr9i+-N6*ZSchUj?TSqu0Vc*l`sxgJ#JpiWiUEg%O+7fraM)z3yd%zhZa^_K#Wpjh z*iJI=U?YkFu_`f|^FGiC-)+7L#efKv7^P|QI=FKrh!Lo(7*>>T1v}Y-7(pn;u8AZ@ zQ`w0SIzcCVJ|*}+#Ym>yFSyGv5FegvMS;#J#%2^l(Ou$#dy9d~ti-?O zv=DFS^0+YQ?~x=%Q{IBz@rkxAx{1++Mh(F|Cc$5Hr9W?6sLyHoKl?|F;n%ZA9-y%m zk+EhSCNX-RkYLeC=u#m+e%Ru7g5w=a!Ot{N%Be~x?cxma+YlLu*Mv+9Pm1py3#SyN z4Khy#QIS60fXsGfTJnJRTvvR>=#GNO*dL%GeXZdt?o_5FMF%p6?(#@X?4k*oVLTD) z7X`@dQX_h>WJ#s+5ZdyE_3g z2M`&EEr85QI5g5O+Z4Fe3A5B_U%iyGf(g z;2~Mi1&<&y^^8Bt7cD#|zcsjMTC!vnoy^eXfJ}_e$PA38^26ewp^qXmQI_qbs*}tl z=R(M=jHg)k?r(<7F^htP=y}ufXqokrd%1?IZ6g;$tm5CiQo>79s^5B+o&y2H_7tb1`E{L zYy9Equiz<`Z~@~=l<1|W7g0hV`{tiFW8&!3>5riX2^XXKEgE6LT1-z-LtZV4nQ`y8 zA$y<7pEp=mPp^ytyQ!;poIaej9D2ZML`z^DFtX`9;c>;zf>EXX_{8UT1;4-B*;P1j zRLbDpaZU!rpFy-BUK3hndE@%V09t3YK`VU^Q1}`!Ov@R&oa^CNUXa%1?%h2LW^nw@R zDw2zcmN;L9)^ob^7rfXD(7J?ZLDOi5Rs%yiF+T%9D-qFx+7+9+Lkz8WZlvEq_*=S+ zXu;uNQxDEDG@*Ou!Apig>=i^yQ|wh4oyd}3K+;u23u0Ah?R-cPOL0aw3DJTG6~;}ag6tDdZkMM(7rcRJ*|qs3Pv~%7{@4E*OZ~n@ zr^|kaoS~JhGg>uys<=`Q8t*2e)wQ~VlpkOw{bBcn3uZ=1hv--9 zM$4}h6@qKqQ&EiNVJa~O^L`$JPwqZLF`#L*6Qenw+X?jmF`lCsP`hGNM}UcO&X!Im z6mM0&Kr!HOu&D><81~?QG-1o3)2E>rnqp-sRBt%0B6*2oK&(oP_s%>5SEju}F(5)E zMk04P0-xOd2gS(B3BYqJ*i$t8PSli%bbyFN_?ApZG5ju)7#(EuXfil>voCbP*BZqr zH8@iavo8ZnQf-lVhv$vXVpLwi%i}cHTNES6&t4k6(@YvyD9!n?kYcysb9fnC48!%b zcdIjW&v(U$v1tKCZnK6o=e=ez)-|NSsJbA=2NXlmUEbym5C=I}iVcigi^n4JQmF{Q;@9={(=c8_7Jhh@4FW_|fClsR_yZXKp7YU66y9h0-=EplGEfM^}UY?wo z6(dFSq3mT`r}i1efcS#_px}J%Ya6Qn3W|}XjTl~?smN6~5aWwdjNrL^KfWF0Ye6xV z(yg@Mqy=zEz9|PrMOTrOZB3P2V+#gx%_d6+^d4;CJ8|7vj#7+{jhCVrQF?Jq40~^i zx}F9Dqg)i@<_VP;E%oX18~6sY?43Qq8rM=X~UrT4N#1}?CJ-MUn-2K=_F)T&yV-3uvtjR z+;wW+y+_hkGdfs0j!Fzs42ahx##ufNW$)!?qmpvkh|zL59pbGqh*4fCM)D56{}<#K z6$*+mU;=%Vfe$EEEGEZz!EJsQ1!7d99AgXJk`I1A6GkPKm15MYy9&iIkqL z<7yZk?h~$8uZCj4;b2n_&M_R`h{t9^r#D71G{uhMU*VteS(oZ42E?kwxOtgsWAD;t zrqn<&AVMX^KmB+_7Kl+(S20?8Qt>Y+h6#%Cpv*j6MbcL`;3s|h6>l-rLNTtj{v_Yt z{=8iFf5b5R!sDYsjM_Sj;mwct%@P`~4vKNc%UOSK zB{3SVp~AT_AVx#o#E@BF;gB*1L5xNyhC93Zv$K~8A&Qij?;UG0c@>Y^ITZ2)h@^#AsYljN$aH z7gFIYT#_crd5q>oMkQqfsPc-@Ach5rk=mbjR>H~Grb;nn>(-zc&jOD#F{V@Q6H*!9 za@q{VXq2xKqY{1ThZy1HYjYF>nnpV@`fQ_fFiL?O!xF`S+7+8R0x*w3xj;x2FX+fE zPz*R6Z0ZRKdvb|7PBCJsih){{q z#+*kaff%iH6~m`K6*qQ+9K#01s4pWi+-21|@K5netMz}1v9|@qS6={P*y=3CavCXw z)Igfspcp$+?In*hGHGxjF+R!YST&+SjJ8~iUo>bAsp$mW)2B>loH`9msb|?nKYZ4=azSBcwJ|ISW zZN%vGo(|DC62$1B6l362+HY|d#BeMq2LHAAkfw-u$6~~|^olBJngA`>iNvV1n|3yH zgdC%@Qj8p5$}t=x4l^+x{^C)OA;)k+F(%bqr_3?jJJRRPaptoNiUCcdofwN|^U}XS zjIJmK)UMcyh_R9u^oCgag96=93^*KY>cKgN`x;Q?EsP=78O2b<7S?507aki49&|@B zAXX(tn>!R?h0o9RKrtXfB}SdDJOZDe>#3_4?lejaVNcaFFgxyKFR0QJ1-AkQFK&NYdW2bwHt`hTW2wP@qey0&SUgJF*+oOlKu@dsb!&6 zBtew;g|u=5FE~F5jbi zi8bCg6+ISOi0L%j6+*up;6`HnRhcM;b2n_W;353cx)KNjz%#Qv4zEmpmAhKcU(m>2E~9_l^F5-TcCRk znBs|IK!i#Rvq^Nk9=?!cjMY_)4?J7zX#rx4Los4TkQn1-LFcLRo|xv2|4%VC9j15} zT&e1%vlw0IMpFoT&pvCs2`I*oSE6*boJ`6nBt|EDI##bR5Mv@2gHI-h^v0)QCKV&b zr-YF&E?TTaF*>!~&%`*+xgMVlV)&vMzx%4h@cl+rd*Ls_ z%|$VwX|xmL5+CzSZ~!spp%_rRVpB(eiIKsZX+jEgSN#Hz$FuTTHbNe4lUMJNVDsKhAG({S$~5M!~fV$9+fX|gql z;fG@Um``F%m6fB}!H~%)#u5~x2b;$b**r$VuA(_c6He!%?_DiLw4Eo#k{_5Mz~YVz~4Eu@+Oj z)hNbXcJ+tYt`OR13=o#GCQ10b!p@?xrSLZBn`HTe4z?aI*BTT9;tPr)u~z|5&wah> zRtCjyOoSXGKpQdEjHV)+yg-b#N-?4?)BZpw5My0IF-BIUkAf<|C0VZ&qv$+_z$*#b z3u0^_G0M49@n8XRjEzb$47&uP7~dD|W@5zo^QcS^V-t#DI9DY`0#9E;0$@ExAc_G^ zqn#K(`QJgPC5RD(VnFSRP5lpBFV}Feq5$422}UvCaImQd=NeArUz1_p(CI@^3{9~o zxbfiz;6W&g0kQM>vn~_Lz2@Ir;kX_n48?$md&-E)lc}j9yg-a_UB&47j*4%t0AfU- z7^QcT7;|N{Uh_|J>TNTMvD4<0{6xF+a)&}<#LkJA&st3Jk@&=Iq|RbovEb$Npz*e# z80*|b$#<5Sv`Cg8-*nh|y63iH#E|%(*Ve}%MwDhT zwx!X5w)uh>+ffWfcd6I1qu63_L$SrqmSQU1B@2nthyK2U#5mZK3P<7ZRPWSHjFoMu z@NNspF``inKX&yqCan;n#tafBn&-#+{%j+}j0>_G`0k1jDsjfzYvue7N4n>L%6p65Q+g!qn#MO z{9k?855zc(VnFSRO&tLy##P=Ij^Kpc5flRs2b+3uu3<+HI<+Hbq0`5p7@A`3_}5$v z-a9>tVnD1)jB8t|Huh?AX38-X10qynyy`#^N25TD+EDgL+%%wwF?S&Zkra~*#Sjdu#g$dyEC;x#kr3Hw4VC`LuPD-sgx z2RTL@7vtX$Is^930oFaGV#N4r$|GYzjMJLMFyMpOla3(985Bd&UHa7TASV2&FV;F^ zDGEF>KbZ((oFy@y@S~jaf*d1WH!&i4hM8asVw^)U{Mpq%H+iMtv}Lf6)0nOKoERb` z*d(<*_vM6ixi9^bE;&K`c@zWUHHlH1kGB%>7vU1L5ucoU5aWVUj3InR^oj@M z7#9nQ@xB)oVedz0m*i40V$9gaBhNw$CXyJ#dD70F`er%CWu+K@riY>!uZ5jVjF}s# zD0|kM&9(cGV_ZcsplP%dqa&?P3%MQ%VkDs$P`hGNM}Ub@Rix9o z;Q}4`8j1mjgH1g+*RZ)KkHu&7ucH{6VzYU@$@m2R4HN@nRbu?jGrF62uOu18fC!Zs zihs<_#~{W{UB!5|iB9(xK0kL0#Rz>yV))CBpQBH2M#BiNJv3K-AjJsTnpfP-J7QB87ImX}Gh#~R6%x69z##5yjq5Q_^GhC06T2PGE^XMqgm%}A_ zR*V>Lmr>-43ebYjNsQczd?(&reW4WNg^WfeS+lk=F&=%Ss5EB~BMrq!Pf>~SR}lXk z-%k1x#ek;KPK?()AANZc#CU~bK<$c69RVhWoaY#?a2@AACOxfq!-bO!Hm9^+#%VvP0Uk+_2ElV&k~>rvo)YY^iz zilOK(@-Ko|rM-nXFR6_f&c7?($3TD2A~AX_qQW0=9^;E{V%YNU+|0@FU`kuHM_Y2b z%-RKywnXI70lwn9g1(|Ep{$2&-MmV;IB=A(sCj<8QA9O)l7YYA{&2rEhX2Wb`vsTu z8>#~Fnp8>aPxa@TfGXMAs4|hCQf@S;lA}~5p$S#>9p6WoTTm78CjTfFRQaw{rRZFT z*C~q3!?pN%q{=CN2R834DiIxdd={vpud^zNyvzSt0F74~RdJcZ?x(mk zlD@F}DFszAa>rwZ>fv+zWwq;MlJ@LRq>>6$Iz0lpo$@? zqUbI*v+Tu#M_Y>bmfMO~>rsUz@qS7AYPLyW9hFrv?|_nsjQ7EuU+U6)%-veBc&=EHqw4$e4?#NK~;`D;~(MgL{&vq zspD_tGCH)zSx}`0ssc@;ohp-QP!U?w6;!E-szB|EO&toR%4AC2LTlnzs0pe9 zhl5Q$IM=X>2epq0&Y;#pRW!w(is!L7+ff@;fmoF)$1YJsEkAIl4ypnXDpfjGporSW zFuJL$t12z}@#0~iNt?{xgUeC+=j-Q=9+@drVb z20E)^N;d&Q>so^lp=~#8+V06=vtFoHD-b3r*O0Y)7sB&Zk zm9K|0sAfu4*0fzCZ2wTsLAl!eCXFyd>*Go=8LFb_E*XtQu}d>+(aEco=x0L}Ho&!` z=A?>aUA{90RB5c6D*frpGqhzMG=CEmV=r{`l52&Z*Sv(b*6b~(JMRjPsr!XqkMBrF zXc{rJl@G*QpcoLZNsJ2Z>Ev4DGq6py5yNZ<6|r>!F`6mGcvPM5$M*>}FDS-jexcgn z463Cv4=E}}4kZ(zZSbv+El7;`M5?*1Gl*fO6l2A)C={bbzCRP=B>$Ukn+kbIOB7?N zjY^Cbl$nOw`G6SKCD1C0rBX{9l+7rWQObbL$dA?D5%Q3BMZ~D_asoY{a+#)eL)#}o9?~AgP;{4BGunz} zp0*H2e{UgH@~0E(;0oW69Y~B1qxepI1DT_4V#p|`4ecd^=I@AN#IURXZ=Ll*?eKAe zmrZ`WUW2Pb+Ue55lPcFFf%m=M2@u~2#ejHCVx-eDoX|d5FmmavjTjU7zo%~$h~cCZ zW5o>mclNV@8PqNX#W>E-s$UFTlCH&wA-_kJ^tXl<>_%ctZN+!Sf*8(9F|1xjq8L#n zRx>ef+@UBpd;?i`6yru8l^Cf*`R91gr3Z=uO`~0ovC)W155SdRJy8s(U9qVnz{J>J zf(i^YfR5~fV!+{GQxDEHTydAjMnY^a6hl+2S!IeHgeyaPqZkmY65~}<9&r|Oj6Ns^ zM5x55@`fVZT_MMC)m4l@8cBw_XM-4hQH-l|NsJg-iAq%YV7yD)??1)(s{zFi5g^Ct zud^5pV|jVJ9qxu=WT)6mp6pd0KMRSmbP&Z3#ou=tz{S|!oA1RpkPR$GjPDI8au}{1 z9i&-|UHp$>xB-aaj$$af%h4!XF=s+c@%Lv7QNIRNI6M;i`(P4d=n>jE0_Q`9=qARM z{#1CRHwZ8k#W=;T{_5qM1c!rTg;los@v=L$?d*iA|AF$=B69 z64!N%A~CEYXy;gK5M#7b42QSdP>fR2LMBG#t`s%S0CJ2mD2DN5l^C7w^Uq@;$M8fk zplP%d;~u{d<2@nA7>i;+?TSqu0VYQ9H9Fk*U!cG^6ax+in|g4rVdvHq>lFa8<53Jv zv9CW->;z-*zzfBISd|zD_(*dCu1BAMVnBpS40l>{5<1Zu#F(h77~6QtJuw!*hV=q}4P*oqs%ti)lbnu!bd(aBH6dyF$k4Brm4(+8iLpQ)P|X}mdtF=v>CVw`7J zzfqG-LgV{m1?#r?@m2L3$xZB>8tFH(aA+PK#nm- z8!_~0(mymJ1H|xEigBVORmI+~z{HqaP>d4%k2TT&F3CKl7`BDP`0>Xlmnw-20CVS) z7%Se=&MhV&#sZ}nuO{tAF*fQiW@7NC=0mrf1u+()7{gbq#CSfBYT1f!IbDQeK+|X^ z#`Q0}bOwmA7{!3v6`MK&OpIOWRDi7oVhZ@77;re))Pr*k-FH%Klpe$`K`}JN{!0_` zp;363b}5Phu_`gr?5Q^P?gnPcG86+MRAN-i;SmQxjODtD;dq>i@4$B!u0Syc$C4Q5 zW##!8az`R`!N2}f4EHru+fGl&F;?mb$k}t$>KrtX*lNeU~cT&(=l6sCbboIg8`EU=m}}ZNBq9h!LU`!}rfF6vL_NL?*`L zTND-V1!9Dv7!!`F#Mn8Ef1V9FMi`0#O{1L{8iimm>3qDsK9xg zn}|R$;Bc_12j?34@XF6`fKI;|#n2S{unN_ifH_7aiUF}IF}%WfL=cFv1;u~}l^C0O za(=-S#Mr8<7|;34+=VE}F}9%?W1o^3*JMZP(BUuQ;>9QwW5LBw@@gB;%MEK3%`qOW z=kakM#&(^>XqHdqFX4@=9Vo^}XM4%U_mCJjQ>pOP zJP>2AZesilr@}8$jD09Z3cLD^BZGydrM-lEB6~AW%6&nv>9sb4w_KDwcuJU#3-|V; z7!a>X4C5%O|BXI~aX=d}Ry?O7Z}mZpgGw>ZOsD-BxDxD8K{1}&(ns&&;F26xicxq} z^5aj&6pDP0S=td2!&;wqe!zK*7^N6pChtWtEcy>*Vm#bMQJMH&9Rg7>Dynj1*aelk{m$6ntr&CNbEkTz5RB~`7#pgzX7-w`AV>&PY9l1S= zVzjfgm&P?Wm1Y%MZGQe09V-uidm)~S@rI{^KTwQw#fZ`E1(naoUxYiaS&U@fWq&$= z7zrqbqPqmt5XJjtTZmhSTZv}8zyGoTF)ol83;C$;cM6DcQ8zJG(oN~*F|HOALn6e(*efoW7)iy5!TJoIe-$HW!D}RjA3+>e zB@J?n>q;@^m)(hC7$py4V*E{G%&@8nkYn6HF@AnfiP4XGOIS4z$T5;p3}_nd#8^X9 z4Pn*rsrj2I2Gp+D)Dd7}9Hs;|%otaK-9j1(!v#tPQr0OO{E-Cb%_yAvqaPeB)sd{~X1D_<~~iDxYXeU)7dw0faTdxBtD+MvNKsB^PE91UW{U zQjCtn>CnymL5!CL#h65yPgrvc5aX3njH08G#@(or=9pvrLt^Y4LOU(-*ILq*V(8zb z93$jA|SvEs6oP zD>iimm>AnB^AEE^F)~mLI2>&1!MTQIS5xIJO(7q7hhk`oRn*%O-{til#emox{=C|x za_2`=z;j2E)Eo^*H{ z9F=@RFnLcvEEHqWBzvj1m8tZF zi4j-7^f^WMZ(&ZyVk-mK%;y&_#{N!xZw7SFuf>RwFqR_Q;4`q_G>fs!hXUIQAVxNd zq3AB*-yFm*ZCZ@=pBS576?KXfIKMRUco`37L#|Hp@Da9x{^SOxb!-jS60CRtn7!O-f%^flz z$M{z%MxSqoF~>+rZpFmtO!rE{92Y>2@dw3N+gK&Wn^>x)qcMn~hhjj}XeUMr-7F33 zh^x(6JJn&&|FYT@n>qqa3~w6phIO)qj$9JOfWyJ29-M3V?kb&Hr?U`S3dK;wsy|_$ zYv@>xVmspxDd?jZ5UUbnF8?C!jN_KlCMVvA|2prAQ_SU1jLxO( zCFi&X(!4@qETvl*VO{e;jPhKJWdU>s-LQLBC`ODrvnkRUe-W;tW-+2{cwjb&Q3=IR zbeGc0I*8R;wh>##wiZ|N?6P|#^!Lgn#u$D+J#gmJNH;OYa51K=h1KSEYOBqUb((Yl zR-1?LByqMU#8knxqe&|VwPtOir-<3lW9Az`?ok!x`NDe9v94Q$(Jf~R#$EE`U1J-{ zPjV|;Ad8#Yraf_g;7G{Gy zH44hphJT$b!Z#JyRLWylWCpeCPpV`wuB9^}dECzNo%lOZwUqL_wLgmT3>8{4d2BCG zl%FNYQyb+8@1>HbGpE20-)&w8<$UU=>R66H;nGl7d8BGod_sM=JI%PPgdqZuF|9!c_s{{WBL2R z=*B{`JZB$L;41tr%BCofqPv{=ZYPd&62+fGZN%WS6t^1tdoz;fEB|v@oea53bKT@= zL^qtDHQhfg?F(6)( z7_GNc{JK~W!%7=5ylPO94FMoVOQjgq>eK#>3qTC(f?~WaLmzFL374c*F=A9~M3I5` zBRDoB#vCi!8HDfaXsr|@)0f2fFxZrd5nw@4!QLQ-EsF7KqDqY3eBc*??>29PVnEYq zCq}z0sy!5+rEQC1K<$c69RVgrF0J_v3&XVhuaw&eBG2|-kbrz#8ANy|01a3Q^7}*c( zrA;gAOIr$wQH77ZqHwjjBNw9uzf{{dK=ChKuf*3stiZMt=A6*;iy_8~1 zopb_ojM~B*`%xwOucxTX`XEMc6r;JnN{s0|OSqyBqnkb`1~iR!VtnI&hU^6bEXQy~ zF`#zErj7s;qeewKounA($bC@^I2>$+^M;1oDE4|R#P&lm6tU_R=Nf)Vq1a?=@Ss16 z0kJAEJf2eo`+;>9;f7*Bgi4GuCn)0fFqjV+psN@$e3C8&-`6n^#b|Pj#LzRZ$R~o> z6Yi`F4ni^JP5Ue#r{wn4C~GGdHOIAV*-i+O{1L{gLv-z zIt#>@h+;tPicS3wn~8CXpY)qNP+$^@0f&RFuo#ni(W$*ng;;MCLlLW9FpruDfehxw3|d^-1|H;6G^XEEyWhW_LVjW+|uc+lQn z`n0W{bhVHePx(y4XJZ(Z%;aK><#&nL4RzK%XB8vHyx;V1%i0TK%+@T%1wJbI;tgWV zK`|8FCEd|Zy!%@a%MWWI<~ODazgk0o_a!lm!)WI>QxIdWZena4Lxq3EK=aQ-F)FjG zKX6BsP%nD6Fv%r9-geqm!Ssf$UFobdQuI5D|ATJ?nvY^Ye8GNDa0a#43ycrfa|1CJ zXd{OENGejo8pK$r6k{5F3x}7~2Qd~E6yvXGDpC?309dRPqv$-wkI@ua3ZH26BQd6z zqMiEDAjT4<7&U*#q8QMy2LNOGv>J@)C zJbj1iEoTWHtVA&&RwYK75k-{Og9v{V10qynd{5#LX^>;A(p8KR^u-unVK0cW8pV(@ zNsP+o$7)gK74bIV8WiKH&u979Kj-D%H?GA|6EI7-7=6$4_{ShdfX-s@cd3V08U_u$ z7R4wv)?TuCQ4iO36r9Jn_>7KKDGkI}$Hj25r@icV@0l3uixFdBRf;sim0%l+h_PaP zPkN&5BGD9Xv=_wKh+-(Z%a6MbV%_*wqM28F@zf5gu!w*}8x`}a` zZYzbeAADe91fdwU*wr66dxuc=;|!sHpZxfYJqd!zecQNGHDaYK${E5Zc+ zioY9f8b|fY0>FdqC-|`2$dK|?@~nLnIOhaUB%e^l8QG;2Qi{i zjLX#);<}Dn<|Y&A)20G+!CfduA1209CPvQnqGE`=-!wA;F?Q=LM*UZGyygbbczaNc zgA44Xtj_hN_l54c$p7%zED&Qa7h~cC+H08rV(cqMjCwaHvIWk3?$<0v-Fp;hg>Ml& zfMO`R%V+!cV%x};;>53V(U<#gg}5f>ATtvNY{cs-#*E6mI6l#K4#lX{io`HAzel6f@ByyS z1<(Jd7*%)%IUon-lq4|?g3=4Mk>s##-j@_6g?CH;bKc#dvdA9rN zxNy@XY05H+AAu9q*H8?I*Ca+snpq7WkqKg4*G7y$8mESj#5eQYP>OMv#(3c#MldQ# zE+|I&K{_iBMEoX-QJp=XA{Lp)7`KZeM=ggIyhUQH8%R4xyMh?Em0}1ZNsO2Mnn|Nd z1PAh{JP;!V#TY76iE)pAmyHPmG47xk&@|eKF?SBt?uowxdl$uk+7+8R0!)m#{BUD& zb=N%<0}cn9dhmC{PE)D!v6zqCM=>}E02AdEdPMk*JhV;t2m zB^kcZo)sfT7yhj{bpgy{Jl8Bn6#paf!IfYyPz*(Pai}MV>nB-=kF4#*9yIwD?vn}q zJ&nY$;RB0lX^>;Q)J=>OFZ#!sOY9B5aT_H z5#3QGMqO+AoZYx(Vtha`plP%dBbev2K{CiOGEoeuU9qVnz{DuIiVhc)1s(Y#iUEg% zO+EO#;fJFX8;r{zKcN_!Vr@TBYzV#~@H2`5u_`fU_)$bCKJ%7^VnBpSjL^0`A_c_w zqN^A;e^T+VnJ_B(ief}fA~9N;Kjdj^xD$NIefv)_mL^bb;h1A&>nz48x_=QKfjLGF zit)3Ny<}y_o@gs1#$oRMW@iv1my6-dv*yh>G5@_7G0J$*xkg5T7j$QpJ zGxrH=tQQKs+}YjLex>D}cY}pKyPry(s?a}aM=D&d-zWyeYZBvC7{%|z6bs^cG}7|#4Ja+d>$p;u6h^|PqRE?myb4$_{j7GpU^Q8A)lP~`3)5ThiC@#hll z++zu1lv0Y(eaRUVo+?FGa|KS{r1To6%D#juHHFHP?VpKpe-uaUlcII_1(%}!| zt6?gl7?s&PMjtkhk??=!F-A0__#@6RDygKi7{g9d`Ix%Uc$HC%f3xM1@gY-bauf9& zqa>fPh)D%8jJOzo|4lU<^@ALvN-<*G*9zjq zP;)V`WGk@>xBIvN{oR~*L>n=d|Dqx{ zXF`rqODVl?%+H|T@qt8PonQ01TpF< z#Tf9M#8`E4FB4;5H#+`3%rWYt7(Z61#F$W(KELk|Vl+T8plP%dqbC2?J;2{jF-0+; zcEzTS025g-6YlG$NHd>M{3~k^rWJ|-@rovc=Ti!b(ZG-5UvB_0Y_t($ z0H0}kgLhY3E5+Eima2M_2swsrK`}<;&_{2*;gYl|Mhts?3-oO^v|w8jW1m39Ga^9@ zJEa(p%t?$!llL((`W~mKclh={0mbOFQzgbNKB@XH9mJ5M7|=A@iP7{W)&70~BmCB|m{NBS`q#OR=_7=9h;pY{poF&t5h_BTlkXLE`B{wV>vV8{Oy zV-e@_a}bEpNoO&Jzo)aw5}@%qqZn&L*)y=48%o^^iP4Amk*rL}F`T#CVszI{jDtL1&2@xlPXx8+Q)bzD9);&q?ykV2MwG4#F+K44lsJ#pa@Hn#iWu9? z6jKJ*Y4k*STv;#j%s3!q?OQ0c7?~gM+3B@ln(*9i!rL2CCrZ>J*j;~i*5b@WGh)+DIpX>yA`ui^{xxS>4I zG}_6NPIyLCwE%erpgd5!VpGS2$5MoS(@vhUC%Xe@S(mKps!s7XFX4R1tC}WfMwPJR7fFWi9i5C~+<&GL!@!8DmK_8!rl1(mG}?(_ zu#ifdyMY)}Q4FYEv8f}##7Jn)3*>m9#e!ISAwk|F{%a8N!sJu z(Z7^pjGcTQ#Slh-7_qY{O1uyETvnnO^?s_v*zk-#cUS;o_@fxmG}?(#i`ExLw8MKY zt56K6U9qVnz{I%JlMdGoXGK?|7;re))PvdRh6aWa?Oi~OH7JIr*z2xTZ~Ij6AOOXH zSd|z~lrcwi@PUZ6Cy|$T8OGD#n#VbPA4@fARfa1>(#yZY8{hXtQQ%Y=ht^W&rLtrzw_Tp>K{lOhG= z(HTteg!l*)1L8G_apEb(d*d^(o3#<+Jq_L?CZiaUN-<`>q^hRi`#QE16yqdKZbnS? zfJ?GfnPU_kl{n>7B|i98wQVFu9M2_v@*u~EQi}0sUlNMZzGQVKMhE^UIxQW<*p6Z} zZL~?b66~lARXsfk#MpsiK+|X^MyM&3o^cj(jGZV3)UMdn5ny5*JWT~=VzL~KV!+{G zQxE=b_=@I@BW8s`r{9HQXo_{3M)l721`l?l7!a!x<7o?unBxo)dr%CBP>Io^97Xuz z4C-E8#Rz{y#pfD>82eBRa~Be0g89eA{L?Jxg8Na7T9-e|hc`)(ANxO}5*MBp&r1O@ z4(Ke#u~a(Ve7sA05XD&7S}r9IVmSu8OIt9<=*hp3*h?ZKF})7eun_Ok9xg_V zy|xs&Cu#2t#4SgY^!|)#iTukA877h!KNgD7s7CO@jDoSX1%KMLRL?0#)dT z@9Q{9V(3TE&L#M32*-32qt<#VyaMMXj-wbp?CM|lKO$UQv0ND9#qQGHJuGb4x>xA> z_XBBP6N>-K5iVCOiUIMO#Q2#)@hcxgj&VX8G35MDVHM6}oK%W2+nB0ajq@0%3W{+q zi#}RY0mO(yF-%yF;aDWckoogS9M?%C#*a?4GXURhep)F;Xv0JlBXMgLCPq`2J%?hz z;b2n_{%&}Y4_wz*05Q&^7@A@|C8~ElzC|zr#ei6q7`FUWH{cBF1r!4!RAOB8raCs@ zTLdraDu(Z1D!$Pc#JGfFOqoDp_?Wx#!*9F~T`&>F@K5|K&uN?>Ul(*cj+%g;Pl0(1 zBR&tY$qU4|tg{$B9q4QV^`P;tpco%o%B6IfOxjpTjQ(^#C?YTb#JI}EF!@9^1mV)= z|50`?a5Zde0Kh}2yz&kqR6+>R?4}Yz2qDiC;^h4bA>4ha-d#H57TjLI~yk z2qDA?Nx19#zP0ym*WI1H=l8qry?cLa%`~(2f4;S5&CI1z#F#pQN8&r{FP9L*%(DaC zpOVD;j$52Tj4LRHyty=MVJ$W?Yc4)v52hN+N3gb}LymEk#5llR+KO*ONYzdZAHF;P zNrl~i4aJzpj(*C@gF<1W)xwF%>>X`up9;dUqr#|xInth?^e63I3h~!b42V}JhB;5= z_u<C)bc(9R#L(wh9yA0o?w}Ya+?8Sk^X&Iv9Efoj#eiL- znHWBNF^hzFTD@Gtc9`VK?#v>FXVHJrn z&un^qsysdxn&9LA6vNh(;*Yw37*Dhoqh=Rg9>+1Bq8P&)%A^A?O{GJ{#F%uIVvqTP z7|*yE4$1Usf+3vHo|hsqo#s>g6&xweMlm2>ofwNNQ2e!Y$T8k%B1Xg%Dsmm4<@Ht}#^v7p^BfT4 zT~RR}@~ygob4PO&;~4fO#2Cu^e`&g~2j7zz2PRX^X#pU{2Zb0PFJDD57VS4+Vt6&7 zsGHUx#zz!GcY#t2{}lfHQxGE;#lT&u(OVstm!s0R{6UOQC@XX~M zw@pET&nO104i?qmZ~D`h@z^AY{TIbh7kkN_V$<;|Z61mNu}U#a`B^3%M>@Ws7!aWp zn*Xk~7!BU>@;Jm?fMV2mDU&AOH-ZlSIy%?MNQs8|Q;}?n{Z!U>@+lr5OS%{quIf`|7j({ZcA>hPE^(8-Op1 zVnDn)F`Rh(`xFqPoF-y?=0hvFd5~l1D#TcNl2-jG0K_P-A_gB_`D_A+S13h{pz&16 z=bf+zE0P%DZuH^579fV6LX7M=B!-Z%p*nHEfi9HTZD<4g=~K|ww=&pM@u;j@(@fB3^VMqTw{+&w^ng+|aT zF+wrq%_Xy%rMN7qrC5EZt@ykXkHhv}kHpw}g+Ba=;~4d|6JuNu77i)v0=vHfiV?_; zexbo(!M9O>(0Eosa?BQ1jVS$#xY9vN=64#C3==1MiUa_$#4E4 zKAESfLX5?&u49hzub(axBZG3e5PiG{wi${s{G?Khw-2cn182xFOi>KjHJXVb`$VNH z;T>&eC^I)Wy0Sq1Y-oGt>gb zfLNs%R}CqmD&E1;0>yv`r5N@$6j99>#AvCl7?Zd2;u#=DD->gJHi;2vb}pN~H4K6# zX!)OFMA8NIkm~NxD`~B@7)I4-ee9_eZ0EH>F3lIUj&0i#mV#u3IHOE%snX@g#GA~8(H+6_YYU4ey z9Y~BdG+Gi;2cQ0Dt(_R%4$>yJOoH9t5yc2*M}O3yLqgwi0YZW|n~xC|CuIE&7Xq9! zrJA-B-#QTDJE0g5uTG37!4%(iB8Xw5i5L+MRHPlw#}E`^#ND9J+v7d3vZ7*4-^Rbn z0x@h$5yOs7@7i)QbVl?Qb!^BweidNFm2XYL16eIe9 zQjC?9{f2aM12G&>4A?cAiD5E`YPZ30jLs+q)Gl92h>=dG+7JO7vLlKCtAnMu7)z0kKLkT2aOlVvDA9LopyiDaNBa^v8(!Y;z}V#rQdd zirblh7~N5f@bXJ=K1Q%v?+W}|Omlmn7%$F#lzFjU$*;{Na|~a8-0YJ;jGkJHQT;ou z&jGKMIHMTpb8ID_8D>&i3)O2SD{fM3XS@ft7Z;;GKN~pWYl?f9B8K5bD&NHfa*RIe z#W?y056l5ETu=;ob9ubBxfo*JMx5(tFY<@*gmlFmqc4f^lTyHtZZXg+>8G6-4>;%D zaa^K5iV?w%{`3Qf1nV~Igy^{i$q%=$5ib2&BJ3=DDE&pfjF28U;m#GsfOvIcoQ$Kt ztT#R{bbuyeoT2f6kUmqPS29o`MgnD*Aud*sV+<-PhCa<03h9f3(Qc*mN>=mA`{I24 z!6b&y7~05w`2Lh33NbdlxP@ZWY5nW?7}zy1a1hcj55yRXV!X>&it%~_ecwM4#2AKR zz^>6uj9Xj`R}^D7iUGCD7gYpUj`6uEte@n zhj?2->>LzBUF>iE17Y(#mIh8$xliXm?T=x5_`jeDXJrnsm;4a0fhj+ zAIfuxwIaW*M+A0tTG+LqAUQSjonR93#^zkZ<5HQCwBGfVA$}#w1M%wQnVrMqvq7F! zn#j|bu8M_h@Bw*NE99}bMOAGm1bO_6%G2JMz6!+Ko7X6MHzlvRgoIJ#M)u?Ye555q zLMO_Me~7)CwF-Ia%^-PZjsC>s`P`VIHq`=o0#F`Dd!;;YXv#1@Z$+YdE~LG z73b?e;E6&|3dpk&<$+kGJVw>2wk=K&u?gjY2&FuYx$kT?0h4F5w(_L#taK~N6NK{E zO(1y=nK{tx@sO=q&;+-jJnzqZlHTGm1014X?RuLwWSi z%cLuw&86sKy_;?eX_pGAWxWf@^t6zBQ_Uye>jSf$d3MB zneoERv;g5R--2YX2d9KM!*w?Pd%~rR`?O0ASVDXRiUINJ#Ms79;0JX;j7Uwy$Q(+m zIBWu9L@C6$!v_Ek$AB2oMa8h)M@5cU!6EruAx6pB<{SC;AHngEos_G%(?!LQczlZB zE`=BuXWztJW%JP-CWZxFnF)zc12O(VG1iPwiea#gHsa_+5Mwur0lP*sF{Zds>0`Pe zMhuDpwaXXPA2t)imuHQ~u$#UI#emhpQe2D`qp0!(6A)uBiXo3xtvFwQ5ceP<5Fxh!92 zEtdPUxwx^LAXYD+xa6fE#xWAZfR8Ah#CvHIv=d_oM=doEc7Gy@k;0CCFneE0z{vn1 zcyU2;(8rrX%HW%w^d|3-(s%-JT@T_V6a(VbiQ$nzTg)ayFfop6BE|%MuD*E=#5kc4 z!-)T`Z@GdPNkzqY5lU;hl@4MgE5s;y&1DrIu)jSF_TWhpJF#UcY;8SGbjesE?-oC z*i4Kv{KRz^M^MkA7_d56RD<*N&n%YGF)nH=#vcK^_$BDwTtYFfN0AsQW(jxc+e|lTf|vhOjLUQ{ zK}aUPKjn(nVnpcE`tDDKop%+*=;bSuJbSf}4i>xSvW9o&?-zm?sa%XZ{6zmC5Sr(; zQpDKH+t5P`$T6;~7vmgn@efl$j2kG1yt%{|*ofugn~4TpI*Y6MkLD4!_cRjY_$B&_ z9_vDmaZ@`n-uqDDuimixZ=o0$+0j24m?)f?yIz>Sl!>uePo`71qs^pp$YgGoE}A`ALf;w~LX&-gVjMr7E3225A`5aXnPW63i$g2n zJKD0e7GvIeT3;m`s(wjgWXL4znii5tF)^Byr`XDuK#W&hjE9t+hE~Bz1g}dG=?2gSI-j(+0KW5S6~>xB=?3X<*YtI5)qxC#yb zJt@tjf(6F(6*881(ZGZHjY8KWHLGdUM(&Q&SM*qe6@-l-`7zIYEw*TU3l8 zbWRI3M=?H?B1T!ts6(6Qz#jZeVt6j4HCp(C82>87n6ZRJpw1;v0}qnQ{kiB!7fM949|q8L!Sd{IS!iP7>n6=*dK#Q26{!0KR8 z4bIoE{F-7dab8D0ilHv{>wb!DgX5#$Q4EMxiqUldMYP3ni~n&3~hVx$?LmO-!N=1Pih zp9kX@zqA&k?Y~ss8b?rnQ?JBZCKY&FNKwV+j!vNTE7Up^#L(el^fRLxI$FaCjr|7v zl|PuQuhpH{f6jTb@cc4Om-EOB5TmSmF}~6GU}z_A5ThK5A#W~Q_jDBPdNvVj+uMkJ zY4|tPMi1J%E{Rc%`aYpT8i-L|J27-W(H z81e5Y*3}TisL#cCOCu?vuE8KigHpukGM35@zBExk+ zjAjZkatit9ejtWvQ8CsuqpwC(hC^ajiWobhc%(nxM{U%52vAu*nsO{8(VP!H@#w?i@X9^}e&-=@e` z_bMqy(>hd}2a3^NYcVR*fKlieydAIuic!0dtu!RHxl~vz$8hXH>l&*AVpwxAD%9Yg z`a$#TSc({5dQ;?|dXQsuQZL4oH#`uZvtff`$eT+(d*0~508=r-po3V@g5o?e#}G)2 zmp}Q3J3$PYc4D;W21Vk$4qFr>n;rdQ(cjB{-%ekaZZv(rS3vou&5`cE2&VXqLwo42FgULb};Q8C`|pWAM{0id%& zjFNZF2lb-uiSY$797&8ZJQ3fc135+)g%~~$9%7F1yT1(+<7Z7Ox(CJRiei+l6{Hx) zxWY5iy_O(GHxvVQjb>up;X@63AA%T8Cuu#e*rcn@qZZN+d| zL&Xmmff&6}j9>O7Mz&ePXZ~#@G{HXqDMs)96o1eXats%(#prmSmrsP9*B8Zb{vnfG zqRl1aVmZcq{sWB@K#YD|jC>=iAubWb=wFH$cWKx!^bo#r$yL1=ce_!Qhj8R`0E!`R zE@y+S#S5<*i~E{&5EI%{++i1J?*mB;8$MKUI2*(mq@5W3#!-z&a6X0`it&*h{eSc% z!Rzk;;rw50KE{&Qf}>H(#DXrTrLs3DJ^|-r3`Q{^UY!`z_$XOI5{!Hf(L{_jG*TX# z=mcU6RfsX0=NO6j^uJ+6#c<=}K$0^YlHsL@;o6+GU%CW)a0H2QC5=90*WZ{Je<;Kl z?@l>J`ytUXc1K$#kHVQ??kGl|c1kh&`q1|$rh*tFQ4H8Mnu+mjBQISDVvIsDpmzD9 ziU1R1UIZ0L!c*U96a!WVi)wJb{#o8VPR6dd2a2ICc7G_5e0~B#m z4A^A8f^qgm!Gs{B+Ch%pYu*cF>Advq>E zHru3RjxmjoT&5U<7~{1TqjeuzUrHp1F#*Mpu^c05yty>3m>6Gq;&<8@#F)s%c+6`! zjlGgdrHB#MfYx=!2y%?c>c!AA=7B-bE17~~$eYXYoOa@z*-gd!``d{F4^iA%Lul_) zNsPlZQ7iN;&NiQ>ofrXosK!@0KlS0xj#Jd+bZY3O=$5NAh`!7=hGR1wIr+w#M!d;! zp-k_!g7dn9 z6BCf_@qLH(4R?CeY%@i7rNnTMRfuF;H>nA%i27hkU8gPcI^ z@s#2g9O^wB=+B?-%Fc%T*R5CxJf1$v3l!{EU`|<7`Wi6R((D z+2YeFGRe3kCk-NLW4_=m^-Hzpq>eL{|EdQ&Zy9nj{*X+vXk;#(D8@A;DfdQK`np}>4E;AACoB5y8Bhqo0!=rk3V*|ieO@}`|% z2%M}UPL}gu()Tz>KvrwV$?lK1=CCqt&ygHQh4pO`kzKvn6CMcz}p(6Dz0ZIW1l-dQ- z=k=e$-dI-@r7@Hsgf(~yM}55lC8rY4`3N{km9T45>>zC*lu{1UhYjNar9cHr<9Ddn|Z4wGO&SpdjYL_pn z&M=g&`B8x;f$&=iLX=>2u&4&->(_cou}v|t--0Nqi#;q*Y_l{VXDgxvu}YLCU!Vxn z7>L-0C_#i0rK2>Q5N3wY`3Tk)rKDc80`}r-mg8(kltLp2r84G8G+q_f+#QXlP((@ZmQ0F%Z7MA*HiK+Q8m+4(j-!Nel%7z3I;>?H zG|%u-P+}Kx;HpDdt585GLOn|BohZ-}ukJ=7O7iBC^ti1U?_?~Rc4#Fon?P}`EupBBZofKs$}DE*{VKFrA%cK_cfh8{cmwWgmCJl3xjs%>Jo97R==O|-3)crN6g zWLb+=))OcE?L;vkzNi@NnKgWQvBr-sg@^UR8DzUO5u+w=ZoRQr^p8S}4%C4Q>w`1M zb{7?6k~wXa%TzcdF{Oxck?+C26JZbTAu*QKqvHKMK#aW#F??%3LNNy1`p4FzjLSEQ z>hB9;>_ai$Y*LC*V?2HD>JMVXq8PAiG!rAME|ne-17hq)F`#z&qKW_$qlX0*7?=bN z`2dOmtAj-~IA1@s3dIgWF%F^_>SAqqqjx(89>k#-5WArZz42*=L07u+6E+wl4xtzj z5ybD0nPG6MAFXdlI;1g&wH0H2E)^e|3St~VFnis8C5S7voG zMOLGpY8tcO`LJxodx{^9PdGlRwHWnjTrX@yJnZOWD8|_Cwo+_4GifLjW5by__VVWc zVKuGm54^gYz{R-B9dHkT=9yTE7-y;H9X1l*Lo2BlBdUN_G|Cs!nByphyt%wFk%_;0 zv=G}ZXelnD{&3i6cWCb?NQ`?)RM^7<#7NRkj91k02^)(YpJWunkRAQQCr=8u=B*XV z1{EYvZmciUxuIiYeCD3ClLl?VJS{<(lPCtn%Xb;vQCC!qlawTfO+YbDX(Gn{?ezCd z#98Vo3Nfyp;-BY2j&ZuE80pvPt4XuMlsaIKHW_9dgCa`6%+$v zm0}z<&c%2gBtB9vk{dr-ujTo5BwTQQo`aADZoG!Ww&iqYmiiD78I!;mVUhbOJ; zD8`b@xw7vMQe--|CB-ODS0=)Ic0!JELu)Z^*QfQ(_k*36hGP5{Y^53nrcyBL_!JeR zHrH%{J9K<*axpejA2nawHXHSUx!e$HA!ww2`= zSK7!NM=Z8^)aIV#LS3}5l{yfgfnq?sIx(JHp!!!C!%#`4CSv6BG+?zZ^h)k4#Hhgi zU7ZJFJSZwgJU{FC=YSXwQH(lFj2j`2!R)`UD|1pYT zxbztlBPEE62H2^eJK!Ud?%l zVnBpa46nWvu^H!sywX;T=WD4ryK#?+@fyXL_l?A;Yd)a~eY*uua@qeWMzk-*Z`A=Y z-e@hxgE(G31H^cXVhmnuD_vS|D&?}PyG6xlnohCXVnK{|T#Ty2>C<4$F>*=~!)-oA zZl4OhlK1MxaO+QjI~*a$_<&-_o6CzUZN#$IT8kamnu~q-u?jJP_WqH?Sjt;+s40k% ztDPAAZqb^jax=-+L7O1RK?tuQFKAo+f98`;uPR>yigxhrkvzs(3Ei2saY zK)gCJ_R%;_ShNv{@vkOgG>NB8ip~Ks@)TkW;7$4O6cFP}Q8CK%b11up%*6OwiWm>S zQ{}rnVGn*IG0O8E!9SKDM!rIf^xw}=jIPTKM2|Atd9P%5W$2ZBM={R5Rf-YJPrbXd zA;%~{F<{qdCPt5Tv|%xqK#U(K2GlNJR1siel;?@jo?vLmg(wEB4i?qme0_i3gW2l? zu|H7^b+K)}(1z^8Cx!h&F(6hc#x8zLWAV?C zm5;-VV!9|sR){EB>@byP6ca;_kC_~@12M{TF@_AK8V=*VvlU7aW7{H%Jc2n!MfGAB z#`3^y5JL~ekT;i*>FvZfQ!K^5S2Yzk(BNuVdB8F#mDsma$TwPTmh8`bzyy604R4XdRl($smstJf;h+@?Jzd6QZj(95j-QY}3 z_T$zWT7!zGJ_IppD8z{0{u0GV_`4MoWA8PJx`y}8)ViftVf16Bu%YH+^(PM(I|!q~bfhPv3Y zyywgADr9{QBNPK-m13-`N;~2SJruFitJ96l49(l3!!26DuWmewH9L-7w29!aN7vQ zaA+z@=R!@Tsl~)N*Oj&{19ObVT#U~y^l7FKG*6RK#CXVmUiY0L$7rGu!@gb(n`c&o zM8%v_dp>gaz!b!2ieku{OK$^F{NmhF?6I}6=)+Hj4|1WsHzP4Vm7(oW-c z`kw`X7|k^i?pP@CC4~%gGZvdttiK+ zoJk*Mxquj!3Nc2%A~Evy+b}VjMe(Q{$T3=@81>pJ#n_%r-@n9>&o(Fq>>AC)(BVDU zSC$|~TNDFomoKUaFfmSaqSd{+1P$2=#emhpq8gm9-|;TRzV?LJb|{9r*v*wFHXHAA zYmZ_;tWu1{yj#v*^vz7^fMP&|Qj8U!sE#*y@2s`9Vif-7#j`<-jwnX$;UtEY`5FGJ zdK&;@box&*+N4lz@2o)#8?D7~h#>Gf) zOk0qX2V&TkBE~5vihPgnx);@pv3E8FelP?v>`)AOb1{z=#aiFmip}>l6NC8~@&i5- z-JZnon@oj2;*)_Kv=gH{&*#75y|A5841pc}9Z_e5VU;%sm%5TlDGVr1LVDt_UVkFE+aKChzBf8)Kg-HM9wnA&i- zjxih(Clteo5O8gq=Z9(|Y?Ltjx; zSscgciDHa(QHpVhQvdLB7SJnkMloR5XeLJN1FF3o_DXu87*M->DRE!RnF>@u*A*1# zjbgy+U@0!f*E}Bk5MukF80unOTTpCyPw>D6#ei6)7>}}eL@q@1MKK^kDTYZTMN|lY z9HXDMVx-f^LwH4;bJ`!p7&Vu~5X|{oIm0W)LlbmGF*@(cl?hQPvYZN;iL?voz81Jv z($9c4Mh~AQHb84JhM%JH`q-r#h++i37o~#DO{Im!#Ml-_u?Ais#vm@n$+z@rB`0W} zZl#Ff$6GQk7L)K#U>P=Xa+ zH2~WCP!eNE1Qo942sy?u?Zjw*nF`nUf!#kG#pukA{?o2!gfzQ#!hpzvf?eawx0hVK|;Yylj zfdZZ=2CNPi)!=;n+x4h&GcSl8hhnIUopX-I;+2r`C2_0TLoqR?nDSWcl}zJeT#(VHE%AX<(@PP@KD5MVfX&iQjQ5nKhqrbI z0cN8ZJ=xJeS?#RQMYcf*i!Mmcceo~`xHq)%oWEO&tU@bmGYsOrQ4EMzCx#Pme{Ees zj5(T!v2rb~qHR8iF;^kR#6I+S`z#P+UQscsb)>I4ECn%qN)e+K4NZkx*8+3rlNfJv zsJL|uh_OH+#^%ExP>jN}QJ>HAK4AcilB0lP*sF`84d z7v3oq#8`x4K<)BH6#<>^`bjie9&R%g8uDTk16Bu%YVddcmvv~?vh_M32$c-a0dYXIj zj8Mc2{C+6L=_|Q1hf^uC6pNBM274t8%!&#Z@%^zYwH9NK6Jp&tJf9|qxHiWo26Q>24Gh_Ob!7(;1%BD}LZ2E345U9e=m{YGMF-8xd4;|wn#|Y3)j0fGQ@RT$VU>%AvfF1n>#^;5Z zYXSw6UF_c3(APp@ptrDe=1Hj>KYL6=;Mb!V5U);*sE1Vlv_cSLgC=5}*+NCUyg-aV zg&1qg(dXWHC)~!OVoc=+b&es3u}LwGQ8LFE^A}Yz2j9TEnZ&q%i$0v|24Vy$#F)_X z4T_O|as?A(A&p~%&$9$EwxAd~2b5yWnMbww=zthoQ4H8Mnu*bvpUK#)0Vc*a6a#9P zFRBPIG3N1~$Jg}mb zc!Nfi!u>4a47rQMi00?MmH15bf3y=rw>$lb{uf~;xxLD4^A=7{XJNK^;&qA%vV@r3 zINMw&D%Y9q6CHWXs__)F1@FR-L3xI;Ry51>qR_s^CgJ!$Y&_&%Etzq*{eolEDQRwJ ziVw!az6a%jcy;o8q7mBg?U<|V)kL1Y-n5GCSs>3og*+p<4?DaeSBWhuk9BV<5~2%- zc0bBfmyL(Gl<3{`lt*I!@BqoPf%i*7O+cQ53VF8Fev9%%FI>swxzLDK5}E|^#GyRB zt}5l}|CPQE!}qrwLU~}tWus!nG_K@5#%|B@<4=Ap7;M!M3f=qDhb-k zGlFLqQK2ADBFfYK3&}IgJTZhSkH!a0NdGBM-akAZ-`{dvYk98ouJhkG@N@#@30-3+ z`No?_y2WOK-4$tFf8)FElejz$=xSm3PIqXY$)(6so}Z|9W`R5>)yvcS6|HC&J{jl~ z$|G+s`)c+S|IKVK#?&(tM}OdP*qcuwdCt%rqVRtrAy+xAojm#*sK&i6kgJ?QF+AAO zpB#Qsm^^ip5E@gE+;U@MS*=$`g>rVuQaekEk40h5q8JdbPK>)e3)_!xl{}}380GV5 z6$gfa80QsYREy`INrKjdqG4RiUAQyF+K%S#8F)kl68mgBq*4|5qG+&N|fP4+g5 z;lDjsc5hpX?2p2dxk~;as_j@TjEAIaEr!ilDxZMd-a#?Wjj)&Q%S@!B#l*NrcMFCm z#6hldmy0oz@6trPBzUhBF)s7bT6Ui~6C*>t7~kl^Z@4rOa+ORJL*87j%bZ1rY*CE= z)>Is_o;F^>tF-q?j7gl4<3S+C1MS3kx1DM{h1XCXq8Jm{(Vv@jSupLpS;*T{kZe5H zNR~0lQ<(YSxb(a=#h=!N!}SQofOvIc?DwVkGXnH(9%~}TiB?qPtSN}`L?Ol*o@1O% zgB;^&Q8AX)rXuI?(JRjsIY$2yIfg-Biad|m-g6Se_yPYA=XJbLieZ+AImX}`5loD> zJWIY131VcS7!S&CRm|&{ahPhki0`3&iDJO6(M*h~ypMVbuhPCkF`#z&qKW_$V@p|D z-KAVm;5CW?tAj-~_`CjJ&nfmY-pi7WV#s4vFXnvLU&6=SuHbmc8x#X#m0}#^!-Q9H zuGm`?10s}S{8g3Kms%Obc&Duxt@)WY^&E(igJRrkOJYng@5A@=HE(Ew?@^4ZTXSXA zwxq~p-%EDlUFQ4RjCzi}3i%?Dk|q8Ren;$n2+yZk(^`!5eY`x;Funi32feD#U0ugFe@_0x@c-h~dh= ziU-7NqZsv=7_KF9jE3zfvb;6y!8#9Xn`u-5n2*rR1r5F~} zZ;3F#tF(=^6=Uix+FXNR$T3V%3`=hkW4?LpX8N`gc8r^#7?~$>W&Mw&$oe%a`UtaX9*`FOpvq*mfRk3p3B;@8B-xGP?eH~DmYQ(#hK3v>?CpS) z)(TGA9i^%qEP#_XMLBWcNOZ=#1KO6t$sv9iI^!^r6>(xj!*CIfslZ7)1t%tf1;|Mi zPl<8Tl*WT1x}*aq?U9rD6O^2UpP=pQijzJ%ASbYEG~?upHR?d~W`i6wZ7ZTX&UEU8oT!W4{G00SF$}P%ax!NlakA9>JO9b{!uzd6Kj_x}z8nuTG3n4Jh8t5e7MWXd=enUc5*yh|yCaMyGZ3`QTg-!?~y! zD`;pxVrUE`AiYZIvdptu^`P2E#)BCBPz5D56&U3NV)REb zV0Ew*7h?nU^CL!OK&&f@p)U42KPRw97c&nApcoLV6l3uSS~Giw1B)1lVnBpaj4V%z z7&8&X7^JNjx6G;d*vgQAxS<#)50DuC<_#wBZ}IMl!T%}7`r#D+Cr(8lqO};)cJuN$ z=YJ@Qk-6Dk3TV+#YFbQ;rTpCE=>`eNFfPVynkNzAiBFXpUWypW{0BY`U;H*gy%@hf z(MFBeg#_de6hq!zKF;VSE)R1MXPjsw{tD-D{?OjtNeo+oKAeD;a7St<#vzFcd*j`P zqfm?u?C2XL+!BKB2MY_16ePR68ZL`_T~+qN?5wnC2*uBf0bxd?7!a>cjMGjOKi>_+ z@X$nzaWoDQF+UH)7^4v5>JF-E0p1`xwx}3ur_)ypBSDNm6*)%9L5|;CNZ+Nf2R%uQ z{?zG4#wo;*P5Fdk)R=#ri7{t3tz@wsh%p|;s1&Uf!#$LLp9Ni(2`C2a8qLHQ z)Qd_l@dYs^q8L!Sd{IS!iBXoHI+t320+Ub-SRE{?!Qb_#^8V1$M2MY?VyKHf(t3orz+c zh_RQBB{YyK6cb}M-}05`K#W;jj0L<$y~+)m=j>9%_{F(ig_mBv6=K}?TwpWOs*;^z zDtb%)qhIX>V$4A?wucx|uC3_6#qggB?R_qZQIF?vYm#7Cbe?u%Og}}t zbFCxnejgNL8$0?>hu;y>2L=nlN7+kR)>z9NTY3pCx80YFYf${UV2GcOVnDn)G3N3S zi}g+*#sW>mc)$@`p9*3uRESZbkXF4R0CEi9qGAl>r;$KYI3$Zuj0S9wV^E1fj(5CQ z5{Sd1i%E>AC)@H|7MH{*qr5nPeQq;W0sbD)V z?hj)4qZqDlNQ`afyT{SD+bp07u2Cz-6!$n8h*9MckG}+B{H3)R>-p&@co^)wwJ3%x z(O!zpHpZ8-Y&fGFc!~F^Slrg zV*`pIZ!WLO+liM8oW-QfPU7nsRAFc;h!IF)^x01zhJ}I{8?_Uo9~UDr5qAG36eEfq z{UML<3hNth6D$)8l2?V;${Z6;9joQ^O!~|bJdR^hn^6piFWL@@UPwu$Vbq8d_%P8R zO~izAAEyLX7^r8J@HQF}4;J<6SE%an56}i7{_Q* zXG98KNZGCs!>Va6<`|{{FPIn!e0VG+55(AkVtBk#im`AQRed@Za*PlZ19pvOVuZG* z(q}v&#|T9+pmzD9iU1SiD9`rJ;v9l76a!WVi)!$9{ruBZ`Pn>Z^x-Imy4dFYtaJ`< zn2$g)AXX_x;4P}{JdSikq8JdN6yq@;SGs`HyP~ueW7i8>!G$;wBO1kUH(Y^}HKNRG z@NX}=LX-U)#dxwPSGI9%imc%M14WJ@7bA!7sEhbgmYrIQG5!s0%_ST#+J$1YjM;K_6`JSnQp6ZR9?;<&-Shcff##93`3s9r@Dd|`?M2dPCwejYnU^{ zq8Ksk=(pURA^0BIA{ZVoNd70(MrKt_OpMODEuFti@o6|&V?T-k@#@6*na|_%AjdeM zi5UI)P{Ykc$T1Eo#Lx?%s%{MfG2)7fAzMmc-L`{6a!4V@z!EveoiiUGSuGclZ& z&^Fw~kO0S9W1KB-}MXYQ*4GQ#3rH`>S8PKwwRFv zeGUo5fLNs%J$6xT_wnNFaTEh0lwv##p@@grD>jo?n4~TJIJ27%Oe_v7n>cpr$k>U$*Lg*z;#Hhi4nLpe?jLQl! za{0O92abGRDJsSqnsO3Rh-u$dMX#i!82Wtsf4adQOeHa%jiinIWdveeQ;0EQFZD_) z7<^-5^yB@8U-%G?>nO%&6Qvki_!$0ge-PsaiUGSuGci_O!)=Jv!CpxkiUGCD7gYq9 z7>B#^0yt&sCW-;8gGDv?yS_Q~+9J!if*7|@40W;JD^R^f&sHd;clMzt?$u zD)dS+v=)QE&N{NZJM6qn6vNljK{{Etkt8c7#w&hM%44tOJ{Mz@F>OHwFA(EFDPo+a zpJQZ2L&z~6su$z_N2;=74CEM(Pz-rTGswIf=LLtWIzxn4$kYi*O6+?JMUsZE~L-JA~ z#^4e;#!MX^nGSpK6^U_%|5^>*L5$Z5F;=;J#T=uHjjo+XnYEOjL>gv8j**RGhz?3I zuJP@wj$*t)F<{qdCPq^_8AR5wfL_U46a#9PFRBPIF*5n))QE$I{0_x{)xn|~%tk)x zVo+pFZ1g!OhPqhS4BA6Aaq`xC6a!+FVyyXxB5L7ejSnaWL@33m8B7ti@paT6wG|`M zh8M>Nmgk}vHWNvV1oH}k^lcpWE)?X?3L)hp!m9mAjW5{#pp~Y znaH|@u%rJ)F`C?PkdkILlpYilqZR)-)zgC?cBdoo&L8Qw7QYKKGO@EpY2}!1lFdL4s3qlDWX>aV;7G8|VQGa< zTe{v6>2MC@DXWmj<1EeVSURpUljm%AD%u%ucPoeT`2C@jXJit6?}+0ex+o9q8qMVK z=54kM-e_AM<$>Deiz+5eo+e*ubzO1lR|S*@RtJmfCEf4({|=_uZrBs5i1Nr|RV)6k zKZ2{_7kl;?#f}LA51OJF z5UUhpM;b+p^@E6JCcyDZi~=X?ff$x3hP=6yz1l(a8`)D#2)7dp zoANl!&0CWgg*?%jg0D(wqn#L064mI3*HGG`7-{V2pFEKzoOu~6{5)Hb>^HERY^wcr z!Dd{tv}XXtug-_VWrboud{Hq>u+_ppFV>{dHJ!*c_~7$)nuuYXL91Bv5PCQ56=Ded z^S^>Yj1EP`$mBWPTI}6eE5sODqIVO^d0mUIO6W*p%;&w(fOrt2lR^wp_a};BVONKV zF^q<v!iJuRy&0UPLj}#lBcfyMLnq9@wE65PP2AyfVw6Q6Z1O zTWIZ342Y25?l#L{`dEtCgfDP&&{hoBZ&ZA<3y9Gf#kg~s#7Hym&YSFJY=Vv`##gUg znfH3y9HOy%;0tN=9TbUUTVzV#u3IR+N<( zcepZs$ zht3xy2Y6Y^c1CR#I*!~g1@aV+J+Fer_eL=wUcSrVbxbDMYT=(3YkJnD`or-t#(gvq z!?!UNiNMGIxG2PEOV?r|qw%%YeT#~b#xtLt9+39+Low?8-(JZEF5WJj3D%#)xNS^p z{3jd4a8-zL-u(xP;eV_l6JrtI`7!wTp8+UF(`2O>xA#*mdkjI0fhY#-8qLJ0z&jax zo`M*IPz1c+F`lra?>Fd` zaQNX4q4`BN6RdR|Sc@N0lktbD8`igN-;us_IoJ_#F&a=z^>6ujP13k_RDS{#xxWI zYL_pn2F^7%li8a~-GA%|$U**LRR&f*MKliir_@hSqgG9mJT&#Td)G2JA+A z);xVm5u=+vl~2Q&VDr_B@tjwghPTu&Kr!UarP{GJV$)__#fMjA;uC(FyXgpGEF>|` z)u6SoH)pUM!&f^oYSg5{w;e%@MJUE=cJ$37vV~ON9YX%4f@J3xhO+$XD+IlQ1Sw$+ z#iu(%{9+UX;{Tr*zkk12^OPUnyXQcRC7Os)J%(11;R<3bRfutY7XKXIb-%2r7$?@z zSDBb&ELVu}M+q^i@ZUq`Q`mzmNQ`LyN8QJl#QG`3cxe3_a}0;R=1h!Be5CpTKDK8i ziV^=!DTZtyZN!5_5MvdJ0lP*sF~%RF(hsMC7^_hXs9nCOBEZCm98CotRR#t8Q4Cle zEULi;`jsE>*jR{NgJP(Q-CKcTA3K5vf1wxt&XrXflp+%!mh6?7g;D%76Bx(X zptTrh7V+{sVdn*+7!yPX>CE$n(sdg7ROA@HK2q#+6A)t~7bBOqoaeD1#->ulSXzb3 zv*{Wv$Jnf1jDKiuU*wA<$T5OY40&_;{;Q2>c(1!Sy^bJ$GD8?2Nqa{E0zN`ge zY}HN-8UIE9!ja5vD8?st^w;aZ6};Po3Hz@WB)d(tlsT^JC>UXWiz4~E&cac;t}u=fQdEowy{L$8795gL z6r&;Qm6R02n5GU#mB)Tv7>RN3ITf$q2fdPTg%}BAb;L8}YdE!cZ_UKWqu+E?MSQJv z1d5T;C|EHQ>;~l^QFyGAoHOlT-3id}1GVnm@BP`i9lMSzLXYZ`5|K8{U9 zqZqI{SX6@x^vlq-^(X_J3HCRNp)PheU9^cZz?on>Q4EMxigB(Ft+`Sfh_MUBfC!}+ z@pmYq@>3AwA8p03r}4w6DpMiH*o|T&Ig=Ql%;VQn7Gs7URl2T3L0h|^At_qC~T%{UO?5Q>q{j=sO`8=-1Yn2>UD z4HJW3!i}n52)z;s#n87?iZQMqRox&6#5j&(z^>6ujGxX_+87@Vcml)xim_Kl8`A`H zjI&ycakdFB9|Jq@9EvgVtG$#~t+72_`D7Gm+#`ruJ_Ci*>ctq}g9oO97?)5Cd2=~5r?nVA!d3k7pr^>60~BTI3hn(eiE+9!6*j93VqDQq zj5*DyaBBqnDvF`goK0eJ%N9JZgbC+wuyKq5cZKX~i-cbu=rimCCCcH=v_MXVhm$4FD;7$ZxF(P%f1 z#F3zzB!*KGeb@;fKYU9eMuYuybv5UKH523BQHrt&1~G1<7z2kZ#W1m>?*)9VbUKOw zyGAoH!WK|zTWiQM?w}Y@yL?eafQgaBPko{Q4f!sL0jq;WHMl_kemAOIJO{D&Pz-sj z>fDV2{n`8!ZeJP1$Ure5Rw>3ey7(F8UrLhf7BEQ-qWGlpY$4_k@IP&?Xs2Kb~R#9VcMc1;yAFNn%uN?&C_|PQ)DJ>wk)|gCDm^0`yA0X)VTV8U%`(6bCyxAH}G= z+(9ZEY$B~MCdMKDTb%3&;~3w$7#{Yt#gos07zL$>(K(1Br#OKaKh%q{fTyHWa0XW) ziXm?ICimCyB9*uC7K+&4wJ~mv& ztPkEVTM5Nb7t5dh8|9M=9#lp#AXX{HyscE*{7{Iff?_~~QjCiHs4uVvF{)}SMkRi3 zU{6$GVpKyho+gtR)tX0aqSY_NXY3oI7-?+eQ@2x!Y|XTiImRkq9-jqbRM%PzXMS9L zk=q(5hE6#L>EQ$u=~yu_zVaXPB4ZGvCKuxo7jO}deAX&Oj7n2!TNk^67`4@lF=s6g zd69TY>}T=rdSDH@FIE}rY(RZQdEq$Lxfz1Jl%cJof^Qfm;yNINk$R;4wsIrp;) zPNbYcZ4Uk&p5EN8YdV{EK783i>ADN`jkbb+582T?UN#;qwf&J&z#j&`YwJ)X;B@!mQMvK;1TVf6>}rK}#-oPs{`4!W&{;ZumiiSwX>_+ zK`NYtBPtzH3=?+r57+uAjF}N3NcReo@1N-)%gA*QPOs0D4nCszlL2tJI-wX4uTBgv zu5yYUWIHyRh!NpHt2jFm#1Ir>#ND9J&*A<1vZ7*4-$q}Z$0wKCmLkTD(>yW;_Mk{& zc=Jx&g&@dw>=a^%dq|86dfk{9vqP!qMI2GFM=@j>N-?V5rtdHLLI21B#eiL-nHWR) zI30Ud1QVk(iUGCD7gYq982k9!t7Cuo8_{!@(gx;#DuvYnn!NZ3;X%m#q5Gl(IY_y31Im>vdz@DH4R3&R zMNTYO(+Jp~D;$lE5I$$JH&Z6Ilo^_?5vsj>DJ`r=@%cDFI{-O>cy*kNjimVRcys?i zO*mO=Lq!U_fs;WBPRyg}^B;Q9d2%bt$@-f7s{lA&gB6{pQ6)N04SguGFdjG=LY&0B zqYr=LyKILlIC;3BEM5feGS8WD(s~F*{lXjOh9M`*zbH9zJ4WCC#sp+Iass67=OCbSqM^4nmI^?^#A~{;u86rj@ClI0JWJNowgFU^TaWYz4PL9xNIJ$xraN>cSEN)Dk zSTsLP!=2F;D+4EEkdtd7OF#@$WR<#>OhA07iAS>s&@)cPYR$=`k@UytrNhqq6FIq9 z$6m^gGLhnoaWaf9$wcdCKu*{`omdcKnnDa~`msmX#c3nci;6K|78R+R4PwktBp_o;i1C(w*3m{@Achx-@y3yg z8x=wVGE*T&o%JNfz-IlJ7^Yh(svagFvrvqyHMT3JjX3dLSs!n)osD9^uF*`45znah z2KWFWZxjP+moKUaFfr=vpaRA_p&`#fF<^DDs0J74H>XR6(G7heb}ovcE;gUe3DJ#Q z!Gn1y2E;1G_?vss7>96uPz;DrigAU~+GrDeKiqt6#mMPMf0{`;h_L|0xM)XWv~BLS zfWB>lO?DxQF?}5?>*>+W@e<~862tu`6}HF+F;-|N#;99VxMdm$;D=(^u%oZ%`$>5386_-# zRFIrIwy7+1#y%l`!5hhu^781`7{3z5fcTVXSB|7R1GBD0;h4aEo=WGB@zZX)Ti8|GTL zZ&1ALsrCel?dl0)1amPij-gMxVV7llDPq{ua9gyKKjauY)Qj=I%I-ZbhV=~qcnGZ% zau1;t^KWE{7Z(cS6WLx8oL4+XW#B4W$srC4>-i&ppaL?cz7j^Sry; z)^9tz^ZD?{?DM{}&Aj`a=Y8j$nWSx0WoLirvg|}LRLx~xdk4YB$w_!OxxJ80gP5UR z)k^~NQu@n!S%MfL`iOClddQ)@@c}}6)neQ}PgQv~1u;Sk ziqV#3-F*=8uwuk`Mk7?AeQ|QHoWvN)vYLK4$Pum0EiKR zVptB;h{0aA5ZXTu#E3*OVAtp;#&jCF3>}aTVnm@BP`hf;MnDoHkR?U~agbvliUFI0 zMLSrUVnQ9$Q13Ws^!rf^U9qES%17v+AQ0mKiUF}2F&bpkju?!$?MI^+5TOyH98VEL z@P@gAhKkX_l8O(t12GPv7#5333|HIZW!R^g&;$>o7^XhC{Dfx7{N~ZxIR=O^fSrMc zVU7`Fuowdv&BGmF=N&;YUIaUfcUoJC0aA`pP>eZrwIX!*MGzyFiNS8e2pxgEMRO`aIyyrOaL%NuLkG{byj2BT1 zh}R{?+;S8@Hx=fvv3@W}5~E5!Mfqc|BpJn+Fhe88GbY+%%rVZO z7_e*f6Qi~@)xHED{Bst?fZA1yHUg3ubK|JM(#_D2&!HHwIasuVC0*#!M`!?!W2B%M zx?xhMalTb9U$R^>zpHIgF~VO^{7SqCeA!?z_Qpcn(r zI*XNkt;BtW#5h@sVprpZlvF0h?XI+T4PNKFT8tR`M^NNicM#*6ZZW#E6U;hG$T6;? z7^>!S@_?i8B(16Nq)BUGPYzYM-Wb|@8i{d|jhU^-Udau^#CXpJ2R8VE7&lQ2PwD6z z2Ylq(mks6CJk?xl>uqle0Ws3`5raLb zC3J@=jAPtZi_x9^B6q}r7$l&=s3QqsXBlvmwWLjAB5n zMvP4lsJ6X0dG!g30TCK8GFT$NHx9&jYN!~C(`f^t?jXi96ywk-62sHB8zU_gbByQz zDMoXa@Pzq6uO!Q0F=nl!ZzIPUeJ@Z9lcnuM&xuyzXX(;w!5qVx4co~BA;);h#K`ob z8p6$?dA=$}j5n)UBt9zawQe!SGLs|lLC9}V3{`VU4s#S%xi=Hc&N~P_>2g76L;|$; zw=2{fqV*Ac8G49aarJ?wANKd#iYX0dHH+9usZqkeVME@nFc>fpfP7aka z#8pZ3C!O+#`1dFV#OoA;?ZVS`AjSuM#9;SdgeKuD;BwSrlxNvxvJ%9|Ehxr-bM&pw zJb^><5yhC^!oMwF>j6){A^QKv?@Fxyau)k_pGb@`{#5*&9po6F)na^@MmfgE1|uag zLRm{amkVNiK{1?THDZ)wa;JoV7++Bg*fsiz!A+&_aNY;R_=aLY?W#o^0ZEK}Ha2ly z2?~5iF<^7BXb0!Zdb9R*VH?Eep%}VikFhNBUq=w*2Z{l)8ZoA3(O3O99U}5k42aN( zk<0om7x5Nbg`r~9W1a6y_||GAios=)7~Zz^Sw?s%8k*ow6l2})Tt2ExGXFHKXpZsE zKKicj6z~GxJIf!9QVpL@3zH464D=BT57{;Hd#_MZf_m@F2e59k_vF0c4 z@bFM>$}8#hEd49+E`J?xnqrzR_GP2sX(&cn6a(UQiP7&U)qleu#4yoEj6*EzOizIv zL#7tv1IrF?`+ykb3W~w80jJx!AjTiXh|!LXW8A^X8m1)1C)OtJ27(yn)nd%8OgTop za-1ZFq8j}v8Nnb%1r%f1b&VKCY~=GE_DU+E7_e*f6QkB7s{KAr?=nL%pmx=wjesP^ zU>hp%0B>ojgkr$vV9^fFmjzs**oVf@=qsZbx?+cHrr1ZAK~zC8AXXzr&E+ftUjbJY z#efKn7;XAd#N$lJF{+^$xsBWw1UW`^6l3uZ62r%K#U`r!sU0-g z8Ysr5ce#AqfMmY+hbQs03#6748pgvo#%h*hJdFo2%ncT!YA$W>nGfu|nkYuVzV@Q= z==$R2LSk646Vh`d5Th0o<1I};3Vj|7&9infVz`c?ZDlnDF)WIR@hg5j2Y+9r(vbz? zP5E_D3{`V!p437(d7Tp?a@z{+Cs5oAoXlRA#E=hQD{&m7o?&9VWao=K6u=V27%v_D zv!lLnC&$XU?QilE6MVjN?s5LyseL)3KRX@gJHX+xLNOq|U^^&yt;F>zeK`eQU9GQ= z7>jOEk)L?2#9A#zwi4HemB1HM+Y}UIr8Rw2ats`j25K>cA~{C6juctS8_aD;V%!)_ zD~%mN3|qArmrfbu$mjg}zLFThmK0Um3&gNPF|K86#3)PG?Ze7ALypl1#eiL-pBSgv zUso2VcQr;apmx=wjesP^aI!DV!~z;}6BGkB2a9%azU*2}`sy-Ftec`3x?(?dXR-K@ zj%FwZ#A?L2N!`P+axsu&G)FNYLL){`I_hD6;I$HaL&fMu!+K$+Ge8Un6ytLBl{ZYT!Su3EGaki_Ub zhc;*H2MxJ1iUFI0MLRfOHp-Y{?OY(X3yPsDHgO2WHo_dED~bWJ8ZlbhQbc1T5W^kC zfC!Bklc@t4*7!B#7~KpNqa|g{VNK#ejP58#6-N?ds%`20wE3nP&;)y+7!6P5@+*cV z^X6xY<`}t@BZM`>2N-)8EJo}5w7upTu=9GN7!tA3#j9yHP zJaekS0q^JRU5pra&QfFxykX8$w-`rVD6l0?A@74?sG3Wfry%T%X)WaJ;DxW$dkJfa zkKgS}VmO&lVMjCQmGm=Aj9z1@aO9rx4F4Kpyy#^MEt?F6 zo|-D=EW^<`1`cC?lxL3AiVmIm!u^ih%RPFZpBVq|2QDhKCUB&i#8@k3RySS0y>++55foKfz8399juT&poJcENP|GrG8eE2B^zh}Fnbq8y9Jgox274@79>=`xujx~>6v#uzHkRO+mTxm$uf zV^N-ZLr9)Ewyl^v?(xtB$DusN$8!0-(u0tPpDHTP9QJGO<_5XSc!TBHz)ttw(qQNL zqCAsYv=`;4t;E@dk;akgH76Ezk5D zw1+)#CfH<@N7Y=mHg795-P}gFaj=b$wwuLauJR|zQ=Ue2!+N@aJW~vlr{qGau@~kl zQ&9|m>F77S{F(c;J&a4s$xjS&&gYDreUFFOKNmgOAK%*@4woN_0r9%TNTjPoVZF0K zjA{Cav4Z6UeefZLf2qZ2N8=G;eerd*(+i4m`~v+IeN*9(%qT{Ttz{{)zX^yjlf($T zODnybf*60R#R#@2gT0$R7iLIeDCxpZ*dR*~V-|`rxtB(a2TQ1y!6wkVnT=w=uF+2n zcgFkRJP>0JiUGB&7HtG1G5n)wb3d78)wXM;eO`8;LJlScGEu&L%PZ zZKu#sK-egAXoCL#DMk;GzRajEAjV>Y#n?|*!@@?R7)wx$>Lojf?encf??P8;`nLi88Hlj~#W*%eBgQP6qZqaXbBv8B2J9OB#7HecwJ%KuF*czXP`hf;e$J01 zM%jO=qP5SL~+cRPS;#5aS;d17bB|lsv^EaKvOQ ziUAQCF*-k_h!xQw#x_I6ILjJMpfBVY+fj@oTS$yR+j6U@@|8Fww*$pEw@i9;ddpnAuQCELb{Z_kCw2x~l?*#C7{!>q>#^jA1+^1jSG_msV??1^;w=Vd;ccLhNuB zmkRBDFNrb#46R(B4q}8FCdSX%RCvRD5FiZ2ST7y@jd@==2WvTZ=5u~x@P+G~Wt9ZjOuJ)a5Lr@;rfVCr3-zft&^cw5}_8O6-&dn;cWBBf?`Z) zNJX|q!6At%MhrflBDdps$UYKdF&kjqo&Y({ zUx6AiZu!yYJ53?Sh(2w%ia3H|K!ipN(@rcR0mO(kRE)BH zsrVjG5aTF{ksnK9thfEn5|}+WBp3IeV*Kq)we2+lF^(B5MlCizw-*z%<0!_q11{o# zzE+}Nq1omYYtgns-9U^JOpH6sfzWJdp7F(qaqb?K5A%l{L)0xs$`1;ZW3S{SilJ&Q zZ9N1bqE9p7eXBOY5tg*bqd|;QB*xtYDjY5cF%k?D<7Gc8d}t^LkceVzm5#nc?iVh0 zqnsQ5H9yhrVhP?Zp%-`O#B;GVT@VS2#f$2vQ4EMLC`J`(w$lA6&sOdkMD-s{gB&AC zA2AMYry_B)L5yUz7*}XYN!T$5$T7|o6eIl_6*-m(hvaNAVtjo-k;emI51u12`q4Cm zuoF11BSkHScQWM|TPpZVVkELm{XaPdOU#qyAjWlr#kj>3IKu(AX(-0XEEh53u%%eC zX?|k4yVmMQr|(Xs?{+2y#JIu4*mR86p2b(d-7H3oiYF=ZoC%0=OSc&ERxA)-wvdiu zsG7^53+;rdd5*#oXI?nM@J$&C?fo{1@n8fMKJNfx+%Zgy9UH0e6+hVhcTtSJ($V)a z%HvGmgmIPf@)IrA%J{T@e7Vs47h+@fi%Z4$3={+6b%~L~IJ=6EHNB^g7`bfR>$(w$ zabGP)8RqW|eB{`Jf?~v#qrc*o8HkaIV$6_wCGCn_b2-Rzs#|y$@k0`$;R-6Ajt?n( zq!yz@KN`nq_;86N#xvGZZ#zSd@fgMEcU2?Cl`B-s9S+2Jf?~j~(NBzl?9_hO6vTLn zVnFSxMH>N04ELe5xw|3Ike{I#usK+?gB7xiuP8Rd0b-w{7`kGov}Lgu!GkOm17bB| z^!`N=_tBIWCYYm1TlGlt*6a)gKeAjTVm#dr`y-{z4S?7X)q#-$0aV%5r4;%OPWfno%|)rb*IM_XRO1;oflF<{r|C&sGnRC`5ybh-k?fZA1yHUg3u z9d}Xz=?VT)Lsp^~usK+?gB7wDRZd>I$6K5oOzs#*^gLT%ZY-{7*3g zXpl=@y(x%M%3v{a1L=>cfnpe=7!Mx0iem&Tv3nsgPE%J=UgHUfQJRS{fVCWRe5`4i zV#L_GfVNdL4swjLy2Y4zm;!6#IED#|p=vG<1G@@}I;{o8ZwFz!JH^$(k$xG8ag*(l zy73@JIm5(QOp~DGmI<)?|3EQfq@zFT(+|!$G?d$?$WL^9Y|6VV%s$b6X_k0^=0(VD zVj$iW#ejHSVx%3VZ`{xY#3-+i7-K3?5nCI`F)FCVFxf}z?My+8iUq}(^p<^;1!9#FUsyz z&+E8N>6E-FicuBCfL)`X7(*^l?aeG9$Eb#4K<%nU8v#j-Hv=Gg9qj)2E=N_u%?SvatFNrS`)>92#px!Qm78;!3UBU zwG0)b1$AoVEi#~2QX9p1+JeN0v90`!DsPE{?-nS=;a$1Bva{4H2``#sl#ZnMR(O9( z9fQU2rV%E&qbKaVx+sR%ELZWHlci`|NQ_t-W0AMUmo3y|Vtk^6K;HTbG*8Q7#K@G> zcXh%X!%DXpgV~RS%Yq!EK8m4gE-`mI2`A(&gqhCvLYK8vA&)t=HHq<&M%m@kLlh)2 zYzz}4(wk~@_5lGJpcp5lqkn&3K6fiNl!WJ44K z;&qAffx4t}S1%C5Rv$5rouy5-)Ed#``M=_vw)uN4nB!&k&65a7yi35rOn}bC=SRuPZy;*q= zZ1gQq3|+B)>*>$%umCYyq8JdX5#s>cvIow`XoX@xghq@dj#NiayjJ39s2EFzQSn|w zL5$WYM&sTj#tGY;ru1oV8)&j^P>h@@xqOIaGM_uAs2E!&u=s4qF`Nt*!{sk3?}^t+ zI20rDrK^}_ZYh>8Bu1su6x#=1Gs`nE(rL_G-q!}iXj_aJNp4iWZwBNTf^IRcvOwuU z50V(pD2A%JJipgT7%bhS%UoYoJs0Wmri6yp&MEy;&_!y$1~i{Vm4jK_4rTt56Y?7_|? z2D`IFKEe;Km2^>yvEl>e7`uG~B{57t(e`~zK#Z;^#w@9C@Uis2r8^pTG!AIMKF5(y zcN7D5jecU(rmnwy`dbu2x9axSd2k5;x3=y2RTMx6k~E9SMg>_J#me8;1UX38N_kkqFfIYNwD!$Ok+b}U&UZTRY0$}$KLNP8$N5A_Z zCATjwlyfYhNc^<28gDc;sP)2VQA}J(@zP`TrTD=p2E^+UBV`lC&vOJZhUg>40G0*L zkAoazs9KDP?8q;~YbC=9icxk6ZDkQYnP+%0VkEq$NPo;RMvxc>y3)$U=^%!WS`7K~ zKQPCLuv#UFk<7Y|OY%UBktoK}2^ul}Vcq)xBgipEp%}1h^b@0f9r_N^lnF_U(I^Jg zu3EGaki>{#hkdy_G~_WT25b%%?O=thJNpAyxIpY!6hl{R_73_YfezroI1~e7HDWZN z(POzZAwr56k77WCMhsKdfn0^JXYn;ujIS&=UyUz~oPc61+C*YpvVCq&UvP~tG{K1| zhR@Vo{)}ldZ~NwHJnaIyqYXwr8$YG^wfHQrNd}9tnC98Y*Wu#{CZiZ18gvrp_p%iI z3yIO(jJCDj1;qH1iE)9awLzY6LYq>I74Ou?Bg4CAs(DH3~qFTtl>?9P=myCcqG9kuPj5I+OOfOuVEtlCEPOHaU% z#F(j%7|ZCgp*+|R#Q0k+hHnq5YL_SE7_$nBQL#0Bv>P9NGFvT1(Q%9&EP>gR3+B!t zG2UiV@sKPKW3E~Zp&W^EZ^LRyjOlDwg<_5|55-7bt`Va`4Al~bGq~oX7_e*f6XW>b zR5}7jJ{O=EP`hf;MnDpyhb0w=#3%DCL@{7WE0m@>^{7@x(LP46`RU>F#7|* z1Ai0)Vl`rnoJO@Bz-JIIMlm2lBZhkjMMQf+jm*=1?Z&7|RS6WAG3ve>e`fU5;Y3EbAs#m|!Um zE+mFS7mAJX2QgMKG3J@j+9UWZufSr&c+O5}u?`@{O5I}EoS`a@;>hPJ6hqZqM#Z%k zZo4}OFBdl!y4GfKY0%zRlNclV(8@R^jAN`ZOpFIK*G7JPDm<{(05`AHVHwvc90*y9uJ1HCx3aV%F~sO27yW)C z=QrnCoDBuZ znao%%_ixh5^F~0UIZ(T5(N;tvXEz&0zxV`x3EPky z*c>d{!3x>5di2#UVPAeblA|m3E*pos90KI*Kyn~fLryoAcwPyFh@D6dL}}bzr-1E3aw=UTax!ewSd+cRK@;5lpXBtPLA71C0CM&iOisy$to#?) z(IH4qz|T(NxVl!NV!ScfbPA0N1vku!`n&l}i0LyI9Ngrze#X8<{2y2-i2j_56X zsJR@;Q8gEv9xlSQw=P0nYEz-~2>SBrO@W+nA}91NTZy;bM;JzqF-v>y*nujMc)MH7 zny{pMm{L~w~^6^Uo-TkyWKQ@H%ErB7zEJo52S zIHdbf6^PfRN?H#60Z%ZI*{_c(Jy|Pw>JF+LP^&VG{q~>XLrJ3xs^Zw4wjw=4LCP%; z7Ng4Wax5|x_VOW8W&JW*nT5lvht;Yy&o@O?)_bm%R58h5QA$uH22~k;Mx)Aruk`tg zHK587R0Vd8eyWs7q0%pHK$Tcj1!`9<+E7TUa5Q^K{xSv{`%zQ{HV2D#utK&}pvqt2 zOs6kIogLrX zLDweEQ=36;o)}^+>wm_=zJwE;?nN&H;P75F0A(1&_m?|=M`pfYG0nVZr zucV{z==+MM&u)n7d{^VSuz`B$m(JbWI-H55Y?t6i}| z7R`Pjd08OFbrb_)HDa`4iNFs(h)6>*AVMQXZhzWdJ_mWo4MW8kahVlQhOW;|6eG+e z5GQ@SvVFtO915JLbn8FG_+6E1Q{cOr(hU~FX%v-L`ofOBjbg0(yOU@v zV!uGw=MEEN+E7~i(;u4W-D1SJlthugOd$`+&@Dy)8`Ao<4aB&IVyK$SuwE`g=mke% zQ+5a8@g%D7H|8PtNsI{}*vd2zxWK8W#HEyh`D zDdClIc=bs^F&0;&B9+tOkUT9W$GAr$8sSyugBZ^!$FO)n#j9FE&*iyV4FAp*Fvm#! zyiOA1Y95P91u?QvjH9K4)fZ$I4yVtn&4(Q01&RT?Mn5t5GE}-cKK|z=iUGB&7VRIl zB*ygStUx+6ve)lqW{i1E%)G5Rf};ek3=&$Quf7bJ=CpgI+`!&fEzLNS!} zHDc`VMxQsb05N`}7_e*f6C>*iD~+#XGD0z+cGaT&! z3X4%mL9tD+(U(LqRI%C>D`aOVl?!izQ_)MI7!a!wavG7 zLorGlD#n_}w1H+{K#VddMxFa1*_jTZ%q~ZeIC|2Fb%);6pgdF)SZH`lQ#hghQH&Ue zsKXa7O@WidFx4$ae|Cat{ctMwDg3}o%;p#>D@~v=qwE~He$$pfM zK_Es&!^9|Ag=*}I7i7#(3?n-uqbEyC@)HxHxzzHC#LaSZ-mK{v?)v&z(U_gB+;QBa z5{d!w1;v<0%@%KWE6+sgZU$mh)<+C8)?PgDu{~APVpy|H_vAo~s#;<&2YTYf(rRik zir!MczZLzxy|zJ)QJusXw2oHxb_OwOsKrnos)S-(*al+se@0QBI67*MVsv)Vh*2?- zeVz_t)I>30*XSok3mPB_?-LB;7`0Fgs9m*aBOr~^r3_fYz8r!>LbRR9#mu`zNNmIT8tK~Lo^a!uF|}q80}k7kx}>zH+!`hMK9s@X1}x1 zcoE!z#4v9_#Yf{K23x4bxKW$NF@#SWBr%SgP}G=o=#{iYG1d*!i1CJTJ~jx%XoX_H zuF+2nBUXAG_DUR445(eTXd@trFF>n&B3A_tdJ!*Q|x$eh;4&n=!zXZ znqqy;zyl`~17bB|v}GrG-&Ba;Pz;FBh+$lt>X;A(V(^BF(UXR!!zbd%XIm6w)d~`$ ztX(r2M+~221UZI)Vq9;M%U`;a#2?tFonwF)u`JV{bP>dGHdu@?edv#w90fbC9f~ow zZzs_%$x?hQ^-2ngab*C-{)w+jXwSrG^NrR{!HK0EiVByvQjJ?vVE4PB7!{?X zzhz+wK6Pp|x7tjR7(2cs-?ZBvu5rn|;!c(`Y!8C?&L{@N>k`9-W!uc?=u~u9x{n|{^b6z|-ARnt)wC1B zl#pZeP>V5XH1$ecGdD_NOdCT{;Wi+K2a0ibu11Xdtk)DC4`TF0F<{r|C&pG9B@d7A zh8&|8iUGB&7HtHKlrnpkmqxsXhTI#)fX%_89juhiWk)%3HpF_O7`kFj-_f5Lh2t1~ zPz;FGh*6uhfhfG)tuKlJ5gIYFeo!6z+(C?fD24+^e@wxaqT|8m_DfmuEXXmuP>fr0 z5~HG>mjiveAD>OvAH^`X&E>z`OyV1b7Zs!KVTwOs3StZ}Sd2d-S$XW03`8*$X`Mu6 zVm)zZAu&odq}XU1$T7T`7}IH6XlfJMA$B-DkS-&#`C=zF-ovRC&3)V7>{DWuF+2nH+FVPhygKt zQ4FYEwP+(CiP0*7zD}YuC@=xVfX%_8-Gx!ghOyDi#1x2~h+?Q>wJTQ2*3PARPh+2B z5{dz_8Zi#tVG(!>?PL@KA~a$=Wk)>;r=tI9s2KhKrVS)zgBVj#jK^0X+{#-4^^#69RFa+55@*V5J1f;q-oHfDRa zDTwhG6Jsvh9cSY~jOoRQ@rw;Oox{f%&(JM~BRfZ)O9L@xq8O^?Qe~W@5S!Xa$d2hC zEFMfdD+M2H_cw`AGm2K8$EoPE3=?BY5*5BZ8N`^4VpvK?ze#3EzWTg_+_rIi zoMrPQr)6&w#ci7?{th0lIVc9i>k`BLJ;mRf3^~SJeZ+Xc5WA1J)X!6kQHBk=KBx*} z%r7WL-$AsM2dQvK7N8ja{{~sJV2aGdYb6Uwj4VG|`4Au5vq&vQy+&p@j*&Tevm{0% zfkol#nEX+Urb!wxezc^|A6*177NZ!jYxEQ2ZG9^JSPo(=K{23q)uR2wmc;nxKn0$7 zfdWfW4A>kjg~hlypT%N65`bc;Vznz)$`l^(Dd4{h_SYfCb%717B&v9aDAc|r4hQzS63;E4Hje#b+62)l!BZnV;D2cB(SCeC? z#F%lE;pj8z7Uv5tw8h2t2jQH%<`JBbcfmg3ApVl-<^+j`*zVyt0e9A~2wFYu{S zYl{)1!D}l2at!1c>vW4T^b`xs1u@p67^>#7dZB|*inkN0E@&rwWnH*eesG2iA~AX# zq{6SwA;;KYm>9j77;kWr-9{9{PCEMY%}eoT%nozPYKp|co67L&n;>(dYjPt4|u!VKLy2j*Mxn9h;KzP zU_M6C9D`%SlQ}q!v5mwyK9h>);8gVOYB5$=k{H_>Y?Z|DVl3s(hhE7J6k}$lMvT(z zC!CA(LU*DVuxs=a{`iZZ}4CbiUF}2F(#g)ulfaFl@NkrK!ipN*Ul^gU-`J#P%*;j z)`0M@c!O*xiZQLsN}P{jXD1&;m4CxDHw?wt@H&UT6qLl9)p-_AyFkh&SdMXs9o=u~ zAcovvF~+^2?S0<{J31W2@M-5Jww11~CKM8*c>u-cxq}!HOpGKpnD7H97)BN&#yDpx z{{tVw5v3L*Fk}{I=JHwyz1-3X{=UdjthbTx2V(3)F;vZE$>`=n`&c`nVqjb0YYbJW zFb6UAlNe?!i&x;h&;y2vF|!xe7-5DZpV26Wy>#?Fnw8>93_i?-)KDb8K3RrO&Pd^c zx7`&NucY`Yn?a0&C08bs412pObb5%WX8}zx@ju1zc}icmUNnet+F&u- zZ>I8=*!@dFG3-8d606U*5~mg#$C%05fF(W}Fqw&wUzTdH@`4ojOfh1F_GOV-kYk+H zEk;Q?^F>In6OzO@hhnIj%h1D3gj(^oLX9rY!tO~_p*3DBNg**Tma&yFkYk)TOpILO zFTy4dcK-zw!$~^&j&qIqZ6Sxbm*!HA@u~tp`$IH0`Qs(=-Ji6v23ZjQFNy*2y2SW{ zQo0B`y!YgyK4Mg+@qma%_yV^}YB6%Dryn6baYyQvTrMcaN*arcXzUD!)HAqd^`_68 z;DeYb9wY2Gp)vv=NZR$fZ+lM6+a2;0B5Tn}bC=SSh>JjVf=B zJ(!y)hOSuC>MZsNcyJ5FfLM(fwsk1N9v@Jgj$%NBMhxGb6yabDBcHbo6=Od;H#p!c zAMc5~xrtFnti;8I#E9uh+iIB#ImUe^#&8Q-+X}^aP>dL7*w3*Qijk>Xj7Jx#O2^3{ z#zPcC)m)wn%>>WvhC=OhH{k}$2pn;w{}G9CB998U4goP98zx3&ITdb`4fmdO(z>H9 z`Fh2ta7Wui>e)tk1whObyg$V|>)BXopBSlPdj3WA48cbRK1F$4rB>9=(U=bzaF7eF ztw^jqs1+a7qcIoJ_KG;THpLIU2#5U{$^-Gb2n2av6qM)YHu}iN0_1sFj67HJS!4*v^NQqI;6W=#;&{kwwLHID(g>>Q&0tBM z8Vy(!&K-S&@>FTBktc;ZiV>s6K(6u@<$+zJpFE?2sP<7x=-s?Sd7yUHqK%0pPdj$X z9=!(S$wql#bFdWd-E^!)m5-?kvF}kHRjhW!O4+-+EH)VA`GE33tVW)n0!551`+^@hQQbC?vL*=R6k&2JQyWT#cJQaOO9#^})tJ$ZS&;&oBJn_eJczfR@-uit} zdHn1se*A2Z=d;1`EWOIgD`Dq-L3wU?yNM}}tiC9NoyqR^zI~dRZ`p}PiXHyNSF6!c%ctjRM7RmyW*8n^Jt+X$QGQbrgxFj+vZ8?&A|vOTHEBU7`4C z8F09iC#@=BGYloM0K^bT_!>@=Gnoy|J|E>1iOw?}B2)4yBJ~;QMZj z)M6C9KP9pYMb4}WdrDlfeMrjlSYF91VKWs^iG3%+o93yDRWl#** z94y+wN|_1!k^wuGm8?C7g?W7ZVf%Vl`q6W4O)52ZqT|42aN(F*lsP+dRBa zww$42%sb4A=Rxo04-~_D8HwR;H+MdLIzJGapy_{#QH#biA{ID+808HXV_Q6JZ$T#P zyb35r(>HEnd>d==Mb6cHZ;5!NUML}h>79yglb5}OM;Dy5yO*Nc?R!KX`)+`{z?($Sw^zcinAIEI^HsYq<mt6Mx}{nSj;+6fk1=jl zP>g$QNazaQpW=vO{QrAkKX0M$lWGPzMr#sdPAprw8N_I#7Q=c>WxPuJ)Hg&DBbjCd zMO<|NF`Q704_h>1tooa3xtahu28Uw6uF+47%j}C?^Mo9OM=_vw)uN4nBu15~w7F|| z>T8Q)z~*4l4pz!y*h%jC7-;kYilHmEIvc^d{u(@RMlm2(BgVd;wB0mXQmL}CoIbFE09-mD5u(B(hH2zbHb@#QM628*$s z4Z7cQgq_zB#pph?ix`w+Ek+g+!*?HTOL`NB)c5bi#AsZN)}}kc3C*n-F(x^%$OOnS zI_nl=_y-ESjrXT?K`~U##i6=~u;;FgkWjak(2FHxx09j0cO@~Jr%>TLLm|g-H%yE> z?Wu5PGVK0tD8>ls=vS>)n!i@-F!$R^k@z9G6rcX*DQ>R)W%1=2ihqdX7~N3}h%YF{ zq2IrML%W67F}?Ms_{VrhTMvE2m|u^IJW)cg#6vBH{dHRZ6niB-3yP8EMISxK5!7C4 zF^XQL-M)?@v+z21ZxZ8{1+9GH2x54u#VG4SV!TfbmBbkGjG|sv1u^=d7*0nuVjN|c zmtN+A7=2L;*fsiz@wq$I{@Mk^=!arJ?W#o^0ZEK-)(LtO3=P=}#emJhq8+T1SsbFu z-{J^re-uMk?8)gYRtaJZKrtY8J-hp4cDc;=6!C5|L<~eRAfl=|qF--{$i|sq-iC_N z>=+e)ZvkQqLNQuBBr!(VmHoj!#gp7%6r=pz96ohP62I28=v7*aB^3VwM^J|tEXJAb zR9?EUFYV}|D8`fZUByT3ZNz5H;Gv{piK^xwFQ?dC3lL)%6JruPr|07BQ^Si9!-VCr zA2)*-BXo;#=@f0~lPB~_d{7Kka}gGG7fgbi3ZI-Dgx~B8{|R%9ktD`ccCz`L24ajd zObi)ETmFjEYDS|N6QrY`GqW^*r(!HO*IJR-@MdNHOVw3eTG9nE`4+{0lY=m0Pz;Dy z?Xn$jOpH`w{F1~NyOQF6;2mva^%3LnELH@2CF9g$G@~gZ5&4s$S2Dh!7#Yv0h{6RB z_f_{wie9Cid6y!Uc3|!V5@X{DwlW#Sn5Y&bJDTpAFY6R8iIH}IqJH8lA19$0o$hPI zc(8&#|K$K;Ohz$a*XSq4t(~lNDv0qXiUGB&7HtG1G48YT`0oH{$Wu@Z*c>d{!AjZB z7_2#l#p@pVpSadthf5 zBSt3~i;My>=I9pVWoZg5i}$C@MKM&(Wx(yZeyGB1Tj-8=D!3kfLumZ(^+Et4-0+JXDC>Mz2Fvkc)F<^7BXa_50&1mEy zlE*vRR-zcXVppH0FVfZoJXnQdK&(cLFEln4*)|>`R-+gYp%G)=BC11}4`Qq_RE%FC zRNUDNa*VYoMxYgm;b)gLjD4B{Vyyd5F|O0~@5pvTL5%eVi*a@VZLhs4a2teT1P|;Y zPN~;G%#ubv3+5Qt+0UtcJczM@iILlnYUtnx&2wWhV)&P*NEZtbW0P(%LSM4L7|1a; zqZq2@a{Hg2!m*&{LW)cfIxsF>y`jBtAu$@$xi_+-C5Z8lVPf$8Y0I6WVE1oDF=k6g zzty9%e7=7i=iN{m`5e%Quln{0w|w&+@l_*=?~K=0wxJjhuS<+D7m9bsnPA)X5o6MN zD$*?m#Mq%0qf}K|-#rR)jGYC=c+ibL>TwYcNid25FQVs*+@G?S{T@89U$=|IxJ&(w z$e!_#W9(Loaom}DB{MT4B{9ONw-nhc1;p5cV%)B}TRpF%;cfa7z5PIp5EKJ;jecVE zcB0ar7La4?MKPdu)uN4nB*wsaRv-f!awv)cn}bC=SSjn9K(W#-`BH2cilHm^%Sejt z>jECgQ4EOHh%u)Ri^zqDa1;X~G-7=FOcDKX?r4OeVhA;tI{LL@ zP52b+W1LYVMdG^o6ZtXmceo1C|BCb2!5oUf$D$YzuS<+w?Cdr?4swj6`iOCIDE&Pn z)_@psYB9Xne)qxqQ;roBVN0j1ZQWj>TR{0*V2fgGD=7DSOUh$6=0#(11*dSdAE2EUEQ1 z2QiXR42aN(F^TnpeDfg3NH$aq7ccq>6D~rIaR$YxHI&3yWOsQSeL4}F>{%2ecUBI6 zzfBVVI<}}7k8>%0k{^h1&R{XlSyB1P&cJO7ijjHJP4uqQK>Ur*3)S>W=Kn#le;R=p z=b0GKX0o-I0$(Ubj2Z_ia!L${@vm+%2C}qeD!z{CB8s7EE+1>U33Y^~!rzWX&}ZmwHVdE(fWDYAjh~~ zP>lQb^wE5rkCCPpqv+gG>pv-S0ghwbATiw7DR=?i1A9{~#_|g^cQj}rh_RVv!wYc+ z*DVxdd~b~yO>C*^MJPr(iUGSuKQU6qP-%Y@<2H%`wW}6w1SBy=-lqbKXG252gJQtu zV9^d%$|}C1*d-nidl$vf70d1@idd1cxbQ~lh~Oe&;@qh zBNXF$cQAS5&F&;B9y09!~C0<>9Qj8cwXHfZ7K_JFc-D1psPl2nw zA;)-zVyK!+>bWjLy}0H=*=Owpi%S%@#vH_WPGUSeOe@z~f*4tbiP6uT3QMo(kaqtI z6k~&Q^z%xT(O+bv-YBAo?WU$DC_?(S51;sF7y|qIzkYl`6_ezS+;Cjjq-eH{c`HsY> z#~OG{0OT0iYBB!3T?MbMc3HVk5@RoGIY%;~SMnaknEtm$4AZUjryj-EF?~QWVAtp; z#^v6ubSC5&IVc9yu3EGaki;-ervh>Q(2#Rc4A>kjh391k9a0;L0m0ye)9X7MbbPz+K7URT_4cs4Z1~~_R|JVi& zaAb|66qpbMVkl7zRdd;1v9s{Gm4i^FkE3vcu53gm;*70_x z=7JfBQ5MBW*rXA|k*8WNq`)|a35o%`Mn5s?ji=K8;yti36a#8kE!sb9NsL$FRNx{G z$dyAeU~{k(7UStB7MlQK{DESqVznz)%G_DXddUYoFhwySRwKp`b|SrmGd9Yj7!aWm zBb{ZImjgkJ3WkbN{sVp8D~=#WMHC}Gk;K?$SCxTvB@>#U8H&-QWe%V7@iag0pQ2&} z($&?-RD6M3C40XLUbB6X_gT#o; zrtIl&5vo$+0jUyVH;H8_Z}1Xe$};Cj)g`?kCvcalZ~UJ&6q0Tk7?}(oFLG=7*!(sQDhFPVy|13 z3+xn^>j!y=1FE8GF5maM3LdpMAt1D|@bDp3_|XGYX+f&IWW(FigbzuTmWHX)%YRv%Nb&jckgK%ON0ouBO(`~mDo$!ul((oVr5~um6;vhQ z4Sn>}161LQQRN*|^p_><<+h~C71mCFp(=t}mHA_6w)u%KaLwf_YcaoHL$2bCs`R?1 zQKf4u{1Q<{n5(oyRbbcXr^;a(>WV7i2dcD3RiJj&q78+l%2vAc5LMC$PN5x871$gs z+QCX$%1ZibC2_X73#y_kcE=!!ErsKwuBZycYE%iU!y% zhN|*%9V?FWI^0l|?s=q2q+M8B`n0q&G}+Fm%H-xb{HG76`Oh1R<|=O%vv_>&XcvQ3 zIjE%aWpFU5E2=W{x|?YHsv$l_u;5kNI3hW!4BkuY&Qy6teV(YYp3pqI6{AXD>UTty zRYI=PUAHRk1XYwt2&mEnRZ%sU7Y^-(GOaoYv0WMpvm)rr%P?2*AXPe!W-Ia4kv$Dl zrGGCfTnl?Qy-p8AMUZXy-2i~=$GsKqdr(R!-@5TkEFF`lzFEWM*aIwbv23_q!NQ#23x zK!QbC<24sA664<|RI@cc;itb^j9(Y%noAc~5TiBqKcZ~#D(wIiWAImv7*D;amIfiv zyBUaLz^>6xjKd{Vn{Cq-A}Q0 zHV``)#n2V|_$!OWYp_F542ac;ksC)5jS@hNp(qAKXvC;Nc}P^_Z6L-lL&d1zLmOy< z_ooa;F$UCIjWfZH*gXrNPn%*B9D!nFl*r+SUOCOb_AM$#D;n^PYKAkxd<+&Nd;o2) zSt{(jktoK*I-SM5j}67vg=T`iW4biQ@sLqWj1PyY2744^bTML7GNVWbOAup>ZZSSu F{SRo8+lT-F literal 0 HcmV?d00001 diff --git a/simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/mav.tlog.raw b/simulation/extension_docker/extras/kit-app-template/source/extensions/omni.example.spawn_prims/omni/example/spawn_prims/AscentAeroSystems/AscentAeroSystemsSITLPackage/mav.tlog.raw new file mode 100644 index 0000000000000000000000000000000000000000..201a7d0dc5e151b1cdcf85b51b3a6191b7b9fced GIT binary patch literal 933236 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