stoobly-agent 1.8.5__py3-none-any.whl → 1.9.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. stoobly_agent/__init__.py +1 -1
  2. stoobly_agent/app/api/configs_controller.py +3 -3
  3. stoobly_agent/app/cli/helpers/handle_config_update_service.py +12 -12
  4. stoobly_agent/app/cli/intercept_cli.py +30 -7
  5. stoobly_agent/app/cli/scaffold/templates/app/.Dockerfile.context +1 -1
  6. stoobly_agent/app/cli/scaffold/templates/app/.Makefile +6 -0
  7. stoobly_agent/app/cli/scaffold/templates/build/workflows/exec/.overwrite +13 -0
  8. stoobly_agent/app/cli/scaffold/templates/workflow/record/bin/configure +16 -0
  9. stoobly_agent/app/models/adapters/joined_request_adapter.py +1 -1
  10. stoobly_agent/app/models/factories/resource/local_db/helpers/log.py +52 -2
  11. stoobly_agent/app/models/factories/resource/local_db/helpers/request_snapshot.py +0 -1
  12. stoobly_agent/app/models/factories/resource/local_db/helpers/scenario_snapshot.py +2 -3
  13. stoobly_agent/app/models/factories/resource/local_db/helpers/snapshot_service.py +9 -8
  14. stoobly_agent/app/models/helpers/apply.py +10 -5
  15. stoobly_agent/app/proxy/handle_mock_service.py +19 -6
  16. stoobly_agent/app/proxy/handle_record_service.py +16 -7
  17. stoobly_agent/app/proxy/intercept_settings.py +12 -1
  18. stoobly_agent/app/proxy/mitmproxy/request_facade.py +1 -1
  19. stoobly_agent/app/proxy/record/request_string.py +15 -9
  20. stoobly_agent/app/proxy/replay/body_parser_service.py +15 -4
  21. stoobly_agent/app/proxy/replay/replay_request_service.py +1 -0
  22. stoobly_agent/app/settings/data_rules.py +16 -1
  23. stoobly_agent/config/constants/custom_headers.py +1 -0
  24. stoobly_agent/config/constants/lifecycle_hooks.py +1 -0
  25. stoobly_agent/config/constants/record_order.py +6 -0
  26. stoobly_agent/config/constants/record_policy.py +2 -2
  27. stoobly_agent/public/18-es2015.beb31fe4a4dee3007cb2.js +1 -0
  28. stoobly_agent/public/18-es5.beb31fe4a4dee3007cb2.js +1 -0
  29. stoobly_agent/public/index.html +2 -2
  30. stoobly_agent/public/main-es2015.089b46f303768fbe864f.js +1 -0
  31. stoobly_agent/public/main-es5.089b46f303768fbe864f.js +1 -0
  32. stoobly_agent/public/{runtime-es2015.b13c22b834b51724d30a.js → runtime-es2015.f8c814b38b27708e91c1.js} +1 -1
  33. stoobly_agent/public/{runtime-es5.b13c22b834b51724d30a.js → runtime-es5.f8c814b38b27708e91c1.js} +1 -1
  34. stoobly_agent/public/{styles.ab281309cf423b2cdcb0.css → styles.817f011ab81b18b0e5c2.css} +1 -1
  35. stoobly_agent/test/app/cli/config/scenario/config_scenario_set_test.py +3 -3
  36. stoobly_agent/test/app/cli/intercept/intercept_configure_test.py +5 -7
  37. stoobly_agent/test/app/cli/intercept/intercept_enable_test.py +3 -5
  38. stoobly_agent/test/app/cli/snapshot/snapshot_apply_test.py +143 -1
  39. stoobly_agent/test/app/cli/snapshot/snapshot_prune_test.py +72 -3
  40. stoobly_agent/test/app/models/schemas/.stoobly/db/VERSION +1 -1
  41. stoobly_agent/test/cli/record_test.py +3 -3
  42. {stoobly_agent-1.8.5.dist-info → stoobly_agent-1.9.1.dist-info}/METADATA +1 -1
  43. {stoobly_agent-1.8.5.dist-info → stoobly_agent-1.9.1.dist-info}/RECORD +46 -44
  44. stoobly_agent/public/18-es2015.d07dd29def7e2574c5b7.js +0 -1
  45. stoobly_agent/public/18-es5.d07dd29def7e2574c5b7.js +0 -1
  46. stoobly_agent/public/main-es2015.ce00115b0520fa030f01.js +0 -1
  47. stoobly_agent/public/main-es5.ce00115b0520fa030f01.js +0 -1
  48. {stoobly_agent-1.8.5.dist-info → stoobly_agent-1.9.1.dist-info}/LICENSE +0 -0
  49. {stoobly_agent-1.8.5.dist-info → stoobly_agent-1.9.1.dist-info}/WHEEL +0 -0
  50. {stoobly_agent-1.8.5.dist-info → stoobly_agent-1.9.1.dist-info}/entry_points.txt +0 -0
