├── Kalman_Filter_Virtual_Lab.mlx
├── LICENSE.md
├── README.md
├── SECURITY.md
├── animations
├── animation.gif
└── part1_task1.mp4
├── helperfunctions
├── animatePendulum.m
├── openKalmanFilterVirtualLab.m
└── pendparams.m
├── models
└── virtualPendulumModel.slx
├── myMeasurementFcn.m
├── myStateTransitionFcn.m
├── pend.png
├── project.prj
└── resources
└── project
├── 3y7FcV8CH29g4mkVMEBSc7t9a1c
├── -dSvBfNGB7u0Zxc9GbmD894KbMwd.xml
├── -dSvBfNGB7u0Zxc9GbmD894KbMwp.xml
├── TY2AOYS_wbC8zU3MAg3aU8uXZmcd.xml
├── TY2AOYS_wbC8zU3MAg3aU8uXZmcp.xml
├── eiy-nwscSh3j8g4kwx2QZWiKSDMd.xml
├── eiy-nwscSh3j8g4kwx2QZWiKSDMp.xml
├── tbNX_95kgoCwEvUbqOTYM92I290d.xml
└── tbNX_95kgoCwEvUbqOTYM92I290p.xml
├── EEtUlUb-dLAdf0KpMVivaUlztwA
├── F6zk378KmCVWooJ-LDhXiBEc2y4d.xml
├── F6zk378KmCVWooJ-LDhXiBEc2y4p.xml
├── KW16Z75UrgtIrn5xhrZrMP-Er9od.xml
├── KW16Z75UrgtIrn5xhrZrMP-Er9op.xml
├── L9L8L8g9r892PMPSqZnSJhVOCE0d.xml
└── L9L8L8g9r892PMPSqZnSJhVOCE0p.xml
├── HoHDHQ_WvHAAKj5aJOrvrg_vpt8
├── _AaXeSXN25LJDHXRTRO6nynFuZEd.xml
└── _AaXeSXN25LJDHXRTRO6nynFuZEp.xml
├── KAXfQgCar2Yb8zOxgvf9hdmLP1E
├── I0_HlGmtEOZOtuEvEh7fDMTTMOwd.xml
├── I0_HlGmtEOZOtuEvEh7fDMTTMOwp.xml
├── gBRn0OcCQ6F5i6YBwFquxI6tW68d.xml
└── gBRn0OcCQ6F5i6YBwFquxI6tW68p.xml
├── MViB5lxwucpU-yL15389ohJaQ9E
├── 4X3SqIKv58z-TZgBNzWQRTrYfXUd.xml
├── 4X3SqIKv58z-TZgBNzWQRTrYfXUp.xml
├── kjJqxyYe-mOVJqj3lKT01Y6KWsMd.xml
└── kjJqxyYe-mOVJqj3lKT01Y6KWsMp.xml
├── NjSPEMsIuLUyIpr2u1Js5bVPsOs
├── 2kj09UetkV_lru3gvSPXnY6-nM4d.xml
├── 2kj09UetkV_lru3gvSPXnY6-nM4p.xml
├── KKyDJtbdIBOlaeHmIZd5VX6vqx8d.xml
├── KKyDJtbdIBOlaeHmIZd5VX6vqx8p.xml
├── QWNDYJD5mGW1bWYvPx9DtKnxzw4d.xml
├── QWNDYJD5mGW1bWYvPx9DtKnxzw4p.xml
├── R1RggVhA72agIvELiuhWPRS8F0Id.xml
├── R1RggVhA72agIvELiuhWPRS8F0Ip.xml
├── aEHSZBIY-yve10yGis12Zr5DLZod.xml
├── aEHSZBIY-yve10yGis12Zr5DLZop.xml
├── j4xwF_j8iFTVayUMfxLgMnTbencd.xml
├── j4xwF_j8iFTVayUMfxLgMnTbencp.xml
├── r8LR4nLmg9ai3oHrW1r_-KocQzkd.xml
└── r8LR4nLmg9ai3oHrW1r_-KocQzkp.xml
├── Project.xml
├── _AaXeSXN25LJDHXRTRO6nynFuZE
├── 913ZuJlj8vPKkAdAH60KHnsvogAd.xml
└── 913ZuJlj8vPKkAdAH60KHnsvogAp.xml
├── aPSZTDXRjCsxkLD0Rd1_fiBDTLQ
├── BftGHBapA6sBPQH7JYV7s3Addb4d.xml
├── BftGHBapA6sBPQH7JYV7s3Addb4p.xml
├── dCH3sRzeKdhf0RKOhtZCvQWzhW0d.xml
└── dCH3sRzeKdhf0RKOhtZCvQWzhW0p.xml
├── fjRQtWiSIy7hIlj-Kmk87M7s21k
├── NjSPEMsIuLUyIpr2u1Js5bVPsOsd.xml
└── NjSPEMsIuLUyIpr2u1Js5bVPsOsp.xml
├── qaw0eS1zuuY1ar9TdPn1GMfrjbQ
├── 3y7FcV8CH29g4mkVMEBSc7t9a1cd.xml
├── 3y7FcV8CH29g4mkVMEBSc7t9a1cp.xml
├── CAg_YkJQRaTQYGsIPupXZ-hSFV4d.xml
├── CAg_YkJQRaTQYGsIPupXZ-hSFV4p.xml
├── MViB5lxwucpU-yL15389ohJaQ9Ed.xml
├── MViB5lxwucpU-yL15389ohJaQ9Ep.xml
├── _giQQZu80ZxibIGSRWb5NNfNlbMd.xml
├── _giQQZu80ZxibIGSRWb5NNfNlbMp.xml
├── aPSZTDXRjCsxkLD0Rd1_fiBDTLQd.xml
├── aPSZTDXRjCsxkLD0Rd1_fiBDTLQp.xml
├── l8Ngz4Ofwv74iunAHjdFBTIVvB0d.xml
├── l8Ngz4Ofwv74iunAHjdFBTIVvB0p.xml
├── oTsqgDC9BCmSLTdbqZ9Z0fNTo9gd.xml
└── oTsqgDC9BCmSLTdbqZ9Z0fNTo9gp.xml
├── root
├── 6x1BhZX_fLnKpcwqra0qFwv1jIgp.xml
├── EEtUlUb-dLAdf0KpMVivaUlztwAp.xml
├── GiiBklLgTxteCEmomM8RCvWT0nQd.xml
├── GiiBklLgTxteCEmomM8RCvWT0nQp.xml
├── HoHDHQ_WvHAAKj5aJOrvrg_vpt8d.xml
├── HoHDHQ_WvHAAKj5aJOrvrg_vpt8p.xml
├── KAXfQgCar2Yb8zOxgvf9hdmLP1Ep.xml
├── NmGqIpAwUJcXFyLjFAGnU9uyN5Yp.xml
├── fjRQtWiSIy7hIlj-Kmk87M7s21kd.xml
├── fjRQtWiSIy7hIlj-Kmk87M7s21kp.xml
└── qaw0eS1zuuY1ar9TdPn1GMfrjbQp.xml
├── rootd.xml
├── rootp.xml
└── uuid-fb295b4c-8397-4d00-a10e-493b5f390fed.xml
/Kalman_Filter_Virtual_Lab.mlx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MathWorks-Teaching-Resources/Kalman-filter-virtual-lab/d8b37d099f3947235139b346ecb38c6c2c022b54/Kalman_Filter_Virtual_Lab.mlx
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | Copyright (c) 2022, The MathWorks, Inc.
2 | All rights reserved.
3 |
4 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
5 |
6 | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
7 | 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.
8 | 3. In all cases, the software is, and all modifications and derivatives of the software shall be, licensed to you solely for use in conjunction with MathWorks products and service offerings.
9 |
10 | 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.
11 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Kalman Filter Virtual Lab [](https://www.mathworks.com/matlabcentral/fileexchange/105525-kalman-filter-virtual-lab)
2 |
3 | [](https://matlab.mathworks.com/open/github/v1?repo=MathWorks-Teaching-Resources/Kalman-filter-virtual-lab&project=project.prj&line=1)
4 |
5 | The Kalman Filter virtual laboratory contains interactive exercises that let you study linear and extended Kalman filter design for state estimation of a simple pendulum system. The virtual lab lets you visualize pendulum dynamics using 3D simulations and animations (see below).
6 |
7 | The lab solutions are available upon instructor request. If you would like to request solutions, find an issue, or have a suggestion, contact us [here](mailto:mulusoy@mathworks.com).
8 |
9 |
10 |
11 |
12 | ## Learning Goals
13 | - Simulate a simple pendulum and visualize its swing motion
14 | - Simulate sensor meaurement and compare measured to actual pendulum response
15 | - Design a Kalman Filter to estimate the angular position of the pendulum
16 | - Design an Extended Kalman Filter to estimate the angular position of the nonlinear pendulum system
17 |
18 | ## Setup
19 | To get started with the Kalman filter virtual lab, double-click the project.prj file inside MATLAB®. This will set up the parameters required for simulating the pendulum system and open up a live script, where you'll find the instructions for running the interactive exercises to complete the virtual lab.
20 |
21 | ## Suggested Prework
22 | - [Kalman Filter Tech Talks](https://www.youtube.com/watch?v=mwn8xhgNpFY&list=PLn8PRpmsu08pzi6EMiYnR-076Mh-q3tWr) help students gain insights into why engineers use Kalman filters, how Kalman filter state estimation algorithm works and the different types of optimal state estimators such as extended, unscented Kalman filters and particle filters.
23 | - [MATLAB Onramp](https://matlabacademy.mathworks.com/details/matlab-onramp/gettingstarted) – a free two-hour introductory tutorial that teaches the essentials of MATLAB.
24 | - [Simulink Onramp](https://matlabacademy.mathworks.com/details/simulink-onramp/simulink) – a free three-hour introductory tutorial that teaches the essentials of Simulink.
25 |
26 | ## Products
27 | MATLAB, Simulink, Control System Toolbox™, Simscape™, Simscape Multibody™
28 |
29 | ## Educator Resources
30 | - [Controls courseware](https://www.mathworks.com/academia/courseware/teaching-controls-with-matlab-and-simulink.html)
31 | - [Teaching Modeling and Controls using MATLAB Live Scripts](https://www.mathworks.com/videos/teaching-modeling-and-controls-with-the-matlab-live-editor-1623992486476.html?s_tid=srchtitle_teaching%20modeling%20and%20controls_1)
32 | - [Virtual Labs and Projects with MATLAB and Simulink](https://www.mathworks.com/academia/educators/resources.html)
33 |
34 | The lab solutions are available upon instructor request. Contact us [here](mailto:mulusoy@mathworks.com) if you would like to request solutions or have a question about the lab.
35 |
36 | *Copyright 2022 The MathWorks, Inc.*
37 |
--------------------------------------------------------------------------------
/SECURITY.md:
--------------------------------------------------------------------------------
1 | # Reporting Security Vulnerabilities
2 |
3 | If you believe you have discovered a security vulnerability, please report it to
4 | [security@mathworks.com](mailto:security@mathworks.com). Please see
5 | [MathWorks Vulnerability Disclosure Policy for Security Researchers](https://www.mathworks.com/company/aboutus/policies_statements/vulnerability-disclosure-policy.html)
6 | for additional information.
--------------------------------------------------------------------------------
/animations/animation.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MathWorks-Teaching-Resources/Kalman-filter-virtual-lab/d8b37d099f3947235139b346ecb38c6c2c022b54/animations/animation.gif
--------------------------------------------------------------------------------
/animations/part1_task1.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MathWorks-Teaching-Resources/Kalman-filter-virtual-lab/d8b37d099f3947235139b346ecb38c6c2c022b54/animations/part1_task1.mp4
--------------------------------------------------------------------------------
/helperfunctions/animatePendulum.m:
--------------------------------------------------------------------------------
1 | function animatePendulum(t, y_actual, y_measured, y_estimated, theta_initial)
2 | [~, L, ~] = pendparams;
3 | if isempty(y_estimated) && isempty(y_measured)
4 | y_estimated = zeros(length(y_actual),1);
5 | y_measured = zeros(length(y_actual),1);
6 | visibility = ["on","off","off"];
7 | elseif isempty(y_estimated)
8 | y_estimated = zeros(length(y_actual),1);
9 | visibility = ["on","off","on"];
10 | elseif isempty(y_measured)
11 | y_measured = zeros(length(y_actual),1);
12 | visibility = ["on","on","off"];
13 | else
14 | visibility = ["on","on","on"];
15 | end
16 |
17 | clf
18 | tiledlayout(2,1)
19 | nexttile
20 | hold on
21 | g1 = plot(t,y_actual,'g',LineWidth = 1.5, Visible = visibility(1));
22 | g2 = plot(t,y_estimated,'b',LineWidth = 1, Visible = visibility(2));
23 | g3 = plot(t,y_measured,'r',LineWidth = 0.5, Visible = visibility(3));
24 |
25 | axis([t(1) t(end) -abs(theta_initial)-10 abs(theta_initial)+10])
26 | title('System Response')
27 |
28 | % Convert from degrees to radians
29 | y_actual_rad = deg2rad(y_actual);
30 | y_estimated_rad = deg2rad(y_estimated);
31 | y_measured_rad = deg2rad(y_measured);
32 |
33 | hold off
34 |
35 | xactual_rad = L*sin(y_actual_rad);
36 | yactual_rad = -L*cos(y_actual_rad);
37 |
38 | xK = L*sin(y_estimated_rad);
39 | yK = -L*cos(y_estimated_rad);
40 |
41 | xL = L*sin(y_measured_rad);
42 | yL = -L*cos(y_measured_rad);
43 |
44 | hold on
45 | h1 = plot(t(1),Marker=".",MarkerSize=20,Color="g");
46 | k1 = plot(t(1),Marker=".",MarkerSize=20,Color="b");
47 | l1 = plot(t(1),Marker=".",MarkerSize=20,Color="r");
48 |
49 | xlabel("Time (sec)")
50 | ylabel("Angular position (deg)")
51 | leg = ["Pendulum response","Kalman Filter estimate","Measured response"];
52 | ind = (visibility == "on");
53 | leg(ind==0) = '';
54 | legend(leg, Location='eastoutside');
55 | hold off
56 |
57 | nexttile
58 | hold on;
59 | h2 = plot([0,xactual_rad(1,1)],[0,yactual_rad(1,1)], ...
60 | Marker=".",MarkerSize=25,LineWidth=2,Color='green',Visible = visibility(1));
61 |
62 | k2 = plot([0,xK(1,1)],[0,yK(1,1)], ...
63 | Marker=".",MarkerSize=20,LineWidth=2,Color='blue',Visible = visibility(2));
64 |
65 | l2 = plot([0,xL(1,1)],[0,yL(1,1)], ...
66 | Marker=".",MarkerSize=20,LineWidth=2,Color='red',Visible = visibility(3));
67 | hold off;
68 | axis equal
69 | axis([-1.2*L 1.2*L -1.2*L 0.2*L])
70 | ht = title("Time: "+t(1)+" sec");
71 |
72 | for id = 1:length(t)
73 | set(h1,XData=t(id),YData=y_actual(id))
74 | set(h2,XData=[0,xactual_rad(id)],YData=[0,yactual_rad(id)],Visible = visibility(1))
75 |
76 | set(k1,XData=t(id),YData=y_estimated(id),Visible = visibility(2))
77 | set(k2,XData=xK(id),YData=yK(id))
78 |
79 | set(l1,XData=t(id),YData=y_measured(id),Visible = visibility(3))
80 | set(l2,XData=xL(id),YData=yL(id))
81 |
82 | set(ht,String="Time: "+t(id)+" sec")
83 |
84 | drawnow
85 | end
86 |
87 | end
88 |
89 | % Copyright 2022 The MathWorks, Inc.
--------------------------------------------------------------------------------
/helperfunctions/openKalmanFilterVirtualLab.m:
--------------------------------------------------------------------------------
1 | % Open the Kalman filter virtual lab
2 | open("Kalman_Filter_Virtual_Lab.mlx");
3 |
4 | % Copyright 2022 The MathWorks, Inc.
--------------------------------------------------------------------------------
/helperfunctions/pendparams.m:
--------------------------------------------------------------------------------
1 | function [m, L, g] = pendparams()
2 | % Specify values of parameters for modeling the pendulum
3 | m = 1; % Pendulum mass [kg]
4 | L = 0.5; % Pendulum length [m]
5 | g = 9.81; % Gravity [m/s^2]
6 | end
7 |
8 | % Copyright 2022 The MathWorks, Inc.
9 |
--------------------------------------------------------------------------------
/models/virtualPendulumModel.slx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MathWorks-Teaching-Resources/Kalman-filter-virtual-lab/d8b37d099f3947235139b346ecb38c6c2c022b54/models/virtualPendulumModel.slx
--------------------------------------------------------------------------------
/myMeasurementFcn.m:
--------------------------------------------------------------------------------
1 | function y = myMeasurementFcn(x)
2 | % Write your code here to define the measurement equation you're given in
3 | % Part3-task17 of the Kalman filter virtual lab
4 |
5 | end
6 |
7 | % Copyright 2022 The MathWorks, Inc.
--------------------------------------------------------------------------------
/myStateTransitionFcn.m:
--------------------------------------------------------------------------------
1 | function x = myStateTransitionFcn(x,u)
2 | % Sample time [s]
3 | Ts = 0.01;
4 |
5 | % Write your code here to define the discrete-time state update equations
6 | % you've found in Part3-task15 of the Kalman filter virtual lab
7 |
8 | end
9 |
10 | % Copyright 2022 The MathWorks, Inc.
--------------------------------------------------------------------------------
/pend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MathWorks-Teaching-Resources/Kalman-filter-virtual-lab/d8b37d099f3947235139b346ecb38c6c2c022b54/pend.png
--------------------------------------------------------------------------------
/project.prj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/3y7FcV8CH29g4mkVMEBSc7t9a1c/-dSvBfNGB7u0Zxc9GbmD894KbMwd.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/3y7FcV8CH29g4mkVMEBSc7t9a1c/-dSvBfNGB7u0Zxc9GbmD894KbMwp.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/3y7FcV8CH29g4mkVMEBSc7t9a1c/TY2AOYS_wbC8zU3MAg3aU8uXZmcd.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/3y7FcV8CH29g4mkVMEBSc7t9a1c/TY2AOYS_wbC8zU3MAg3aU8uXZmcp.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/3y7FcV8CH29g4mkVMEBSc7t9a1c/eiy-nwscSh3j8g4kwx2QZWiKSDMd.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/3y7FcV8CH29g4mkVMEBSc7t9a1c/eiy-nwscSh3j8g4kwx2QZWiKSDMp.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/3y7FcV8CH29g4mkVMEBSc7t9a1c/tbNX_95kgoCwEvUbqOTYM92I290d.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/3y7FcV8CH29g4mkVMEBSc7t9a1c/tbNX_95kgoCwEvUbqOTYM92I290p.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/EEtUlUb-dLAdf0KpMVivaUlztwA/F6zk378KmCVWooJ-LDhXiBEc2y4d.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/EEtUlUb-dLAdf0KpMVivaUlztwA/F6zk378KmCVWooJ-LDhXiBEc2y4p.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/EEtUlUb-dLAdf0KpMVivaUlztwA/KW16Z75UrgtIrn5xhrZrMP-Er9od.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/EEtUlUb-dLAdf0KpMVivaUlztwA/KW16Z75UrgtIrn5xhrZrMP-Er9op.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/EEtUlUb-dLAdf0KpMVivaUlztwA/L9L8L8g9r892PMPSqZnSJhVOCE0d.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/EEtUlUb-dLAdf0KpMVivaUlztwA/L9L8L8g9r892PMPSqZnSJhVOCE0p.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/HoHDHQ_WvHAAKj5aJOrvrg_vpt8/_AaXeSXN25LJDHXRTRO6nynFuZEd.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/HoHDHQ_WvHAAKj5aJOrvrg_vpt8/_AaXeSXN25LJDHXRTRO6nynFuZEp.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/KAXfQgCar2Yb8zOxgvf9hdmLP1E/I0_HlGmtEOZOtuEvEh7fDMTTMOwd.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/KAXfQgCar2Yb8zOxgvf9hdmLP1E/I0_HlGmtEOZOtuEvEh7fDMTTMOwp.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/KAXfQgCar2Yb8zOxgvf9hdmLP1E/gBRn0OcCQ6F5i6YBwFquxI6tW68d.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/KAXfQgCar2Yb8zOxgvf9hdmLP1E/gBRn0OcCQ6F5i6YBwFquxI6tW68p.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/MViB5lxwucpU-yL15389ohJaQ9E/4X3SqIKv58z-TZgBNzWQRTrYfXUd.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/MViB5lxwucpU-yL15389ohJaQ9E/4X3SqIKv58z-TZgBNzWQRTrYfXUp.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/MViB5lxwucpU-yL15389ohJaQ9E/kjJqxyYe-mOVJqj3lKT01Y6KWsMd.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/MViB5lxwucpU-yL15389ohJaQ9E/kjJqxyYe-mOVJqj3lKT01Y6KWsMp.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/NjSPEMsIuLUyIpr2u1Js5bVPsOs/2kj09UetkV_lru3gvSPXnY6-nM4d.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/NjSPEMsIuLUyIpr2u1Js5bVPsOs/2kj09UetkV_lru3gvSPXnY6-nM4p.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/NjSPEMsIuLUyIpr2u1Js5bVPsOs/KKyDJtbdIBOlaeHmIZd5VX6vqx8d.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/NjSPEMsIuLUyIpr2u1Js5bVPsOs/KKyDJtbdIBOlaeHmIZd5VX6vqx8p.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/NjSPEMsIuLUyIpr2u1Js5bVPsOs/QWNDYJD5mGW1bWYvPx9DtKnxzw4d.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/NjSPEMsIuLUyIpr2u1Js5bVPsOs/QWNDYJD5mGW1bWYvPx9DtKnxzw4p.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/NjSPEMsIuLUyIpr2u1Js5bVPsOs/R1RggVhA72agIvELiuhWPRS8F0Id.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/NjSPEMsIuLUyIpr2u1Js5bVPsOs/R1RggVhA72agIvELiuhWPRS8F0Ip.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/NjSPEMsIuLUyIpr2u1Js5bVPsOs/aEHSZBIY-yve10yGis12Zr5DLZod.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/NjSPEMsIuLUyIpr2u1Js5bVPsOs/aEHSZBIY-yve10yGis12Zr5DLZop.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/NjSPEMsIuLUyIpr2u1Js5bVPsOs/j4xwF_j8iFTVayUMfxLgMnTbencd.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/NjSPEMsIuLUyIpr2u1Js5bVPsOs/j4xwF_j8iFTVayUMfxLgMnTbencp.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/NjSPEMsIuLUyIpr2u1Js5bVPsOs/r8LR4nLmg9ai3oHrW1r_-KocQzkd.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/NjSPEMsIuLUyIpr2u1Js5bVPsOs/r8LR4nLmg9ai3oHrW1r_-KocQzkp.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/Project.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/_AaXeSXN25LJDHXRTRO6nynFuZE/913ZuJlj8vPKkAdAH60KHnsvogAd.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/_AaXeSXN25LJDHXRTRO6nynFuZE/913ZuJlj8vPKkAdAH60KHnsvogAp.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/aPSZTDXRjCsxkLD0Rd1_fiBDTLQ/BftGHBapA6sBPQH7JYV7s3Addb4d.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/aPSZTDXRjCsxkLD0Rd1_fiBDTLQ/BftGHBapA6sBPQH7JYV7s3Addb4p.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/aPSZTDXRjCsxkLD0Rd1_fiBDTLQ/dCH3sRzeKdhf0RKOhtZCvQWzhW0d.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/aPSZTDXRjCsxkLD0Rd1_fiBDTLQ/dCH3sRzeKdhf0RKOhtZCvQWzhW0p.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/fjRQtWiSIy7hIlj-Kmk87M7s21k/NjSPEMsIuLUyIpr2u1Js5bVPsOsd.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/fjRQtWiSIy7hIlj-Kmk87M7s21k/NjSPEMsIuLUyIpr2u1Js5bVPsOsp.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/qaw0eS1zuuY1ar9TdPn1GMfrjbQ/3y7FcV8CH29g4mkVMEBSc7t9a1cd.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/qaw0eS1zuuY1ar9TdPn1GMfrjbQ/3y7FcV8CH29g4mkVMEBSc7t9a1cp.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/qaw0eS1zuuY1ar9TdPn1GMfrjbQ/CAg_YkJQRaTQYGsIPupXZ-hSFV4d.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/qaw0eS1zuuY1ar9TdPn1GMfrjbQ/CAg_YkJQRaTQYGsIPupXZ-hSFV4p.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/qaw0eS1zuuY1ar9TdPn1GMfrjbQ/MViB5lxwucpU-yL15389ohJaQ9Ed.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/qaw0eS1zuuY1ar9TdPn1GMfrjbQ/MViB5lxwucpU-yL15389ohJaQ9Ep.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/qaw0eS1zuuY1ar9TdPn1GMfrjbQ/_giQQZu80ZxibIGSRWb5NNfNlbMd.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/qaw0eS1zuuY1ar9TdPn1GMfrjbQ/_giQQZu80ZxibIGSRWb5NNfNlbMp.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/qaw0eS1zuuY1ar9TdPn1GMfrjbQ/aPSZTDXRjCsxkLD0Rd1_fiBDTLQd.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/qaw0eS1zuuY1ar9TdPn1GMfrjbQ/aPSZTDXRjCsxkLD0Rd1_fiBDTLQp.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/qaw0eS1zuuY1ar9TdPn1GMfrjbQ/l8Ngz4Ofwv74iunAHjdFBTIVvB0d.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/qaw0eS1zuuY1ar9TdPn1GMfrjbQ/l8Ngz4Ofwv74iunAHjdFBTIVvB0p.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/qaw0eS1zuuY1ar9TdPn1GMfrjbQ/oTsqgDC9BCmSLTdbqZ9Z0fNTo9gd.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/qaw0eS1zuuY1ar9TdPn1GMfrjbQ/oTsqgDC9BCmSLTdbqZ9Z0fNTo9gp.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/root/6x1BhZX_fLnKpcwqra0qFwv1jIgp.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/root/EEtUlUb-dLAdf0KpMVivaUlztwAp.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/root/GiiBklLgTxteCEmomM8RCvWT0nQd.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/root/GiiBklLgTxteCEmomM8RCvWT0nQp.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/root/HoHDHQ_WvHAAKj5aJOrvrg_vpt8d.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/root/HoHDHQ_WvHAAKj5aJOrvrg_vpt8p.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/root/KAXfQgCar2Yb8zOxgvf9hdmLP1Ep.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/root/NmGqIpAwUJcXFyLjFAGnU9uyN5Yp.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/root/fjRQtWiSIy7hIlj-Kmk87M7s21kd.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/root/fjRQtWiSIy7hIlj-Kmk87M7s21kp.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/root/qaw0eS1zuuY1ar9TdPn1GMfrjbQp.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/rootd.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/rootp.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/resources/project/uuid-fb295b4c-8397-4d00-a10e-493b5f390fed.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------