codeparrot/xlcost-text-to-code huggingface dataset:
Master Theorem For Subtract and Conquer Recurrences | C # code for above the approach . ; Driver Code
using System ; class GFG { static int fib ( int n ) { if ( n <= 1 ) return n ; return fib ( n - 1 ) + fib ( n - 2 ) ; } public static void Main ( String [ ] args ) { int n = 9 ; Console . WriteLine ( fib ( n ) ) ; } }
Tail Recursion | C # Code for Tail Recursion ; A tail recursive function to calculate factorial ; A wrapper over factTR ; Driver code
using System ; class GFG { static int factTR ( int n , int a ) { if ( n == 0 ) return a ; return factTR ( n - 1 , n * a ) ; } static int fact ( int n ) { return factTR ( n , 1 ) ; } static public void Main ( ) { Console . WriteLine ( fact ( 5 ) ) ; } }
Minimum and maximum count of elements at D distance from arr [ i ] in either direction | C # program for the above approach ; Function to find the minimum and maximum number of points included in a range of distance D ; Stores the minimum and maximum number of points that lies over the distance of D ; Iterate the array ; Count of elements included to left of point at index i ; Update the minimum number of points ; Update the maximum number of points ; Count of elements included to right of point at index i ; Update the minimum number of points ; Update the maximum number of points ; Return the array ; Function to perform the Binary Search to the left of arr [ i ] over the given range ; Base Case ; Binary Search for index to left ; update index ; Return the number of elements by subtracting indices ; Function to perform the Binary Search to the right of arr [ i ] over the given range ; Base Case ; Binary Search for index to right ; Update the index ; Return the number of elements by subtracting indices ; Driver Code ; Function Call
using System ; class GFG { public static int [ ] minMaxRange ( int [ ] arr , int D , int N ) { int max = 1 , min = N ; for ( int i = 0 ; i < N ; i ++ ) { int dist = leftSearch ( arr , arr [ i ] - D , i ) ; min = Math . Min ( min , dist ) ; max = Math . Max ( max , dist ) ; dist = rightSearch ( arr , arr [ i ] + D , i ) ; min = Math . Min ( min , dist ) ; max = Math . Max ( max , dist ) ; } return new int [ ] { min , max } ; } public static int leftSearch ( int [ ] arr , int val , int i ) { if ( i == 0 ) return 1 ; int left = 0 , right = i - 1 ; int ind = - 1 ; while ( left <= right ) { int mid = ( left + right ) / 2 ; if ( arr [ mid ] < val ) { left = mid + 1 ; } else { right = mid - 1 ; ind = mid ; } } return ind != - 1 ? i - ind + 1 : 1 ; } public static int rightSearch ( int [ ] arr , int val , int i ) { if ( i == arr . Length - 1 ) return 1 ; int left = i + 1 ; int right = arr . Length - 1 ; int ind = - 1 ; while ( left <= right ) { int mid = ( left + right ) / 2 ; if ( arr [ mid ] > val ) { right = mid - 1 ; } else { left = mid + 1 ; ind = mid ; } } return ind != - 1 ? ind - i + 1 : 1 ; } public static void Main ( ) { int [ ] arr = { 1 , 3 , 5 , 9 , 14 } ; int N = arr . Length ; int D = 4 ; int [ ] minMax = minMaxRange ( arr , D , N ) ; Console . Write ( minMax [ 0 ] + " ▁ " + minMax [ 1 ] ) ; } }
Given two unsorted arrays , find all pairs whose sum is x | C # program to find all pairs in both arrays whose sum is equal to given value x ; Function to print all pairs in both arrays whose sum is equal to given value x ; Driver code
using System ; class GFG { static void findPairs ( int [ ] arr1 , int [ ] arr2 , int n , int m , int x ) { for ( int i = 0 ; i < n ; i ++ ) for ( int j = 0 ; j < m ; j ++ ) if ( arr1 [ i ] + arr2 [ j ] == x ) Console . WriteLine ( arr1 [ i ] + " ▁ " + arr2 [ j ] ) ; } static void Main ( ) { int [ ] arr1 = { 1 , 2 , 3 , 7 , 5 , 4 } ; int [ ] arr2 = { 0 , 7 , 4 , 3 , 2 , 1 } ; int x = 8 ; findPairs ( arr1 , arr2 , arr1 . Length , arr2 . Length , x ) ; } }
Smallest possible integer K such that ceil of each Array element when divided by K is at most M | C # program for the above approach ; Function to check if the sum of ceil values of the arr [ ] for the K value is at most M or not ; Stores the sum of ceil values ; Update the sum ; Return true if sum is less than or equal to M , false otherwise ; Function to find the smallest possible integer K such that ceil ( arr [ 0 ] / K ) + ceil ( arr [ 1 ] / K ) + ... . + ceil ( arr [ N - 1 ] / K ) is less than or equal to M ; Stores the low value ; Stores the high value ; Stores the middle value ; Update the mid value ; Check if the mid value is K ; Update the low value ; Update the high value ; Check if low is K or high is K and return it ; Driver Code
using System ; using System . Linq ; class GFG { static bool isvalid ( int [ ] arr , int K , int N , int M ) { int sum = 0 ; for ( int i = 0 ; i < N ; i ++ ) { sum += ( int ) Math . Ceiling ( arr [ i ] * 1.0 / K ) ; } return sum <= M ; } static int smallestValueForK ( int [ ] arr , int N , int M ) { int low = 1 ; int high = arr . Max ( ) ; int mid ; while ( high - low > 1 ) { mid = ( high + low ) / 2 ; if ( ! isvalid ( arr , mid , N , M ) ) low = mid + 1 ; else high = mid ; } return isvalid ( arr , low , N , M ) ? low : high ; } public static void Main ( ) { int [ ] arr = { 4 , 3 , 2 , 7 } ; int N = arr . Length ; int M = 5 ; Console . WriteLine ( smallestValueForK ( arr , N , M ) ) ; } }
Given two unsorted arrays , find all pairs whose sum is x | C # Code for Given two unsorted arrays , find all pairs whose sum is x ; Function to find all pairs in both arrays whose sum is equal to given value x ; Insert all elements of first array in a hash ; Subtract sum from second array elements one by one and check it 's present in array first  or not ; Driver Code
using System ; using System . Collections . Generic ; class GFG { public static void findPairs ( int [ ] arr1 , int [ ] arr2 , int n , int m , int x ) { Dictionary < int , int > s = new Dictionary < int , int > ( ) ; for ( int i = 0 ; i < n ; i ++ ) { s [ arr1 [ i ] ] = 0 ; } for ( int j = 0 ; j < m ; j ++ ) { if ( s . ContainsKey ( x - arr2 [ j ] ) ) { Console . WriteLine ( x - arr2 [ j ] + " ▁ " + arr2 [ j ] ) ; } } } public static void Main ( string [ ] args ) { int [ ] arr1 = new int [ ] { 1 , 0 , - 4 , 7 , 6 , 4 } ; int [ ] arr2 = new int [ ] { 0 , 2 , 4 , - 3 , 2 , 1 } ; int x = 8 ; findPairs ( arr1 , arr2 , arr1 . Length , arr2 . Length , x ) ; } }
Altitude of largest Triangle that can be inscribed in a Rectangle | C # program for the above approach ; Function to find the greatest altitude of the largest triangle triangle that can be inscribed in the rectangle ; If L is greater than B ; Stores the maximum altitude value ; Return res ; Driver Code ; Given Input ; Function call
using System ; class GFG { static int largestAltitude ( int L , int B ) { if ( L > B ) { int t = L ; L = B ; B = t ; } int res = Math . Min ( B / 2 , L ) ; return res ; } public static void Main ( String [ ] args ) { int L = 3 ; int B = 4 ; Console . Write ( largestAltitude ( L , B ) ) ; } }
Check if a given Binary Tree is height balanced like a Red | C # Program to check if a given Binary Tree is balanced like a Red - Black Tree ; utility that allocates a new Node with the given key ; Returns returns tree if the Binary tree is balanced like a Red - Black tree . This function also sets value in maxh and minh ( passed by reference ) . maxh and minh are set as maximum and minimum heights of root . ; Base case ; To store max and min heights of left subtree ; To store max and min heights of right subtree ; Check if left subtree is balanced , also set lmxh and lmnh ; Check if right subtree is balanced , also set rmxh and rmnh ; Set the max and min heights of this node for the parent call ; See if this node is balanced ; A wrapper over isBalancedUtil ( ) ; Driver code
using System ; class GFG { public class Node { public int key ; public Node left , right ; public Node ( int key ) { left = null ; right = null ; this . key = key ; } } public class INT { public int d ; public INT ( ) { d = 0 ; } } static bool isBalancedUtil ( Node root , INT maxh , INT minh ) { if ( root == null ) { maxh . d = minh . d = 0 ; return true ; } INT lmxh = new INT ( ) , lmnh = new INT ( ) ; INT rmxh = new INT ( ) , rmnh = new INT ( ) ; if ( isBalancedUtil ( root . left , lmxh , lmnh ) == false ) return false ; if ( isBalancedUtil ( root . right , rmxh , rmnh ) == false ) return false ; maxh . d = Math . Max ( lmxh . d , rmxh . d ) + 1 ; minh . d = Math . Min ( lmnh . d , rmnh . d ) + 1 ; if ( maxh . d <= 2 * minh . d ) return true ; return false ; } static bool isBalanced ( Node root ) { INT maxh = new INT ( ) , minh = new INT ( ) ; return isBalancedUtil ( root , maxh , minh ) ; } public static void Main ( String [ ] args ) { Node root = new Node ( 10 ) ; root . left = new Node ( 5 ) ; root . right = new Node ( 100 ) ; root . right . left = new Node ( 50 ) ; root . right . right = new Node ( 150 ) ; root . right . left . left = new Node ( 40 ) ; Console . WriteLine ( isBalanced ( root ) ? " Balanced " : " Not ▁ Balanced " ) ; } }
Maximum Fixed Point ( Value equal to index ) in a given Array | C # implementation of the above approach ; Function to find the maximum index i such that arr [ i ] is equal to i ; Traversing the array from backwards ; If arr [ i ] is equal to i ; If there is no such index ; Driver code ; Given Input ; Function Call
using System ; class GFG { static void findLargestIndex ( int [ ] arr , int n ) { for ( int i = n - 1 ; i >= 0 ; i -- ) { if ( arr [ i ] == i ) { Console . Write ( i ) ; return ; } } Console . Write ( - 1 ) ; } public static void Main ( String [ ] args ) { int [ ] arr = { - 10 , - 5 , 0 , 3 , 7 } ; int n = arr . Length ; findLargestIndex ( arr , n ) ; } }
Cumulative frequency of count of each element in an unsorted array | C # program to print the cumulative frequency according to the order given ; Function to print the cumulative frequency according to the order given ; Insert elements and their frequencies in hash map . ; traverse in the array ; add the frequencies ; if the element has not been visited previously ; mark the hash 0 as the element 's cumulative frequency  has been printed ; Driver Code
using System ; class GFG { static void countFreq ( int [ ] a , int n ) { int [ ] hm = new int [ n ] ; for ( int i = 0 ; i < n ; i ++ ) hm [ a [ i ] ] ++ ; int cumul = 0 ; for ( int i = 0 ; i < n ; i ++ ) { cumul += hm [ a [ i ] ] ; if ( hm [ a [ i ] ] != 0 ) { Console . WriteLine ( a [ i ] + " - > " + cumul ) ; } hm [ a [ i ] ] = 0 ; } } public static void Main ( String [ ] args ) { int [ ] a = { 1 , 3 , 2 , 4 , 2 , 1 } ; int n = a . Length ; countFreq ( a , n ) ; } }
Find pairs in array whose sums already exist in array | A simple C # program to find pair whose sum already exists in array ; Function to find pair whose sum exists in arr [ ] ; Driver code
using System ; public class GFG { static void findPair ( int [ ] arr , int n ) { bool found = false ; for ( int i = 0 ; i < n ; i ++ ) { for ( int j = i + 1 ; j < n ; j ++ ) { for ( int k = 0 ; k < n ; k ++ ) { if ( arr [ i ] + arr [ j ] == arr [ k ] ) { Console . WriteLine ( arr [ i ] + " ▁ " + arr [ j ] ) ; found = true ; } } } } if ( found == false ) Console . WriteLine ( " Not ▁ exist " ) ; } static public void Main ( String [ ] args ) { int [ ] arr = { 10 , 4 , 8 , 13 , 5 } ; int n = arr . Length ; findPair ( arr , n ) ; } }
Maximum number of mangoes that can be bought | C # program for the above approach ; Function to check if mid number of mangoes can be bought ; Store the coins ; If watermelons needed are greater than given watermelons ; Store remaining watermelons if vl watermelons are used to buy mangoes ; Store the value of coins if these watermelon get sold ; Increment coins by ex ; Number of mangoes that can be buyed if only x coins needed for one mango ; If the condition is satisfied , return true ; Otherwise return false ; Function to find the maximum number of mangoes that can be bought by selling watermelons ; Initialize the boundary values ; Store the required result ; Binary Search ; Store the mid value ; Check if it is possible to buy mid number of mangoes ; Otherwise , update r to mid - 1 ; Return the result ; Driver Code ; Given Input ; Function Call
using System ; class GFG { static bool check ( int n , int m , int x , int y , int vl ) { int temp = m ; if ( vl > n ) return false ; int ex = n - vl ; ex *= y ; temp += ex ; int cr = temp / x ; if ( cr >= vl ) return true ; return false ; } static int maximizeMangoes ( int n , int m , int x , int y ) { int l = 0 , r = n ; int ans = 0 ; while ( l <= r ) { int mid = l + ( r - l ) / 2 ; if ( check ( n , m , x , y , mid ) ) { ans = mid ; l = mid + 1 ; } else r = mid - 1 ; } return ans ; } public static void Main ( ) { int W = 4 , C = 8 , x = 4 , y = 4 ; Console . Write ( maximizeMangoes ( W , C , x , y ) ) ; } }
Kth Smallest Element in a sorted array formed by reversing subarrays from a random index |  ; Function to find the Kth element in a sorted and rotated array at random point ; Set the boundaries for binary search ; Apply binary search to find R ; Initialize the middle element ; Check in the right side of mid ; Else check in the left side ; Random point either l or h ; Return the kth smallest element ; Driver Code ; Given Input ; Function Call
using System . IO ; using System ; class GFG { public static int findkthElement ( int [ ] arr , int n , int K ) { int l = 0 ; int h = n - 1 , r ; while ( l + 1 < h ) { int mid = ( l + h ) / 2 ; if ( arr [ l ] >= arr [ mid ] ) l = mid ; else h = mid ; } if ( arr [ l ] < arr [ h ] ) r = l ; else r = h ; if ( K <= r + 1 ) return arr [ r + 1 - K ] ; else return arr [ n - ( K - ( r + 1 ) ) ] ; } static void Main ( ) { int [ ] arr = { 10 , 8 , 6 , 5 , 2 , 1 , 13 , 12 } ; int n = arr . Length ; int K = 3 ; Console . WriteLine ( findkthElement ( arr , n , K ) ) ; } }
Find all pairs ( a , b ) in an array such that a % b = k | C # implementation to find such pair ; method to find pair such that ( a % b = k ) ; Consider each and every pair ; Print if their modulo equals to k ; Driver method
using System ; public class GFG { static bool printPairs ( int [ ] arr , int n , int k ) { bool isPairFound = true ; for ( int i = 0 ; i < n ; i ++ ) { for ( int j = 0 ; j < n ; j ++ ) { if ( i != j && arr [ i ] % arr [ j ] == k ) { Console . Write ( " ( " + arr [ i ] + " , ▁ " + arr [ j ] + " ) " + " ▁ " ) ; isPairFound = true ; } } } return isPairFound ; } public static void Main ( ) { int [ ] arr = { 2 , 3 , 5 , 4 , 7 } ; int k = 3 ; if ( printPairs ( arr , arr . Length , k ) == false ) Console . WriteLine ( " No ▁ such ▁ pair ▁ exists " ) ; } }
Find all pairs ( a , b ) in an array such that a % b = k | C # program to find all pairs such that a % b = k . ; Utility method to find the divisors of n and store in vector v [ ] ; Vector is used to store the divisors ; If n is a square number , push only one occurrence ; method to find pairs such that ( a % b = k ) ; Store all the elements in the map to use map as hash for finding elements in O ( 1 ) time . ; Print all the pairs with ( a , b ) as ( k , numbers greater than k ) as k % ( num ( > k ) ) = k i . e . 2 % 4 = 2 ; Now check for the current element as ' a ' how many b exists such that a % b = k ; find all the divisors of ( arr [ i ] - k ) ; Check for each divisor i . e . arr [ i ] % b = k or not , if yes then print that pair . ; Clear vector ; Driver Code
using System ; using System . Collections . Generic ; class GFG { public static List < int > findDivisors ( int n ) { List < int > v = new List < int > ( ) ; for ( int i = 1 ; i <= Math . Sqrt ( n ) ; i ++ ) { if ( n % i == 0 ) { if ( n / i == i ) { v . Add ( i ) ; } else { v . Add ( i ) ; v . Add ( n / i ) ; } } } return v ; } public static bool printPairs ( int [ ] arr , int n , int k ) { Dictionary < int , bool > occ = new Dictionary < int , bool > ( ) ; for ( int i = 0 ; i < n ; i ++ ) { occ [ arr [ i ] ] = true ; } bool isPairFound = false ; for ( int i = 0 ; i < n ; i ++ ) { if ( occ [ k ] && k < arr [ i ] ) { Console . Write ( " ( " + k + " , ▁ " + arr [ i ] + " ) ▁ " ) ; isPairFound = true ; } if ( arr [ i ] >= k ) { List < int > v = findDivisors ( arr [ i ] - k ) ; for ( int j = 0 ; j < v . Count ; j ++ ) { if ( arr [ i ] % v [ j ] == k && arr [ i ] != v [ j ] && occ [ v [ j ] ] ) { Console . Write ( " ( " + arr [ i ] + " , ▁ " + v [ j ] + " ) ▁ " ) ; isPairFound = true ; } } v . Clear ( ) ; } } return isPairFound ; } public static void Main ( string [ ] args ) { int [ ] arr = new int [ ] { 3 , 1 , 2 , 5 , 4 } ; int k = 2 ; if ( printPairs ( arr , arr . Length , k ) == false ) { Console . WriteLine ( " No ▁ such ▁ pair ▁ exists " ) ; } } }
Sum of nodes in a Binary Search Tree with values from a given range | C # program for the above approach ; Class for node of the Tree ; Function to create a new BST node ; Return the newly created node ; Stores the sum of all nodes lying in the range [ L , R ] ; Function to perform level order traversal on the Tree and calculate the required sum ; Base Case ; Stores the nodes while performing level order traversal ; Push the root node into the queue ; Iterate until queue is empty ; Stores the front node of the queue ; If the value of the node lies in the given range ; Add it to sum ; If the left child is not null and exceeds low ; Insert into queue ; If the right child is not null and exceeds low ; Insert into queue ; Return the resultant sum ; Function to insert a new node into the Binary Search Tree ; Base Case ; If the data is less than the value of the current node ; Recur for left subtree ; Otherwise ; Recur for the right subtree ; Return the node ; Driver Code ; Let us create following BST 10 / \ 5 15 / \ \ 3 7 18
using System ; using System . Collections . Generic ; class GFG { class Node { public int val ; public Node left , right ; } ; static Node newNode ( int item ) { Node temp = new Node ( ) ; temp . val = item ; temp . left = temp . right = null ; return temp ; } static int sum = 0 ; static int rangeSumBST ( Node root , int low , int high ) { if ( root == null ) return 0 ; Queue < Node > q = new Queue < Node > ( ) ; q . Enqueue ( root ) ; while ( q . Count != 0 ) { Node curr = q . Peek ( ) ; q . Dequeue ( ) ; if ( curr . val >= low && curr . val <= high ) { sum += curr . val ; } if ( curr . left != null && curr . val > low ) q . Enqueue ( curr . left ) ; if ( curr . right != null && curr . val < high ) q . Enqueue ( curr . right ) ; } return sum ; } static Node insert ( Node node , int data ) { if ( node == null ) return newNode ( data ) ; if ( data <= node . val ) node . left = insert ( node . left , data ) ; else node . right = insert ( node . right , data ) ; return node ; } public static void Main ( String [ ] args ) { Node root = null ; root = insert ( root , 10 ) ; insert ( root , 5 ) ; insert ( root , 15 ) ; insert ( root , 3 ) ; insert ( root , 7 ) ; insert ( root , 18 ) ; int L = 7 , R = 15 ; Console . Write ( rangeSumBST ( root , L , R ) ) ; } }
Convert an array to reduced form | Set 1 ( Simple and Hashing ) | C # Program to convert an Array to reduced form ; Create a temp array and copy contents of [ ] arr to temp ; Sort temp array ; Create a hash table . ; One by one insert elements of sorted [ ] temp and assign them values from 0 to n - 1 ; Convert array by taking positions from umap ; Driver code
using System ; using System . Collections . Generic ; using System . Linq ; class GFG { public static void convert ( int [ ] arr , int n ) { int [ ] temp = new int [ arr . Length ] ; Array . Copy ( arr , 0 , temp , 0 , arr . Length ) ; Array . Sort ( temp ) ; Dictionary < int , int > umap = new Dictionary < int , int > ( ) ; int val = 0 ; for ( int i = 0 ; i < n ; i ++ ) if ( umap . ContainsKey ( temp [ i ] ) ) umap [ temp [ i ] ] = val ++ ; else umap . Add ( temp [ i ] , val ++ ) ; for ( int i = 0 ; i < n ; i ++ ) arr [ i ] = umap [ arr [ i ] ] ; } public static void printArr ( int [ ] arr , int n ) { for ( int i = 0 ; i < n ; i ++ ) Console . Write ( arr [ i ] + " ▁ " ) ; } public static void Main ( String [ ] args ) { int [ ] arr = { 10 , 20 , 15 , 12 , 11 , 50 } ; int n = arr . Length ; Console . WriteLine ( " Given ▁ Array ▁ is ▁ " ) ; printArr ( arr , n ) ; convert ( arr , n ) ; Console . WriteLine ( " STRNEWLINE STRNEWLINE Converted ▁ Array ▁ is ▁ " ) ; printArr ( arr , n ) ; } }
Check if count of substrings in S with string S1 as prefix and S2 as suffix is equal to that with S2 as prefix and S1 as suffix | C # program for the above approach ; Function to count number of substrings that starts with string S1 and ends with string S2 ; Stores the length of each string ; Stores the count of prefixes as S1 and suffixes as S2 ; Traverse string S ; Find the prefix at index i ; Find the suffix at index i ; If the prefix is S1 ; If the suffix is S2 ; Return the count of substrings ; Function to check if the number of substrings starts with S1 and ends with S2 and vice - versa is same or not ; Count the number of substrings ; Print the result ; Driver code
using System ; class GFG { static int countSubstrings ( string S , string S1 , string S2 ) { int N = S . Length ; int N1 = S1 . Length ; int N2 = S2 . Length ; int count = 0 , totalcount = 0 ; for ( int i = 0 ; i < N ; i ++ ) { String prefix = S . Substring ( i , ( i + N1 < N ) ? N1 : ( N - i ) ) ; String suffix = S . Substring ( i , ( i + N2 < N ) ? N2 : ( N - i ) ) ; if ( S1 . Equals ( prefix ) ) count ++ ; if ( S2 . Equals ( suffix ) ) totalcount += count ; } return totalcount ; } static void checkSubstrings ( string S , string S1 , string S2 ) { int x = countSubstrings ( S , S1 , S2 ) ; int y = countSubstrings ( S , S2 , S1 ) ; if ( x == y ) Console . Write ( " Yes " ) ; else Console . Write ( " No " ) ; } static void Main ( ) { string S = " opencloseopencloseopen " ; string S1 = " open " ; string S2 = " close " ; checkSubstrings ( S , S1 , S2 ) ; } }
Return maximum occurring character in an input string | C # program to output the maximum occurring character in a string ; Create array to keep the count of individual characters and initialize the array as 0 ; Construct character count array from the input string . ; Initialize max count ; Initialize result ; Traversing through the string and maintaining the count of each character ; Driver Method
using System ; class GFG { static int ASCII_SIZE = 256 ; static char getMaxOccuringChar ( String str ) { int [ ] count = new int [ ASCII_SIZE ] ; int len = str . Length ; for ( int i = 0 ; i < len ; i ++ ) count [ str [ i ] ] ++ ; int max = - 1 ; char result = ' ▁ ' ; for ( int i = 0 ; i < len ; i ++ ) { if ( max < count [ str [ i ] ] ) { max = count [ str [ i ] ] ; result = str [ i ] ; } } return result ; } public static void Main ( ) { String str = " sample ▁ string " ; Console . Write ( " Max ▁ occurring ▁ character ▁ is ▁ " + getMaxOccuringChar ( str ) ) ; } }