@@ -1 +1 @@
1
- !function(e){function r(r){for(var a,f,o=r[0],d=r[1],b=r[2],i=0,l=[];i<o.length;i++)f=o[i],Object.prototype.hasOwnProperty.call(n,f)&&n[f]&&l.push(n[f][0]),n[f]=0;for(a in d)Object.prototype.hasOwnProperty.call(d,a)&&(e[a]=d[a]);for(u&&u(r);l.length;)l.shift()();return c.push.apply(c,b||[]),t()}function t(){for(var e,r=0;r<c.length;r++){for(var t=c[r],a=!0,o=1;o<t.length;o++)0!==n[t[o]]&&(a=!1);a&&(c.splice(r--,1),e=f(f.s=t[0]))}return e}var a={},n={11:0},c=[];function f(r){if(a[r])return a[r].exports;var t=a[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,f),t.l=!0,t.exports}f.e=function(e){var r=[],t=n[e];if(0!==t)if(t)r.push(t[2]);else{var a=new Promise(function(r,a){t=n[e]=[r,a]});r.push(t[2]=a);var c,o=document.createElement("script");o.charset="utf-8",o.timeout=120,f.nc&&o.setAttribute("nonce",f.nc),o.src=function(e){return f.p+""+({3:"common"}[e]||e)+"-es2015."+{0:"c7c5a6d51b98cb85b9fc",1:"bb4492eeabe1fe937ada",2:"51eb8544ea9a21f2874c",3:"388805227aa99c527fba",4:"f8ac5475bf103969b2d2",5:"90ea7bd4439d9749e052",6:"5fb726c0555664300974",7:"ba9f789e186a8e3962d3",8:"b901639e2aeff1358c3d",9:"1d75413af5d96b4ff1e5",10:"56da22458086513ba0c7",12:"be58ed0ef449008b932e",13:"6d3a4fd76d46bfa5f200",14:"b6619d7742671d2a37fb",15:"d8855701408b0e1d7a3e",16:"98fa59c2c96d2caac3c3",17:"7f60b56d1fd66d4d5544",18:"d07dd29def7e2574c5b7",19:"e5acb2c1e0e91717efc2",20:"90544c488f1f0900bab4",21:"63ed4e6b242fbc047bd6",22:"1e96ef651f96d51191e2",23:"6d3052555b4fac38f16d",28:"a2bf42f38e4dd771ccea",29:"18b515f07c88753c7eb6",30:"d4d3dc4101400cadf3f3",31:"e3ea815f75c19c217b7d",32:"57553995bff0ae518501",33:"da5ba1e5baa164921198",34:"87acbb95cfb824650157",35:"4ffe6f7a196ed1a87fc7",36:"e3a104020eeec02cb8c4",37:"3b472e6cf303201bbf2c",38:"39dbf43d46cdc94f78c6",39:"e5475ea4fb6ec5c60741",40:"47b2873a8439717af6a7",41:"69f2771002745c066976",42:"b590b92ede890155dcd6",43:"ad1d956bffba561ba64c",44:"3ef2c17996ed5be95ced",45:"3d65d27e0a7085e96356",46:"e4f0a5b127eae13c27c0",47:"c7d45334a70131f133b5"}[e]+".js"}(e);var d=new Error;c=function(r){o.onerror=o.onload=null,clearTimeout(b);var t=n[e];if(0!==t){if(t){var a=r&&("load"===r.type?"missing":r.type),c=r&&r.target&&r.target.src;d.message="Loading chunk "+e+" failed.\n("+a+": "+c+")",d.name="ChunkLoadError",d.type=a,d.request=c,t[1](d)}n[e]=void 0}};var b=setTimeout(function(){c({type:"timeout",target:o})},12e4);o.onerror=o.onload=c,document.head.appendChild(o)}return Promise.all(r)},f.m=e,f.c=a,f.d=function(e,r,t){f.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},f.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.t=function(e,r){if(1&r&&(e=f(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(f.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var a in e)f.d(t,a,(function(r){return e[r]}).bind(null,a));return t},f.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return f.d(r,"a",r),r},f.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},f.p="",f.oe=function(e){throw console.error(e),e};var o=window.webpackJsonp=window.webpackJsonp||[],d=o.push.bind(o);o.push=r,o=o.slice();for(var b=0;b<o.length;b++)r(o[b]);var u=d;t()}([]);
1
+ !function(e){function r(r){for(var t,f,o=r[0],d=r[1],b=r[2],i=0,l=[];i<o.length;i++)f=o[i],Object.prototype.hasOwnProperty.call(n,f)&&n[f]&&l.push(n[f][0]),n[f]=0;for(t in d)Object.prototype.hasOwnProperty.call(d,t)&&(e[t]=d[t]);for(u&&u(r);l.length;)l.shift()();return c.push.apply(c,b||[]),a()}function a(){for(var e,r=0;r<c.length;r++){for(var a=c[r],t=!0,o=1;o<a.length;o++)0!==n[a[o]]&&(t=!1);t&&(c.splice(r--,1),e=f(f.s=a[0]))}return e}var t={},n={11:0},c=[];function f(r){if(t[r])return t[r].exports;var a=t[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,f),a.l=!0,a.exports}f.e=function(e){var r=[],a=n[e];if(0!==a)if(a)r.push(a[2]);else{var t=new Promise(function(r,t){a=n[e]=[r,t]});r.push(a[2]=t);var c,o=document.createElement("script");o.charset="utf-8",o.timeout=120,f.nc&&o.setAttribute("nonce",f.nc),o.src=function(e){return f.p+""+({3:"common"}[e]||e)+"-es2015."+{0:"c7c5a6d51b98cb85b9fc",1:"bb4492eeabe1fe937ada",2:"51eb8544ea9a21f2874c",3:"388805227aa99c527fba",4:"f8ac5475bf103969b2d2",5:"90ea7bd4439d9749e052",6:"5fb726c0555664300974",7:"ba9f789e186a8e3962d3",8:"b901639e2aeff1358c3d",9:"1d75413af5d96b4ff1e5",10:"56da22458086513ba0c7",12:"be58ed0ef449008b932e",13:"6d3a4fd76d46bfa5f200",14:"b6619d7742671d2a37fb",15:"d8855701408b0e1d7a3e",16:"98fa59c2c96d2caac3c3",17:"7f60b56d1fd66d4d5544",18:"beb31fe4a4dee3007cb2",19:"e5acb2c1e0e91717efc2",20:"90544c488f1f0900bab4",21:"63ed4e6b242fbc047bd6",22:"1e96ef651f96d51191e2",23:"6d3052555b4fac38f16d",28:"a2bf42f38e4dd771ccea",29:"18b515f07c88753c7eb6",30:"d4d3dc4101400cadf3f3",31:"e3ea815f75c19c217b7d",32:"57553995bff0ae518501",33:"da5ba1e5baa164921198",34:"87acbb95cfb824650157",35:"4ffe6f7a196ed1a87fc7",36:"e3a104020eeec02cb8c4",37:"3b472e6cf303201bbf2c",38:"39dbf43d46cdc94f78c6",39:"e5475ea4fb6ec5c60741",40:"47b2873a8439717af6a7",41:"69f2771002745c066976",42:"b590b92ede890155dcd6",43:"ad1d956bffba561ba64c",44:"3ef2c17996ed5be95ced",45:"3d65d27e0a7085e96356",46:"e4f0a5b127eae13c27c0",47:"c7d45334a70131f133b5"}[e]+".js"}(e);var d=new Error;c=function(r){o.onerror=o.onload=null,clearTimeout(b);var a=n[e];if(0!==a){if(a){var t=r&&("load"===r.type?"missing":r.type),c=r&&r.target&&r.target.src;d.message="Loading chunk "+e+" failed.\n("+t+": "+c+")",d.name="ChunkLoadError",d.type=t,d.request=c,a[1](d)}n[e]=void 0}};var b=setTimeout(function(){c({type:"timeout",target:o})},12e4);o.onerror=o.onload=c,document.head.appendChild(o)}return Promise.all(r)},f.m=e,f.c=t,f.d=function(e,r,a){f.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:a})},f.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.t=function(e,r){if(1&r&&(e=f(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var a=Object.create(null);if(f.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var t in e)f.d(a,t,(function(r){return e[r]}).bind(null,t));return a},f.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return f.d(r,"a",r),r},f.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},f.p="",f.oe=function(e){throw console.error(e),e};var o=window.webpackJsonp=window.webpackJsonp||[],d=o.push.bind(o);o.push=r,o=o.slice();for(var b=0;b<o.length;b++)r(o[b]);var u=d;a()}([]);
@@ -1 +1 @@
1
- !function(e){function r(r){for(var a,f,o=r[0],d=r[1],b=r[2],i=0,l=[];i<o.length;i++)f=o[i],Object.prototype.hasOwnProperty.call(n,f)&&n[f]&&l.push(n[f][0]),n[f]=0;for(a in d)Object.prototype.hasOwnProperty.call(d,a)&&(e[a]=d[a]);for(u&&u(r);l.length;)l.shift()();return c.push.apply(c,b||[]),t()}function t(){for(var e,r=0;r<c.length;r++){for(var t=c[r],a=!0,o=1;o<t.length;o++)0!==n[t[o]]&&(a=!1);a&&(c.splice(r--,1),e=f(f.s=t[0]))}return e}var a={},n={11:0},c=[];function f(r){if(a[r])return a[r].exports;var t=a[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,f),t.l=!0,t.exports}f.e=function(e){var r=[],t=n[e];if(0!==t)if(t)r.push(t[2]);else{var a=new Promise(function(r,a){t=n[e]=[r,a]});r.push(t[2]=a);var c,o=document.createElement("script");o.charset="utf-8",o.timeout=120,f.nc&&o.setAttribute("nonce",f.nc),o.src=function(e){return f.p+""+({3:"common"}[e]||e)+"-es5."+{0:"c7c5a6d51b98cb85b9fc",1:"bb4492eeabe1fe937ada",2:"51eb8544ea9a21f2874c",3:"388805227aa99c527fba",4:"f8ac5475bf103969b2d2",5:"90ea7bd4439d9749e052",6:"5fb726c0555664300974",7:"ba9f789e186a8e3962d3",8:"b901639e2aeff1358c3d",9:"1d75413af5d96b4ff1e5",10:"56da22458086513ba0c7",12:"be58ed0ef449008b932e",13:"6d3a4fd76d46bfa5f200",14:"b6619d7742671d2a37fb",15:"d8855701408b0e1d7a3e",16:"98fa59c2c96d2caac3c3",17:"7f60b56d1fd66d4d5544",18:"d07dd29def7e2574c5b7",19:"e5acb2c1e0e91717efc2",20:"90544c488f1f0900bab4",21:"63ed4e6b242fbc047bd6",22:"1e96ef651f96d51191e2",23:"6d3052555b4fac38f16d",28:"a2bf42f38e4dd771ccea",29:"18b515f07c88753c7eb6",30:"d4d3dc4101400cadf3f3",31:"e3ea815f75c19c217b7d",32:"57553995bff0ae518501",33:"da5ba1e5baa164921198",34:"87acbb95cfb824650157",35:"4ffe6f7a196ed1a87fc7",36:"e3a104020eeec02cb8c4",37:"3b472e6cf303201bbf2c",38:"39dbf43d46cdc94f78c6",39:"e5475ea4fb6ec5c60741",40:"47b2873a8439717af6a7",41:"69f2771002745c066976",42:"b590b92ede890155dcd6",43:"ad1d956bffba561ba64c",44:"3ef2c17996ed5be95ced",45:"3d65d27e0a7085e96356",46:"e4f0a5b127eae13c27c0",47:"c7d45334a70131f133b5"}[e]+".js"}(e);var d=new Error;c=function(r){o.onerror=o.onload=null,clearTimeout(b);var t=n[e];if(0!==t){if(t){var a=r&&("load"===r.type?"missing":r.type),c=r&&r.target&&r.target.src;d.message="Loading chunk "+e+" failed.\n("+a+": "+c+")",d.name="ChunkLoadError",d.type=a,d.request=c,t[1](d)}n[e]=void 0}};var b=setTimeout(function(){c({type:"timeout",target:o})},12e4);o.onerror=o.onload=c,document.head.appendChild(o)}return Promise.all(r)},f.m=e,f.c=a,f.d=function(e,r,t){f.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},f.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.t=function(e,r){if(1&r&&(e=f(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(f.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var a in e)f.d(t,a,(function(r){return e[r]}).bind(null,a));return t},f.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return f.d(r,"a",r),r},f.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},f.p="",f.oe=function(e){throw console.error(e),e};var o=window.webpackJsonp=window.webpackJsonp||[],d=o.push.bind(o);o.push=r,o=o.slice();for(var b=0;b<o.length;b++)r(o[b]);var u=d;t()}([]);
1
+ !function(e){function r(r){for(var t,f,o=r[0],d=r[1],b=r[2],i=0,l=[];i<o.length;i++)f=o[i],Object.prototype.hasOwnProperty.call(n,f)&&n[f]&&l.push(n[f][0]),n[f]=0;for(t in d)Object.prototype.hasOwnProperty.call(d,t)&&(e[t]=d[t]);for(u&&u(r);l.length;)l.shift()();return c.push.apply(c,b||[]),a()}function a(){for(var e,r=0;r<c.length;r++){for(var a=c[r],t=!0,o=1;o<a.length;o++)0!==n[a[o]]&&(t=!1);t&&(c.splice(r--,1),e=f(f.s=a[0]))}return e}var t={},n={11:0},c=[];function f(r){if(t[r])return t[r].exports;var a=t[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,f),a.l=!0,a.exports}f.e=function(e){var r=[],a=n[e];if(0!==a)if(a)r.push(a[2]);else{var t=new Promise(function(r,t){a=n[e]=[r,t]});r.push(a[2]=t);var c,o=document.createElement("script");o.charset="utf-8",o.timeout=120,f.nc&&o.setAttribute("nonce",f.nc),o.src=function(e){return f.p+""+({3:"common"}[e]||e)+"-es5."+{0:"c7c5a6d51b98cb85b9fc",1:"bb4492eeabe1fe937ada",2:"51eb8544ea9a21f2874c",3:"388805227aa99c527fba",4:"f8ac5475bf103969b2d2",5:"90ea7bd4439d9749e052",6:"5fb726c0555664300974",7:"ba9f789e186a8e3962d3",8:"b901639e2aeff1358c3d",9:"1d75413af5d96b4ff1e5",10:"56da22458086513ba0c7",12:"be58ed0ef449008b932e",13:"6d3a4fd76d46bfa5f200",14:"b6619d7742671d2a37fb",15:"d8855701408b0e1d7a3e",16:"98fa59c2c96d2caac3c3",17:"7f60b56d1fd66d4d5544",18:"beb31fe4a4dee3007cb2",19:"e5acb2c1e0e91717efc2",20:"90544c488f1f0900bab4",21:"63ed4e6b242fbc047bd6",22:"1e96ef651f96d51191e2",23:"6d3052555b4fac38f16d",28:"a2bf42f38e4dd771ccea",29:"18b515f07c88753c7eb6",30:"d4d3dc4101400cadf3f3",31:"e3ea815f75c19c217b7d",32:"57553995bff0ae518501",33:"da5ba1e5baa164921198",34:"87acbb95cfb824650157",35:"4ffe6f7a196ed1a87fc7",36:"e3a104020eeec02cb8c4",37:"3b472e6cf303201bbf2c",38:"39dbf43d46cdc94f78c6",39:"e5475ea4fb6ec5c60741",40:"47b2873a8439717af6a7",41:"69f2771002745c066976",42:"b590b92ede890155dcd6",43:"ad1d956bffba561ba64c",44:"3ef2c17996ed5be95ced",45:"3d65d27e0a7085e96356",46:"e4f0a5b127eae13c27c0",47:"c7d45334a70131f133b5"}[e]+".js"}(e);var d=new Error;c=function(r){o.onerror=o.onload=null,clearTimeout(b);var a=n[e];if(0!==a){if(a){var t=r&&("load"===r.type?"missing":r.type),c=r&&r.target&&r.target.src;d.message="Loading chunk "+e+" failed.\n("+t+": "+c+")",d.name="ChunkLoadError",d.type=t,d.request=c,a[1](d)}n[e]=void 0}};var b=setTimeout(function(){c({type:"timeout",target:o})},12e4);o.onerror=o.onload=c,document.head.appendChild(o)}return Promise.all(r)},f.m=e,f.c=t,f.d=function(e,r,a){f.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:a})},f.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.t=function(e,r){if(1&r&&(e=f(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var a=Object.create(null);if(f.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var t in e)f.d(a,t,(function(r){return e[r]}).bind(null,t));return a},f.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return f.d(r,"a",r),r},f.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},f.p="",f.oe=function(e){throw console.error(e),e};var o=window.webpackJsonp=window.webpackJsonp||[],d=o.push.bind(o);o.push=r,o=o.slice();for(var b=0;b<o.length;b++)r(o[b]);var u=d;a()}([]);
@@ -3,4 +3,4 @@
3
3
  /*!*/}@-webkit-keyframes cdk-text-field-autofill-end{
4
4
  /*!*/}@keyframes cdk-text-field-autofill-end{
5
5
  /*!*/}.cdk-text-field-autofill-monitored:-webkit-autofill{-webkit-animation:cdk-text-field-autofill-start 0s 1ms;animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){-webkit-animation:cdk-text-field-autofill-end 0s 1ms;animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{padding:2px 0!important;box-sizing:content-box!important;height:auto!important;overflow:hidden!important}textarea.cdk-textarea-autosize-measuring-firefox{padding:2px 0!important;box-sizing:content-box!important;height:0!important}.mat-focus-indicator,.mat-mdc-focus-indicator{position:relative}.mat-ripple-element{background-color:rgba(0,0,0,.1)}.mat-option{color:#000}.mat-option.mat-active,.mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.mat-option:focus:not(.mat-option-disabled),.mat-option:hover:not(.mat-option-disabled){background:rgba(0,0,0,.04)}.mat-option.mat-active{color:#000}.mat-option.mat-option-disabled{color:rgba(0,0,0,.38)}.mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#2196f3}.mat-accent .mat-option.mat-selected:not(.mat-option-disabled){color:#ff4081}.mat-warn .mat-option.mat-selected:not(.mat-option-disabled){color:#f44336}.mat-optgroup-label{color:rgba(0,0,0,.54)}.mat-optgroup-disabled .mat-optgroup-label{color:rgba(0,0,0,.38)}.mat-pseudo-checkbox{color:rgba(0,0,0,.54)}.mat-pseudo-checkbox:after{color:#fafafa}.mat-pseudo-checkbox-disabled{color:#b0b0b0}.mat-primary .mat-pseudo-checkbox-checked,.mat-primary .mat-pseudo-checkbox-indeterminate{background:#2196f3}.mat-accent .mat-pseudo-checkbox-checked,.mat-accent .mat-pseudo-checkbox-indeterminate,.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox-indeterminate{background:#ff4081}.mat-warn .mat-pseudo-checkbox-checked,.mat-warn .mat-pseudo-checkbox-indeterminate{background:#f44336}.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background:#b0b0b0}.mat-app-background{background-color:#fafafa;color:#000}.mat-elevation-z0{box-shadow:0 0 0 0 rgba(82,63,104,.06),0 0 0 0 rgba(82,63,104,.042),0 0 0 0 rgba(82,63,104,.036)}.mat-elevation-z1{box-shadow:0 2px 1px -1px rgba(82,63,104,.06),0 1px 1px 0 rgba(82,63,104,.042),0 1px 3px 0 rgba(82,63,104,.036)}.mat-elevation-z2{box-shadow:0 3px 1px -2px rgba(82,63,104,.06),0 2px 2px 0 rgba(82,63,104,.042),0 1px 5px 0 rgba(82,63,104,.036)}.mat-elevation-z3{box-shadow:0 3px 3px -2px rgba(82,63,104,.06),0 3px 4px 0 rgba(82,63,104,.042),0 1px 8px 0 rgba(82,63,104,.036)}.mat-elevation-z4{box-shadow:0 2px 4px -1px rgba(82,63,104,.06),0 4px 5px 0 rgba(82,63,104,.042),0 1px 10px 0 rgba(82,63,104,.036)}.mat-elevation-z5{box-shadow:0 3px 5px -1px rgba(82,63,104,.06),0 5px 8px 0 rgba(82,63,104,.042),0 1px 14px 0 rgba(82,63,104,.036)}.mat-elevation-z6{box-shadow:0 3px 5px -1px rgba(82,63,104,.06),0 6px 10px 0 rgba(82,63,104,.042),0 1px 18px 0 rgba(82,63,104,.036)}.mat-elevation-z7{box-shadow:0 4px 5px -2px rgba(82,63,104,.06),0 7px 10px 1px rgba(82,63,104,.042),0 2px 16px 1px rgba(82,63,104,.036)}.mat-elevation-z8{box-shadow:0 5px 5px -3px rgba(82,63,104,.06),0 8px 10px 1px rgba(82,63,104,.042),0 3px 14px 2px rgba(82,63,104,.036)}.mat-elevation-z9{box-shadow:0 5px 6px -3px rgba(82,63,104,.06),0 9px 12px 1px rgba(82,63,104,.042),0 3px 16px 2px rgba(82,63,104,.036)}.mat-elevation-z10{box-shadow:0 6px 6px -3px rgba(82,63,104,.06),0 10px 14px 1px rgba(82,63,104,.042),0 4px 18px 3px rgba(82,63,104,.036)}.mat-elevation-z11{box-shadow:0 6px 7px -4px rgba(82,63,104,.06),0 11px 15px 1px rgba(82,63,104,.042),0 4px 20px 3px rgba(82,63,104,.036)}.mat-elevation-z12{box-shadow:0 7px 8px -4px rgba(82,63,104,.06),0 12px 17px 2px rgba(82,63,104,.042),0 5px 22px 4px rgba(82,63,104,.036)}.mat-elevation-z13{box-shadow:0 7px 8px -4px rgba(82,63,104,.06),0 13px 19px 2px rgba(82,63,104,.042),0 5px 24px 4px rgba(82,63,104,.036)}.mat-elevation-z14{box-shadow:0 7px 9px -4px rgba(82,63,104,.06),0 14px 21px 2px rgba(82,63,104,.042),0 5px 26px 4px rgba(82,63,104,.036)}.mat-elevation-z15{box-shadow:0 8px 9px -5px rgba(82,63,104,.06),0 15px 22px 2px rgba(82,63,104,.042),0 6px 28px 5px rgba(82,63,104,.036)}.mat-elevation-z16{box-shadow:0 8px 10px -5px rgba(82,63,104,.06),0 16px 24px 2px rgba(82,63,104,.042),0 6px 30px 5px rgba(82,63,104,.036)}.mat-elevation-z17{box-shadow:0 8px 11px -5px rgba(82,63,104,.06),0 17px 26px 2px rgba(82,63,104,.042),0 6px 32px 5px rgba(82,63,104,.036)}.mat-elevation-z18{box-shadow:0 9px 11px -5px rgba(82,63,104,.06),0 18px 28px 2px rgba(82,63,104,.042),0 7px 34px 6px rgba(82,63,104,.036)}.mat-elevation-z19{box-shadow:0 9px 12px -6px rgba(82,63,104,.06),0 19px 29px 2px rgba(82,63,104,.042),0 7px 36px 6px rgba(82,63,104,.036)}.mat-elevation-z20{box-shadow:0 10px 13px -6px rgba(82,63,104,.06),0 20px 31px 3px rgba(82,63,104,.042),0 8px 38px 7px rgba(82,63,104,.036)}.mat-elevation-z21{box-shadow:0 10px 13px -6px rgba(82,63,104,.06),0 21px 33px 3px rgba(82,63,104,.042),0 8px 40px 7px rgba(82,63,104,.036)}.mat-elevation-z22{box-shadow:0 10px 14px -6px rgba(82,63,104,.06),0 22px 35px 3px rgba(82,63,104,.042),0 8px 42px 7px rgba(82,63,104,.036)}.mat-elevation-z23{box-shadow:0 11px 14px -7px rgba(82,63,104,.06),0 23px 36px 3px rgba(82,63,104,.042),0 9px 44px 8px rgba(82,63,104,.036)}.mat-elevation-z24{box-shadow:0 11px 15px -7px rgba(82,63,104,.06),0 24px 38px 3px rgba(82,63,104,.042),0 9px 46px 8px rgba(82,63,104,.036)}.mat-theme-loaded-marker{display:none}.mat-autocomplete-panel{background:#fff;color:#000}.mat-autocomplete-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px rgba(82,63,104,.06),0 4px 5px 0 rgba(82,63,104,.042),0 1px 10px 0 rgba(82,63,104,.036)}.mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover){background:#fff}.mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled){color:#000}.mat-badge-content{color:#fff;background:#2196f3}.cdk-high-contrast-active .mat-badge-content{outline:1px solid;border-radius:0}.mat-badge-accent .mat-badge-content{background:#ff4081;color:#fff}.mat-badge-warn .mat-badge-content{color:#fff;background:#f44336}.mat-badge{position:relative}.mat-badge-hidden .mat-badge-content{display:none}.mat-badge-disabled .mat-badge-content{background:#b9b9b9;color:rgba(0,0,0,.38)}.mat-badge-content{position:absolute;text-align:center;display:inline-block;border-radius:50%;transition:transform .2s ease-in-out;transform:scale(.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}.mat-badge-content._mat-animation-noopable,.ng-animate-disabled .mat-badge-content{transition:none}.mat-badge-content.mat-badge-active{transform:none}.mat-badge-small .mat-badge-content{width:16px;height:16px;line-height:16px}.mat-badge-small.mat-badge-above .mat-badge-content{top:-8px}.mat-badge-small.mat-badge-below .mat-badge-content{bottom:-8px}.mat-badge-small.mat-badge-before .mat-badge-content{left:-16px}[dir=rtl] .mat-badge-small.mat-badge-before .mat-badge-content{left:auto;right:-16px}.mat-badge-small.mat-badge-after .mat-badge-content{right:-16px}[dir=rtl] .mat-badge-small.mat-badge-after .mat-badge-content{right:auto;left:-16px}.mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-8px}[dir=rtl] .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-8px}.mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-8px}[dir=rtl] .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-8px}.mat-badge-medium .mat-badge-content{width:22px;height:22px;line-height:22px}.mat-badge-medium.mat-badge-above .mat-badge-content{top:-11px}.mat-badge-medium.mat-badge-below .mat-badge-content{bottom:-11px}.mat-badge-medium.mat-badge-before .mat-badge-content{left:-22px}[dir=rtl] .mat-badge-medium.mat-badge-before .mat-badge-content{left:auto;right:-22px}.mat-badge-medium.mat-badge-after .mat-badge-content{right:-22px}[dir=rtl] .mat-badge-medium.mat-badge-after .mat-badge-content{right:auto;left:-22px}.mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-11px}[dir=rtl] .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-11px}.mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-11px}[dir=rtl] .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-11px}.mat-badge-large .mat-badge-content{width:28px;height:28px;line-height:28px}.mat-badge-large.mat-badge-above .mat-badge-content{top:-14px}.mat-badge-large.mat-badge-below .mat-badge-content{bottom:-14px}.mat-badge-large.mat-badge-before .mat-badge-content{left:-28px}[dir=rtl] .mat-badge-large.mat-badge-before .mat-badge-content{left:auto;right:-28px}.mat-badge-large.mat-badge-after .mat-badge-content{right:-28px}[dir=rtl] .mat-badge-large.mat-badge-after .mat-badge-content{right:auto;left:-28px}.mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-14px}[dir=rtl] .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-14px}.mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-14px}[dir=rtl] .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-14px}.mat-bottom-sheet-container{box-shadow:0 8px 10px -5px rgba(82,63,104,.06),0 16px 24px 2px rgba(82,63,104,.042),0 6px 30px 5px rgba(82,63,104,.036);background:#fff;color:#000}.mat-button,.mat-icon-button,.mat-stroked-button{color:inherit;background:transparent}.mat-button.mat-primary,.mat-icon-button.mat-primary,.mat-stroked-button.mat-primary{color:#2196f3}.mat-button.mat-accent,.mat-icon-button.mat-accent,.mat-stroked-button.mat-accent{color:#ff4081}.mat-button.mat-warn,.mat-icon-button.mat-warn,.mat-stroked-button.mat-warn{color:#f44336}.mat-button.mat-accent.mat-button-disabled,.mat-button.mat-button-disabled.mat-button-disabled,.mat-button.mat-primary.mat-button-disabled,.mat-button.mat-warn.mat-button-disabled,.mat-icon-button.mat-accent.mat-button-disabled,.mat-icon-button.mat-button-disabled.mat-button-disabled,.mat-icon-button.mat-primary.mat-button-disabled,.mat-icon-button.mat-warn.mat-button-disabled,.mat-stroked-button.mat-accent.mat-button-disabled,.mat-stroked-button.mat-button-disabled.mat-button-disabled,.mat-stroked-button.mat-primary.mat-button-disabled,.mat-stroked-button.mat-warn.mat-button-disabled{color:rgba(0,0,0,.26)}.mat-button.mat-primary .mat-button-focus-overlay,.mat-icon-button.mat-primary .mat-button-focus-overlay,.mat-stroked-button.mat-primary .mat-button-focus-overlay{background-color:#2196f3}.mat-button.mat-accent .mat-button-focus-overlay,.mat-icon-button.mat-accent .mat-button-focus-overlay,.mat-stroked-button.mat-accent .mat-button-focus-overlay{background-color:#ff4081}.mat-button.mat-warn .mat-button-focus-overlay,.mat-icon-button.mat-warn .mat-button-focus-overlay,.mat-stroked-button.mat-warn .mat-button-focus-overlay{background-color:#f44336}.mat-button.mat-button-disabled .mat-button-focus-overlay,.mat-icon-button.mat-button-disabled .mat-button-focus-overlay,.mat-stroked-button.mat-button-disabled .mat-button-focus-overlay{background-color:transparent}.mat-button .mat-ripple-element,.mat-icon-button .mat-ripple-element,.mat-stroked-button .mat-ripple-element{opacity:.1;background-color:currentColor}.mat-button-focus-overlay{background:#000}.mat-stroked-button:not(.mat-button-disabled){border-color:rgba(82,63,105,.06)}.mat-fab,.mat-flat-button,.mat-mini-fab,.mat-raised-button{color:#000;background-color:#fff}.mat-fab.mat-accent,.mat-fab.mat-primary,.mat-fab.mat-warn,.mat-flat-button.mat-accent,.mat-flat-button.mat-primary,.mat-flat-button.mat-warn,.mat-mini-fab.mat-accent,.mat-mini-fab.mat-primary,.mat-mini-fab.mat-warn,.mat-raised-button.mat-accent,.mat-raised-button.mat-primary,.mat-raised-button.mat-warn{color:#fff}.mat-fab.mat-accent.mat-button-disabled,.mat-fab.mat-button-disabled.mat-button-disabled,.mat-fab.mat-primary.mat-button-disabled,.mat-fab.mat-warn.mat-button-disabled,.mat-flat-button.mat-accent.mat-button-disabled,.mat-flat-button.mat-button-disabled.mat-button-disabled,.mat-flat-button.mat-primary.mat-button-disabled,.mat-flat-button.mat-warn.mat-button-disabled,.mat-mini-fab.mat-accent.mat-button-disabled,.mat-mini-fab.mat-button-disabled.mat-button-disabled,.mat-mini-fab.mat-primary.mat-button-disabled,.mat-mini-fab.mat-warn.mat-button-disabled,.mat-raised-button.mat-accent.mat-button-disabled,.mat-raised-button.mat-button-disabled.mat-button-disabled,.mat-raised-button.mat-primary.mat-button-disabled,.mat-raised-button.mat-warn.mat-button-disabled{color:rgba(0,0,0,.26)}.mat-fab.mat-primary,.mat-flat-button.mat-primary,.mat-mini-fab.mat-primary,.mat-raised-button.mat-primary{background-color:#2196f3}.mat-fab.mat-accent,.mat-flat-button.mat-accent,.mat-mini-fab.mat-accent,.mat-raised-button.mat-accent{background-color:#ff4081}.mat-fab.mat-warn,.mat-flat-button.mat-warn,.mat-mini-fab.mat-warn,.mat-raised-button.mat-warn{background-color:#f44336}.mat-fab.mat-accent.mat-button-disabled,.mat-fab.mat-button-disabled.mat-button-disabled,.mat-fab.mat-primary.mat-button-disabled,.mat-fab.mat-warn.mat-button-disabled,.mat-flat-button.mat-accent.mat-button-disabled,.mat-flat-button.mat-button-disabled.mat-button-disabled,.mat-flat-button.mat-primary.mat-button-disabled,.mat-flat-button.mat-warn.mat-button-disabled,.mat-mini-fab.mat-accent.mat-button-disabled,.mat-mini-fab.mat-button-disabled.mat-button-disabled,.mat-mini-fab.mat-primary.mat-button-disabled,.mat-mini-fab.mat-warn.mat-button-disabled,.mat-raised-button.mat-accent.mat-button-disabled,.mat-raised-button.mat-button-disabled.mat-button-disabled,.mat-raised-button.mat-primary.mat-button-disabled,.mat-raised-button.mat-warn.mat-button-disabled{background-color:rgba(0,0,0,.12)}.mat-fab.mat-accent .mat-ripple-element,.mat-fab.mat-primary .mat-ripple-element,.mat-fab.mat-warn .mat-ripple-element,.mat-flat-button.mat-accent .mat-ripple-element,.mat-flat-button.mat-primary .mat-ripple-element,.mat-flat-button.mat-warn .mat-ripple-element,.mat-mini-fab.mat-accent .mat-ripple-element,.mat-mini-fab.mat-primary .mat-ripple-element,.mat-mini-fab.mat-warn .mat-ripple-element,.mat-raised-button.mat-accent .mat-ripple-element,.mat-raised-button.mat-primary .mat-ripple-element,.mat-raised-button.mat-warn .mat-ripple-element{background-color:hsla(0,0%,100%,.1)}.mat-flat-button:not([class*=mat-elevation-z]),.mat-stroked-button:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 rgba(82,63,104,.06),0 0 0 0 rgba(82,63,104,.042),0 0 0 0 rgba(82,63,104,.036)}.mat-raised-button:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px rgba(82,63,104,.06),0 2px 2px 0 rgba(82,63,104,.042),0 1px 5px 0 rgba(82,63,104,.036)}.mat-raised-button:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 5px 5px -3px rgba(82,63,104,.06),0 8px 10px 1px rgba(82,63,104,.042),0 3px 14px 2px rgba(82,63,104,.036)}.mat-raised-button.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 rgba(82,63,104,.06),0 0 0 0 rgba(82,63,104,.042),0 0 0 0 rgba(82,63,104,.036)}.mat-fab:not([class*=mat-elevation-z]),.mat-mini-fab:not([class*=mat-elevation-z]){box-shadow:0 3px 5px -1px rgba(82,63,104,.06),0 6px 10px 0 rgba(82,63,104,.042),0 1px 18px 0 rgba(82,63,104,.036)}.mat-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]),.mat-mini-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 7px 8px -4px rgba(82,63,104,.06),0 12px 17px 2px rgba(82,63,104,.042),0 5px 22px 4px rgba(82,63,104,.036)}.mat-fab.mat-button-disabled:not([class*=mat-elevation-z]),.mat-mini-fab.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 rgba(82,63,104,.06),0 0 0 0 rgba(82,63,104,.042),0 0 0 0 rgba(82,63,104,.036)}.mat-button-toggle-group,.mat-button-toggle-standalone{box-shadow:0 3px 1px -2px rgba(82,63,104,.06),0 2px 2px 0 rgba(82,63,104,.042),0 1px 5px 0 rgba(82,63,104,.036)}.mat-button-toggle-group-appearance-standard,.mat-button-toggle-standalone.mat-button-toggle-appearance-standard{box-shadow:none}.mat-button-toggle{color:rgba(0,0,0,.38)}.mat-button-toggle .mat-button-toggle-focus-overlay{background-color:rgba(0,0,0,.12)}.mat-button-toggle-appearance-standard{color:#000;background:#fff}.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{background-color:#000}.mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:1px solid rgba(82,63,105,.06)}[dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:1px solid rgba(82,63,105,.06)}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:none;border-top:1px solid rgba(82,63,105,.06)}.mat-button-toggle-checked{background-color:#e0e0e0;color:rgba(0,0,0,.54)}.mat-button-toggle-checked.mat-button-toggle-appearance-standard{color:#000}.mat-button-toggle-disabled{color:rgba(0,0,0,.26);background-color:#eee}.mat-button-toggle-disabled.mat-button-toggle-appearance-standard{background:#fff}.mat-button-toggle-disabled.mat-button-toggle-checked{background-color:#bdbdbd}.mat-button-toggle-group-appearance-standard,.mat-button-toggle-standalone.mat-button-toggle-appearance-standard{border:1px solid rgba(82,63,105,.06)}.mat-card{background:#fff;color:#000}.mat-card:not([class*=mat-elevation-z]){box-shadow:0 2px 1px -1px rgba(82,63,104,.06),0 1px 1px 0 rgba(82,63,104,.042),0 1px 3px 0 rgba(82,63,104,.036)}.mat-card.mat-card-flat:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 rgba(82,63,104,.06),0 0 0 0 rgba(82,63,104,.042),0 0 0 0 rgba(82,63,104,.036)}.mat-card-subtitle{color:rgba(0,0,0,.54)}.mat-checkbox-frame{border-color:rgba(0,0,0,.54)}.mat-checkbox-checkmark{fill:#fafafa}.mat-checkbox-checkmark-path{stroke:#fafafa!important}.mat-checkbox-mixedmark{background-color:#fafafa}.mat-checkbox-checked.mat-primary .mat-checkbox-background,.mat-checkbox-indeterminate.mat-primary .mat-checkbox-background{background-color:#2196f3}.mat-checkbox-checked.mat-accent .mat-checkbox-background,.mat-checkbox-indeterminate.mat-accent .mat-checkbox-background{background-color:#ff4081}.mat-checkbox-checked.mat-warn .mat-checkbox-background,.mat-checkbox-indeterminate.mat-warn .mat-checkbox-background{background-color:#f44336}.mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background,.mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background{background-color:#b0b0b0}.mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame{border-color:#b0b0b0}.mat-checkbox-disabled .mat-checkbox-label{color:rgba(0,0,0,.54)}.mat-checkbox .mat-ripple-element{background-color:#000}.mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,.mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element{background:#2196f3}.mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,.mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element{background:#ff4081}.mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,.mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element{background:#f44336}.mat-chip.mat-standard-chip{background-color:#e0e0e0;color:#000}.mat-chip.mat-standard-chip .mat-chip-remove{color:#000;opacity:.4}.mat-chip.mat-standard-chip:not(.mat-chip-disabled):active{box-shadow:0 3px 3px -2px rgba(82,63,104,.06),0 3px 4px 0 rgba(82,63,104,.042),0 1px 8px 0 rgba(82,63,104,.036)}.mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover{opacity:.54}.mat-chip.mat-standard-chip.mat-chip-disabled{opacity:.4}.mat-chip.mat-standard-chip:after{background:#000}.mat-chip.mat-standard-chip.mat-chip-selected.mat-primary{background-color:#2196f3;color:#fff}.mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove{color:#fff;opacity:.4}.mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element{background-color:hsla(0,0%,100%,.1)}.mat-chip.mat-standard-chip.mat-chip-selected.mat-warn{background-color:#f44336;color:#fff}.mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove{color:#fff;opacity:.4}.mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element{background-color:hsla(0,0%,100%,.1)}.mat-chip.mat-standard-chip.mat-chip-selected.mat-accent{background-color:#ff4081;color:#fff}.mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove{color:#fff;opacity:.4}.mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element{background-color:hsla(0,0%,100%,.1)}.mat-table{background:#fff}.mat-table-sticky,.mat-table tbody,.mat-table tfoot,.mat-table thead,[mat-footer-row],[mat-header-row],[mat-row],mat-footer-row,mat-header-row,mat-row{background:inherit}mat-footer-row,mat-header-row,mat-row,td.mat-cell,td.mat-footer-cell,th.mat-header-cell{border-bottom-color:rgba(82,63,105,.06)}.mat-header-cell{color:rgba(0,0,0,.54)}.mat-cell,.mat-footer-cell{color:#000}.mat-calendar-arrow{border-top-color:rgba(0,0,0,.54)}.mat-datepicker-content .mat-calendar-next-button,.mat-datepicker-content .mat-calendar-previous-button,.mat-datepicker-toggle{color:rgba(0,0,0,.54)}.mat-calendar-table-header{color:rgba(0,0,0,.38)}.mat-calendar-table-header-divider:after{background:rgba(82,63,105,.06)}.mat-calendar-body-label{color:rgba(0,0,0,.54)}.mat-calendar-body-cell-content,.mat-date-range-input-separator{color:#000;border-color:transparent}.mat-calendar-body-disabled>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.mat-form-field-disabled .mat-date-range-input-separator{color:rgba(0,0,0,.38)}.mat-calendar-body-in-preview{color:rgba(82,63,105,.12)}.mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){border-color:rgba(0,0,0,.38)}.mat-calendar-body-disabled>.mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){border-color:rgba(0,0,0,.18)}.mat-calendar-body-in-range:before{background:#2196f3}.mat-calendar-body-comparison-identical,.mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.mat-calendar-body-comparison-bridge-start:before,[dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(90deg,#2196f3 50%,rgba(249,171,0,.2) 0)}.mat-calendar-body-comparison-bridge-end:before,[dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(270deg,#2196f3 50%,rgba(249,171,0,.2) 0)}.mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after,.mat-calendar-body-in-range>.mat-calendar-body-comparison-identical{background:#a8dab5}.mat-calendar-body-comparison-identical.mat-calendar-body-selected,.mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.mat-calendar-body-selected{background-color:#2196f3;color:#fff}.mat-calendar-body-disabled>.mat-calendar-body-selected{opacity:.2}.mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#2196f3}.mat-datepicker-content{box-shadow:0 2px 4px -1px rgba(82,63,104,.06),0 4px 5px 0 rgba(82,63,104,.042),0 1px 10px 0 rgba(82,63,104,.036);background-color:#fff;color:#000}.mat-datepicker-content.mat-accent .mat-calendar-body-in-range:before{background:rgba(255,64,129,.2)}.mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical,.mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-start:before,.mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(90deg,rgba(255,64,129,.2) 50%,rgba(249,171,0,.2) 0)}.mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-end:before,.mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(270deg,rgba(255,64,129,.2) 50%,rgba(249,171,0,.2) 0)}.mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after,.mat-datepicker-content.mat-accent .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical{background:#a8dab5}.mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.mat-datepicker-content.mat-accent .mat-calendar-body-selected{background-color:#ff4081;color:#fff}.mat-datepicker-content.mat-accent .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:rgba(255,64,129,.4)}.mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.mat-datepicker-content.mat-accent .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.mat-datepicker-content.mat-accent .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.mat-datepicker-content.mat-accent .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:rgba(255,64,129,.3)}.mat-datepicker-content.mat-warn .mat-calendar-body-in-range:before{background:rgba(244,67,54,.2)}.mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical,.mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-start:before,.mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(90deg,rgba(244,67,54,.2) 50%,rgba(249,171,0,.2) 0)}.mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-end:before,.mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(270deg,rgba(244,67,54,.2) 50%,rgba(249,171,0,.2) 0)}.mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after,.mat-datepicker-content.mat-warn .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical{background:#a8dab5}.mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.mat-datepicker-content.mat-warn .mat-calendar-body-selected{background-color:#f44336;color:#fff}.mat-datepicker-content.mat-warn .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:rgba(244,67,54,.4)}.mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.mat-datepicker-content.mat-warn .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.mat-datepicker-content.mat-warn .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.mat-datepicker-content.mat-warn .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:rgba(244,67,54,.3)}.mat-datepicker-content-touch{box-shadow:0 0 0 0 rgba(82,63,104,.06),0 0 0 0 rgba(82,63,104,.042),0 0 0 0 rgba(82,63,104,.036)}.mat-datepicker-toggle-active{color:#2196f3}.mat-datepicker-toggle-active.mat-accent{color:#ff4081}.mat-datepicker-toggle-active.mat-warn{color:#f44336}.mat-date-range-input-inner[disabled]{color:rgba(0,0,0,.38)}.mat-dialog-container{box-shadow:0 11px 15px -7px rgba(82,63,104,.06),0 24px 38px 3px rgba(82,63,104,.042),0 9px 46px 8px rgba(82,63,104,.036);background:#fff;color:#000}.mat-divider{border-top-color:rgba(82,63,105,.06)}.mat-divider-vertical{border-right-color:rgba(82,63,105,.06)}.mat-expansion-panel{background:#fff;color:#000}.mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px rgba(82,63,104,.06),0 2px 2px 0 rgba(82,63,104,.042),0 1px 5px 0 rgba(82,63,104,.036)}.mat-action-row{border-top-color:rgba(82,63,105,.06)}.mat-expansion-panel .mat-expansion-panel-header.cdk-keyboard-focused:not([aria-disabled=true]),.mat-expansion-panel .mat-expansion-panel-header.cdk-program-focused:not([aria-disabled=true]),.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:hover:not([aria-disabled=true]){background:rgba(0,0,0,.04)}@media (hover:none){.mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover{background:#fff}}.mat-expansion-panel-header-title{color:#000}.mat-expansion-indicator:after,.mat-expansion-panel-header-description{color:rgba(0,0,0,.54)}.mat-expansion-panel-header[aria-disabled=true]{color:rgba(0,0,0,.26)}.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description,.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title{color:inherit}.mat-form-field-label,.mat-hint{color:rgba(0,0,0,.6)}.mat-form-field.mat-focused .mat-form-field-label{color:#2196f3}.mat-form-field.mat-focused .mat-form-field-label.mat-accent{color:#ff4081}.mat-form-field.mat-focused .mat-form-field-label.mat-warn{color:#f44336}.mat-focused .mat-form-field-required-marker{color:#ff4081}.mat-form-field-ripple{background-color:rgba(82,63,105,.87)}.mat-form-field.mat-focused .mat-form-field-ripple{background-color:#2196f3}.mat-form-field.mat-focused .mat-form-field-ripple.mat-accent{background-color:#ff4081}.mat-form-field.mat-focused .mat-form-field-ripple.mat-warn{background-color:#f44336}.mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix:after{color:#2196f3}.mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix:after{color:#ff4081}.mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix:after,.mat-form-field.mat-form-field-invalid .mat-form-field-label,.mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,.mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker{color:#f44336}.mat-form-field.mat-form-field-invalid .mat-form-field-ripple,.mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent{background-color:#f44336}.mat-error{color:#f44336}.mat-form-field-appearance-legacy .mat-form-field-label,.mat-form-field-appearance-legacy .mat-hint{color:rgba(0,0,0,.54)}.mat-form-field-appearance-legacy .mat-form-field-underline{background-color:rgba(82,63,105,.42)}.mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(90deg,rgba(82,63,105,.42) 0,rgba(82,63,105,.42) 33%,transparent 0);background-size:4px 100%;background-repeat:repeat-x}.mat-form-field-appearance-standard .mat-form-field-underline{background-color:rgba(82,63,105,.42)}.mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(90deg,rgba(82,63,105,.42) 0,rgba(82,63,105,.42) 33%,transparent 0);background-size:4px 100%;background-repeat:repeat-x}.mat-form-field-appearance-fill .mat-form-field-flex{background-color:rgba(0,0,0,.04)}.mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex{background-color:rgba(0,0,0,.02)}.mat-form-field-appearance-fill .mat-form-field-underline:before{background-color:rgba(82,63,105,.42)}.mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-label{color:rgba(0,0,0,.38)}.mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline:before{background-color:transparent}.mat-form-field-appearance-outline .mat-form-field-outline{color:rgba(82,63,105,.12)}.mat-form-field-appearance-outline .mat-form-field-outline-thick{color:rgba(82,63,105,.87)}.mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick{color:#2196f3}.mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick{color:#ff4081}.mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick,.mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick{color:#f44336}.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-label{color:rgba(0,0,0,.38)}.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{color:rgba(82,63,105,.06)}.mat-icon.mat-primary{color:#2196f3}.mat-icon.mat-accent{color:#ff4081}.mat-icon.mat-warn{color:#f44336}.mat-form-field-type-mat-native-select .mat-form-field-infix:after{color:rgba(0,0,0,.54)}.mat-form-field-type-mat-native-select.mat-form-field-disabled .mat-form-field-infix:after,.mat-input-element:disabled{color:rgba(0,0,0,.38)}.mat-input-element{caret-color:#2196f3}.mat-input-element::placeholder{color:rgba(0,0,0,.42)}.mat-input-element::-moz-placeholder{color:rgba(0,0,0,.42)}.mat-input-element::-webkit-input-placeholder{color:rgba(0,0,0,.42)}.mat-input-element:-ms-input-placeholder{color:rgba(0,0,0,.42)}.mat-form-field.mat-accent .mat-input-element{caret-color:#ff4081}.mat-form-field-invalid .mat-input-element,.mat-form-field.mat-warn .mat-input-element{caret-color:#f44336}.mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix:after{color:#f44336}.mat-list-base .mat-list-item,.mat-list-base .mat-list-option{color:#000}.mat-list-base .mat-subheader{color:rgba(0,0,0,.54)}.mat-list-item-disabled{background-color:#eee}.mat-action-list .mat-list-item:focus,.mat-action-list .mat-list-item:hover,.mat-list-option:focus,.mat-list-option:hover,.mat-nav-list .mat-list-item:focus,.mat-nav-list .mat-list-item:hover{background:rgba(0,0,0,.04)}.mat-list-single-selected-option,.mat-list-single-selected-option:focus,.mat-list-single-selected-option:hover{background:rgba(0,0,0,.12)}.mat-menu-panel{background:#fff}.mat-menu-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px rgba(82,63,104,.06),0 4px 5px 0 rgba(82,63,104,.042),0 1px 10px 0 rgba(82,63,104,.036)}.mat-menu-item{background:transparent;color:#000}.mat-menu-item[disabled],.mat-menu-item[disabled] .mat-icon-no-color,.mat-menu-item[disabled]:after{color:rgba(0,0,0,.38)}.mat-menu-item-submenu-trigger:after,.mat-menu-item .mat-icon-no-color{color:rgba(0,0,0,.54)}.mat-menu-item-highlighted:not([disabled]),.mat-menu-item.cdk-keyboard-focused:not([disabled]),.mat-menu-item.cdk-program-focused:not([disabled]),.mat-menu-item:hover:not([disabled]){background:rgba(0,0,0,.04)}.mat-paginator{background:#fff}.mat-paginator,.mat-paginator-page-size .mat-select-trigger{color:rgba(0,0,0,.54)}.mat-paginator-decrement,.mat-paginator-increment{border-top:2px solid rgba(0,0,0,.54);border-right:2px solid rgba(0,0,0,.54)}.mat-paginator-first,.mat-paginator-last{border-top:2px solid rgba(0,0,0,.54)}.mat-icon-button[disabled] .mat-paginator-decrement,.mat-icon-button[disabled] .mat-paginator-first,.mat-icon-button[disabled] .mat-paginator-increment,.mat-icon-button[disabled] .mat-paginator-last{border-color:rgba(0,0,0,.38)}.mat-progress-bar-background{fill:#bbdefb}.mat-progress-bar-buffer{background-color:#bbdefb}.mat-progress-bar-fill:after{background-color:#2196f3}.mat-progress-bar.mat-accent .mat-progress-bar-background{fill:#ff80ab}.mat-progress-bar.mat-accent .mat-progress-bar-buffer{background-color:#ff80ab}.mat-progress-bar.mat-accent .mat-progress-bar-fill:after{background-color:#ff4081}.mat-progress-bar.mat-warn .mat-progress-bar-background{fill:#ffcdd2}.mat-progress-bar.mat-warn .mat-progress-bar-buffer{background-color:#ffcdd2}.mat-progress-bar.mat-warn .mat-progress-bar-fill:after{background-color:#f44336}.mat-progress-spinner circle,.mat-spinner circle{stroke:#2196f3}.mat-progress-spinner.mat-accent circle,.mat-spinner.mat-accent circle{stroke:#ff4081}.mat-progress-spinner.mat-warn circle,.mat-spinner.mat-warn circle{stroke:#f44336}.mat-radio-outer-circle{border-color:rgba(0,0,0,.54)}.mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle{border-color:#2196f3}.mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple,.mat-radio-button.mat-primary .mat-radio-inner-circle,.mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.mat-radio-button.mat-primary:active .mat-radio-persistent-ripple{background-color:#2196f3}.mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle{border-color:#ff4081}.mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple,.mat-radio-button.mat-accent .mat-radio-inner-circle,.mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.mat-radio-button.mat-accent:active .mat-radio-persistent-ripple{background-color:#ff4081}.mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle{border-color:#f44336}.mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple,.mat-radio-button.mat-warn .mat-radio-inner-circle,.mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.mat-radio-button.mat-warn:active .mat-radio-persistent-ripple{background-color:#f44336}.mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle,.mat-radio-button.mat-radio-disabled .mat-radio-outer-circle{border-color:rgba(0,0,0,.38)}.mat-radio-button.mat-radio-disabled .mat-radio-inner-circle,.mat-radio-button.mat-radio-disabled .mat-radio-ripple .mat-ripple-element{background-color:rgba(0,0,0,.38)}.mat-radio-button.mat-radio-disabled .mat-radio-label-content{color:rgba(0,0,0,.38)}.mat-radio-button .mat-ripple-element{background-color:#000}.mat-select-value{color:#000}.mat-select-placeholder{color:rgba(0,0,0,.42)}.mat-select-disabled .mat-select-value{color:rgba(0,0,0,.38)}.mat-select-arrow{color:rgba(0,0,0,.54)}.mat-select-panel{background:#fff}.mat-select-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px rgba(82,63,104,.06),0 4px 5px 0 rgba(82,63,104,.042),0 1px 10px 0 rgba(82,63,104,.036)}.mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:rgba(0,0,0,.12)}.mat-form-field.mat-focused.mat-primary .mat-select-arrow{color:#2196f3}.mat-form-field.mat-focused.mat-accent .mat-select-arrow{color:#ff4081}.mat-form-field.mat-focused.mat-warn .mat-select-arrow,.mat-form-field .mat-select.mat-select-invalid .mat-select-arrow{color:#f44336}.mat-form-field .mat-select.mat-select-disabled .mat-select-arrow{color:rgba(0,0,0,.38)}.mat-drawer-container{background-color:#fafafa;color:#000}.mat-drawer{color:#000}.mat-drawer,.mat-drawer.mat-drawer-push{background-color:#fff}.mat-drawer:not(.mat-drawer-side){box-shadow:0 8px 10px -5px rgba(82,63,104,.06),0 16px 24px 2px rgba(82,63,104,.042),0 6px 30px 5px rgba(82,63,104,.036)}.mat-drawer-side{border-right:1px solid rgba(82,63,105,.06)}.mat-drawer-side.mat-drawer-end,[dir=rtl] .mat-drawer-side{border-left:1px solid rgba(82,63,105,.06);border-right:none}[dir=rtl] .mat-drawer-side.mat-drawer-end{border-left:none;border-right:1px solid rgba(82,63,105,.06)}.mat-drawer-backdrop.mat-drawer-shown{background-color:rgba(0,0,0,.6)}.mat-slide-toggle.mat-checked .mat-slide-toggle-thumb{background-color:#ff4081}.mat-slide-toggle.mat-checked .mat-slide-toggle-bar{background-color:rgba(255,64,129,.54)}.mat-slide-toggle.mat-checked .mat-ripple-element{background-color:#ff4081}.mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element,.mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar,.mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb{background-color:#2196f3}.mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb{background-color:#f44336}.mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar{background-color:rgba(244,67,54,.54)}.mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element{background-color:#f44336}.mat-slide-toggle:not(.mat-checked) .mat-ripple-element{background-color:#000}.mat-slide-toggle-thumb{box-shadow:0 2px 1px -1px rgba(82,63,104,.06),0 1px 1px 0 rgba(82,63,104,.042),0 1px 3px 0 rgba(82,63,104,.036);background-color:#fafafa}.mat-slide-toggle-bar{background-color:rgba(0,0,0,.38)}.mat-slider-track-background{background-color:rgba(0,0,0,.26)}.mat-primary .mat-slider-thumb,.mat-primary .mat-slider-thumb-label,.mat-primary .mat-slider-track-fill{background-color:#2196f3}.mat-primary .mat-slider-thumb-label-text{color:#fff}.mat-primary .mat-slider-focus-ring{background-color:#2196f3;opacity:.2}.mat-accent .mat-slider-thumb,.mat-accent .mat-slider-thumb-label,.mat-accent .mat-slider-track-fill{background-color:#ff4081}.mat-accent .mat-slider-thumb-label-text{color:#fff}.mat-accent .mat-slider-focus-ring{background-color:rgba(255,64,129,.2)}.mat-warn .mat-slider-thumb,.mat-warn .mat-slider-thumb-label,.mat-warn .mat-slider-track-fill{background-color:#f44336}.mat-warn .mat-slider-thumb-label-text{color:#fff}.mat-warn .mat-slider-focus-ring{background-color:rgba(244,67,54,.2)}.cdk-focused .mat-slider-track-background,.mat-slider:hover .mat-slider-track-background{background-color:rgba(0,0,0,.38)}.mat-slider-disabled .mat-slider-thumb,.mat-slider-disabled .mat-slider-track-background,.mat-slider-disabled .mat-slider-track-fill,.mat-slider-disabled:hover .mat-slider-track-background{background-color:rgba(0,0,0,.26)}.mat-slider-min-value .mat-slider-focus-ring{background-color:rgba(0,0,0,.12)}.mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,.mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label{background-color:rgba(0,0,0,.87)}.mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,.mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label{background-color:rgba(0,0,0,.26)}.mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb{border-color:rgba(0,0,0,.26);background-color:transparent}.mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb,.mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb{border-color:rgba(0,0,0,.38)}.mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb,.mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb{border-color:rgba(0,0,0,.26)}.mat-slider-has-ticks .mat-slider-wrapper:after{border-color:rgba(0,0,0,.7)}.mat-slider-horizontal .mat-slider-ticks{background-image:repeating-linear-gradient(90deg,rgba(0,0,0,.7),rgba(0,0,0,.7) 2px,transparent 0,transparent);background-image:-moz-repeating-linear-gradient(.0001deg,rgba(0,0,0,.7),rgba(0,0,0,.7) 2px,transparent 0,transparent)}.mat-slider-vertical .mat-slider-ticks{background-image:repeating-linear-gradient(180deg,rgba(0,0,0,.7),rgba(0,0,0,.7) 2px,transparent 0,transparent)}.mat-step-header.cdk-keyboard-focused,.mat-step-header.cdk-program-focused,.mat-step-header:hover{background-color:rgba(0,0,0,.04)}@media (hover:none){.mat-step-header:hover{background:none}}.mat-step-header .mat-step-label,.mat-step-header .mat-step-optional{color:rgba(0,0,0,.54)}.mat-step-header .mat-step-icon{background-color:rgba(0,0,0,.54);color:#fff}.mat-step-header .mat-step-icon-selected,.mat-step-header .mat-step-icon-state-done,.mat-step-header .mat-step-icon-state-edit{background-color:#2196f3;color:#fff}.mat-step-header.mat-accent .mat-step-icon{color:#fff}.mat-step-header.mat-accent .mat-step-icon-selected,.mat-step-header.mat-accent .mat-step-icon-state-done,.mat-step-header.mat-accent .mat-step-icon-state-edit{background-color:#ff4081;color:#fff}.mat-step-header.mat-warn .mat-step-icon{color:#fff}.mat-step-header.mat-warn .mat-step-icon-selected,.mat-step-header.mat-warn .mat-step-icon-state-done,.mat-step-header.mat-warn .mat-step-icon-state-edit{background-color:#f44336;color:#fff}.mat-step-header .mat-step-icon-state-error{background-color:transparent;color:#f44336}.mat-step-header .mat-step-label.mat-step-label-active{color:#000}.mat-step-header .mat-step-label.mat-step-label-error{color:#f44336}.mat-stepper-horizontal,.mat-stepper-vertical{background-color:#fff}.mat-stepper-vertical-line:before{border-left-color:rgba(82,63,105,.06)}.mat-horizontal-stepper-header:after,.mat-horizontal-stepper-header:before,.mat-stepper-horizontal-line{border-top-color:rgba(82,63,105,.06)}.mat-sort-header-arrow{color:#757575}.mat-tab-header,.mat-tab-nav-bar{border-bottom:1px solid rgba(82,63,105,.06)}.mat-tab-group-inverted-header .mat-tab-header,.mat-tab-group-inverted-header .mat-tab-nav-bar{border-top:1px solid rgba(82,63,105,.06);border-bottom:none}.mat-tab-label,.mat-tab-link{color:#000}.mat-tab-label.mat-tab-disabled,.mat-tab-link.mat-tab-disabled{color:rgba(0,0,0,.38)}.mat-tab-header-pagination-chevron{border-color:#000}.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:rgba(0,0,0,.38)}.mat-tab-group[class*=mat-background-] .mat-tab-header,.mat-tab-nav-bar[class*=mat-background-]{border-bottom:none;border-top:none}.mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#bbdefb}.mat-tab-group.mat-primary .mat-ink-bar,.mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#2196f3}.mat-tab-group.mat-primary.mat-background-primary .mat-ink-bar,.mat-tab-nav-bar.mat-primary.mat-background-primary .mat-ink-bar{background-color:#fff}.mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:rgba(255,128,171,.3)}.mat-tab-group.mat-accent .mat-ink-bar,.mat-tab-nav-bar.mat-accent .mat-ink-bar{background-color:#ff4081}.mat-tab-group.mat-accent.mat-background-accent .mat-ink-bar,.mat-tab-nav-bar.mat-accent.mat-background-accent .mat-ink-bar{background-color:#fff}.mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:rgba(255,205,210,.3)}.mat-tab-group.mat-warn .mat-ink-bar,.mat-tab-nav-bar.mat-warn .mat-ink-bar{background-color:#f44336}.mat-tab-group.mat-warn.mat-background-warn .mat-ink-bar,.mat-tab-nav-bar.mat-warn.mat-background-warn .mat-ink-bar{background-color:#fff}.mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#bbdefb}.mat-tab-group.mat-background-primary .mat-tab-header,.mat-tab-group.mat-background-primary .mat-tab-header-pagination,.mat-tab-group.mat-background-primary .mat-tab-links,.mat-tab-nav-bar.mat-background-primary .mat-tab-header,.mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination,.mat-tab-nav-bar.mat-background-primary .mat-tab-links{background-color:#2196f3}.mat-tab-group.mat-background-primary .mat-tab-label,.mat-tab-group.mat-background-primary .mat-tab-link,.mat-tab-nav-bar.mat-background-primary .mat-tab-label,.mat-tab-nav-bar.mat-background-primary .mat-tab-link{color:#fff}.mat-tab-group.mat-background-primary .mat-tab-label.mat-tab-disabled,.mat-tab-group.mat-background-primary .mat-tab-link.mat-tab-disabled,.mat-tab-nav-bar.mat-background-primary .mat-tab-label.mat-tab-disabled,.mat-tab-nav-bar.mat-background-primary .mat-tab-link.mat-tab-disabled{color:hsla(0,0%,100%,.4)}.mat-tab-group.mat-background-primary .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-chevron{border-color:#fff}.mat-tab-group.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:hsla(0,0%,100%,.4)}.mat-tab-group.mat-background-primary .mat-ripple-element,.mat-tab-nav-bar.mat-background-primary .mat-ripple-element{background-color:hsla(0,0%,100%,.12)}.mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:rgba(255,128,171,.3)}.mat-tab-group.mat-background-accent .mat-tab-header,.mat-tab-group.mat-background-accent .mat-tab-header-pagination,.mat-tab-group.mat-background-accent .mat-tab-links,.mat-tab-nav-bar.mat-background-accent .mat-tab-header,.mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination,.mat-tab-nav-bar.mat-background-accent .mat-tab-links{background-color:#ff4081}.mat-tab-group.mat-background-accent .mat-tab-label,.mat-tab-group.mat-background-accent .mat-tab-link,.mat-tab-nav-bar.mat-background-accent .mat-tab-label,.mat-tab-nav-bar.mat-background-accent .mat-tab-link{color:#fff}.mat-tab-group.mat-background-accent .mat-tab-label.mat-tab-disabled,.mat-tab-group.mat-background-accent .mat-tab-link.mat-tab-disabled,.mat-tab-nav-bar.mat-background-accent .mat-tab-label.mat-tab-disabled,.mat-tab-nav-bar.mat-background-accent .mat-tab-link.mat-tab-disabled{color:hsla(0,0%,100%,.4)}.mat-tab-group.mat-background-accent .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-chevron{border-color:#fff}.mat-tab-group.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:hsla(0,0%,100%,.4)}.mat-tab-group.mat-background-accent .mat-ripple-element,.mat-tab-nav-bar.mat-background-accent .mat-ripple-element{background-color:hsla(0,0%,100%,.12)}.mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:rgba(255,205,210,.3)}.mat-tab-group.mat-background-warn .mat-tab-header,.mat-tab-group.mat-background-warn .mat-tab-header-pagination,.mat-tab-group.mat-background-warn .mat-tab-links,.mat-tab-nav-bar.mat-background-warn .mat-tab-header,.mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination,.mat-tab-nav-bar.mat-background-warn .mat-tab-links{background-color:#f44336}.mat-tab-group.mat-background-warn .mat-tab-label,.mat-tab-group.mat-background-warn .mat-tab-link,.mat-tab-nav-bar.mat-background-warn .mat-tab-label,.mat-tab-nav-bar.mat-background-warn .mat-tab-link{color:#fff}.mat-tab-group.mat-background-warn .mat-tab-label.mat-tab-disabled,.mat-tab-group.mat-background-warn .mat-tab-link.mat-tab-disabled,.mat-tab-nav-bar.mat-background-warn .mat-tab-label.mat-tab-disabled,.mat-tab-nav-bar.mat-background-warn .mat-tab-link.mat-tab-disabled{color:hsla(0,0%,100%,.4)}.mat-tab-group.mat-background-warn .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-chevron{border-color:#fff}.mat-tab-group.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:hsla(0,0%,100%,.4)}.mat-tab-group.mat-background-warn .mat-ripple-element,.mat-tab-nav-bar.mat-background-warn .mat-ripple-element{background-color:hsla(0,0%,100%,.12)}.mat-toolbar{background:#ebebee;color:#000}.mat-toolbar.mat-primary{background:#2196f3;color:#fff}.mat-toolbar.mat-accent{background:#ff4081;color:#fff}.mat-toolbar.mat-warn{background:#f44336;color:#fff}.mat-toolbar .mat-focused .mat-form-field-ripple,.mat-toolbar .mat-form-field-ripple,.mat-toolbar .mat-form-field-underline{background-color:currentColor}.mat-toolbar .mat-focused .mat-form-field-label,.mat-toolbar .mat-form-field-label,.mat-toolbar .mat-form-field.mat-focused .mat-select-arrow,.mat-toolbar .mat-select-arrow,.mat-toolbar .mat-select-value{color:inherit}.mat-toolbar .mat-input-element{caret-color:currentColor}.mat-tooltip{background:rgba(97,97,97,.9)}.mat-tree{background:#fff}.mat-nested-tree-node,.mat-tree-node{color:#000}.mat-snack-bar-container{color:hsla(0,0%,100%,.7);background:#323232;box-shadow:0 3px 5px -1px rgba(82,63,104,.06),0 6px 10px 0 rgba(82,63,104,.042),0 1px 18px 0 rgba(82,63,104,.036)}.mat-simple-snackbar-action{color:#ff4081}html{box-sizing:border-box;font-size:16px;overflow:hidden}body,html{height:100%}body{font:400 14px/20px var(--font);letter-spacing:normal;color:var(--text-color);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}div{box-sizing:border-box}
6
- /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}b{font-weight:bolder}code{font-family:monospace,monospace;font-size:1em}small{font-size:80%}img{border-style:none}button,input,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}[hidden],template{display:none}h1,h2,h3,h4,h5,p,pre{margin:0}button{background-color:transparent;background-image:none}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}html{font-family:Roboto,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple ColorDef Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto ColorDef Emoji;line-height:1.5}*,:after,:before{box-sizing:border-box;border:0 solid var(--foreground-divider)}img{border-style:solid}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#a0aec0}input::placeholder,textarea::placeholder{color:#a0aec0}[role=button],button{cursor:pointer}table{border-collapse:collapse}h1,h2,h3,h4,h5{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}button,input,select,textarea{padding:0;line-height:inherit;color:inherit}code,pre{font-family:Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}img,object,svg{display:block;vertical-align:middle}img{max-width:100%;height:auto}input,textarea{box-sizing:content-box;line-height:1.5}button:focus{outline:unset!important}code{background:var(--background-app-bar);border-radius:var(--border-radius);color:var(--text-color);font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:85%;padding:.2em .4em}.container{width:100%;margin-right:auto;margin-left:auto;padding-right:var(--padding-gutter);padding-left:var(--padding-gutter)}@media (min-width:600px){.container{max-width:600px}}@media (min-width:960px){.container{max-width:960px}}@media (min-width:1280px){.container{max-width:1280px}}:root .bg-card{background-color:var(--background-card)}:root .bg-app-bar{background-color:var(--background-app-bar)}:root .bg-hover{background-color:var(--background-hover)}:root .bg-transparent{background-color:transparent}:root .bg-contrast-black{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}:root .bg-contrast-white{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}:root .bg-gray-50{--bg-opacity:1;background-color:#fafafa;background-color:rgba(250,250,250,var(--bg-opacity))}:root .bg-gray-300{--bg-opacity:1;background-color:#e0e0e0;background-color:rgba(224,224,224,var(--bg-opacity))}:root .bg-red-500{--bg-opacity:1;background-color:#f44336;background-color:rgba(244,67,54,var(--bg-opacity))}:root .bg-orange-500{--bg-opacity:1;background-color:#ff9800;background-color:rgba(255,152,0,var(--bg-opacity))}:root .bg-green-500{--bg-opacity:1;background-color:#4caf50;background-color:rgba(76,175,80,var(--bg-opacity))}:root .bg-primary-50{--bg-opacity:1;background-color:#e3f2fd;background-color:rgba(227,242,253,var(--bg-opacity))}:root .bg-primary-500{--bg-opacity:1;background-color:#2196f3;background-color:rgba(33,150,243,var(--bg-opacity))}:root .hover\:bg-hover:hover{background-color:var(--background-hover)}:root .rounded{border-radius:.25rem}:root .rounded-full{border-radius:9999px}:root .border-solid{border-style:solid}:root .border-0{border-width:0}:root .border{border-width:1px}:root .border-t{border-top-width:1px}:root .border-r{border-right-width:1px}:root .border-b{border-bottom-width:1px}:root [dir=ltr] .ltr\:border-r{border-right-width:1px}:root [dir=rtl] .rtl\:border-l{border-left-width:1px}:root .cursor-pointer{cursor:pointer}:root .block{display:block}:root .inline-block{display:inline-block}:root .inline{display:inline}:root .flex{display:flex}:root .table{display:table}:root .grid{display:grid}:root .contents{display:contents}:root .hidden{display:none}:root .flex-col{flex-direction:column}:root .items-start{align-items:flex-start}:root .items-center{align-items:center}:root .justify-center{justify-content:center}:root .justify-between{justify-content:space-between}:root .flex-auto{flex:1 1 auto}:root .flex-none{flex:none}:root .font-normal{font-weight:400}:root .font-medium{font-weight:500}:root .font-bold{font-weight:700}:root .h-1{height:.25rem}:root .h-3{height:.75rem}:root .h-8{height:2rem}:root .h-9{height:2.25rem}:root .h-10{height:2.5rem}:root .h-12{height:3rem}:root .h-14{height:3.5rem}:root .h-16{height:4rem}:root .h-24{height:6rem}:root .h-40{height:10rem}:root .h-64{height:16rem}:root .h-full{height:100%}:root .text-xs{font-size:.75rem}:root .leading-none{line-height:1}:root .leading-snug{line-height:1.375}:root .m-0{margin:0}:root .m-3{margin:.75rem}:root .m-4{margin:1rem}:root .m-8{margin:2rem}:root .m-12{margin:3rem}:root .my-0{margin-top:0;margin-bottom:0}:root .my-2{margin-top:.5rem;margin-bottom:.5rem}:root .my-12{margin-top:3rem;margin-bottom:3rem}:root .mx-auto{margin-left:auto;margin-right:auto}:root .-mx-1{margin-left:-.25rem;margin-right:-.25rem}:root .-mx-6{margin-left:-1.5rem;margin-right:-1.5rem}:root .mt-0{margin-top:0}:root .mr-0{margin-right:0}:root .mb-0{margin-bottom:0}:root .mt-1{margin-top:.25rem}:root .mr-1{margin-right:.25rem}:root .mb-1{margin-bottom:.25rem}:root .ml-1{margin-left:.25rem}:root .mt-2{margin-top:.5rem}:root .mr-2{margin-right:.5rem}:root .mb-2{margin-bottom:.5rem}:root .ml-2{margin-left:.5rem}:root .mt-3{margin-top:.75rem}:root .mr-3{margin-right:.75rem}:root .mb-3{margin-bottom:.75rem}:root .ml-3{margin-left:.75rem}:root .mt-4{margin-top:1rem}:root .mr-4{margin-right:1rem}:root .mb-4{margin-bottom:1rem}:root .ml-4{margin-left:1rem}:root .mt-5{margin-top:1.25rem}:root .mb-5{margin-bottom:1.25rem}:root .ml-5{margin-left:1.25rem}:root .mt-6{margin-top:1.5rem}:root .mr-6{margin-right:1.5rem}:root .mb-6{margin-bottom:1.5rem}:root .ml-6{margin-left:1.5rem}:root .mb-10{margin-bottom:2.5rem}:root .mb-12{margin-bottom:3rem}:root .mt-16{margin-top:4rem}:root .ml-auto{margin-left:auto}:root .-ml-1{margin-left:-.25rem}:root .-mr-2{margin-right:-.5rem}:root .-mt-6{margin-top:-1.5rem}:root .-mt-14{margin-top:-3.5rem}:root .-mt-16{margin-top:-4rem}:root [dir=ltr] .ltr\:mr-1{margin-right:.25rem}:root [dir=ltr] .ltr\:mr-2{margin-right:.5rem}:root [dir=ltr] .ltr\:ml-2{margin-left:.5rem}:root [dir=ltr] .ltr\:mr-3{margin-right:.75rem}:root [dir=ltr] .ltr\:ml-3{margin-left:.75rem}:root [dir=ltr] .ltr\:mr-4{margin-right:1rem}:root [dir=ltr] .ltr\:ml-4{margin-left:1rem}:root [dir=ltr] .ltr\:mr-5{margin-right:1.25rem}:root [dir=ltr] .ltr\:ml-6{margin-left:1.5rem}:root [dir=ltr] .ltr\:-mr-1{margin-right:-.25rem}:root [dir=ltr] .ltr\:-ml-1{margin-left:-.25rem}:root [dir=rtl] .rtl\:ml-1{margin-left:.25rem}:root [dir=rtl] .rtl\:ml-2{margin-left:.5rem}:root [dir=rtl] .rtl\:ml-3{margin-left:.75rem}:root [dir=rtl] .rtl\:mr-4{margin-right:1rem}:root [dir=rtl] .rtl\:ml-4{margin-left:1rem}:root [dir=rtl] .rtl\:ml-5{margin-left:1.25rem}:root [dir=rtl] .rtl\:mr-6{margin-right:1.5rem}:root [dir=rtl] .rtl\:-mr-1{margin-right:-.25rem}:root [dir=rtl] .rtl\:-ml-1{margin-left:-.25rem}:root .max-w-xxxs{max-width:16rem}:root .max-w-xxs{max-width:18rem}:root .max-w-xs{max-width:20rem}:root .max-w-md{max-width:28rem}:root .max-w-lg{max-width:32rem}:root .max-w-3xl{max-width:48rem}:root .max-w-full{max-width:100%}:root .min-w-8{min-width:2rem}:root .min-w-9{min-width:2.25rem}:root .object-cover{-o-object-fit:cover;object-fit:cover}:root .opacity-25{opacity:.25}:root .opacity-50{opacity:.5}:root .outline-none{outline:2px solid transparent;outline-offset:2px}:root .overflow-auto{overflow:auto}:root .overflow-hidden{overflow:hidden}:root .overflow-y-auto{overflow-y:auto}:root .p-0{padding:0}:root .p-1{padding:.25rem}:root .p-2{padding:.5rem}:root .p-3{padding:.75rem}:root .p-4{padding:1rem}:root .p-5{padding:1.25rem}:root .p-6{padding:1.5rem}:root .p-gutter{padding:var(--padding-gutter)}:root .py-1{padding-top:.25rem;padding-bottom:.25rem}:root .px-1{padding-left:.25rem;padding-right:.25rem}:root .py-2{padding-top:.5rem;padding-bottom:.5rem}:root .px-2{padding-left:.5rem;padding-right:.5rem}:root .py-3{padding-top:.75rem;padding-bottom:.75rem}:root .px-3{padding-left:.75rem;padding-right:.75rem}:root .py-4{padding-top:1rem;padding-bottom:1rem}:root .px-4{padding-left:1rem;padding-right:1rem}:root .py-6{padding-top:1.5rem;padding-bottom:1.5rem}:root .px-6{padding-left:1.5rem;padding-right:1.5rem}:root .py-16{padding-top:4rem;padding-bottom:4rem}:root .py-gutter{padding-top:var(--padding-gutter);padding-bottom:var(--padding-gutter)}:root .px-gutter{padding-left:var(--padding-gutter);padding-right:var(--padding-gutter)}:root .pt-0{padding-top:0}:root .pr-0{padding-right:0}:root .pb-0{padding-bottom:0}:root .pr-1{padding-right:.25rem}:root .pb-1{padding-bottom:.25rem}:root .pb-2{padding-bottom:.5rem}:root .pt-3{padding-top:.75rem}:root .pb-3{padding-bottom:.75rem}:root .pl-3{padding-left:.75rem}:root .pt-4{padding-top:1rem}:root .pr-4{padding-right:1rem}:root .pb-4{padding-bottom:1rem}:root .pl-4{padding-left:1rem}:root .pt-5{padding-top:1.25rem}:root .pb-5{padding-bottom:1.25rem}:root .pl-5{padding-left:1.25rem}:root .pt-6{padding-top:1.5rem}:root .pr-6{padding-right:1.5rem}:root .pb-6{padding-bottom:1.5rem}:root .pl-6{padding-left:1.5rem}:root .pr-10{padding-right:2.5rem}:root .pb-10{padding-bottom:2.5rem}:root .pl-10{padding-left:2.5rem}:root .pb-16{padding-bottom:4rem}:root .pb-20{padding-bottom:5rem}:root [dir=ltr] .ltr\:pr-3{padding-right:.75rem}:root [dir=ltr] .ltr\:pr-4{padding-right:1rem}:root [dir=ltr] .ltr\:pl-4{padding-left:1rem}:root [dir=ltr] .ltr\:pl-5{padding-left:1.25rem}:root [dir=rtl] .rtl\:pl-3{padding-left:.75rem}:root [dir=rtl] .rtl\:pr-4{padding-right:1rem}:root [dir=rtl] .rtl\:pl-4{padding-left:1rem}:root [dir=rtl] .rtl\:pr-5{padding-right:1.25rem}:root .static{position:static}:root .fixed{position:fixed}:root .absolute{position:absolute}:root .relative{position:relative}:root .sticky{position:-webkit-sticky;position:sticky}:root .top-0{top:0}:root .right-0{right:0}:root .bottom-0{bottom:0}:root .left-0{left:0}:root .top-2{top:.5rem}:root .right-2{right:.5rem}:root .left-4{left:1rem}:root .top-6{top:1.5rem}:root .top-12{top:3rem}:root .-top-3{top:-.75rem}:root .-right-3{right:-.75rem}:root [dir=ltr] .ltr\:right-12{right:3rem}:root [dir=rtl] .rtl\:left-12{left:3rem}:root .resize{resize:both}:root .shadow-8{box-shadow:var(--elevation-z8)}:root .shadow{box-shadow:var(--elevation-z6)}:root .shadow-b{box-shadow:0 10px 30px 0 rgba(82,63,104,.06)}:root .hover\:shadow-16:hover{box-shadow:var(--elevation-z16)}:root .fill-current{fill:currentColor}:root .text-center{text-align:center}:root .text-secondary{color:var(--text-secondary)}:root .text-hint{color:var(--text-hint)}:root .text-transparent{color:transparent}:root .text-white{color:var(--text-color-light)}:root .text-contrast-black{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}:root .text-contrast-white{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}:root .text-gray-500{--text-opacity:1;color:#9e9e9e;color:rgba(158,158,158,var(--text-opacity))}:root .text-gray-700{--text-opacity:1;color:#616161;color:rgba(97,97,97,var(--text-opacity))}:root .text-red-500{--text-opacity:1;color:#f44336;color:rgba(244,67,54,var(--text-opacity))}:root .text-orange-500{--text-opacity:1;color:#ff9800;color:rgba(255,152,0,var(--text-opacity))}:root .text-amber-500{--text-opacity:1;color:#ffc107;color:rgba(255,193,7,var(--text-opacity))}:root .text-green-500{--text-opacity:1;color:#4caf50;color:rgba(76,175,80,var(--text-opacity))}:root .text-teal-500{--text-opacity:1;color:#009688;color:rgba(0,150,136,var(--text-opacity))}:root .text-purple-500{--text-opacity:1;color:#9c27b0;color:rgba(156,39,176,var(--text-opacity))}:root .text-primary-500{--text-opacity:1;color:#2196f3;color:rgba(33,150,243,var(--text-opacity))}:root .text-primary-contrast-500{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}:root .hover\:text-primary-500:hover{--text-opacity:1;color:#2196f3;color:rgba(33,150,243,var(--text-opacity))}:root .uppercase{text-transform:uppercase}:root .lowercase{text-transform:lowercase}:root .capitalize{text-transform:capitalize}:root .no-underline{text-decoration:none}:root .select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}:root .align-top{vertical-align:top}:root .align-middle{vertical-align:middle}:root .visible{visibility:visible}:root .invisible{visibility:hidden}:root .w-1{width:.25rem}:root .w-3{width:.75rem}:root .w-4{width:1rem}:root .w-6{width:1.5rem}:root .w-8{width:2rem}:root .w-9{width:2.25rem}:root .w-10{width:2.5rem}:root .w-12{width:3rem}:root .w-16{width:4rem}:root .w-24{width:6rem}:root .w-full{width:100%}:root .z-0{z-index:0}:root .z-10{z-index:10}:root .z-40{z-index:40}:root .transform{--transform-translate-x:0;--transform-translate-y:0;--transform-rotate:0;--transform-skew-x:0;--transform-skew-y:0;--transform-scale-x:1;--transform-scale-y:1;transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y))}:root .transition{transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform}@-webkit-keyframes spin{to{transform:rotate(1turn)}}@keyframes spin{to{transform:rotate(1turn)}}@-webkit-keyframes ping{75%,to{transform:scale(2);opacity:0}}@keyframes ping{75%,to{transform:scale(2);opacity:0}}@-webkit-keyframes pulse{50%{opacity:.5}}@keyframes pulse{50%{opacity:.5}}@-webkit-keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}@keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}.card{border-radius:.25rem;box-shadow:var(--elevation-z8);background-color:var(--background-card)}.avatar{height:2.5rem;width:2.5rem;-o-object-fit:cover;object-fit:cover;border-radius:9999px;background-color:var(--background-hover)}.list-item{border-radius:.25rem;height:3rem;padding-left:1rem;padding-right:1rem;cursor:pointer}.list-item:hover{background-color:var(--background-hover)}.bg-pattern{background:linear-gradient(135deg,var(--background-base) 22px,var(--background-hover) 0,var(--background-hover) 24px,transparent 0,transparent 67px,var(--background-hover) 0,var(--background-hover) 69px,transparent 0),linear-gradient(225deg,var(--background-base) 22px,var(--background-hover) 0,var(--background-hover) 24px,transparent 0,transparent 67px,var(--background-hover) 0,var(--background-hover) 69px,transparent 0) 0 64px;background-color:var(--background-base);background-size:64px 128px}.trans-ease-out{transition:all .4s cubic-bezier(.25,.8,.25,1)}.trans-shadow{transition:box-shadow .28s cubic-bezier(.4,0,.2,1)}.display-3{font:400 56px/56px var(--font);letter-spacing:-.02em}.display-2{font:400 45px/48px var(--font);letter-spacing:-.005em}.display-1,h1{font:400 34px/40px var(--font);letter-spacing:normal}.headline,h2{font:400 24px/32px var(--font);letter-spacing:normal}.title,h3{font:500 18px/26px var(--font);letter-spacing:normal}.subheading-2,h4{font:400 16px/28px var(--font);letter-spacing:normal}.subheading-1,h5{font:400 15px/24px var(--font);letter-spacing:normal}.body-2{font:500 14px/24px var(--font)}.body-1,.body-2,p{letter-spacing:normal}.body-1,p{font:400 14px/20px var(--font)}.caption{font:400 12px/20px var(--font);letter-spacing:normal}.text-overflow-ellipsis{overflow:hidden;text-overflow:ellipsis}@media (min-width:600px){:root .sm\:block{display:block}:root .sm\:hidden{display:none}:root .sm\:flex-row{flex-direction:row}:root .sm\:px-0{padding-left:0;padding-right:0}}@media (min-width:960px){:root .md\:flex-row{flex-direction:row}:root .md\:mx-2{margin-left:.5rem;margin-right:.5rem}:root .md\:w-1\/2{width:50%}}@media (min-width:1280px){:root .lg\:block{display:block}}
6
+ /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}b{font-weight:bolder}code{font-family:monospace,monospace;font-size:1em}small{font-size:80%}img{border-style:none}button,input,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}[hidden],template{display:none}h1,h2,h3,h4,h5,h6,p,pre{margin:0}button{background-color:transparent;background-image:none}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}html{font-family:Roboto,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple ColorDef Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto ColorDef Emoji;line-height:1.5}*,:after,:before{box-sizing:border-box;border:0 solid var(--foreground-divider)}img{border-style:solid}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#a0aec0}input::placeholder,textarea::placeholder{color:#a0aec0}[role=button],button{cursor:pointer}table{border-collapse:collapse}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}button,input,select,textarea{padding:0;line-height:inherit;color:inherit}code,pre{font-family:Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}img,object,svg{display:block;vertical-align:middle}img{max-width:100%;height:auto}input,textarea{box-sizing:content-box;line-height:1.5}button:focus{outline:unset!important}code{background:var(--background-app-bar);border-radius:var(--border-radius);color:var(--text-color);font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:85%;padding:.2em .4em}.container{width:100%;margin-right:auto;margin-left:auto;padding-right:var(--padding-gutter);padding-left:var(--padding-gutter)}@media (min-width:600px){.container{max-width:600px}}@media (min-width:960px){.container{max-width:960px}}@media (min-width:1280px){.container{max-width:1280px}}:root .bg-card{background-color:var(--background-card)}:root .bg-app-bar{background-color:var(--background-app-bar)}:root .bg-hover{background-color:var(--background-hover)}:root .bg-transparent{background-color:transparent}:root .bg-contrast-black{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}:root .bg-contrast-white{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}:root .bg-gray-50{--bg-opacity:1;background-color:#fafafa;background-color:rgba(250,250,250,var(--bg-opacity))}:root .bg-gray-300{--bg-opacity:1;background-color:#e0e0e0;background-color:rgba(224,224,224,var(--bg-opacity))}:root .bg-red-500{--bg-opacity:1;background-color:#f44336;background-color:rgba(244,67,54,var(--bg-opacity))}:root .bg-orange-500{--bg-opacity:1;background-color:#ff9800;background-color:rgba(255,152,0,var(--bg-opacity))}:root .bg-green-500{--bg-opacity:1;background-color:#4caf50;background-color:rgba(76,175,80,var(--bg-opacity))}:root .bg-primary-50{--bg-opacity:1;background-color:#e3f2fd;background-color:rgba(227,242,253,var(--bg-opacity))}:root .bg-primary-500{--bg-opacity:1;background-color:#2196f3;background-color:rgba(33,150,243,var(--bg-opacity))}:root .hover\:bg-hover:hover{background-color:var(--background-hover)}:root .rounded{border-radius:.25rem}:root .rounded-full{border-radius:9999px}:root .border-solid{border-style:solid}:root .border-0{border-width:0}:root .border{border-width:1px}:root .border-t{border-top-width:1px}:root .border-r{border-right-width:1px}:root .border-b{border-bottom-width:1px}:root [dir=ltr] .ltr\:border-r{border-right-width:1px}:root [dir=rtl] .rtl\:border-l{border-left-width:1px}:root .cursor-pointer{cursor:pointer}:root .block{display:block}:root .inline-block{display:inline-block}:root .inline{display:inline}:root .flex{display:flex}:root .table{display:table}:root .grid{display:grid}:root .contents{display:contents}:root .hidden{display:none}:root .flex-col{flex-direction:column}:root .items-start{align-items:flex-start}:root .items-center{align-items:center}:root .justify-center{justify-content:center}:root .justify-between{justify-content:space-between}:root .flex-auto{flex:1 1 auto}:root .flex-none{flex:none}:root .font-normal{font-weight:400}:root .font-medium{font-weight:500}:root .font-bold{font-weight:700}:root .h-1{height:.25rem}:root .h-3{height:.75rem}:root .h-8{height:2rem}:root .h-9{height:2.25rem}:root .h-10{height:2.5rem}:root .h-12{height:3rem}:root .h-14{height:3.5rem}:root .h-16{height:4rem}:root .h-24{height:6rem}:root .h-40{height:10rem}:root .h-64{height:16rem}:root .h-full{height:100%}:root .text-xs{font-size:.75rem}:root .leading-none{line-height:1}:root .leading-snug{line-height:1.375}:root .m-0{margin:0}:root .m-3{margin:.75rem}:root .m-4{margin:1rem}:root .m-8{margin:2rem}:root .m-12{margin:3rem}:root .my-0{margin-top:0;margin-bottom:0}:root .my-2{margin-top:.5rem;margin-bottom:.5rem}:root .my-12{margin-top:3rem;margin-bottom:3rem}:root .mx-auto{margin-left:auto;margin-right:auto}:root .-mx-1{margin-left:-.25rem;margin-right:-.25rem}:root .-mx-6{margin-left:-1.5rem;margin-right:-1.5rem}:root .mt-0{margin-top:0}:root .mr-0{margin-right:0}:root .mb-0{margin-bottom:0}:root .mt-1{margin-top:.25rem}:root .mr-1{margin-right:.25rem}:root .mb-1{margin-bottom:.25rem}:root .ml-1{margin-left:.25rem}:root .mt-2{margin-top:.5rem}:root .mr-2{margin-right:.5rem}:root .mb-2{margin-bottom:.5rem}:root .ml-2{margin-left:.5rem}:root .mt-3{margin-top:.75rem}:root .mr-3{margin-right:.75rem}:root .mb-3{margin-bottom:.75rem}:root .ml-3{margin-left:.75rem}:root .mt-4{margin-top:1rem}:root .mr-4{margin-right:1rem}:root .mb-4{margin-bottom:1rem}:root .ml-4{margin-left:1rem}:root .mt-5{margin-top:1.25rem}:root .mb-5{margin-bottom:1.25rem}:root .ml-5{margin-left:1.25rem}:root .mt-6{margin-top:1.5rem}:root .mr-6{margin-right:1.5rem}:root .mb-6{margin-bottom:1.5rem}:root .ml-6{margin-left:1.5rem}:root .mb-10{margin-bottom:2.5rem}:root .mb-12{margin-bottom:3rem}:root .mt-16{margin-top:4rem}:root .ml-auto{margin-left:auto}:root .-ml-1{margin-left:-.25rem}:root .-mr-2{margin-right:-.5rem}:root .-mt-6{margin-top:-1.5rem}:root .-mt-14{margin-top:-3.5rem}:root .-mt-16{margin-top:-4rem}:root [dir=ltr] .ltr\:mr-1{margin-right:.25rem}:root [dir=ltr] .ltr\:mr-2{margin-right:.5rem}:root [dir=ltr] .ltr\:ml-2{margin-left:.5rem}:root [dir=ltr] .ltr\:mr-3{margin-right:.75rem}:root [dir=ltr] .ltr\:ml-3{margin-left:.75rem}:root [dir=ltr] .ltr\:mr-4{margin-right:1rem}:root [dir=ltr] .ltr\:ml-4{margin-left:1rem}:root [dir=ltr] .ltr\:mr-5{margin-right:1.25rem}:root [dir=ltr] .ltr\:ml-6{margin-left:1.5rem}:root [dir=ltr] .ltr\:-mr-1{margin-right:-.25rem}:root [dir=ltr] .ltr\:-ml-1{margin-left:-.25rem}:root [dir=rtl] .rtl\:ml-1{margin-left:.25rem}:root [dir=rtl] .rtl\:ml-2{margin-left:.5rem}:root [dir=rtl] .rtl\:ml-3{margin-left:.75rem}:root [dir=rtl] .rtl\:mr-4{margin-right:1rem}:root [dir=rtl] .rtl\:ml-4{margin-left:1rem}:root [dir=rtl] .rtl\:ml-5{margin-left:1.25rem}:root [dir=rtl] .rtl\:mr-6{margin-right:1.5rem}:root [dir=rtl] .rtl\:-mr-1{margin-right:-.25rem}:root [dir=rtl] .rtl\:-ml-1{margin-left:-.25rem}:root .max-w-xxxs{max-width:16rem}:root .max-w-xxs{max-width:18rem}:root .max-w-xs{max-width:20rem}:root .max-w-md{max-width:28rem}:root .max-w-lg{max-width:32rem}:root .max-w-3xl{max-width:48rem}:root .max-w-full{max-width:100%}:root .min-w-8{min-width:2rem}:root .min-w-9{min-width:2.25rem}:root .object-cover{-o-object-fit:cover;object-fit:cover}:root .opacity-25{opacity:.25}:root .opacity-50{opacity:.5}:root .outline-none{outline:2px solid transparent;outline-offset:2px}:root .overflow-auto{overflow:auto}:root .overflow-hidden{overflow:hidden}:root .overflow-y-auto{overflow-y:auto}:root .p-0{padding:0}:root .p-1{padding:.25rem}:root .p-2{padding:.5rem}:root .p-3{padding:.75rem}:root .p-4{padding:1rem}:root .p-5{padding:1.25rem}:root .p-6{padding:1.5rem}:root .p-gutter{padding:var(--padding-gutter)}:root .py-1{padding-top:.25rem;padding-bottom:.25rem}:root .px-1{padding-left:.25rem;padding-right:.25rem}:root .py-2{padding-top:.5rem;padding-bottom:.5rem}:root .px-2{padding-left:.5rem;padding-right:.5rem}:root .py-3{padding-top:.75rem;padding-bottom:.75rem}:root .px-3{padding-left:.75rem;padding-right:.75rem}:root .py-4{padding-top:1rem;padding-bottom:1rem}:root .px-4{padding-left:1rem;padding-right:1rem}:root .py-6{padding-top:1.5rem;padding-bottom:1.5rem}:root .px-6{padding-left:1.5rem;padding-right:1.5rem}:root .py-16{padding-top:4rem;padding-bottom:4rem}:root .py-gutter{padding-top:var(--padding-gutter);padding-bottom:var(--padding-gutter)}:root .px-gutter{padding-left:var(--padding-gutter);padding-right:var(--padding-gutter)}:root .pt-0{padding-top:0}:root .pr-0{padding-right:0}:root .pb-0{padding-bottom:0}:root .pr-1{padding-right:.25rem}:root .pb-1{padding-bottom:.25rem}:root .pb-2{padding-bottom:.5rem}:root .pt-3{padding-top:.75rem}:root .pb-3{padding-bottom:.75rem}:root .pl-3{padding-left:.75rem}:root .pt-4{padding-top:1rem}:root .pr-4{padding-right:1rem}:root .pb-4{padding-bottom:1rem}:root .pl-4{padding-left:1rem}:root .pt-5{padding-top:1.25rem}:root .pb-5{padding-bottom:1.25rem}:root .pl-5{padding-left:1.25rem}:root .pt-6{padding-top:1.5rem}:root .pr-6{padding-right:1.5rem}:root .pb-6{padding-bottom:1.5rem}:root .pl-6{padding-left:1.5rem}:root .pr-10{padding-right:2.5rem}:root .pb-10{padding-bottom:2.5rem}:root .pl-10{padding-left:2.5rem}:root .pb-16{padding-bottom:4rem}:root .pb-20{padding-bottom:5rem}:root [dir=ltr] .ltr\:pr-3{padding-right:.75rem}:root [dir=ltr] .ltr\:pr-4{padding-right:1rem}:root [dir=ltr] .ltr\:pl-4{padding-left:1rem}:root [dir=ltr] .ltr\:pl-5{padding-left:1.25rem}:root [dir=rtl] .rtl\:pl-3{padding-left:.75rem}:root [dir=rtl] .rtl\:pr-4{padding-right:1rem}:root [dir=rtl] .rtl\:pl-4{padding-left:1rem}:root [dir=rtl] .rtl\:pr-5{padding-right:1.25rem}:root .static{position:static}:root .fixed{position:fixed}:root .absolute{position:absolute}:root .relative{position:relative}:root .sticky{position:-webkit-sticky;position:sticky}:root .top-0{top:0}:root .right-0{right:0}:root .bottom-0{bottom:0}:root .left-0{left:0}:root .top-2{top:.5rem}:root .right-2{right:.5rem}:root .left-4{left:1rem}:root .top-6{top:1.5rem}:root .top-12{top:3rem}:root .-top-3{top:-.75rem}:root .-right-3{right:-.75rem}:root [dir=ltr] .ltr\:right-12{right:3rem}:root [dir=rtl] .rtl\:left-12{left:3rem}:root .resize{resize:both}:root .shadow-8{box-shadow:var(--elevation-z8)}:root .shadow{box-shadow:var(--elevation-z6)}:root .shadow-b{box-shadow:0 10px 30px 0 rgba(82,63,104,.06)}:root .hover\:shadow-16:hover{box-shadow:var(--elevation-z16)}:root .fill-current{fill:currentColor}:root .text-center{text-align:center}:root .text-secondary{color:var(--text-secondary)}:root .text-hint{color:var(--text-hint)}:root .text-transparent{color:transparent}:root .text-white{color:var(--text-color-light)}:root .text-contrast-black{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}:root .text-contrast-white{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}:root .text-gray-500{--text-opacity:1;color:#9e9e9e;color:rgba(158,158,158,var(--text-opacity))}:root .text-gray-700{--text-opacity:1;color:#616161;color:rgba(97,97,97,var(--text-opacity))}:root .text-red-500{--text-opacity:1;color:#f44336;color:rgba(244,67,54,var(--text-opacity))}:root .text-orange-500{--text-opacity:1;color:#ff9800;color:rgba(255,152,0,var(--text-opacity))}:root .text-amber-500{--text-opacity:1;color:#ffc107;color:rgba(255,193,7,var(--text-opacity))}:root .text-green-500{--text-opacity:1;color:#4caf50;color:rgba(76,175,80,var(--text-opacity))}:root .text-teal-500{--text-opacity:1;color:#009688;color:rgba(0,150,136,var(--text-opacity))}:root .text-purple-500{--text-opacity:1;color:#9c27b0;color:rgba(156,39,176,var(--text-opacity))}:root .text-primary-500{--text-opacity:1;color:#2196f3;color:rgba(33,150,243,var(--text-opacity))}:root .text-primary-contrast-500{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}:root .hover\:text-primary-500:hover{--text-opacity:1;color:#2196f3;color:rgba(33,150,243,var(--text-opacity))}:root .uppercase{text-transform:uppercase}:root .lowercase{text-transform:lowercase}:root .capitalize{text-transform:capitalize}:root .no-underline{text-decoration:none}:root .select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}:root .align-top{vertical-align:top}:root .align-middle{vertical-align:middle}:root .visible{visibility:visible}:root .invisible{visibility:hidden}:root .w-1{width:.25rem}:root .w-3{width:.75rem}:root .w-4{width:1rem}:root .w-6{width:1.5rem}:root .w-8{width:2rem}:root .w-9{width:2.25rem}:root .w-10{width:2.5rem}:root .w-12{width:3rem}:root .w-16{width:4rem}:root .w-24{width:6rem}:root .w-full{width:100%}:root .z-0{z-index:0}:root .z-10{z-index:10}:root .z-40{z-index:40}:root .transform{--transform-translate-x:0;--transform-translate-y:0;--transform-rotate:0;--transform-skew-x:0;--transform-skew-y:0;--transform-scale-x:1;--transform-scale-y:1;transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y))}:root .transition{transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform}@-webkit-keyframes spin{to{transform:rotate(1turn)}}@keyframes spin{to{transform:rotate(1turn)}}@-webkit-keyframes ping{75%,to{transform:scale(2);opacity:0}}@keyframes ping{75%,to{transform:scale(2);opacity:0}}@-webkit-keyframes pulse{50%{opacity:.5}}@keyframes pulse{50%{opacity:.5}}@-webkit-keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}@keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}.card{border-radius:.25rem;box-shadow:var(--elevation-z8);background-color:var(--background-card)}.avatar{height:2.5rem;width:2.5rem;-o-object-fit:cover;object-fit:cover;border-radius:9999px;background-color:var(--background-hover)}.list-item{border-radius:.25rem;height:3rem;padding-left:1rem;padding-right:1rem;cursor:pointer}.list-item:hover{background-color:var(--background-hover)}.bg-pattern{background:linear-gradient(135deg,var(--background-base) 22px,var(--background-hover) 0,var(--background-hover) 24px,transparent 0,transparent 67px,var(--background-hover) 0,var(--background-hover) 69px,transparent 0),linear-gradient(225deg,var(--background-base) 22px,var(--background-hover) 0,var(--background-hover) 24px,transparent 0,transparent 67px,var(--background-hover) 0,var(--background-hover) 69px,transparent 0) 0 64px;background-color:var(--background-base);background-size:64px 128px}.trans-ease-out{transition:all .4s cubic-bezier(.25,.8,.25,1)}.trans-shadow{transition:box-shadow .28s cubic-bezier(.4,0,.2,1)}.display-3{font:400 56px/56px var(--font);letter-spacing:-.02em}.display-2{font:400 45px/48px var(--font);letter-spacing:-.005em}.display-1,h1{font:400 34px/40px var(--font);letter-spacing:normal}.headline,h2{font:400 24px/32px var(--font);letter-spacing:normal}.title,h3{font:500 18px/26px var(--font);letter-spacing:normal}.subheading-2,h4{font:400 16px/28px var(--font);letter-spacing:normal}.subheading-1,h5{font:400 15px/24px var(--font);letter-spacing:normal}.body-2,h6{font:500 14px/24px var(--font)}.body-1,.body-2,h6,p{letter-spacing:normal}.body-1,p{font:400 14px/20px var(--font)}.caption{font:400 12px/20px var(--font);letter-spacing:normal}.text-overflow-ellipsis{overflow:hidden;text-overflow:ellipsis}@media (min-width:600px){:root .sm\:block{display:block}:root .sm\:hidden{display:none}:root .sm\:flex-row{flex-direction:row}:root .sm\:px-0{padding-left:0;padding-right:0}}@media (min-width:960px){:root .md\:flex-row{flex-direction:row}:root .md\:mx-2{margin-left:.5rem;margin-right:.5rem}:root .md\:w-1\/2{width:50%}}@media (min-width:1280px){:root .lg\:block{display:block}}
@@ -9,7 +9,7 @@ from stoobly_agent.app.settings import Settings
9
9
  from stoobly_agent.cli import config, record, scenario
