diff --git a/applications/FinancialExample.rs b/applications/FinancialExample.rs index 3c813c5..8911105 100644 --- a/applications/FinancialExample.rs +++ b/applications/FinancialExample.rs @@ -1,10 +1,15 @@ -use ckks_engine::utils::{encode, decode, mod_reduce}; +use ckks_engine::utils::{encode, decode}; use ckks_engine::{CKKSEncryptor, CKKSDecryptor, CkksParameters, Polynomial}; +use std::error::Error; +use csv::Reader; +use chrono::NaiveDate; +use chrono::Datelike; -fn main() { + +fn main() -> Result<(), Box> { // Initialize CKKS parameters let params = CkksParameters::new(4096, 1000000000000007); - let keygen = ckks_engine::KeyGenerator::new(); // No arguments required + let keygen = ckks_engine::KeyGenerator::new(); let (public_key, secret_key) = keygen.generate_keys(); let encryptor = CKKSEncryptor::new(public_key.clone(), params.clone()); @@ -12,57 +17,98 @@ fn main() { const SCALE: f64 = 1e7; // Scaling factor for encoding - // Step 1: Define transactions (plaintext) - let transactions = vec![500.69, -200.0, 300.0]; // Example transaction amounts - let labels = vec!["Deposit: +500", "Withdrawal: -200", "Deposit: +300"]; // Corresponding labels + println!("Current working directory: {:?}", std::env::current_dir()?); - // Step 2: Encrypt transaction amounts - let encrypted_transactions: Vec = transactions - .iter() - .map(|&value| encode(&[value], SCALE)) - .collect(); + // File path to the dataset + let file_path = "transactions_2024.csv"; + + + // Specify the year and month to analyze + let year = 2024; + let month = 7; // For July + + // Step 1: Read and filter dataset + let (filtered_amounts, filtered_types) = read_and_filter_csv(file_path, year, month)?; - // Step 3: Encrypt transaction labels - let encrypted_labels: Vec = labels + // Step 2: Encrypt amounts + let encrypted_transactions: Vec = filtered_amounts .iter() - .map(|label| { - // Encode the label string as bytes and then encode as a polynomial - let bytes = label.as_bytes(); - let float_vals: Vec = bytes.iter().map(|&b| b as f64).collect(); - encode(&float_vals, SCALE) - }) + .map(|&amount| encryptor.encrypt_value(amount)) // Encrypt directly using `f64` .collect(); - // Step 4: Compute the total balance using homomorphic addition - let total_balance_encrypted = encrypted_transactions - .iter() - .cloned() - .reduce(|acc, value| encryptor.homomorphic_add(&acc, &value)) - .unwrap(); - // Step 5: Round the total balance for reporting - let rounded_balance_encrypted = encryptor.homomorphic_round(&total_balance_encrypted); + // Step 3: Calculate total Debit and Credit sums + let mut total_debit_encrypted = encode(&[0.0], SCALE); + let mut total_credit_encrypted = encode(&[0.0], SCALE); - // Step 6: Concatenate encrypted labels - let concatenated_labels_encrypted = encrypted_labels - .iter() - .cloned() - .reduce(|acc, label| encryptor.concatenate_encrypted_strings(&acc, &label)) - .unwrap(); + for (encrypted_amount, transaction_type) in encrypted_transactions.iter().zip(filtered_types.iter()) { + if transaction_type == "Debit" { + total_debit_encrypted = encryptor.homomorphic_add(&total_debit_encrypted, encrypted_amount); + } else if transaction_type == "Credit" { + total_credit_encrypted = encryptor.homomorphic_add(&total_credit_encrypted, encrypted_amount); + } + } - // Step 7: Decrypt and decode results - let total_balance = decode(&total_balance_encrypted, SCALE); - let rounded_balance = decode(&rounded_balance_encrypted, SCALE); + // Step 4: Decrypt results + let total_debit: Vec = decryptor.decrypt(&total_debit_encrypted); // Decrypt + let total_credit: Vec = decryptor.decrypt(&total_credit_encrypted); // Decrypt - // Decode concatenated labels back into plaintext - let concatenated_labels_plaintext: String = concatenated_labels_encrypted - .coeffs - .iter() - .map(|&c| (c as u8) as char) - .collect(); + // Step 5: Count transactions + let debit_count = filtered_types.iter().filter(|&t| t == "Debit").count(); + let credit_count = filtered_types.iter().filter(|&t| t == "Credit").count(); + + // Step 6: Print results + println!("Transaction Summary for {}/{}:", month, year); + println!("Total Debit Transactions: {}, Sum: {:?}", debit_count, total_debit); + println!("Total Credit Transactions: {}, Sum: {:?}", credit_count, total_credit); + + Ok(()) +} + +// Function to read and filter CSV data for a given year and month +// fn read_and_filter_csv(file_path: &str, year: i32, month: u32) -> Result<(Vec, Vec), Box> { +// let mut reader = Reader::from_path(file_path)?; +// let mut filtered_amounts = Vec::new(); +// let mut filtered_types = Vec::new(); + +// for result in reader.records() { +// let record = result?; +// let date = NaiveDate::parse_from_str(&record[0], "%d/%m/%Y")?; +// let transaction_type = record[1].to_string(); +// let amount: f64 = record[2].parse()?; + +// if date.year() == year && date.month() == month { +// filtered_amounts.push(amount); +// filtered_types.push(transaction_type); +// } +// } + +// Ok((filtered_amounts, filtered_types)) +// } + + +fn read_and_filter_csv(file_path: &str, year: i32, month: u32) -> Result<(Vec, Vec), Box> { + let mut reader = Reader::from_path(file_path)?; + let mut filtered_amounts = Vec::new(); + let mut filtered_types = Vec::new(); + + for result in reader.records() { + let record = result?; + println!("Processing record: {:?}", record); // Debug statement + + // Corrected date format + if let (Ok(date), Ok(amount)) = ( + NaiveDate::parse_from_str(&record[0], "%Y-%m-%d"), + record[2].parse::(), + ) { + if date.year() == year && date.month() == month { + filtered_amounts.push(amount); + filtered_types.push(record[1].to_string()); + } + } else { + eprintln!("Skipping invalid row: {:?}", record); // Log invalid rows + } + } - // Print the results - println!("Total Balance: {:?}", total_balance); - println!("Rounded Balance: {:?}", rounded_balance); - println!("Transaction Labels: {:?}", concatenated_labels_plaintext); + Ok((filtered_amounts, filtered_types)) } diff --git a/applications/transactions_2024.csv b/applications/transactions_2024.csv new file mode 100644 index 0000000..678be74 --- /dev/null +++ b/applications/transactions_2024.csv @@ -0,0 +1,701 @@ +Date,TransactionType,Amount +2024-01-13,Credit,415.33 +2024-05-05,Debit,376.29 +2024-11-12,Credit,951.94 +2024-06-01,Credit,251.9 +2024-08-24,Debit,796.63 +2024-07-01,Debit,899.96 +2024-08-12,Credit,726.21 +2024-03-09,Credit,63.01 +2024-02-21,Credit,362.84 +2024-10-22,Credit,513.61 +2024-10-05,Debit,432.22 +2024-10-09,Debit,751.55 +2024-05-09,Credit,836.01 +2024-08-13,Debit,467.98 +2024-10-28,Debit,803.69 +2024-12-02,Credit,456.54 +2024-05-09,Debit,834.85 +2024-08-22,Credit,211.77 +2024-09-15,Credit,954.53 +2024-12-12,Debit,437.8 +2024-08-06,Debit,323.43 +2024-07-30,Debit,841.31 +2024-04-03,Debit,144.51 +2024-04-27,Debit,262.6 +2024-09-29,Debit,556.07 +2024-08-22,Credit,212.21 +2024-08-05,Credit,587.07 +2024-05-25,Debit,689.82 +2024-07-13,Credit,825.36 +2024-10-19,Credit,976.3 +2024-02-04,Debit,938.35 +2024-02-07,Debit,800.88 +2024-03-31,Credit,33.18 +2024-06-23,Credit,163.66 +2024-03-05,Credit,142.82 +2024-07-05,Credit,423.12 +2024-10-30,Debit,937.53 +2024-02-25,Debit,265.32 +2024-09-13,Credit,577.02 +2024-01-06,Credit,447.58 +2024-07-31,Debit,98.29 +2024-03-06,Debit,361.59 +2024-12-04,Credit,710.82 +2024-07-25,Credit,420.47 +2024-02-09,Credit,504.46 +2024-05-17,Credit,877.31 +2024-12-03,Credit,750.79 +2024-04-29,Debit,335.98 +2024-02-19,Credit,90.83 +2024-08-06,Credit,291.04 +2024-03-23,Credit,139.86 +2024-02-28,Debit,976.21 +2024-06-01,Debit,920.95 +2024-05-06,Debit,624.82 +2024-07-20,Debit,413.37 +2024-10-06,Debit,178.71 +2024-09-20,Credit,545.05 +2024-02-21,Debit,436.99 +2024-10-03,Debit,949.77 +2024-12-10,Debit,974.5 +2024-02-08,Credit,184.33 +2024-07-30,Credit,582.47 +2024-11-25,Debit,119.56 +2024-08-13,Debit,741.88 +2024-03-19,Credit,832.09 +2024-10-20,Debit,533.28 +2024-09-11,Credit,317.77 +2024-10-21,Debit,27.22 +2024-11-13,Credit,310.13 +2024-11-15,Credit,765.28 +2024-08-04,Credit,307.2 +2024-04-10,Credit,677.84 +2024-03-19,Credit,251.4 +2024-03-18,Debit,328.43 +2024-11-02,Credit,303.97 +2024-01-24,Debit,723.56 +2024-11-19,Debit,400.29 +2024-03-27,Credit,926.55 +2024-08-21,Debit,219.13 +2024-09-04,Credit,651.62 +2024-08-11,Credit,84.96 +2024-08-23,Debit,668.16 +2024-06-18,Credit,894.17 +2024-12-14,Credit,723.95 +2024-10-21,Credit,674.76 +2024-03-30,Credit,957.26 +2024-11-30,Debit,192.86 +2024-01-12,Credit,825.44 +2024-05-11,Debit,34.66 +2024-04-07,Credit,543.5 +2024-02-26,Credit,400.66 +2024-04-21,Debit,467.19 +2024-11-26,Debit,209.83 +2024-12-08,Credit,707.99 +2024-05-08,Credit,479.41 +2024-08-26,Credit,683.97 +2024-05-26,Debit,751.6 +2024-07-16,Credit,612.39 +2024-09-26,Debit,83.38 +2024-07-25,Credit,193.97 +2024-09-28,Debit,520.63 +2024-01-28,Credit,741.07 +2024-01-02,Debit,827.32 +2024-12-14,Credit,676.83 +2024-10-10,Debit,126.0 +2024-08-01,Debit,690.29 +2024-04-12,Credit,533.79 +2024-06-29,Debit,436.9 +2024-09-19,Debit,108.15 +2024-11-08,Credit,310.88 +2024-03-22,Credit,15.32 +2024-09-21,Debit,563.35 +2024-03-21,Credit,254.36 +2024-12-08,Debit,192.03 +2024-01-23,Credit,316.78 +2024-07-02,Debit,419.87 +2024-05-25,Credit,855.59 +2024-01-27,Debit,380.61 +2024-02-04,Debit,545.4 +2024-04-18,Credit,702.84 +2024-02-27,Credit,202.81 +2024-03-16,Debit,783.01 +2024-05-03,Debit,529.37 +2024-12-12,Debit,109.6 +2024-09-11,Credit,783.22 +2024-09-06,Debit,877.68 +2024-11-09,Credit,314.33 +2024-11-02,Credit,575.86 +2024-11-07,Credit,154.81 +2024-12-31,Credit,634.02 +2024-02-03,Credit,409.08 +2024-03-04,Credit,557.49 +2024-01-02,Debit,587.32 +2024-06-03,Credit,790.9 +2024-01-01,Debit,99.14 +2024-09-14,Credit,233.58 +2024-06-16,Credit,333.43 +2024-07-13,Debit,785.52 +2024-12-06,Credit,284.1 +2024-09-17,Debit,265.57 +2024-10-05,Credit,135.93 +2024-10-27,Credit,267.4 +2024-08-20,Credit,697.1 +2024-12-13,Debit,152.46 +2024-01-10,Debit,15.8 +2024-01-25,Credit,622.0 +2024-09-29,Debit,641.78 +2024-06-10,Debit,864.86 +2024-03-25,Debit,738.27 +2024-08-14,Credit,845.77 +2024-06-19,Credit,385.24 +2024-09-15,Debit,246.72 +2024-08-05,Credit,441.51 +2024-05-07,Debit,970.42 +2024-08-18,Debit,870.55 +2024-02-21,Debit,657.9 +2024-10-27,Debit,740.7 +2024-12-12,Debit,560.07 +2024-03-30,Credit,330.96 +2024-04-07,Debit,887.96 +2024-06-15,Debit,994.9 +2024-08-08,Credit,758.88 +2024-10-03,Credit,788.74 +2024-05-03,Debit,751.0 +2024-04-06,Debit,292.62 +2024-02-05,Credit,169.71 +2024-11-15,Credit,210.76 +2024-03-04,Debit,984.47 +2024-10-30,Credit,592.32 +2024-04-24,Credit,154.23 +2024-08-21,Debit,553.16 +2024-07-13,Debit,229.94 +2024-06-25,Debit,10.88 +2024-12-20,Credit,653.79 +2024-05-29,Credit,288.46 +2024-10-06,Debit,737.41 +2024-05-10,Credit,227.06 +2024-12-21,Credit,777.88 +2024-07-21,Credit,686.11 +2024-03-17,Debit,186.09 +2024-01-10,Debit,345.18 +2024-08-31,Credit,932.12 +2024-07-21,Credit,936.11 +2024-10-18,Debit,583.64 +2024-10-09,Credit,851.62 +2024-07-30,Credit,123.4 +2024-01-17,Credit,709.87 +2024-10-31,Credit,834.82 +2024-07-25,Debit,40.86 +2024-03-15,Debit,928.45 +2024-10-11,Credit,612.46 +2024-08-02,Debit,284.51 +2024-09-29,Credit,87.92 +2024-05-13,Debit,297.11 +2024-09-22,Debit,89.7 +2024-02-27,Credit,915.97 +2024-06-02,Credit,852.54 +2024-02-18,Debit,622.68 +2024-12-23,Debit,940.9 +2024-04-12,Credit,14.47 +2024-07-01,Credit,573.62 +2024-09-15,Debit,123.57 +2024-01-11,Credit,806.33 +2024-11-16,Debit,409.06 +2024-04-05,Credit,404.48 +2024-11-29,Credit,612.64 +2024-06-17,Credit,643.81 +2024-04-17,Debit,535.85 +2024-02-04,Debit,66.65 +2024-12-09,Debit,305.0 +2024-01-11,Credit,524.1 +2024-04-27,Debit,190.06 +2024-07-01,Debit,989.83 +2024-07-10,Debit,368.72 +2024-03-07,Debit,65.49 +2024-07-19,Credit,588.91 +2024-12-17,Credit,289.81 +2024-05-09,Credit,681.71 +2024-06-29,Credit,980.57 +2024-06-29,Debit,487.41 +2024-07-30,Debit,446.49 +2024-04-21,Credit,200.67 +2024-04-22,Credit,900.82 +2024-04-25,Debit,893.71 +2024-06-11,Credit,573.6 +2024-11-04,Credit,634.08 +2024-06-07,Credit,940.3 +2024-12-25,Debit,264.24 +2024-12-07,Credit,955.74 +2024-01-22,Credit,977.52 +2024-10-04,Debit,262.72 +2024-10-23,Debit,458.42 +2024-05-08,Debit,545.6 +2024-05-08,Debit,27.49 +2024-08-30,Credit,352.29 +2024-03-01,Credit,364.59 +2024-07-27,Credit,685.4 +2024-08-09,Debit,612.21 +2024-12-21,Credit,942.41 +2024-04-15,Credit,989.98 +2024-12-09,Credit,138.43 +2024-10-27,Debit,274.4 +2024-05-16,Debit,787.9 +2024-12-21,Credit,470.79 +2024-11-26,Debit,790.01 +2024-12-23,Debit,336.85 +2024-07-08,Debit,59.27 +2024-07-11,Debit,474.2 +2024-03-29,Credit,97.47 +2024-04-04,Debit,354.47 +2024-05-30,Debit,566.91 +2024-01-07,Debit,125.94 +2024-08-15,Credit,515.94 +2024-11-05,Credit,39.69 +2024-09-01,Credit,913.57 +2024-02-15,Credit,258.76 +2024-06-01,Debit,387.05 +2024-12-14,Debit,63.69 +2024-12-28,Debit,199.74 +2024-03-11,Debit,151.33 +2024-07-30,Credit,180.05 +2024-06-03,Debit,611.66 +2024-05-23,Credit,651.63 +2024-08-15,Credit,229.45 +2024-02-14,Credit,554.68 +2024-04-09,Debit,690.33 +2024-11-21,Credit,270.01 +2024-04-11,Debit,871.87 +2024-05-31,Credit,92.12 +2024-12-25,Debit,10.91 +2024-07-19,Debit,625.46 +2024-09-20,Debit,544.15 +2024-04-18,Debit,864.65 +2024-08-13,Debit,378.64 +2024-05-06,Debit,998.22 +2024-11-15,Credit,805.2 +2024-12-29,Credit,903.92 +2024-06-03,Debit,781.34 +2024-10-06,Debit,943.92 +2024-09-15,Credit,116.3 +2024-08-04,Debit,76.23 +2024-06-12,Debit,597.79 +2024-08-09,Debit,196.01 +2024-02-10,Debit,928.5 +2024-08-12,Debit,668.7 +2024-05-15,Credit,78.97 +2024-08-09,Credit,283.6 +2024-04-25,Debit,955.05 +2024-11-04,Credit,404.5 +2024-10-01,Credit,656.54 +2024-06-29,Credit,715.87 +2024-07-08,Credit,691.76 +2024-01-06,Credit,582.3 +2024-03-27,Credit,714.87 +2024-12-18,Credit,547.94 +2024-03-05,Debit,689.33 +2024-04-25,Credit,92.93 +2024-02-06,Credit,489.31 +2024-01-31,Credit,319.38 +2024-01-27,Debit,360.25 +2024-04-19,Debit,379.11 +2024-03-09,Credit,751.15 +2024-04-04,Debit,531.01 +2024-08-04,Debit,415.81 +2024-12-17,Debit,786.79 +2024-08-31,Debit,397.8 +2024-10-25,Credit,506.74 +2024-10-08,Credit,173.74 +2024-02-07,Debit,454.81 +2024-07-17,Debit,181.48 +2024-04-18,Debit,738.52 +2024-09-28,Debit,593.89 +2024-05-06,Credit,744.4 +2024-09-14,Credit,200.77 +2024-02-04,Credit,267.49 +2024-11-18,Debit,623.05 +2024-12-29,Credit,342.87 +2024-02-23,Credit,843.88 +2024-01-26,Credit,737.5 +2024-04-10,Debit,908.53 +2024-09-16,Debit,80.68 +2024-10-20,Credit,712.21 +2024-09-02,Credit,485.95 +2024-10-16,Debit,274.47 +2024-05-30,Credit,224.83 +2024-01-05,Debit,562.21 +2024-06-08,Debit,748.61 +2024-04-03,Debit,817.09 +2024-03-14,Debit,396.25 +2024-07-12,Debit,257.73 +2024-06-12,Debit,347.23 +2024-07-23,Credit,385.34 +2024-05-29,Credit,743.59 +2024-02-04,Credit,334.82 +2024-09-26,Credit,837.55 +2024-09-04,Debit,212.44 +2024-10-20,Credit,275.63 +2024-09-02,Debit,281.96 +2024-12-29,Credit,603.03 +2024-10-28,Debit,877.94 +2024-08-17,Credit,883.52 +2024-10-06,Credit,95.91 +2024-03-09,Credit,838.18 +2024-02-06,Credit,175.91 +2024-02-19,Debit,826.78 +2024-08-25,Credit,346.14 +2024-10-03,Debit,188.35 +2024-10-18,Debit,994.46 +2024-08-01,Debit,918.31 +2024-05-14,Credit,836.62 +2024-07-03,Debit,485.39 +2024-08-15,Debit,922.74 +2024-12-30,Debit,565.93 +2024-09-10,Debit,96.06 +2024-10-09,Credit,657.37 +2024-12-06,Credit,867.61 +2024-08-14,Credit,706.0 +2024-01-17,Credit,727.83 +2024-03-14,Debit,687.45 +2024-05-13,Debit,339.32 +2024-08-28,Debit,700.55 +2024-11-15,Debit,585.22 +2024-07-14,Debit,744.7 +2024-05-01,Credit,226.53 +2024-11-07,Debit,819.96 +2024-01-15,Debit,777.09 +2024-09-10,Debit,748.2 +2024-12-07,Debit,369.73 +2024-02-23,Debit,342.06 +2024-02-12,Credit,658.86 +2024-07-28,Debit,873.71 +2024-04-25,Credit,24.77 +2024-12-06,Credit,833.23 +2024-07-02,Credit,491.64 +2024-07-21,Debit,520.95 +2024-03-27,Credit,156.95 +2024-07-31,Debit,811.83 +2024-03-01,Credit,52.82 +2024-09-19,Credit,570.24 +2024-04-30,Credit,41.82 +2024-09-19,Debit,30.5 +2024-04-02,Credit,824.63 +2024-11-21,Credit,426.74 +2024-07-24,Debit,763.2 +2024-02-03,Debit,527.14 +2024-11-24,Credit,432.59 +2024-04-11,Credit,811.64 +2024-03-12,Credit,534.01 +2024-06-29,Credit,158.23 +2024-12-06,Debit,554.15 +2024-06-25,Debit,526.89 +2024-09-24,Credit,118.33 +2024-06-24,Credit,449.9 +2024-07-20,Credit,983.08 +2024-08-22,Debit,50.04 +2024-06-12,Debit,440.69 +2024-06-06,Debit,22.48 +2024-10-06,Credit,889.02 +2024-06-09,Credit,259.49 +2024-08-02,Credit,352.18 +2024-12-16,Debit,495.39 +2024-05-12,Debit,352.44 +2024-06-05,Credit,327.15 +2024-04-26,Credit,758.93 +2024-04-27,Debit,787.25 +2024-09-26,Debit,599.72 +2024-05-02,Credit,677.43 +2024-05-21,Debit,596.19 +2024-10-05,Debit,884.77 +2024-02-11,Credit,197.83 +2024-12-18,Debit,899.56 +2024-12-19,Debit,513.91 +2024-01-17,Debit,470.65 +2024-09-16,Credit,56.95 +2024-04-23,Debit,894.51 +2024-07-19,Credit,866.14 +2024-05-10,Debit,493.2 +2024-08-17,Credit,348.27 +2024-06-01,Debit,341.47 +2024-06-23,Credit,485.25 +2024-10-15,Debit,289.33 +2024-06-05,Debit,708.0 +2024-10-25,Debit,498.53 +2024-12-18,Debit,723.81 +2024-05-21,Debit,748.92 +2024-10-22,Debit,938.13 +2024-04-21,Credit,856.9 +2024-03-23,Debit,948.61 +2024-02-24,Credit,175.9 +2024-07-29,Debit,25.98 +2024-07-16,Debit,133.12 +2024-05-27,Debit,561.02 +2024-07-10,Debit,607.12 +2024-01-07,Debit,563.25 +2024-05-08,Credit,82.27 +2024-07-26,Debit,583.22 +2024-08-28,Credit,319.93 +2024-11-04,Credit,48.22 +2024-09-03,Credit,487.13 +2024-05-04,Debit,456.58 +2024-09-15,Debit,952.32 +2024-08-02,Debit,752.61 +2024-09-17,Credit,93.3 +2024-02-11,Credit,499.09 +2024-11-18,Debit,393.61 +2024-04-23,Credit,791.39 +2024-05-26,Debit,140.78 +2024-09-29,Debit,793.34 +2024-04-08,Debit,569.02 +2024-04-23,Debit,609.22 +2024-01-07,Credit,166.24 +2024-03-25,Credit,112.75 +2024-12-03,Debit,17.0 +2024-12-27,Credit,913.8 +2024-06-15,Credit,597.34 +2024-04-25,Credit,903.36 +2024-12-06,Debit,428.05 +2024-12-18,Credit,905.74 +2024-07-09,Credit,153.58 +2024-11-20,Debit,183.58 +2024-01-31,Debit,922.54 +2024-08-22,Debit,556.18 +2024-07-31,Debit,894.48 +2024-03-05,Debit,287.94 +2024-01-05,Credit,916.65 +2024-01-23,Debit,47.74 +2024-11-22,Debit,50.01 +2024-09-30,Credit,328.81 +2024-01-21,Debit,683.42 +2024-03-01,Debit,828.24 +2024-09-22,Debit,999.13 +2024-11-25,Debit,16.02 +2024-01-21,Debit,127.59 +2024-09-05,Credit,789.15 +2024-07-24,Credit,664.12 +2024-07-05,Debit,11.44 +2024-02-23,Credit,584.64 +2024-05-13,Credit,867.2 +2024-11-15,Debit,877.12 +2024-04-28,Credit,570.83 +2024-06-03,Debit,19.04 +2024-03-05,Credit,659.82 +2024-10-02,Debit,801.24 +2024-08-19,Credit,742.76 +2024-10-14,Debit,434.48 +2024-02-15,Credit,529.85 +2024-12-14,Credit,756.32 +2024-07-12,Debit,915.81 +2024-11-26,Credit,894.32 +2024-01-24,Debit,941.73 +2024-09-18,Credit,470.87 +2024-05-11,Credit,411.79 +2024-01-05,Credit,159.27 +2024-07-04,Credit,115.65 +2024-04-24,Credit,65.38 +2024-05-16,Debit,561.41 +2024-05-03,Credit,822.44 +2024-02-17,Credit,553.67 +2024-09-20,Debit,681.44 +2024-08-07,Debit,711.24 +2024-02-05,Debit,619.5 +2024-10-10,Credit,107.36 +2024-06-07,Debit,818.46 +2024-11-10,Debit,616.5 +2024-03-14,Debit,402.02 +2024-09-24,Debit,33.32 +2024-10-14,Debit,249.4 +2024-06-27,Debit,462.59 +2024-06-24,Debit,758.69 +2024-01-06,Debit,803.39 +2024-11-14,Debit,851.29 +2024-03-03,Debit,777.37 +2024-02-05,Credit,362.01 +2024-05-10,Debit,598.12 +2024-08-23,Credit,676.69 +2024-11-12,Credit,503.59 +2024-06-29,Debit,550.81 +2024-04-07,Debit,15.98 +2024-06-10,Debit,310.3 +2024-03-29,Debit,148.78 +2024-06-08,Credit,826.45 +2024-11-11,Credit,531.25 +2024-10-06,Credit,228.11 +2024-07-02,Credit,27.65 +2024-12-29,Debit,800.51 +2024-07-22,Credit,370.7 +2024-01-01,Credit,626.7 +2024-06-27,Credit,254.56 +2024-04-26,Credit,430.98 +2024-07-31,Credit,442.48 +2024-04-09,Credit,983.84 +2024-12-27,Credit,363.29 +2024-11-24,Credit,604.64 +2024-02-28,Credit,304.86 +2024-08-20,Debit,580.11 +2024-06-02,Debit,789.13 +2024-09-02,Credit,625.7 +2024-03-12,Credit,606.68 +2024-10-27,Credit,569.39 +2024-06-10,Debit,767.2 +2024-03-06,Credit,285.18 +2024-02-02,Debit,346.71 +2024-02-10,Credit,628.28 +2024-12-05,Credit,741.82 +2024-05-15,Debit,853.11 +2024-10-19,Credit,870.81 +2024-09-22,Credit,122.85 +2024-04-28,Credit,787.33 +2024-05-27,Debit,701.99 +2024-12-28,Debit,174.93 +2024-06-05,Credit,429.77 +2024-05-08,Credit,345.21 +2024-12-01,Credit,536.66 +2024-09-18,Debit,946.57 +2024-12-10,Credit,146.19 +2024-03-05,Credit,743.67 +2024-11-05,Credit,465.66 +2024-05-31,Debit,306.87 +2024-04-29,Debit,14.18 +2024-02-15,Debit,231.64 +2024-10-18,Credit,221.95 +2024-07-05,Debit,225.4 +2024-10-27,Credit,748.37 +2024-01-02,Credit,825.15 +2024-06-08,Debit,968.28 +2024-10-05,Debit,158.13 +2024-04-11,Credit,586.88 +2024-07-24,Debit,591.34 +2024-07-20,Credit,336.78 +2024-03-16,Debit,344.58 +2024-08-07,Credit,367.1 +2024-01-20,Credit,707.98 +2024-10-07,Credit,728.85 +2024-11-21,Debit,429.92 +2024-09-21,Debit,209.74 +2024-08-13,Debit,823.23 +2024-06-14,Debit,168.83 +2024-11-26,Credit,364.03 +2024-09-26,Credit,99.2 +2024-05-03,Credit,165.61 +2024-02-02,Debit,529.58 +2024-01-07,Credit,549.75 +2024-08-06,Debit,379.76 +2024-03-15,Credit,214.3 +2024-12-22,Debit,582.81 +2024-06-15,Debit,33.78 +2024-11-27,Credit,141.35 +2024-07-11,Debit,703.33 +2024-03-10,Debit,798.53 +2024-08-27,Credit,519.5 +2024-06-02,Debit,752.83 +2024-03-01,Credit,735.13 +2024-01-12,Credit,263.58 +2024-11-18,Credit,877.01 +2024-12-25,Debit,322.18 +2024-04-05,Debit,110.35 +2024-03-30,Credit,947.28 +2024-09-30,Credit,98.75 +2024-04-13,Credit,739.32 +2024-03-13,Debit,246.76 +2024-10-24,Credit,913.28 +2024-09-04,Debit,412.35 +2024-01-15,Credit,252.6 +2024-07-11,Credit,672.74 +2024-08-30,Debit,421.16 +2024-02-08,Credit,546.36 +2024-05-21,Credit,922.32 +2024-01-07,Credit,320.31 +2024-05-14,Debit,292.2 +2024-03-07,Credit,892.01 +2024-02-22,Credit,529.49 +2024-03-25,Credit,227.69 +2024-11-17,Debit,707.93 +2024-06-27,Debit,23.73 +2024-08-29,Credit,36.59 +2024-07-06,Credit,183.71 +2024-01-03,Debit,402.76 +2024-09-28,Credit,658.38 +2024-10-06,Credit,228.1 +2024-08-20,Debit,416.77 +2024-03-04,Credit,890.83 +2024-11-18,Credit,286.8 +2024-01-12,Debit,12.44 +2024-07-18,Credit,103.17 +2024-06-22,Debit,206.98 +2024-02-05,Credit,42.42 +2024-06-29,Credit,468.25 +2024-06-19,Credit,104.8 +2024-01-27,Debit,570.87 +2024-10-19,Credit,627.79 +2024-10-19,Debit,218.05 +2024-06-05,Debit,565.21 +2024-06-04,Credit,289.35 +2024-05-06,Credit,259.74 +2024-04-24,Credit,899.6 +2024-07-09,Credit,632.1 +2024-03-05,Debit,976.29 +2024-06-19,Debit,83.61 +2024-07-30,Debit,956.85 +2024-08-23,Debit,558.38 +2024-06-18,Debit,781.06 +2024-06-11,Debit,867.84 +2024-11-07,Debit,363.3 +2024-11-24,Debit,940.66 +2024-11-02,Debit,222.07 +2024-03-29,Debit,23.26 +2024-02-01,Credit,696.86 +2024-06-17,Credit,662.96 +2024-10-31,Debit,304.78 +2024-11-05,Debit,26.67 +2024-12-12,Debit,162.54 +2024-02-22,Credit,397.79 +2024-03-02,Debit,194.7 +2024-04-27,Credit,750.79 +2024-01-17,Credit,463.8 +2024-07-03,Debit,583.6 +2024-05-19,Debit,203.14 +2024-07-11,Credit,773.23 +2024-04-18,Debit,450.8 +2024-10-17,Debit,727.68 +2024-12-17,Debit,244.02 +2024-09-18,Debit,259.23 +2024-07-21,Debit,225.74 +2024-08-10,Credit,364.16 +2024-08-28,Credit,314.22 +2024-07-17,Credit,896.22 +2024-09-29,Credit,631.17 +2024-11-30,Debit,426.21 +2024-01-28,Credit,741.06 +2024-03-18,Credit,18.02 +2024-03-01,Credit,754.67 +2024-03-28,Credit,915.98 +2024-07-07,Debit,725.06 +2024-12-10,Credit,369.95 +2024-06-19,Debit,547.39 +2024-07-03,Credit,690.28 +2024-12-31,Credit,561.84 +2024-08-19,Credit,604.96 +2024-12-31,Credit,405.83 +2024-06-25,Debit,237.09 +2024-08-06,Credit,686.48 +2024-03-21,Debit,991.45 +2024-12-19,Credit,331.94 +2024-11-02,Credit,213.89 +2024-02-01,Debit,511.32 +2024-07-04,Credit,866.36 +2024-05-04,Debit,463.01 +2024-05-13,Debit,572.26 +2024-12-17,Debit,882.55 +2024-03-21,Credit,204.57 +2024-07-11,Debit,88.78 +2024-02-23,Debit,672.56 +2024-09-05,Credit,963.25 +2024-12-19,Debit,76.44 +2024-07-09,Credit,592.21 +2024-09-07,Credit,713.83 +2024-06-06,Credit,661.2 +2024-11-16,Debit,695.92 +2024-05-06,Debit,553.86 +2024-10-17,Debit,827.64