From 7b197f5e6c8331c4dfae6d0e86b44712562b7e11 Mon Sep 17 00:00:00 2001 From: roost-io Date: Sun, 11 Jan 2026 06:43:13 +0000 Subject: [PATCH] Functional test generated by RoostGPT Using AI Model gpt-4-turbo-2024-04-09 --- functional_tests/README.md | 23 +++ .../.roost/roost_metadata.json | 34 +++++ .../TCSBaNCS_functional-after-fix.csv | 10 ++ .../TCSBaNCS_functional-after-fix.docx | Bin 0 -> 12436 bytes .../TCSBaNCS_functional-after-fix.feature | 138 ++++++++++++++++++ .../TCSBaNCS_functional-after-fix.json | 1 + .../TCSBaNCS_functional-after-fix.xlsx | Bin 0 -> 10161 bytes 7 files changed, 206 insertions(+) create mode 100644 functional_tests/README.md create mode 100644 functional_tests/TCSBaNCS_functional-after-fix/.roost/roost_metadata.json create mode 100644 functional_tests/TCSBaNCS_functional-after-fix/TCSBaNCS_functional-after-fix.csv create mode 100644 functional_tests/TCSBaNCS_functional-after-fix/TCSBaNCS_functional-after-fix.docx create mode 100644 functional_tests/TCSBaNCS_functional-after-fix/TCSBaNCS_functional-after-fix.feature create mode 100644 functional_tests/TCSBaNCS_functional-after-fix/TCSBaNCS_functional-after-fix.json create mode 100644 functional_tests/TCSBaNCS_functional-after-fix/TCSBaNCS_functional-after-fix.xlsx diff --git a/functional_tests/README.md b/functional_tests/README.md new file mode 100644 index 00000000..89dc56be --- /dev/null +++ b/functional_tests/README.md @@ -0,0 +1,23 @@ +# Roost Generated Functional Test + +**Execution Date:** 1/11/2026, 6:43:12 AM + +**Test Unique Identifier:** "TCSBaNCS_functional-after-fix" + +**Input(s):** + 1. bankspromot.txt + Path: /var/tmp/Roost/RoostGPT/TCSBaNCS_functional-after-fix/b1c4508f-568b-404f-9130-7231e18042e2/bankspromot.txt + 2. TCSBaNCS_ST_BSSB_FSD_CallCenterOperator_v14.2.docx + Path: /var/tmp/Roost/RoostGPT/TCSBaNCS_functional-after-fix/b1c4508f-568b-404f-9130-7231e18042e2/TCSBaNCS_ST_BSSB_FSD_CallCenterOperator_v14.2.docx + 3. TCS BaNCS-Functional Specifications-Securities Back Office Processing-v1.8.1.docx + Path: /var/tmp/Roost/RoostGPT/TCSBaNCS_functional-after-fix/b1c4508f-568b-404f-9130-7231e18042e2/TCS BaNCS-Functional Specifications-Securities Back Office Processing-v1.8.1.docx + +**Test Output Folder:** + 1. [TCSBaNCS_functional-after-fix.json](TCSBaNCS_functional-after-fix/TCSBaNCS_functional-after-fix.json) + 2. [TCSBaNCS_functional-after-fix.feature](TCSBaNCS_functional-after-fix/TCSBaNCS_functional-after-fix.feature) + 3. [TCSBaNCS_functional-after-fix.csv](TCSBaNCS_functional-after-fix/TCSBaNCS_functional-after-fix.csv) + 4. [TCSBaNCS_functional-after-fix.xlsx](TCSBaNCS_functional-after-fix/TCSBaNCS_functional-after-fix.xlsx) + 5. [TCSBaNCS_functional-after-fix.docx](TCSBaNCS_functional-after-fix/TCSBaNCS_functional-after-fix.docx) + +--- + diff --git a/functional_tests/TCSBaNCS_functional-after-fix/.roost/roost_metadata.json b/functional_tests/TCSBaNCS_functional-after-fix/.roost/roost_metadata.json new file mode 100644 index 00000000..5c4efee4 --- /dev/null +++ b/functional_tests/TCSBaNCS_functional-after-fix/.roost/roost_metadata.json @@ -0,0 +1,34 @@ +{ + "project": { + "name": "TCSBaNCS_functional-after-fix", + "created_at": "2026-01-11T06:43:12.246Z", + "updated_at": "2026-01-11T06:43:12.246Z" + }, + "files": { + "input_files": [ + { + "fileName": "TCSBaNCS_functional-after-fix.txt", + "fileURI": "/var/tmp/Roost/RoostGPT/TCSBaNCS_functional-after-fix/b1c4508f-568b-404f-9130-7231e18042e2/functional_tests/TCSBaNCS_functional-after-fix/TCSBaNCS_functional-after-fix.txt", + "fileSha": "cf83e1357e" + }, + { + "fileName": "bankspromot.txt", + "fileURI": "/var/tmp/Roost/RoostGPT/TCSBaNCS_functional-after-fix/b1c4508f-568b-404f-9130-7231e18042e2/functional_tests/TCSBaNCS_functional-after-fix/bankspromot.txt", + "fileSha": "0664b099ba" + }, + { + "fileName": "TCSBaNCS_ST_BSSB_FSD_CallCenterOperator_v14.2.docx", + "fileURI": "/var/tmp/Roost/RoostGPT/TCSBaNCS_functional-after-fix/b1c4508f-568b-404f-9130-7231e18042e2/functional_tests/TCSBaNCS_functional-after-fix/TCSBaNCS_ST_BSSB_FSD_CallCenterOperator_v14.2.docx", + "fileSha": "55a242034e" + }, + { + "fileName": "TCS BaNCS-Functional Specifications-Securities Back Office Processing-v1.8.1.docx", + "fileURI": "/var/tmp/Roost/RoostGPT/TCSBaNCS_functional-after-fix/b1c4508f-568b-404f-9130-7231e18042e2/functional_tests/TCSBaNCS_functional-after-fix/TCS BaNCS-Functional Specifications-Securities Back Office Processing-v1.8.1.docx", + "fileSha": "2cd5271236" + } + ] + }, + "api_files": { + "input_files": [] + } +} \ No newline at end of file diff --git a/functional_tests/TCSBaNCS_functional-after-fix/TCSBaNCS_functional-after-fix.csv b/functional_tests/TCSBaNCS_functional-after-fix/TCSBaNCS_functional-after-fix.csv new file mode 100644 index 00000000..afd3222d --- /dev/null +++ b/functional_tests/TCSBaNCS_functional-after-fix/TCSBaNCS_functional-after-fix.csv @@ -0,0 +1,10 @@ +Agent Login and MFA Verification +Customer Verification via Call Center +Real-time Data Feed Integration +Transaction Execution and Settlement +Compliance Report Generation +Session Timeout and Automatic Logout +Data Encryption Verification +Real-time Data Accuracy +Error Handling and Alert Management +Verify Security Transfer Within and Between Banks \ No newline at end of file diff --git a/functional_tests/TCSBaNCS_functional-after-fix/TCSBaNCS_functional-after-fix.docx b/functional_tests/TCSBaNCS_functional-after-fix/TCSBaNCS_functional-after-fix.docx new file mode 100644 index 0000000000000000000000000000000000000000..65a064f8d3660397b72f3657132d6c3684daccef GIT binary patch literal 12436 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' and '' into the login form + And I click the 'Login' button + Then I should see the MFA prompt + When I complete MFA using a registered device + Then I should be redirected to the dashboard + And I should see '' + + Examples: + | username | password | expected_dashboard_feature | + | agent1 | pass123 | Portfolio Overview | + | agent2 | pass456 | Recent Transactions | + + # API Test Scenarios for Customer Verification via Call Center + @api + Scenario Outline: Customer Verification via Call Center + Given the API base URL is 'https://api.financialservice.com' + And the authorization token is set + When I send a POST request to '/api/customer/verify' with payload: + """ + { + "identification_type": "National ID", + "national_id": "" + } + """ + Then the response status should be 200 + And the response should contain 'verified' with value 'true' + And the response should contain 'customer_details' + + Examples: + | national_id | + | 123456789 | + | 987654321 | + + # API Test Scenarios for Real-time Data Feed Integration + @api + Scenario: Real-time Data Feed Integration + Given the API base URL is 'https://api.marketdata.com' + When I send a GET request to '/api/data/real-time' + Then the response status should be 200 + And the response should contain 'data' + And the data should be up-to-date + + # API Test Scenarios for Transaction Execution and Settlement + @api + Scenario Outline: Transaction Execution and Settlement + Given the API base URL is 'https://api.tradingplatform.com' + And the authorization token is set + When I send a POST request to '/api/transactions/execute' with payload: + """ + { + "transaction_type": "", + "amount": "", + "account_id": "" + } + """ + Then the response status should be 201 + And the response should contain 'transaction_status' with value 'completed' + + Examples: + | type | amount | account_id | + | buy | 1000 | acc123 | + | sell | 500 | acc456 | + + # API Test Scenarios for Compliance Report Generation + @api + Scenario: Compliance Report Generation + Given the API base URL is 'https://api.complianceservice.com' + When I send a POST request to '/api/reports/generate' with payload: + """ + { + "report_type": "compliance", + "period": "2023-Q1" + } + """ + Then the response status should be 200 + And the response should contain 'report_id' + And the report should meet regulatory standards + + # UI Test Scenarios for Session Timeout and Automatic Logout + @ui + Scenario: Session Timeout and Automatic Logout + Given I am logged into the system + And I perform no activity for the duration of the session timeout period + When I attempt to perform an action after the timeout period + Then I should be automatically logged out + And I should be prompted to log in again + + # API Test Scenarios for Data Encryption Verification + @api + Scenario: Data Encryption Verification + Given the API base URL is 'https://api.secureservice.com' + And I start the network monitoring tool + When I log in with valid credentials + Then all sensitive data should be encrypted in the network data + + # API Test Scenarios for Real-time Data Accuracy + @api + Scenario: Real-time Data Accuracy + Given the API base URL is 'https://api.marketdata.com' + When I compare the real-time data displayed in the system with actual market data + Then there should be no discrepancies + + # API Test Scenarios for Error Handling and Alert Management + @api + Scenario: Error Handling and Alert Management + Given the system is operational with all modules active + When I simulate various operational errors + Then the system should handle errors gracefully + And alert the user with understandable alerts + And log the errors accurately + + # API Test Scenarios for Security Transfer Within and Between Banks + @api + Scenario Outline: Verify Security Transfer Within and Between Banks + Given the API base URL is 'https://api.bankingservice.com' + And the authorization token is set + When I send a POST request to '/api/security/transfer' with payload: + """ + { + "transfer_type": "", + "source_account": "", + "target_account": "", + "securities": "" + } + """ + Then the response status should be 200 + And the response should contain 'transfer_status' with value 'successful' + + Examples: + | transfer_type | source_account | target_account | securities | + | Within Bank | acc789 | acc987 | 50 shares | + | Outside Bank | acc789 | ext123 | 30 bonds | diff --git a/functional_tests/TCSBaNCS_functional-after-fix/TCSBaNCS_functional-after-fix.json b/functional_tests/TCSBaNCS_functional-after-fix/TCSBaNCS_functional-after-fix.json new file mode 100644 index 00000000..242be1b0 --- /dev/null +++ b/functional_tests/TCSBaNCS_functional-after-fix/TCSBaNCS_functional-after-fix.json @@ -0,0 +1 @@ +[{"type":"functional","title":"Agent Login and MFA Verification","description":"Test the multi-factor authentication process for agent login to ensure security compliance.","testId":"TC-001","testDescription":"Agent attempts to log in and is required to complete multi-factor authentication.","prerequisites":"Agent has valid login credentials and access to MFA device.","stepsToPerform":"1. Navigate to the agent login page.\n2. Enter valid agent credentials.\n3. Submit for authentication.\n4. Receive MFA prompt.\n5. Complete MFA using a registered device.","expectedResult":"Agent is successfully logged in after MFA verification and directed to the dashboard."},{"type":"functional","title":"Customer Verification via Call Center","description":"Verify the process of customer authentication using national ID through the call center interface.","testId":"TC-002","testDescription":"Agent uses customer's national ID to verify customer identity.","prerequisites":"Agent is logged in, customer has a national ID, and customer's data is correctly stored in the system.","stepsToPerform":"1. Access the customer authentication module.\n2. Select 'National ID' as the identification type.\n3. Enter the customer's national ID.\n4. Submit for verification.","expectedResult":"Customer is successfully authenticated and their portfolio details are displayed."},{"type":"functional","title":"Real-time Data Feed Integration","description":"Ensure real-time data feeds are correctly integrated and displaying updated information.","testId":"TC-003","testDescription":"Verify that the trading platform reflects real-time data from TCS BaNCS.","prerequisites":"Market is open and data feed from TCS BaNCS is operational.","stepsToPerform":"1. Log into the trading platform.\n2. Navigate to the market data section.\n3. Observe the data feed for consistency and timeliness.","expectedResult":"The data feed updates reflect real-time changes accurately without any delays or errors."},{"type":"functional","title":"Transaction Execution and Settlement","description":"Test the complete transaction process from execution to settlement in the system.","testId":"TC-004","testDescription":"Execute a financial transaction and track it through to settlement.","prerequisites":"Agent is logged in, customer's account is set up for trading, and necessary funds/securities are available.","stepsToPerform":"1. Initiate a buy/sell order on behalf of a customer.\n2. Confirm order details and submit for execution.\n3. Monitor order status through to execution.\n4. Verify post-trade processes including settlement and updating of customer's portfolio.","expectedResult":"Order is executed as per market conditions, settled correctly, and customer's portfolio is updated accurately."},{"type":"functional","title":"Compliance Report Generation","description":"Ensure the system can generate compliance reports as per regulatory requirements.","testId":"TC-005","testDescription":"Generate and review a compliance report for a specified period.","prerequisites":"Relevant trading data is present in the system for the period in question.","stepsToPerform":"1. Navigate to the compliance report section.\n2. Select the period for the report.\n3. Generate the report.\n4. Review the report for accuracy and completeness.","expectedResult":"Compliance report is generated successfully, containing all required data and adhering to regulatory standards."},{"type":"functional","title":"Session Timeout and Automatic Logout","description":"Verify that the system automatically logs out a user after a period of inactivity.","testId":"TC-006","testDescription":"Test the session timeout to ensure that the user session expires after the configured period of inactivity.","prerequisites":"User is logged in to the system.","stepsToPerform":"1. Log in to the system.\n2. Perform no activity for the duration of the session timeout period.\n3. Attempt to perform an action after the timeout period.","expectedResult":"User should be automatically logged out and prompted to log in again."},{"type":"functional","title":"Data Encryption Verification","description":"Ensure that sensitive data is encrypted when transmitted over the network.","testId":"TC-007","testDescription":"Verify that all sensitive data, including passwords and personal information, are encrypted during transmission.","prerequisites":"User is on a secure network and has network monitoring tools available.","stepsToPerform":"1. Start network monitoring tool.\n2. Log in with valid credentials.\n3. Monitor the data packets captured by the network tool.","expectedResult":"All sensitive data should be encrypted and not readable in the captured network data."},{"type":"functional","title":"Real-time Data Accuracy","description":"Verify that the real-time data feeds display accurate and up-to-date information.","testId":"TC-008","testDescription":"Ensure that the data feeds from external sources are accurate and reflect real-time changes.","prerequisites":"Market is open, and real-time data feeds are operational.","stepsToPerform":"1. Log into the system during market hours.\n2. Compare the real-time data displayed in the system with the actual market data from a reliable source.\n3. Check multiple data points such as stock prices and currency rates.","expectedResult":"The data displayed in the system should match the actual market data without any discrepancies."},{"type":"functional","title":"Compliance with Financial Regulations","description":"Test the system's compliance with the specified financial regulations.","testId":"TC-009","testDescription":"Verify that the system adheres to financial regulations such as TASE, ISA, and ITA during transactions.","prerequisites":"System is configured with the latest regulatory rules.","stepsToPerform":"1. Perform a series of transactions that are typically scrutinized under financial regulations.\n2. Review the transaction logs and reports for compliance.\n3. Ensure that all regulatory checks are performed and logged.","expectedResult":"All transactions should comply with the financial regulations, and appropriate logs should be generated."},{"type":"functional","title":"Error Handling and Alert Management","description":"Ensure that the system properly handles errors and alerts the user accordingly.","testId":"TC-010","testDescription":"Test the system's ability to handle unexpected conditions and alert the user.","prerequisites":"System is operational with all modules active.","stepsToPerform":"1. Simulate various operational errors such as network failures, data input errors, and access violations.\n2. Monitor the system's response and the alerts generated.\n3. Check the error logs for appropriate entries.","expectedResult":"The system should handle errors gracefully, inform the user with understandable alerts, and log the errors accurately."},{"type":"functional","title":"Verify Security Transfer Within Bank","description":"Test the process of transferring securities within the same bank between different customer accounts.","testId":"TC-011","testDescription":"A user initiates a security transfer from one customer account to another within the same bank.","prerequisites":"Both source and target customer accounts exist and are active, with sufficient securities for transfer.","stepsToPerform":"1. Log into the system as a bank officer.\n2. Navigate to the security transfer module.\n3. Select 'Within Bank' transfer type.\n4. Enter source and target account details.\n5. Select securities and quantities to transfer.\n6. Submit the transfer request.\n7. Verify the transfer by checking both accounts.","expectedResult":"Securities are debited from the source account and credited to the target account without any errors, and the transfer details are correctly recorded in the system."},{"type":"functional","title":"Verify Security Transfer Between Different Banks","description":"Ensure the system handles securities transfers between different banks correctly, complying with regulatory requirements.","testId":"TC-012","testDescription":"A user processes a security transfer from a customer account in the bank to another bank.","prerequisites":"Source customer account exists and is active, with sufficient securities for transfer. External bank details are correctly configured in the system.","stepsToPerform":"1. Log into the system as a bank officer.\n2. Access the security transfer module.\n3. Select 'Outside Bank' transfer type.\n4. Input source account and external bank details.\n5. Choose securities and set quantities for transfer.\n6. Submit the transfer request and receive a confirmation.\n7. Confirm the transfer details are sent to the external bank.","expectedResult":"The system correctly processes the transfer, sends the necessary details to the external bank, and logs the transaction accurately."},{"type":"functional","title":"Validate Real-time Data Accuracy in Trading Platform","description":"Confirm that the trading platform displays accurate and up-to-date market data in real-time.","testId":"TC-013","testDescription":"Verify the accuracy of real-time data displayed on the trading platform against an external verified source.","prerequisites":"The trading platform is operational, and external real-time data sources are available for comparison.","stepsToPerform":"1. Log into the trading platform during active market hours.\n2. Select a set of securities to monitor.\n3. Compare the real-time data from the platform with data from an external verified source.\n4. Record any discrepancies.","expectedResult":"All data on the trading platform matches the external source, ensuring data integrity and accuracy."},{"type":"functional","title":"Test Order Amendment Post-Execution","description":"Test the ability to amend orders after execution to correct any errors made during order entry.","testId":"TC-014","testDescription":"A bank officer amends an executed order to correct a mistake.","prerequisites":"An executed order exists that requires amendment. User has necessary permissions to amend orders.","stepsToPerform":"1. Log into the system as a bank officer.\n2. Navigate to the executed orders module.\n3. Select an order to amend.\n4. Make necessary corrections to the order details.\n5. Submit the amendment.\n6. Verify that the amendment is reflected in the system and check for any related adjustments in the accounts.","expectedResult":"The order is amended correctly, all related accounts are adjusted accordingly, and the system logs the amendment accurately."},{"type":"functional","title":"Verify Compliance with Financial Regulations for Transactions","description":"Ensure all transactions comply with financial regulations such as TASE, ISA, and ITA.","testId":"TC-015","testDescription":"Conduct a series of transactions and verify their compliance with the specified financial regulations.","prerequisites":"System is configured with the latest regulatory rules. Transactions types and scenarios are predefined.","stepsToPerform":"1. Log into the system as a compliance officer.\n2. Perform various transactions including buys, sells, and transfers.\n3. Review transaction logs and reports for compliance.\n4. Check that all regulatory checks are performed and logged.","expectedResult":"All transactions comply with financial regulations, and appropriate logs and reports are generated and stored in the system."}] \ No newline at end of file diff --git a/functional_tests/TCSBaNCS_functional-after-fix/TCSBaNCS_functional-after-fix.xlsx b/functional_tests/TCSBaNCS_functional-after-fix/TCSBaNCS_functional-after-fix.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..c107a9bd9aeb8c30bef892e53dfdc1447b3f8c9e GIT binary patch literal 10161 zcmaia1yGzzv-T3)-96~y?(PlTi*yPfcC2JEv|Kr}!K&x%3u; zwuFwX%6T-5xCQ-;rTLRh@YD^qxH(U&PA&&5f30FO90Sp;Y=0*fMsLGLr znq5P^nhz&_k7 zD%9vmaich%g9p)Xyfz-)y#mJyU}YT4Vr&I3$Lc`3;vyI5kff1mu-AuPYw>ypvfmyp ze34bhY!dQozY3h7BVT{ldra?Y;J>gAB;Om(6~tJ$-K&1XPam`grQ<4Gwoa(@Kal|Z z6^SS3|2<%yei=BLSUWNQlKB~}(+{$XyHC&Lp8)`ff6FlakSveuQtV+t5&?TkZr-KZ z%D`pkx02;8Q*#J?q_ichkIL;0I0A>oh#*B-z(zY9Y?}@5j|xQXMX6j8Au*H^U_lR$ zg^Yb1ezb5vr9*@Xp@3zx&qGSvGJQ~>kSiW+2Wer;48XX@UT3*92);iRMIyrcr`d^_m76&HjuLV)ep}$KY5nmpJH$A9If8i z*;)N~6Mi|`vWEpt0{nnbeWmTHEeDKs0{ZFdTtNobH7HoinseJcT&WYv5W!``e&{Wm zPwAK0AHCuUeW@@FTbV^Chqm*gsvV5w$+2{2hSs~NBM1dTpr)Lke!I_2#Ia56=tUX( zLI7w#av~|mh9dn!GIZzc1>s~7@9^|s(Ww4gS`CvM%Be4qdx$TqYY`^LUXi5&*L~W= zmo8xp0(c{LZsYjyc=gp;>~0Jw zeB2gxbB!~y5yxUcemF>eioeNmD>>Rp`)i7h5j!Ih&JP3W3V5n6E(zyU9L!YbPo-7&ZH-cw|4k*42 z)!lfP2%FTDxrA-E4a|Tlifj@W4jRR&($1U5D<8I?EiUz23GdZ9Mrx%R94j-OoA(1A z@5f>>d0QqOJBBX^)5~?D=9v$eSFHD=Y|MDULg~(^H_}Fjy+VT6doOQVuy59ioIzqs zaWv|iiPw5Xu)Yj(paevrFr6=`=XY z;L|^f&CsSA_Nl!Fk9<{wt8d`=c-Kc<0({3|?%J>!gfGe4q z#hy!UDkW&Du%#UF3P6(wLzbuqNx2aQ@5R;uA=B3gc(}9lC%5z`;iNt*4xsm)?!qH0 z591VJ%LGtv5c;0i>G)1~ajv0p8iEMoql$h>r2H*m?1^aaX)x**n(FXNf`c7K#>&*D z+c%O1FnA3^hQIoZXjy|DKgV=3x6c^D#U46_4-Ybrvld3C57YNtgwWU6)2e&Cz0#CV zVzf>=YEW#Y9^$kCIp)g7x6J`^GlP)KZW%y&usngrsr;lQ2ucG`98eA4UuQZC7<79U z6KMyCJ7N6zwS(X@al*wH5?(<6bT78b-kZn-oG}96GPkJQI=2Xov3JC@$5(SrlFM5n z(aG}#^l^0lX9QIgS>*iB_)MimXb#|Z&i!&lZ|3(A2LLogu?}=*#(6|>v5s<5L#+6~ zZR0#t{~B&upof<-KDn7m9?|<)M{TJg2YmD1clbb9(>zp+T5ei453dyb*S*>Jz(UhJ zqO@2?TdAQgd?1Zk9%|0hV}1{>HTr}3gHp_Cc1Ab9HPp+h?+9Nxv z{UheX?^<+J!&ei^dHfUU((c*dd^IrSw#pTAwqiY1nr;Mmj0o42k#Hujc{2Xu!Y3a_ zQg{0{qLvhT!fjo;$I0B#(ZpEQ+0nw*%;`tkY1h_yyVQj4eO3AKMEryCf@00W z;p_>?Cx-?hGbi5IMz3HQ88Pu#B*2iekJt7y->)wk-Y#`e_EWO5C*N#Ulp1t^5vn!% z_DVdR+<7~BuuDctbd%D!3p-akh3|ING--x)any@f(n%5oAHLmg4r$YTHMdwzx6LT^ z5fW}(cy*YUp;1q_Hrm3*zx(xNEpKDJGFzig{+9|K9|wn%TTdF7cXTx+K;kMd2;Ec_ zAFJsoAIF=$^V^}lefqbDDD^FTZ|5|&uN!>|^jO`J>C^D__?w2ldYCNh30SfP+p-4eL$}-W-}?*+@OD>ga)bMS8ijJ zP(^1I=?cp-P{CBkz|Kip)xz7_)I@}<$yexFUn_%Qj>z2J;E!dl7Ht>WzLGW2&0s`x6JrLOKFlLotfBX*Bh&j)%R*wSW{<*n4W|=H6FD&UAS?`o&FD+- z3Pgc<9R)j4#Ex>Td@HRj8q6bd72#zawcNulwWXNoM z+cf!BJ@v^=NNVmVml>3uJUA>5#!pcU2oAYQR1f0khkmrMU(~H)p;ZLUPov}qSICZ5 zxP=8UbL;{ zfq+h@I>|oi`r$28h6IL|$vDz$4mZ1bb2k$YKo2+*X*sB0kj_f%Q!AYvLf^3p_D9t! z22vg68^0KZP%!CX)LPQM@(FKOGO|ES2cKFjyKntz-+Y%~ zEjsAB84FC`bAKs)JL_ZICinrVXO(vA&UZ2?Eo%-`&5sif<#*6yh#_)mA*tqN9Io;# zuBN084}19FW2o;PZVS{1(!~<*2u`)ASJ-7uIRp1GOpSCvA5@Q!d1E=jfcZBF78ow* zAiV6z;t@Df3VC{2H-|f7M{}ea`EOYw3lPCH?5-ohOxYN!oT-wMaakOMKoV4JqzVm4 zb4Xe11K^l?zDU_zDN}u97bWDCXp}Z5C z63(~FFLTeet3MA4UN`GvzkIp4S`P+yS%4aN(P^;8P~l$U^pucEdCY^C0LqCq$MaPr3CK@Sh}#*P z!s2fJSBYwf0pLCye=NBf?~WkCk5)}?{t!p1FNBOcq1N%f9g*)jIe-3?1K|rv!akyZ zd|d5(a7f+5x=U{>gC>J6|6*g`7M}x2A8`W5x{9=v2L62|4QAkl7(cV~QiWtnsM$4& zyP{J31se+)S%D1!rs!R$NT&`8p$+L;?8Qh)!m!_pVQ&`ry`)wcnS_MlioLT4et!jc z8AZ9}t1Bk{bmnuY$e6+P3lAD;J1g=fT;9B(Y(r&e2!=1!4pUeJUyxrrizMugEU~e} z5&(&8R_rjX!~(0(;;!g|kv~cJZbMFYr>Uu08sj6EoVn748rC zUhh)&roj6{NrP0&ZamFa!Moz&pl`Iten25)US=(hQn%F z+Gm`7DZlXYJs89x!0zLoQ+PLZ82uS>1;R53dN#=0Z+}RSF^XWyjct~8>`y;fbRW6ByCqdLS2+EK-+{ZkISCEs-(S1N~s35lB5ymEFb zh(kp+#~lw6t421KpE0rF>l;okGKzyZIzQ)Qp$0kwo?)Xwz6@sBJf$jALG5$Nvb9C( zfx3kL?EASw92m_6+EmeK6_8Yu0fU{{x^44o+RU39E!qJ^Qez-@u9Ls_$8%cots&ns9ZDG2^$DnmU`iVu zyfMA-VAB1x#tTjGX{RW=j{mq@m#)p&6Z~fKj;X3{;~5* zfIlD4oE4AQT@ugn7WtIheFsrRnI`EXD9oBx3Vv;kF2Sr+1-U5;Q>JLLK|kM16jrP) z$j&R()L5ognPO5LK9BJ&q3&H4?8v-zgO)gE_Q`Bm<~?l`)T3%WVmXt{F!t#QX7!_+ zVNqU{w%dXZBPGvqX^>lBBYb5ymtj#-mZ`8`E>#LmrXtMR$4063Oev?asBoTl#JFgz zOJx?C5|Hn220;!ubMHD&ccHqP#L`}LTP|cMZCU2);pNBY+~?oFC>rxOE|1UG0oPcB zB?MA|$az$`&RKDTR7lyYISqHq$SJ{MohzieYyPJ1# zXEfYh*y>&L%Clw8$1;7UneXWGZGx$^fJBsqug2z5Nlgj(p-EBZxrlTIC=g&^e=4M3 zqc6@KF+pDTjJh4v*Q^gBZU#{u%*HUvsiN?NGdt}U!W+_H%tt#!yyGXw3VtnJ!;Qkn zQuY!F2~GFPJMdwl@;Eq3dwhJlVv;-3)iE%}HS{BEL*E99a65zgAr^sL_#jFvUH`W{ zAc<(s3?sPAfnjv?B3T(Wum$_DEMhlPGXq~b+3M3QteoauB;&`4Wvd+qUNYoD%oRVX zX3QOCFi`WI=nFunNwRMKS9W!FSF(qB1!a0tWY?uf6qo#d7k7*6YE$p)9b^>UV>12oB3 z_&>OP3bpBypy$@SX5v%MxY20{T!m*FO=z4K#fUeM_O|8V**YVJ27IVwWY5;C&eCE= zbrz?E1Ruv6F3k;m&vri?vXidC+o3KA45YC326#~>9k(DPi40{#vCfs+99gLQ%N7gs zh1=Z}I&yp^8ksNh&Z~%B?8QLL^S`RR>C8gO<^!gu90ld%EfSVAp63tBpeveoWx3+Pv99+gmdW7v%$9jl{V``MWRn^PuFK#&$+6A~0G?OQ!&-qP+4+9?0;TgHMy1vQ*HZj@Nu- zfss8IInp(joM3ELg(V)ncqkI-gn|jiS0;&so`9S)Y7np0_h8MQk~Y(#ixA4HvW8cK z=`$5VtTS|!djBnDpOTQ%NLrF``@0*Wr_aIWNkn{qXQseA$J1+E%rl&5&y1Vf5a#bU zN9^ZUXJ7;2hZcV_mu^yFpT|2p19h^*XwQq$T44hLkBdWGpNH$|z*P*lyp0eJN{nSH zX>(A>*AKGL_+jiS!4L&h2q*wcu}gI&v6YNBrckc3yuqkYb%+$FTbs&*D-R+HSe)c` zu!iu>J-qvlhL^jpIf_>n7&q9rpCn+93_Z=&R&_MLJyHgLDUix;_f1e(HmN$Er$JYy zeb)+jLP$Pqs?~170hKa z=1a_lJgk(xr^4$cq7XE(a^dfP0A1DQIkZZ?@irs;sT0(MT#*JqJQpQqK`-z zpHcN{q4#UW_nV^PuEhUPm`*&L+{GW7k^Rsg0` z6OkHU2-X24PWdKz%*WQgP#Papun%B)VDv83qL`g-IwV+=>`kgmu=6yG5FS5MXRNa! zx|O*$C5>^*H+~UQ;X5~x)niAmX&Kt8KPxROoKJL_%|OT)v*5E4{HUY@M`K_$Jx5Rs z9V3~H&a4%wAk(1<_V~8P>9zap0DY=$%c}k6aeY61;(bJf$0*v{B_$6AZM>Y^==viL zBE)8%BTXZo;4UM)0EH9|+L8Mrqh`7@m!L(xbMN-&yL+64i#IiynlklKCNUUh;BaR5 z=cBQ~Q*!=}%9(hr<0TCoOBdglaXc)#2Hg~N)j9K{&Kf;)Lg!K2C^+6=R)=&2yh?Q^ zNvyKrIQ8>Aw=>bwVmfQ{#pzTWqDQRd`KTpYcab0iznfJ>LA)oms4mo2`*IZVVzBuf zxO$_To)?WY{qO&o!UZEvpUAhPV|TPs8V^o?#m!k=l%@GE~{Il4W7Q+B~EI$%X4` z%PeUIQurK05XEbQ+d!i;^iV;X)xtS;3{gva%EpIKim3;$j$_Zict zAI*DvdS@v(wV^&jg-`dHowq!PuVZ`RsS)9B(J5M>T0X=SK;|t zQK0#K^#rYQ3|kK@^)a3(9;bHXTmxB?wyWQUMNj!~Z@ zPcK`lcB`jfZqS;9y-o~*4+dXW)VEOEj%&~FFaUX%EhK})Nz5W4UL#WX#gW&b|}FJ&zCnB3p1B;X(LDEX!s% z=-VD@u%DJ|{G9i6OTVKQG#*u{IsL&FNAf!GaYSxq=s4kGz@Uz}w&1!eLk+E!psW@( z>QHBzAani0+fq=(g&v8!lMm;W=^Vo;&V=QmWbM+7dj|9Uc;|!5rRD00X@3Yzj0pwV zaAXAWsPGHz@Xve!58mHDUN&Dz;@y47`FM3|C46kkn&EMF&3AfA3paOS?SlJlBIRl) zsx$DV|7$iQ z6zlhNB~I~lpNRIfj{g=jw737!KF){}wOe9A3Ig9@2OmWpRL};Cyi(4icQ>B^$hNZ6 zPgN^vu}RFzT<+8Ghwhj0A707`3HTHg*26N4(!L+2G@!PxAY#^izuGjS?SZ5Zu4tjGp2Jdz~_@TJ;W@TT%IdxX)w=U z?J5`GCKK$DXG?KkYam|}zoPj(*JY1d*`GG|>EikK%Qbay%L%*IE^Us3&;c2wrL z)AgUiweggC(Ek}OBRfZvzv87b{DZ&Hc18buH2_ltPLf>4=2NjuB7)^inicccxcT?( z9Gl>M0U42R(@SGx2X3T_N!!m+y+865&-nM|hC*dE;iw$q8n&{l| zP13?2rwUDL$?P9=5{IW?p#H1@|GYqtij%kNW3?Hy;x@>KXgDX zmZvyXi95Z%bVAJFa9G3WSG+%4ReWC>Kd}iQr!zww>c^*gonM-;jD3E$?{zLAtI+*Q zj2{tNP&}{n)bO3NVW*4jOP19>e=gundNnN}%k$_A*a(_>L@7$=o@hx@5w&Uv8L3*? z_oFH3Lz9T)s8=kydi3y>iVZN|7U|Y4!0^X|jpVL%E=x zMy@e6YT#DBKi_ZJ8w)+e_HspE`R*HdBq|wnCW77EZDpu8%7;M6qGBG##y4ezBap^$ zOBgV4imN0K@eB*_-)TKhq4>x64_{4g6n&*EpBYv6wGhO}3jrfHI0M!45{mqp4?XjP;{CUm! zdzNvyzbyFIrRVP%{x26!KCw3b?gspZ{Z#yC+u*n2n}5Q7Hxd4v;Lly+?+N6Iep>$b zp7A&I|1$Z2