10
10
  from stoobly_agent.lib.orm.request import Request
11
11
  from stoobly_agent.lib.orm.scenario import Scenario
12
- from stoobly_agent.config.constants import record_policy
12
+ from stoobly_agent.config.constants import record_order
13
13
 
14
14
  from stoobly_agent.lib.api.keys import ProjectKey
15
15
 
@@ -23,7 +23,7 @@ class TestConfigScenarioSet():
23
23
  def settings(self):
24
24
  return reset()
25
25
 
26
- class TestWhenRecordPolicyOverwrite():
26
+ class TestWhenRecordOrderOverwrite():
27
27
  @pytest.fixture(scope='class')
28
28
  def created_scenario(self, runner: CliRunner):
29
29
  scenario_create_result = runner.invoke(scenario, ['create', 'test'])
@@ -52,7 +52,7 @@ class TestConfigScenarioSet():
52
52
 
53
53
  data_rule = settings.proxy.data.data_rules(_project_key.id)
54
54
  data_rule.scenario_key = created_scenario.key()
55
- data_rule.record_policy = record_policy.OVERWRITE
55
+ data_rule.record_order = record_order.OVERWRITE
56
56
  settings.commit()
57
57
 
58
58
  set_results = runner.invoke(config, ['scenario', 'set', new_scenario.key()])
