rust j#rustc 1.76.0 (07dca489a 2024-02-04) &_$ !-4f192af08beaa759 @A}}-62a9b4d83244cb2br#3JIb'' @-4010f8e9d1f7f9aarustc_std_workspace_core?-]-fa2288bf7728f91c addr2line),SO)R%X-a2e883cf5bcf6347gimli$?g')&-df8440ef641907f8object_O?#-9e012890a70780c2memchrG ̇삭-60338fe528589910vt'FKj-401344856f0fc3c5tests   mathtry_addtry_subtry_multry_div                      _ The code snippet provided is a Rust module named `math` that contains functions for performingbd arithmetic operations with `u128` values while handling potential overflows. Here is a breakdown ofcg! each function within the module:$Cb The function `try_add` in Rust attempts to add two `u128` values and returns `Some(result)` if ane. overflow occurs, otherwise it returns `None`.j1 Arguments:a * `left_value`: The `left_value` parameter is a 128-bit unsigned integer (u128) representing thed( left operand in the addition operation.+a * `right_value`: The `right_value` parameter in the `try_add` function represents the value thatd- will be added to the `left_value` parameter.0 Returns: _ The function `try_add` returns an `Option`. If the sum of `left_value` and `right_value`bb overflows, it returns `Some(result_add)` with the overflowed value. Otherwise, it returns `None`.e   left_value  right_value Cc The function `try_sub` in Rust attempts to subtract two `u128` values and returns the result as anfJ `Option`, or `None` if the subtraction would result in an overflow.M   e * `left_value`: The `left_value` parameter represents the value from which the `right_value` will be h& subtracted in the `try_sub` function. )[ * `right_value`: The `right_value` parameter is the value that will be subtracted from the ^2 `left_value` parameter in the `try_sub` function. 5   ] The function `try_sub` returns an `Option`. If the subtraction operation `left_value - `[ right_value` is successful (i.e., no overflow occurs), it returns `Some(result_sub)` where ^c `result_sub` is the result of the subtraction. If an overflow occurs (which is incorrectly checkedfE with `if left_value >= left_value` instead of `if result_sub >= leftH   Cc The `try_mul` function in Rust attempts to multiply two `u128` values and returns the result as anfB `Option`, returning `None` if the multiplication overflows.Ea * `left_value`: The `left_value` parameter represents the first value to be multiplied. It is ofd< type `u128`, which means it is an unsigned 128-bit integer.?c * `right_value`: The `right_value` parameter represents the second value to be multiplied with thef2 `left_value` parameter in the `try_mul` function.5 W The function `try_mul` returns an `Option`. It returns `Some(result_mut)` if theZe multiplication of `left_value` and `right_value` does not overflow and the division of the result byhA `left_value` equals `right_value`. Otherwise, it returns `None`.D   "Ca The `try_div` function in Rust attempts to perform division on two `u128` values and returns thedE result as an `Option`, or `None` if the division is not exact.Hb * `left_value`: The `left_value` parameter represents the dividend in a division operation. It ise" the number that is being divided.%c * `right_value`: The `right_value` parameter in the `try_div` function represents the divisor in af] division operation. It is the value by which the `left_value` (dividend) will be divided. If`L `right_value` is equal to 0, the function will return `None` since divisionO   c The function `try_div` returns an `Option`. It returns `Some(result_mut)` if the division is fb successful and the result is correct, otherwise it returns `None` if the `right_value` is 0 or if!e" the division result is incorrect.!%" " " 1,---BP8޽9%BP8.ZBP87ܙ$uoBP85$BP8\˟\TBP8BP8CC"B&CRBP8xZP0OBP8/=`BP8|:hBP8sbA@BP8ubxABP8w@H4Hf2 lH[ Z 8F5;A_+ eAs}8>S #1z K'Y D R M)[ 9G 9G *8 Q-_Q  #1?M[_cgk 111 BP8]?',ODHT BP8/=`BP8޽9%BP8ubxA BP87ܙ$uoBP8|:h BP8CC"B&CRBP8BP8.ZBP8\˟\TBP8xZP0OBP8sbA@ BP85$BP8w@H4 i 7|)Bu*'~ji 7|)Bu*'~jV/Users/nguyenductrang/Desktop/Contract/RUST_BLOCKCHAIN_TUTORIAL/library-mod/src/lib.rs j3e8̂} ch%7  =O =N