@@ -6,11 +6,9 @@ from click.testing import CliRunner
6
6
  from stoobly_agent.test.test_helper import reset
7
7
 
8
8
  from stoobly_agent.cli import config, intercept, scenario
9
- from stoobly_agent.lib.api.keys import ScenarioKey
10
9
  from stoobly_agent.lib.orm.scenario import Scenario
11
10
 
12
-
13
- from stoobly_agent.config.constants import mode, record_policy
11
+ from stoobly_agent.config.constants import mode, record_order
14
12
 
15
13
  @pytest.fixture(scope='module')
16
14
  def runner():
@@ -22,7 +20,7 @@ def settings():
22
20
 
23
21
  class TestInterceptConfigure():
24
22
 
25
- class TestRecordPolicy():
23
+ class TestRecordOrder():
26
24
 
27
25
  class TestScenario():
28
26
  @pytest.fixture(scope='class')
@@ -41,15 +39,15 @@ class TestInterceptConfigure():
41
39
  configure_result = runner.invoke(config, ['scenario', 'set', scenario.key()])
42
40
  assert configure_result.exit_code == 0
43
41
 
44
- configure_result = runner.invoke(intercept, ['configure', '--mode', mode.RECORD ,'--policy', record_policy.OVERWRITE])
42
+ configure_result = runner.invoke(intercept, ['configure', '--mode', mode.RECORD ,'--order', record_order.OVERWRITE])
45
43
  assert configure_result.exit_code == 0
46
44
 
47
- class TestChangingPolicy():
45
+ class TestChangingOrder():
48
46
 
49
47
  def test_scenario_not_overwritable(self, runner: CliRunner, scenario: Scenario):
50
48
  Scenario.find(scenario.id).update(overwritable=True)
51
49
 
52
- configure_result = runner.invoke(intercept, ['configure', '--policy', record_policy.ALL])
50
+ configure_result = runner.invoke(intercept, ['configure', '--order', record_order.APPEND])
53
51
  assert configure_result.exit_code == 0
54
52
 
55
53
  assert not Scenario.find(scenario.id).overwritable
@@ -6,11 +6,9 @@ from click.testing import CliRunner
6
6
  from stoobly_agent.test.test_helper import reset
7
7
 
8
8
  from stoobly_agent.cli import config, intercept, scenario
9
- from stoobly_agent.lib.api.keys import ScenarioKey
10
9
  from stoobly_agent.lib.orm.scenario import Scenario
11
10
 
12
-
13
- from stoobly_agent.config.constants import mode, record_policy
11
+ from stoobly_agent.config.constants import mode, record_order
14
12
 
15
13
  @pytest.fixture(scope='module')
16
14
  def runner():
@@ -22,7 +20,7 @@ def settings():
22
20
 
23
21
  class TestInterceptEnable():
24
22
 
25
- class TestRecordPolicy():
23
+ class TestRecordOrder():
26
24
 
27
25
  class TestScenario():
28
26
  @pytest.fixture(scope='class')
@@ -41,7 +39,7 @@ class TestInterceptEnable():
41
39
  configure_result = runner.invoke(config, ['scenario', 'set', scenario.key()])
42
40
  assert configure_result.exit_code == 0
43
41
 
44
- configure_result = runner.invoke(intercept, ['configure', '--mode', mode.RECORD ,'--policy', record_policy.OVERWRITE])
42
+ configure_result = runner.invoke(intercept, ['configure', '--mode', mode.RECORD ,'--order', record_order.OVERWRITE])
45
43
 
46
44
  def test_enabling_sets_overwritable(self, runner: CliRunner, scenario: Scenario):
47
45
  enable_result = runner.invoke(intercept, ['enable'])
@@ -547,4 +547,146 @@ class TestApply():
547
547
  recreated_scenario = Scenario.find_by(uuid=created_scenario.uuid)
548
548
  assert recreated_scenario
549
549
 
550
- assert len(recreated_scenario.requests) == 0
550
+ assert len(recreated_scenario.requests) == 0
551
+
552
+ class TestWhenDeletingRequestWhileReferenced():
553
+
554
+ class TestWhenRemoveScenarioRequest():
555
+ '''
556
+ 1. Create scenario
557
+ 2. Add 2 requests to it
558
+ 3. Snapshot scenario
559
+ 4. Snapshot requests with action DELETE_ACTION
560
+ 5. Apply
561
+ 6. Expect scenario to have 1 request
562
+ '''
563
+
564
+ @pytest.fixture(scope='class')
565
+ def created_scenario(self, runner: CliRunner):
566
+ create_result = runner.invoke(scenario, ['create', 'test'])
567
+ assert create_result.exit_code == 0
568
+ return Scenario.last()
569
+
570
+ @pytest.fixture(scope='class', autouse=True)
571
+ def created_scenario_requests(self, runner: CliRunner, created_scenario: Scenario):
572
+ record_result = runner.invoke(record, ['--scenario-key', created_scenario.key(), DETERMINISTIC_GET_REQUEST_URL])
573
+ assert record_result.exit_code == 0
574
+
575
+ record_result = runner.invoke(record, ['--scenario-key', created_scenario.key(), NON_DETERMINISTIC_GET_REQUEST_URL])
576
+ assert record_result.exit_code == 0
577
+
578
+ return created_scenario.requests
579
+
580
+ @pytest.fixture(scope='class', autouse=True)
581
+ def delete_event(self, runner: CliRunner, created_scenario: Scenario, created_scenario_requests: List[Request]):
582
+ snapshot_result = runner.invoke(scenario, ['snapshot', created_scenario.key()])
583
+ assert snapshot_result.exit_code == 0
584
+
585
+ time.sleep(0.5) # So events do not have the same uuid
586
+
587
+ created_request = created_scenario_requests[1]
588
+ snapshot_result = runner.invoke(request, ['snapshot', created_request.key(), '--action', DELETE_ACTION])
589
+ assert snapshot_result.exit_code == 0
590
+
591
+ log = Log()
592
+ events = log.events
593
+ return events[len(events) - 1]
594
+
595
+ @pytest.fixture(scope='class')
596
+ def apply_result(self, runner: CliRunner, created_scenario: Scenario):
597
+ created_scenario = Scenario.find(created_scenario.id)
598
+ assert created_scenario.requests_count == 2
599
+ apply_result = runner.invoke(snapshot, ['apply'])
600
+
601
+ return apply_result
602
+
603
+ def test_it_updates_scenario(self, created_scenario: Scenario, apply_result):
604
+ assert apply_result.exit_code == 0
605
+
606
+ created_scenario = Scenario.find(created_scenario.id)
607
+ assert created_scenario.requests_count == 1
608
+
609
+ def test_it_maintains_requests(self, created_scenario: Scenario, created_scenario_requests: List[Request]):
610
+ created_scenario = Scenario.find(created_scenario.id)
611
+ assert len(created_scenario.requests) == 1
612
+
613
+ requests = created_scenario.requests
614
+
615
+ assert_orm_request_equivalent(requests[0], created_scenario_requests[0])
616
+
617
+ class TestWhenMovingScenarioRequest():
618
+ '''
619
+ 1. Create scenario one and scenario two
620
+ 2. Add 1 request to scenario one
621
+ 3. Snapshot scenario one
622
+ 4. Move scenario one request to scenario two
623
+ 5. Snapshot scenario two
624
+ 5. Apply
625
+ 6. Expect scenario one to have 0 requests
626
+ 7. Expect scenario two to have 1 request
627
+ '''
628
+
629
+ @pytest.fixture(scope='class')
630
+ def created_scenario_one(self, runner: CliRunner):
631
+ create_result = runner.invoke(scenario, ['create', 'test1'])
632
+ assert create_result.exit_code == 0
633
+ return Scenario.last()
634
+
635
+ @pytest.fixture(scope='class')
636
+ def created_scenario_two(self, runner: CliRunner):
637
+ create_result = runner.invoke(scenario, ['create', 'test2'])
638
+ assert create_result.exit_code == 0
639
+ return Scenario.last()
640
+
641
+ @pytest.fixture(scope='class', autouse=True)
642
+ def created_scenario_request(self, runner: CliRunner, created_scenario_one: Scenario):
643
+ record_result = runner.invoke(record, ['--scenario-key', created_scenario_one.key(), DETERMINISTIC_GET_REQUEST_URL])
644
+ assert record_result.exit_code == 0
645
+
646
+ return created_scenario_one.requests[0]
647
+
648
+ @pytest.fixture(scope='class', autouse=True)
649
+ def put_event_one(self, runner: CliRunner, created_scenario_one: Scenario, created_scenario_request: Request):
650
+ snapshot_result = runner.invoke(scenario, ['snapshot', created_scenario_one.key()])
651
+ assert snapshot_result.exit_code == 0
652
+
653
+ log = Log()
654
+ events = log.events
655
+ return events[len(events) - 1]
656
+
657
+ @pytest.fixture(scope='class', autouse=True)
658
+ def put_event_two(self, runner: CliRunner, created_scenario_two: Scenario, created_scenario_request: Request):
659
+ created_scenario_request.update(scenario_id=created_scenario_two.id)
660
+
661
+ snapshot_result = runner.invoke(scenario, ['snapshot', created_scenario_two.key()])
662
+ assert snapshot_result.exit_code == 0
663
+
664
+ log = Log()
665
+ events = log.events
666
+ return events[len(events) - 1]
667
+
668
+ @pytest.fixture(scope='class')
669
+ def apply_result(self, runner: CliRunner):
670
+ apply_result = runner.invoke(snapshot, ['apply'])
671
+
672
+ return apply_result
673
+
674
+ def test_it_removes_request_from_scenario_one(self, created_scenario_one: Scenario, apply_result):
675
+ assert apply_result.exit_code == 0
676
+
677
+ created_scenario_one = Scenario.find(created_scenario_one.id)
678
+ assert created_scenario_one.requests_count == 0
679
+
680
+ def test_it_adds_request_to_scenario_two(self, created_scenario_two: Scenario, apply_result):
681
+ assert apply_result.exit_code == 0
682
+
683
+ created_scenario_two = Scenario.find(created_scenario_two.id)
684
+ assert created_scenario_two.requests_count == 1
685
+
686
+ def test_it_maintains_requests(self, created_scenario_two: Scenario, created_scenario_request):
687
+ created_scenario_two = Scenario.find(created_scenario_two.id)
688
+ assert len(created_scenario_two.requests) == 1
689
+
690
+ requests = created_scenario_two.requests
691
+
692
+ assert_orm_request_equivalent(requests[0], created_scenario_request)
@@ -3,12 +3,14 @@ import pytest
3
3
  import time
4
4
 
5
5
  from click.testing import CliRunner
6
+ from typing import List
6
7
 
7
8
  from stoobly_agent.app.models.factories.resource.local_db.helpers.log import Log
8
9
  from stoobly_agent.app.models.factories.resource.local_db.helpers.log_event import DELETE_ACTION, LogEvent
9
- from stoobly_agent.cli import record, request, snapshot
10
+ from stoobly_agent.cli import record, request, scenario, snapshot
10
11
  from stoobly_agent.lib.orm.request import Request
11
- from stoobly_agent.test.test_helper import DETERMINISTIC_GET_REQUEST_URL, reset
12
+ from stoobly_agent.lib.orm.scenario import Scenario
13
+ from stoobly_agent.test.test_helper import assert_orm_request_equivalent, DETERMINISTIC_GET_REQUEST_URL, NON_DETERMINISTIC_GET_REQUEST_URL, reset
12
14
 
13
15
  @pytest.fixture(scope='module')
14
16
  def runner():
@@ -107,4 +109,71 @@ class TestPrune():
107
109
 
108
110
  apply_result = runner.invoke(snapshot, ['prune'])
109
111
  assert apply_result.exit_code == 0
110
- assert len(log.events) == 0
112
+ assert len(log.events) == 0
113
+
114
+ class TestWhenRemoveScenarioRequest():
115
+ '''
116
+ 1. Create scenario
117
+ 2. Add 2 requests to it
118
+ 3. Snapshot scenario
119
+ 4. Snapshot request with action DELETE_ACTION
120
+ 5. Prune, but because scenario depends on the request, should not be able to prune
121
+ 6. Apply
122
+ 7. Expect scenario to have 1 request
123
+ '''
124
+
125
+ @pytest.fixture(scope='class')
126
+ def created_scenario(self, runner: CliRunner):
127
+ create_result = runner.invoke(scenario, ['create', 'test'])
128
+ assert create_result.exit_code == 0
129
+ return Scenario.last()
130
+
131
+ @pytest.fixture(scope='class', autouse=True)
132
+ def created_scenario_requests(self, runner: CliRunner, created_scenario: Scenario):
133
+ record_result = runner.invoke(record, ['--scenario-key', created_scenario.key(), DETERMINISTIC_GET_REQUEST_URL])
134
+ assert record_result.exit_code == 0
135
+
136
+ record_result = runner.invoke(record, ['--scenario-key', created_scenario.key(), NON_DETERMINISTIC_GET_REQUEST_URL])
137
+ assert record_result.exit_code == 0
138
+
139
+ return created_scenario.requests
140
+
141
+ @pytest.fixture(scope='class', autouse=True)
142
+ def delete_event(self, runner: CliRunner, created_scenario: Scenario, created_scenario_requests: List[Request]):
143
+ snapshot_result = runner.invoke(scenario, ['snapshot', created_scenario.key()])
144
+ assert snapshot_result.exit_code == 0
145
+
146
+ time.sleep(0.5) # So events do not have the same uuid
147
+
148
+ created_request = created_scenario_requests[1]
149
+ snapshot_result = runner.invoke(request, ['snapshot', created_request.key(), '--action', DELETE_ACTION])
150
+ assert snapshot_result.exit_code == 0
151
+
152
+ log = Log()
153
+ events = log.events
154
+ return events[len(events) - 1]
155
+
156
+ @pytest.fixture(scope='class')
157
+ def apply_result(self, runner: CliRunner, created_scenario: Scenario):
158
+ prune_result = runner.invoke(snapshot, ['prune'])
159
+ assert prune_result.exit_code == 0
160
+
161
+ created_scenario = Scenario.find(created_scenario.id)
162
+ assert created_scenario.requests_count == 2
163
+ apply_result = runner.invoke(snapshot, ['apply'])
164
+
165
+ return apply_result
166
+
167
+ def test_it_updates_scenario(self, created_scenario: Scenario, apply_result):
168
+ assert apply_result.exit_code == 0
169
+
170
+ created_scenario = Scenario.find(created_scenario.id)
171
+ assert created_scenario.requests_count == 1
172
+
173
+ def test_it_maintains_requests(self, created_scenario: Scenario, created_scenario_requests: List[Request]):
174
+ created_scenario = Scenario.find(created_scenario.id)
175
+ assert len(created_scenario.requests) == 1
176
+
177
+ requests = created_scenario.requests
178
+
179
+ assert_orm_request_equivalent(requests[0], created_scenario_requests[0])
@@ -1 +1 @@
1
- 1.8.5
1
+ 1.9.0
@@ -11,7 +11,7 @@ from stoobly_agent.test.test_helper import DETERMINISTIC_GET_REQUEST_URL, NON_DE
11
11
  from stoobly_agent.app.models.adapters.raw_http_request_adapter import RawHttpRequestAdapter
12
12
  from stoobly_agent.app.models.adapters.raw_http_response_adapter import RawHttpResponseAdapter
13
13
  from stoobly_agent.app.settings.constants import firewall_action, request_component
14
- from stoobly_agent.config.constants import custom_headers, mode, record_policy, request_origin
14
+ from stoobly_agent.config.constants import custom_headers, mode, record_order, record_policy, request_origin
15
15
  from stoobly_agent.cli import config, intercept, mock, record, scenario
16
16
  from stoobly_agent.lib.api.keys.scenario_key import ScenarioKey
17
17
  from stoobly_agent.lib.orm.request import Request
@@ -355,7 +355,7 @@ class TestRecording():
355
355
 
356
356
  assert Request.count() == 2
357
357
 
358
- class TestOverwritePolicy():
358
+ class TestOverwriteOrder():
359
359
 
360
360
  @pytest.fixture(scope='class', autouse=True)
361
361
  def created_scenario(self, runner: CliRunner):
@@ -377,7 +377,7 @@ class TestRecording():
377
377
  _created_scenario = Scenario.find(created_scenario.id)
378
378
  assert _created_scenario.requests_count == len(recorded_requests)
379
379
 
380
- config_results = runner.invoke(intercept, ['configure', '--mode', mode.RECORD, '--policy', record_policy.OVERWRITE])
380
+ config_results = runner.invoke(intercept, ['configure', '--mode', mode.RECORD, '--order', record_order.OVERWRITE])
381
381
  assert config_results.exit_code == 0
382
382
 
383
383
  set_results = runner.invoke(config, ['scenario', 'set', created_scenario.key()])